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 15/01/09, 16:50:25
Jarpi Jarpi is offline
Senior Member
 
Fecha de Ingreso: abr 2007
Localización: Argentina
Mensajes: 453
Problema con BI - Trx. FB01

Buenas tardes para todos,

Los molesto en esta oportunidad porque tengo una duda respecto a un BI que estoy haciendo para contabilizar SA por la trx. FB01. Les cuento como es el tema.

Levanto um archivo y lo vuelco a una tabla interna, que es la que luego utilizo para la carga del BI. Bien, lo que no se resolver es como hacer para que realice tantas imputaciones como filas tiene el archivo.

Cuando ejecuto, me pone bien los datos de cabecera y la primer imputación, pero las demás filas no me las toma.

Les pego el código para ver si me pueden ayudar.

REPORT YPRUEBAMULTICM.

DATA: BEGIN OF tabla,
bschl LIKE bseg-bschl,
hkont LIKE bseg-hkont,
wrbtr(16) TYPE c,
sgtxt LIKE bseg-sgtxt,
END OF tabla.


DATA: it_tabla LIKE TABLE OF tabla WITH HEADER LINE.
DATA: it_bdc LIKE TABLE OF bdcdata WITH HEADER LINE.
DATA: modo VALUE 'A'.

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'c:\Prueba_Batch1.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '*'
TABLES
DATA_TAB = it_tabla.

IF SY-SUBRC = 0.

LOOP AT it_tabla.

it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0100'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval = ' '.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BUDAT'.
it_bdc-fval = '15012009'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BLDAT'.
it_bdc-fval = '15012009'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BLART'.
it_bdc-fval = 'SA'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'RF05A-NEWBS'.
it_bdc-fval = it_tabla-bschl.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'RF05A-NEWKO'.
it_bdc-fval = it_tabla-hkont.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0300'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval =' '.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BSEG-WRBTR'.
it_bdc-fval = it_tabla-wrbtr.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BSEG-SGTXT'.
it_bdc-fval = 'Prueba'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'DKACB-FMORE'.
it_bdc-fval = 'X'.

APPEND it_bdc.
CLEAR it_bdc.

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.

it_bdc-program = 'SAPLSPO1'.
it_bdc-dynpro = '0300'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval = ' '.

APPEND it_bdc.
CLEAR it_bdc.

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

APPEND it_bdc.
CLEAR it_bdc.

ENDLOOP.

CALL TRANSACTION 'FB01' USING it_bdc MODE modo.
CLEAR it_bdc.
REFRESH it_bdc.

ENDIF.

Desde ya muchas gracias,
Saludos.
Responder Con Cita
  #2  
Viejo 21/02/09, 22:23:57
atorrealba atorrealba is offline
Junior Member
 
Fecha de Ingreso: ago 2008
Mensajes: 2
Hola cómo estas? Tengo el mismo problema... lograste solucionarlo???
Responder Con Cita
  #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
  #4  
Viejo 23/02/09, 06:39:52
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
El error es tan sencillo como que está pasando los datos de cabecera en todas las líneas del loop.

Por lo tanto pone los datos de cabecera, lode la primera línea e intenta pasar otra vez a los datos de cabecera. Y por lo tanto el esquema de pantallas no cuadra.

Saludos
Responder Con Cita
  #5  
Viejo 23/02/09, 15:07:32
Avatar de PercyFloresSotelo
PercyFloresSotelo PercyFloresSotelo is offline
Member
 
Fecha de Ingreso: jul 2007
Localización: Lima
Mensajes: 66
Bueno lo que te preguntaria primero es cuantas contabilización se realizan por que yo he hecho varias contabilizaciones con esta transaccionn lo que hago es primero preguntar por el bschl y dependiendo de lo que sea es que le asigno la contabilizacion, tambien de pendiendo del saldo ya que debe de ser cero a ver si me pasas tu correo te paso el codigo que hice para que lño veas
Responder Con Cita
  #6  
Viejo 25/03/10, 01:36:09
guillermoabap guillermoabap is offline
Junior Member
 
Fecha de Ingreso: mar 2010
Localización: México city!
Mensajes: 3
Solución

Hola Jarpi, tu problema se soluciona simplemente añadiendo las líneas:

CALL TRANSACTION 'FB01' USING it_bdc MODE modo.

CLEAR it_bdc[].
Refresh: it_bdc[].


ANTES de cerrar el loop, así el índice de la cabecera aumentara y mandarás todos los datos de tu tabla a la transacción FB01.

LOOP AT it_tabla.

it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0100'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval = ' '.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BUDAT'.
it_bdc-fval = '15012009'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BLDAT'.
it_bdc-fval = '15012009'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BKPF-BLART'.
it_bdc-fval = 'SA'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'RF05A-NEWBS'.
it_bdc-fval = it_tabla-bschl.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'RF05A-NEWKO'.
it_bdc-fval = it_tabla-hkont.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = 'SAPMF05A'.
it_bdc-dynpro = '0300'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval =' '.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BSEG-WRBTR'.
it_bdc-fval = it_tabla-wrbtr.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'BSEG-SGTXT'.
it_bdc-fval = 'Prueba'.

APPEND it_bdc.
CLEAR it_bdc.

it_bdc-program = ' '.
it_bdc-dynpro = ' '.
it_bdc-dynbegin = ' '.
it_bdc-fnam = 'DKACB-FMORE'.
it_bdc-fval = 'X'.

APPEND it_bdc.
CLEAR it_bdc.

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.

it_bdc-program = 'SAPLSPO1'.
it_bdc-dynpro = '0300'.
it_bdc-dynbegin = 'X'.
it_bdc-fnam = ' '.
it_bdc-fval = ' '.

APPEND it_bdc.
CLEAR it_bdc.

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

APPEND it_bdc.
CLEAR it_bdc.

CALL TRANSACTION 'FB01' USING it_bdc MODE modo.

CLEAR it_bdc[].
Refresh: it_bdc[].

ENDLOOP.
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 22:41:27.


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