IWO1_ORDER_BADI - Badi de IW31,IW32
Badi que se dispara en la tx IW31 e IW32.
MD_PEGGING_NODIALOG - Ordenes que posee una Solped
Devuelve las ordenes que están asociadas a una solped.
Ej:Bloque en el cual por cada solped encontrada para determinado Material-Centro busco las ordenes que están asociadas a esa solped.
DATA: lt_mdpsx TYPE STANDARD TABLE OF mdps,
ls_mdpsx TYPE mdps,
LT_MDRQX TYPE STANDARD TABLE OF mdrq,
ls_mdrqx TYPE mdrq,
l_fixkz TYPE EBAN-fixkz,
l_msg(100),
l_solped TYPE MDPS-DEL12,
l_aufnr TYPE AUFK-AUFNR.* *** Veo todas las solicitudes de pedidos en las que se encuentra el componente
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
matnr = ls_resbd-MATNR
werks = ls_resbd-WERKS
TABLES
MDPSX = lt_MDPSX[]
EXCEPTIONS
MATERIAL_PLANT_NOT_FOUND = 1
PLANT_NOT_FOUND = 2
OTHERS = 3.
IF sy-subrc = 0.
* *** Veo todas las ordenes asociadas con las solpeds.
LOOP AT lt_MDPSX INTO ls_mdpsx WHERE DELKZ = 'BA' AND FIX01 = 'X'.
CLEAR l_solped.
l_solped = ls_mdpsx-DELNR.
CALL FUNCTION 'MD_PEGGING_NODIALOG'
EXPORTING
edelkz = 'BA'
edelnr = l_solped "lt_MDPSX-DELNR
EDELPS = ls_mdpsx-DELPS
ematnr = ls_resbd-MATNR
ewerks = ls_resbd-WERKS
tables
imdrqx = LT_MDRQX[]
EXCEPTIONS
ERROR = 1
NO_REQUIREMENTS_FOUND = 2
ORDER_NOT_FOUND = 3
OTHERS = 4.
MD_STOCK_REQUIREMENTS_LIST_API - Lista de Solped por Componente
Le pasamos Material y Centro y nos devuelve todas las Solped en las que ese componente se encuentra.
DATA: lt_mdpsx TYPE STANDARD TABLE OF mdps,
ls_mdpsx TYPE mdps.
* *** Veo todas las solicitudes de pedidos en las que se encuentra el componente
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
matnr = ls_resbd-MATNR
werks = ls_resbd-WERKS
TABLES
MDPSX = lt_MDPSX[]
EXCEPTIONS
MATERIAL_PLANT_NOT_FOUND = 1
PLANT_NOT_FOUND = 2
OTHERS = 3.
Extraer estructura de pantalla desde una BADI
Con esta forma, peculiar, podemos levantar datos de pantalla. No me puse a investigarlo a fondo porque no tenía tiempo. Según tengo entendido tmb sirve para levantar hasta tablas internas.
En este caso levanto la estructura resbd de la tx IW32.
DATA:l_field(60) TYPE C VALUE '(SAPLCOIH)RESBD',
ls_resbd TYPE resbd.FIELD-SYMBOLS: <fs_resbd> TYPE ANY.
* Fetching the Component Item from the Screen. This is for read-only
* purpose and content should not be changed.
ASSIGN (l_field) to <fs_resbd>.
if sy-subrc eq 0.
ls_resbd = <fs_resbd>.
UNASSIGN <fs_resbd>.
endif.