Por ejemplo
El metodo process_header te da un parametro llamado IM_HEADER, tu podrias hacer lo siguiente
data: ls_header type MEREQ_HEADER.
ls_header = im_header->get_data( ).
*ahora en ls_header tendrias los datos de cabecera
En el metodo process_item seria lo mismo solo que te da el parametro IM_ITEM en lugar del IM_HEADER
data: ls_item type mereq_item.
ls_item = im_item->get_data( ).
*ahora en ls_item tendrias los datos de la posicion
En el metodo check tienes el objeto cabecera (IM_HEADER), tambien dispones del parametro CH_FAILED que lo puedes utilizar para que el pedido sea invalido
Por ejemplo
data: lt_items type MMPUR_REQUISITION_ITEMS.
data: ls_item like line of lt_items.
data: ls_pr_item type mereq_item.
*Con esto obtengo una tabla con todos los objetos posicion
lt_items = im_header->get_items( ).
loop at lt_items into ls_item.
*Ahora en ls_pr_item tendria los datos de posicion (algo parecido a los *campos de la eban)
ls_pr_item = ls_item->get_data( ).
if ls_pr_item-menge <= 0.
*Con esto introduciria el mensaje de error correspondiente en el colector
mmpur_message sy-msgty sy-msgid sy-msgno sy-msgv1 sy-msgv2
sy-msgv3 sy-msgv4.
ch_failed = mmpur_yes.
endloop.
|