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.