bi a xd01, como recoger nºcliente

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Angela27
    Senior Member
    • ene
    • 121

    #1

    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
    Senior Member
    • may
    • 199

    #2
    Originalmente publicado por Angela27
    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,
    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.

    Comentario

    • Angela27
      Senior Member
      • ene
      • 121

      #3
      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

      Comentario

      • SAPING
        Senior Member
        • may
        • 199

        #4
        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.

        Comentario

        Trabajando...