ZSDR101-跑成品MRP

*&---------------------------------------------------------------------*
*& Report ZSDR101
*&
*&---------------------------------------------------------------------*
*&跑成品MRP
*&
*&---------------------------------------------------------------------*

REPORT zsdr101.

DATA: i_mrp_plan_param LIKE bapi_mrp_plan_param OCCURS 0 WITH HEADER LINE,
i_mrp_statistic LIKE bapi_mrp_statistic OCCURS 0 WITH HEADER LINE,
i_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA:BEGIN OF i_mara OCCURS 0,
matnr LIKE mara-matnr,
werks LIKE marc-werks,
END OF i_mara.

DATA:i_dismm LIKE marc-dismm,
i_mmsta LIKE marc-mmsta.

INITIALIZATION.

START-OF-SELECTION.

PERFORM getdata.

*&---------------------------------------------------------------------*
*& Form getdata
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM getdata.

SELECT * INTO CORRESPONDING FIELDS OF TABLE i_mara
FROM mara AS a JOIN marc AS b
ON a~matnr = b~matnr
WHERE a~mtart ='FERT'
AND a~lvorm = ''
AND b~lvorm = ''
AND ( b~werks = '3110' OR b~werks = '3120' OR b~werks = '3220' OR b~werks = '3130')
AND mstae = ''. "跨工厂物料状态冻结去掉,在物料主档基础数据1视图

REFRESH: i_mrp_plan_param.
i_mrp_plan_param-proc_type = 'NETCH'.
i_mrp_plan_param-create_purreq = '2'.

i_mrp_plan_param-create_sched_lines = '3'.
i_mrp_plan_param-create_mrp_list = '1'.
i_mrp_plan_param-planning_mode = '1'.
APPEND i_mrp_plan_param.

LOOP AT i_mara.

* select single DISMM MMSTA from MARC into (I_DISMM,I_MMSTA)
* where MATNR = I_MARA-MATNR and WERKS = '1000'.

SELECT SINGLE dismm FROM marc INTO (i_dismm)
WHERE matnr = i_mara-matnr AND werks = i_mara-werks.
IF sy-subrc = 4.
CONTINUE.
ELSEIF sy-subrc = 0.
IF i_dismm = 'ND'.
CONTINUE.
ENDIF.
* IF i_MMSTA ne ''. “特定工厂物料状态去掉,在MRP视图
* CONTINUE.
* ENDIF.
ENDIF.

CALL FUNCTION 'BAPI_MATERIAL_PLANNING'
EXPORTING
material = i_mara-matnr
plant = i_mara-werks
* MRP_AREA =
* PLAN_SCENARIO =
mrp_plan_param = i_mrp_plan_param
* MATERIAL_EVG =
IMPORTING
mrp_statistic = i_mrp_statistic
return = i_return.
* TABLES
* MRP_LISTS =
* EXTENSIONOUT =

WRITE AT: /2(18) i_mara-matnr , 22(220) i_return-message.
CLEAR:i_dismm, i_mmsta.
CLEAR:i_mara.
ENDLOOP.

ENDFORM. "getdata

原文地址:https://www.cnblogs.com/rainysblog/p/4829490.html