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:

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:

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[].