MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   call transaction con batch (foro/showthread.php?t=41026)

budista1 20/01/11 16:47:08

call transaction con batch
 
Hola,

estaba haciendo un call transaction con batch previo que va dentro de una función. Veo que va bien al principio, navega a la pantalla y mete los datos pero no ejecuta el f8.
A ver si alguien me puede decir la linia que falta en esté código:
algo tipo así ,creo:
i_bdc_data-fval = '/EE'.



Os paso el código, GRACIAS DE ANTEMANO!!

*Llenamos la tabla
refresh i_bdc_data.
i_bdc_data-program = 'ZN140061'.
i_bdc_data-dynpro = '1000'.
i_bdc_data-dynbegin = 'X'.
append i_bdc_data. clear i_bdc_data.

i_bdc_data-fnam = 'P_NUDRM'.
*obj = P_NUDRM.
i_bdc_data-fval = p_nudrm.
append i_bdc_data. clear i_bdc_data.

i_bdc_data-fnam = 'P_CODOP'.
*obj = P_CODOP.
i_bdc_data-fval = p_drmcodop.
append i_bdc_data. clear i_bdc_data.

i_bdc_data-fnam = 'P_SBCOD'.
*obj = P_SBCOD.
i_bdc_data-fval = p_drmsbcod.
append i_bdc_data. clear i_bdc_data.

i_bdc_data-fval = '/EE'.
append i_bdc_data. clear i_bdc_data.

opt-dismode = 'E'.

call transaction 'ZNG8' using i_bdc_data
mode 'A'
update 'S'.

Tu amo 20/01/11 17:48:24

¿Es un reporte?
¿Si solo ejecutas la pantalla de seleccion porque mejor no usas la instruccion submit report?

budista1 21/01/11 06:41:05

call transaction
 
En el diseño me ha dicho que lo haga con un call transaction. Está dentro de una función,no un report, solo me queda el pequeño detalle que comenté....

tiggerhippie 21/01/11 07:34:20

Buenas!!

Cómo has generado el código del batch input? Lo has realizado con la sm35?

kiboqac 21/01/11 13:31:50

Te falta el OK_CODE; en el ultimo append te falta esto:

i_bdc_data-fnam = 'BDC_OKCODE'.
i_bdc_data-fval = '/EE'.
append i_bdc_data. clear i_bdc_data.

budista1 25/01/11 07:36:21

gracias pero..
 
Gracias compañero

pero este tema del ok_code que comentas ya lo resolví.
En efecto ahora navega y hace el ok,
pero no se actualizan datos en la base de datos :-(

¿Alguién conoce el motivo?


Saludos abaperos

jarabas 25/01/11 08:45:41

Has probado con un "COMMIT WORK." o con la función BAPI_TRANSACTION_COMMIT despues de la llamada a la transacción?

Apuntar que deberías comprobar los mensajes de vuelta de la transacción, para controlar posibles errores, aunque con esa tabla y todo, algun batch input te la puede jugar y no devolver error cuando si lo hubo.

La instrucción te quedaría así:
DATA: it_messages TYPE STANDARD TABLE OF bdcmsgcoll.

call transaction 'ZNG8' using i_bdc_data
MESSAGES INTO it_messages
mode 'A'
update 'S'.

y para recuperar el texto explicativo de cada mensaje, ya que sino pueden sonar a chino, sería de la siguiente manera:

data: lw_msgid LIKE sy-msgid,
lw_msgno LIKE sy-msgno,
lw_msgv1 LIKE sy-msgv1,
lw_msgv2 LIKE sy-msgv2,
lw_msgv3 LIKE sy-msgv3,
lw_msgv4 LIKE sy-msgv4.

LOOP AT it_messages INTO gw_messages.

MOVE-CORRESPONDING gw_messages TO gw_mensajes.

lw_msgid = gw_mensajes-msgid.
lw_msgno = gw_mensajes-msgnr.
lw_msgv1 = gw_mensajes-msgv1.
lw_msgv2 = gw_mensajes-msgv2.
lw_msgv3 = gw_mensajes-msgv3.
lw_msgv4 = gw_mensajes-msgv4.

CALL FUNCTION '/SAPTRX/GET_MESSAGE_TEXT'
EXPORTING
msgid = lw_msgid
msgno = lw_msgno
msgv1 = lw_msgv1
msgv2 = lw_msgv2
msgv3 = lw_msgv3
msgv4 = lw_msgv4
IMPORTING
messagetext = lw_respon
EXCEPTIONS
no_message_retrieved = 1
OTHERS = 2.

MOVE: lw_respon TO gw_mensajes-msgv1.

APPEND gw_mensajes TO it_mensajes.
ENDLOOP.


Saludos. Espero te sirva

budista1 25/01/11 16:50:47

merci
 
:D Hola compañero,

agradezco mucho tu información.
Hice la gestión de los mensajes de una forma parecida a la tuya.
Aunque de momento solo me puse a mirar los mensajes por debuger.
Ahora entiendo que tengo que procesarlos y meterlos en una tabla de LOG,
verdad?


Saludos abaperos!;)

jarabas 26/01/11 06:41:57

Deberías mostrar los errores, yo por experiencia digo que los batch son un poco "puñeteros", puede que no te devuelva un E y si haya sucedido un error.

Por cierto con lo que te puse ya te actualiza la base de datos?

Saludos.


Husos Horarios son GMT. La hora en este momento es 11:26:33.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web