MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 20/01/11, 16:47:08
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
Unhappy 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'.
Responder Con Cita
  #2  
Viejo 20/01/11, 17:48:24
Tu amo Tu amo is offline
Member
 
Fecha de Ingreso: oct 2010
Mensajes: 40
¿Es un reporte?
¿Si solo ejecutas la pantalla de seleccion porque mejor no usas la instruccion submit report?
Responder Con Cita
  #3  
Viejo 21/01/11, 06:41:05
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
Unhappy 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é....
Responder Con Cita
  #4  
Viejo 21/01/11, 07:34:20
tiggerhippie tiggerhippie is offline
Junior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 5
Buenas!!

Cómo has generado el código del batch input? Lo has realizado con la sm35?
Responder Con Cita
  #5  
Viejo 21/01/11, 13:31:50
Avatar de kiboqac
kiboqac kiboqac is offline
Member
 
Fecha de Ingreso: mar 2007
Localización: Argentina
Mensajes: 55
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.
Responder Con Cita
  #6  
Viejo 25/01/11, 07:36:21
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
Unhappy 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
Responder Con Cita
  #7  
Viejo 25/01/11, 08:45:41
jarabas jarabas is offline
Senior Member
 
Fecha de Ingreso: ene 2010
Mensajes: 109
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

Úlima edición por jarabas fecha: 25/01/11 a las 09:40:17.
Responder Con Cita
  #8  
Viejo 25/01/11, 16:50:47
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
Talking merci

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!
Responder Con Cita
  #9  
Viejo 26/01/11, 06:41:57
jarabas jarabas is offline
Senior Member
 
Fecha de Ingreso: ene 2010
Mensajes: 109
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 06:34:19.


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