MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   bi a xd01, como recoger nºcliente (foro/showthread.php?t=63063)

Angela27 13/06/12 10:45:57

bi a xd01, como recoger nºcliente
 
Hola a todos,
Estoy haciendo creación de clientes desde una tabla plana, lo por bi, el código es interno, o sea lo genera sap, como lo puedo recoger al hacer bi, p ara visualizar, número de clientes creados.

Eternamente agradecida :)

Saludos,

SAPING 13/06/12 14:36:47


Guarda los mensajes generados en una tabla interna de mensajes de la siguiente manera:

CALL TRANSACTION 'BP' USING i_bdc_tab MODE 'N' MESSAGES INTO i_msgtab.

Luego, yo lo hice en un form, revisas la tabla y mostras el ultimo generado:

FORM f_bi_errors .
DATA: wa_t100 TYPE t100,
wl_msgtab TYPE bdcmsgcoll.

* REVISA HACIENDO UN DEBUG SI ESE EL EL ID Y NRO DE MENSAJE QUE
* CORRESPONDE AL EXITO DEL BI.
READ TABLE i_msgtab INTO r_msgtab WITH KEY msgid = 'F2'
msgnr = '174'.
* busco el num de cliente generado
IF sy-subrc IS INITIAL.

IF gv_kunnr IS INITIAL.
MOVE r_msgtab-msgv1 TO gv_kunnr.
ENDIF.

ELSE.
* ocurrio algun error durante la creacion del cliente
LOOP AT i_msgtab INTO r_msgtab.
CLEAR: wg_zdmt010, wl_msgtab.
wl_msgtab = r_msgtab.
AT LAST.

SELECT SINGLE *
FROM t100
INTO wa_t100
WHERE sprsl = wl_msgtab-msgspra
AND arbgb = wl_msgtab-msgid
AND msgnr = wl_msgtab-msgnr.
IF sy-subrc = 0.
wg_zdmt010-msgtx = wa_t100-text.
IF wg_zdmt010-msgtx CS '&1'.
REPLACE '&1' WITH wl_msgtab-msgv1 INTO wg_zdmt010-msgtx.
REPLACE '&2' WITH wl_msgtab-msgv2 INTO wg_zdmt010-msgtx.
REPLACE '&3' WITH wl_msgtab-msgv3 INTO wg_zdmt010-msgtx.
REPLACE '&4' WITH wl_msgtab-msgv4 INTO wg_zdmt010-msgtx.
ELSE.
REPLACE '&' WITH wl_msgtab-msgv1 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv2 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv3 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv4 INTO wg_zdmt010-msgtx.
ENDIF.
CONDENSE wg_zdmt010-msgtx.
CONCATENATE '(' cg_soc wg_zdmt003-bukrs ')' wg_zdmt010-msgtx INTO wg_zdmt010-msgtx SEPARATED BY space.
APPEND wg_zdmt010 TO tg_zdmt010.

ENDIF.

ENDAT.

ENDLOOP.

ENDIF."sy-subrc IS INITIAL.

ENDFORM. " F_BI_ERRORS


La tabla de mensajes y la estructura son del siguiente tipo:
DATA BEGIN OF i_msgtab OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA END OF i_msgtab.
DATA: r_msgtab TYPE bdcmsgcoll.


Cualquier cosa avisa!
Slds.

Angela27 13/06/12 20:31:51

Hola, muchísimas gracias, ya lo he realizado en el de clientes y genial, pero tengo que hacer lo mismo con la tx pa30, pero esta no sale ningún mensaje, y el caso es que el numero generado x Sap lo veo, pasa de una dynpro a otra cuando hago bi, pero no se como rescatarlo y poner en una variable, ¿Tu sabriías como¿
Muchas muchas gracias :) :)

SAPING 13/06/12 21:10:15

en modo debug, no te lo completa en la tabla de mensajes??... es raro si no lo hace...
Coloca un break luego del call transaction y mira la tabla de mensajes completa, quiza este entre medio y no lo viste.


Cualquier cosa avisa.
Saludos.


Husos Horarios son GMT. La hora en este momento es 13:41:00.

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