ABAP - Recuperar Mensaje de Error o Warnning de una transacción estándar

 
Vista:
sin imagen de perfil
Val: 11
Ha mantenido su posición en ABAP (en relación al último mes)
Gráfica de ABAP

Recuperar Mensaje de Error o Warnning de una transacción estándar

Publicado por Francisco Javier (3 intervenciones) el 27/09/2018 01:17:51
Hola que tal, alguna idea de como poder recuperar el mensaje de un pop up que arroja la transacción MIGO; ya que actualmente la mando a llamar en modo batch-input y es necesario obtener los diferentes mensajes que esta arroja como si estuviera ejecutandose en modo gráfico.

Lo que tengo es lo siguiente :

1
2
3
4
5
6
DATA: gs_opciones TYPE ctu_params,
           messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
           gt_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
 
gs_opciones-dismode = 'E'.
gs_opciones-updmode = 'S'.

****************** En este punto ya esta llena gt_bcdata *******************

1
2
CALL TRANSACTION 'MIGO' USING gt_bdcdata OPTIONS FROM gs_opciones
             MESSAGES INTO messtab.

***************** Aquí no hay problema, si lo hace bien la transacción el código si lo guardo sin problema ********

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
READ TABLE messtab WITH KEY msgtyp = 'S' msgid = 'MIGO' msgnr = '012'.
      IF sy-subrc EQ 0.
*    generó documento
        gv_msg = messtab-msgv1.
        gwa_msg-mensaje = gv_msg.
        APPEND gwa_msg TO gti_msg.
ELSE.
*    no generó documento y no puedo obtener el mensaje por el cual no se pudo generar el documento.
        LOOP AT messtab.
          CALL FUNCTION 'MESSAGE_TEXT_BUILD'
            EXPORTING
              msgid               = messtab-msgid
              msgnr               = messtab-msgnr
              msgv1               = messtab-msgv1
              msgv2               = messtab-msgv2
              msgv3               = messtab-msgv3
              msgv4               = messtab-msgv4
            IMPORTING
              message_text_output = gv_msg.
        ENDLOOP.
        gwa_msg-mensaje = gv_msg.
        APPEND gwa_msg TO gti_msg.


Este es un pop up que arroja la imagen en modo gráfico y ese es el mensaje que quisiera poder atrapar cuando se ejecuta en modo batch.

0

Espero me puedan ayudar.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha mantenido su posición en ABAP (en relación al último mes)
Gráfica de ABAP

Recuperar Mensaje de Error o Warnning de una transacción estándar

Publicado por Francisco Javier (3 intervenciones) el 14/12/2018 00:05:37
Espero a alguien le sirva ......

Después de estar investigando y probando, entendí que esos mensajes solo pueden ser obtenidos mediantes las bapis propias de una transacción, ya que estas regresan los mensajes que son enviados por la interfaz gráfica mediante una tabla de mensajes.

Para solucionar el código que publique hice lo siguiente:

*************************** REEMPLACE TODO ESTO ***************************************
1
2
3
4
5
6
7
8
9
DATA: gs_opciones TYPE ctu_params,
messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
gt_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
 
gs_opciones-dismode = 'E'.
gs_opciones-updmode = 'S'.
 
CALL TRANSACTION 'MIGO' USING gt_bdcdata OPTIONS FROM gs_opciones
MESSAGES INTO messtab.
**************************************************************************************************

CON ESTO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DATA: l_goodsmvt_header LIKE  bapi2017_gm_head_01,
           l_goodsmvt_code LIKE  bapi2017_gm_code,
           l_goodsmvt_headret LIKE  bapi2017_gm_head_ret,
           l_mblnr LIKE mkpf-mblnr,
           l_mjahr LIKE mkpf-mjahr.
 
DATA: i_goodsmvt_item LIKE  bapi2017_gm_item_create OCCURS 10
                                 WITH HEADER LINE,
           i_return LIKE bapiret2 OCCURS 1 WITH HEADER LINE.
 
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          goodsmvt_header  = l_goodsmvt_header
          goodsmvt_code    = l_goodsmvt_code
          testrun          = ' '
        IMPORTING
          goodsmvt_headret = l_goodsmvt_headret
          materialdocument = l_mblnr
          matdocumentyear  = l_mjahr
        TABLES
          goodsmvt_item    = i_goodsmvt_item
          return           = i_return.

Y con eso se soluciona el problema obtenemos todos los mensajes de error en la tabla i_return y si se genero correctamente obtenermos el número de documento en la tabla l_mblnr.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 2
Ha mantenido su posición en ABAP (en relación al último mes)
Gráfica de ABAP

Recuperar Mensaje de Error o Warnning de una transacción estándar

Publicado por Oriente (1 intervención) el 01/05/2020 00:44:54
Lo solucionaste al final?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar