Obtener todos los elementos de línea del método Check_item en badi MB_MIGO_BADI

Obtener todos los elementos de línea del método Check_item en badi MB_MIGO_BADI

Home » AMPLIACIONES » Obtener todos los elementos de línea del método Check_item en badi MB_MIGO_BADI

Cuando se usa el metodo Check_Item de la badi MB_MIGO_BADI, no se puede obtener todos los datos de la línea de pedido, como se ve en la siguiente imagen:

badi MB_MIGO_BADI - Parametros

Como se observa, el método CHECK_ITEM solo contiene 2 parámetros: I_LINE_ID y ET_BAPIRET2, pero no se pueden obtener todos los datos de los elementos de línea en el método CHECK_ITEM.

Por lo tanto, debe usar el método LINE_MODIFY, pero antes de eso, debe agregar 2 atributos en la clase de implementación de mejora, para resolver esto realizamos la copia de la clase, quedando de la siguiente manera:

badi MB_MIGO_BADI - Atributos

Se debeen agregar 2 atributos para almacenar elementos de línea de datos en el método LINE_MODIFY, para que pueda leer elementos de línea de datos del método CHECK_ITEM.

A continuación se muestra el código ABAP con el método LINE_MODIFY para almacenar los datos de todos los elementos de línea en GT_GOITEM.


  METHOD if_ex_mb_migo_badi~line_modify.
    IF gt_goitem[] IS NOT INITIAL.
      READ TABLE gt_goitem INTO gs_goitem
                        WITH KEY zeile = cs_goitem-zeile.
      IF sy-subrc NE 0.
        APPEND cs_goitem TO gt_goitem.
      ELSE.
        MODIFY gt_goitem FROM cs_goitem INDEX sy-tabix.
      ENDIF.
    ELSE.
      APPEND gs_goitem TO gt_goitem.
    ENDIF.
  ENDMETHOD.

Código fuente ABAP en el método CHECK_ITEM:

    LOOP AT gt_goitem INTO gs_goitem WHERE take_it IS NOT INITIAL.
     " Escribí acá tu codigo ABAP  <<<<       
    ENDLOOP.

Luego agregar un «CLEAR» a gt_goitem en el método POST_DOCUMENT:

CLEAR : gt_goitem[].

También te puede interesar:

LIBROS de SAP

Cómo crear una vista analítica en SAP HANA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *