PDA

Ver la Versión Completa : Codigo en una badi


BY_MY
25/01/07, 14:50:41
Buenas a todos.


A ver si alguien me puede echar una manita. El caso es que estoy implementando una badi y atodo correcto hasta el momento en que necesito recuperar un campo de la pantalla, yo crei que podria utilizar la estructura de datos del metodo y que asi podria recuperar los datos pero no lo reconoce.


Creo que me he esplicado fatal asi que intento resumis. El caso es que querria recuperar un campo de pantalla del codigo estandar ¿como se puede hacer?



saludos.

y muchas gracias.

andyoscky
25/01/07, 18:18:43
Buenas a todos.


A ver si alguien me puede echar una manita. El caso es que estoy implementando una badi y atodo correcto hasta el momento en que necesito recuperar un campo de la pantalla, yo crei que podria utilizar la estructura de datos del metodo y que asi podria recuperar los datos pero no lo reconoce.


Creo que me he esplicado fatal asi que intento resumis. El caso es que querria recuperar un campo de pantalla del codigo estandar ¿como se puede hacer?



saludos.

y muchas gracias.
Pasa el campo a un field symbol y lee el valor desde ahi

fields symbol : <fs_campo> type any.
data: valor(50) type c value 'programa-datoabuscar'.

assign (valor) to <fs_campo>.

ya esta el valor que necesitas

BY_MY
29/01/07, 06:58:02
Muchas gracias.

La verdad es que los he visto en el codigo estandar pero no se muy bien como funcionan. Podrias indicarme algun manual sobre ello o ampriarme un poquito la información. (es por saber como funcionan).


Un saludo y muchisimas gracias.

BY_MY
30/01/07, 06:42:51
YA esta solucionado, cambie de badi y pude usar alguna tabla que tenia declarada. El problema es que ahora da error en po_post y no vuelve a la pantalla tras el mensaje de error que yo le puse.


un saludo y muchas gracias.

BY_MY
30/01/07, 09:56:37
Alguien sabria decirme porque puede mandar el error 2 " error de sistema: error en metodo po_post"?

El metodo es:


* post document
CALL METHOD l_po->po_post
EXPORTING
im_uncomplete = l_uncomplete
EXCEPTIONS
failure = 01.
IF sy-subrc EQ 0.

CLEAR ex_result.
ex_posted = mmpur_yes.

READ TABLE my_data INTO l_document INDEX 1.
l_document-doc_type = 'F'.
l_document-doc_key = l_po->po_number.
l_document-trtyp = anz.
l_document-process = mmpur_po_process.
*- get requisitions in the case of a reference operation
IF NOT my_requisitions IS INITIAL.
FIELD-SYMBOLS: <requisitions> TYPE mereq_t_eban_mem.
ASSIGN my_requisitions->* TO <requisitions>.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'MEPO_DOC_POP_BAT'
CHANGING
ch_requisitions = <requisitions>.
ENDIF.
ENDIF.
APPEND l_document TO ex_documents.
CLEAR my_data.
APPEND l_document TO my_data.
CALL FUNCTION 'DEQUEUE_ALL'.

CALL METHOD info_post_result.

CALL METHOD l_po->set_transaction_state
EXPORTING
im_trtyp = anz
im_aktyp = anz
im_tcode = 'ME23N'.
ELSE.

*
* clean up actions after a desaster
*
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
MESSAGE i816(me) WITH 'PO_POST'.

ex_result = 16.
ex_posted = mmpur_no.
l_document-doc_type = 'F'.
CLEAR l_document-doc_key.
l_document-trtyp = anz.
l_document-process = mmpur_po_process.
APPEND l_document TO ex_documents.
CLEAR my_data.
APPEND l_document TO my_data.

CALL METHOD l_po->po_initialize( ).

ENDIF.

ENDMETHOD. "save



Pero no se ni para que sirve.

¿Alguien lo sabe? Me correria muchisima prisa porque es lo unico que me falla y para la empresa es muy urgente.


muchas gracias.

BY_MY
02/02/07, 07:20:33
Alguien sabe algo de esto? me estoy desesperasndo porque no veo como solucionarlo, aunque tengo muy claro lo que le pasa.

Agradeceria cualquier ayuda o idea.

saludos y gracias.

andyoscky
02/02/07, 17:26:30
Hace un debug fijate la estrutura que recibe el metodo y evalua bien que lleva y que no lleva, sin los datos es dificil ayudarte, chequea si implementaste correctamente la badi antes que todo

BY_MY
05/02/07, 12:38:16
Hace un debug fijate la estrutura que recibe el metodo y evalua bien que lleva y que no lleva, sin los datos es dificil ayudarte, chequea si implementaste correctamente la badi antes que todo


La badi parece que esta bien implementada ya que por la transacción me32k funciona correctamente pero no en la me22n y esto debbugeando y otras muchas cosas mas parece ser porque en la me22n llama al metodo po_post y al devolver yo un error en la badi este metodo tambien lo devuelve, en cambio como en la me32k no llama a este metodo no salta dicho error y todo va correcto.

La verdad es que no tengo ni idea de como solucionarlo y me correria prisa, si alguien sabe de que va o necesita algun dato que me lo diga y se lo paso porque agradezco todo tipo de ayuda.



Saludos y gracias.