MRP信息汇总BAPI(Z_IF_MRP_TOTAL_LIST)

根据期间(D,W,M)汇总MRP信息行

 

  FUNCTION Z_IF_MRP_TOTAL_LIST.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(I_WERKS) TYPE  BAPI_MRP_MAT_PARAM-PLANT
*"     VALUE(I_MATNR) TYPE  BAPI_MRP_MAT_PARAM-MATERIAL OPTIONAL
*"     VALUE(I_PERIOD_FLAG) TYPE  BAPI_MRP_LIST_PARAM-PERIOD_INDICATOR
*"  TABLES
*"      TB_MRP_ITEM_LINES STRUCTURE  ZST_MRP_ITEM_LINES OPTIONAL
*"      TB_MRP_IND_LINES STRUCTURE  ZST_MRP_IND_LINES OPTIONAL
*"      TB_MRP_TOTAL_LINES STRUCTURE  ZST_MRP_TOTAL_LINES OPTIONAL
*"----------------------------------------------------------------------

  DATAIT_MRP_TOTAL_LINES TYPE TABLE OF BAPI_MRP_TOTAL_LINES  WITH HEADER LINE.


  DATABEGIN OF GT_MRP_ITEM_LINES OCCURS 0.
  DATAMATNR TYPE BAPI_MRP_MAT_PARAM-MATERIAL.
          INCLUDE STRUCTURE  BAPI_MRP_ITEMS.
  DATAEND OF GT_MRP_ITEM_LINES.

  DATA  IT_MRP_ITEM_LINES TYPE TABLE OF BAPI_MRP_ITEMS WITH HEADER LINE.




  DATABEGIN OF GT_MRP_IND_LINES OCCURS 0.
  DATAMATNR TYPE BAPI_MRP_MAT_PARAM-MATERIAL.
          INCLUDE STRUCTURE  BAPI_MRP_IND_LINES.
  DATAEND OF GT_MRP_IND_LINES.

  DATA IT_MRP_IND_LINES TYPE TABLE OF BAPI_MRP_IND_LINES WITH HEADER LINE.

  DATABEGIN OF IT_MARC OCCURS 0,
                 MATNR TYPE BAPI_MRP_MAT_PARAM-MATERIAL.
  DATAEND OF IT_MARC.


FIELD-SYMBOLS type table.
FIELD-SYMBOLS .


 if I_MATNR IS INITIAL.
  SELECT MATNR INTO TABLE IT_MARC FROM MARC WHERE WERKS I_WERKS
  AND DISMM IN ('M0','PD').
 ELSE.
  SELECT MATNR INTO TABLE IT_MARC FROM MARC WHERE WERKS I_WERKS
  AND DISMM IN ('M0','PD')
  AND MATNR I_MATNR.
 ENDIF.

  CHECK NOT IT_MARC[] IS INITIAL.

  LOOP AT IT_MARC.

    REFRESH:
     IT_MRP_TOTAL_LINES[],
     IT_MRP_ITEM_LINES[],
     IT_MRP_IND_LINES[].

    CALL FUNCTION 'BAPI_MATERIAL_MRP_LIST'
      EXPORTING
        MATERIAL               IT_MARC-MATNR
       PLANT                  =  I_WERKS
*   MRP_AREA               =
*   PLAN_SCENARIO          =
*   DISPLAY_FILTER         =
       PERIOD_INDICATOR       I_PERIOD_FLAG
*   VENDOR_NO              =
*   DISPLAY_TO             =
       GET_ITEM_DETAILS       ='X'
       GET_IND_LINES          'X'
       GET_TOTAL_LINES        ='X'
*   MATERIAL_EVG           =
* IMPORTING
*   MRP_LIST               =
*   RETURN                 =
     TABLES
       MRP_ITEMS              IT_MRP_ITEM_LINES
       MRP_IND_LINES          IT_MRP_IND_LINES
       MRP_TOTAL_LINES        IT_MRP_TOTAL_LINES
*   EXTENSIONOUT           =
              .

    IF SY-SUBRC EQ 0.
      LOOP AT IT_MRP_ITEM_LINES.
        MOVE-CORRESPONDING IT_MRP_ITEM_LINES TO TB_MRP_ITEM_LINES.
        TB_MRP_ITEM_LINES-MATNR IT_MARC-MATNR.
        TB_MRP_ITEM_LINES-WERKS I_WERKS.
        APPEND TB_MRP_ITEM_LINES.
      ENDLOOP.

      LOOP AT IT_MRP_IND_LINES.
        MOVE-CORRESPONDING IT_MRP_IND_LINES TO TB_MRP_IND_LINES.
        GT_MRP_IND_LINES-MATNR IT_MARC-MATNR.
        TB_MRP_IND_LINES-WERKS I_WERKS.
        APPEND TB_MRP_IND_LINES.
      ENDLOOP.

      LOOP AT IT_MRP_TOTAL_LINES.
        MOVE-CORRESPONDING IT_MRP_TOTAl_LINES TO TB_MRP_TOTAL_LINES.
        TB_MRP_TOTAL_LINES-MATNR IT_MARC-MATNR.
        TB_MRP_TOTAL_LINES-WERKS I_WERKS.
        APPEND TB_MRP_TOTAL_LINES.
      ENDLOOP.
    ENDIF.


  ENDLOOP.

ENDFUNCTION.

你可能感兴趣的:(MRP信息汇总BAPI(Z_IF_MRP_TOTAL_LIST))