Ver Mensaje Individual
  #3  
Viejo 22/02/09, 06:21:44
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
No recuerdo el flujo de pantallas de la transaccion, ni bien el BI, ni tengo acceso a R/3 pero un par de comentarios a ver...

Me llama la atención que primero indicas el programa con la pantalla "100"
it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0100'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval = ' '.

Luego le insertas los datos y vueltves a llamar otra pantalla sin darle a ningún botón, osea sin pasale ningun OK_KODE:
it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0300'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval =' '.

??
Y luego le pasas dos de seguido:
it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BDC_OKCODE'.
it_bdc-fval = '/00'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BDC_OKCODE'.
it_bdc-fval = '=BU'.

APPEND it_bdc.
CLEAR it_bdc.

Esto debería estar bien si te ha introducido uno... por lo tanto, y por lo que cuentas debe ser un tema de tabla, al cargar los datos... solo carga la cabecera...

Prueba a usar "[]" depues de IT_tabla en el Call function para leer el fichero o para la It_bdc en el call transactio. Osea IT_tabla[] o it_bdc[] - no me suena para nada... pero por probar-

igual, una forma facil de solucionar, aunque relentizaría el programa, podría ser meter el call transaction dentro del Loop.

Me llama la atencíón como has declarado la tabla it_tabla, prueba a declarar:
DATA: BEGIN OF it_tabla OCCURS 0,
bschl LIKE bseg-bschl,
hkont LIKE bseg-hkont,
wrbtr(16) TYPE c,
sgtxt LIKE bseg-sgtxt,
END OF it_tabla.
que igual en vez de tabla, estás trabajando con workarea.

Para ir directo al error, debugualo -boton debuguear antes de ejecutar o "/h" en la línea de comandos- y mira a ver que registros lleva la tabla interna antes del call transactio. Si va vacia, el error está del call transactio para arriba, sino, pon "E" en el modo del call transaction, porque igual no carga los datos, al encontrar errores en estos. Si es este último caso, el Batch imput se parará y te mostrará el paso en el que se para y no carga "/end" en la línea de comandos para terminar el BI.

Espero que algo te sirva y suerte.


Responder Con Cita