bapi REQUIREMENTS_MAINTAIN 创建需求计划
前台的事物码:MD61—MD63
根据需求计划号创建需求计划
REPORT cc.
DATA lv_posnr TYPE posnr_vl.
LOOP AT it_data INTO DATA(is_data).
lv_posnr = lv_posnr + 10.
epbptx-posnr = lv_posnr.
epbptx-matnr = is_data-matnr.
epbptx-werks = is_data-dwerk.
epbptx-bedae = 'VSE'. "需求类型
epbptx-versb = 'AB'. "需求计划版本
epbptx-pbdnr = is_data-pbdnr. "需求计划号
APPEND epbptx TO epbpt.
CLEAR epbptx.
epbetx-posnr = lv_posnr.
epbetx-pdatu = gv_date. "如果是按月创建,就得取需求号的第一天
epbetx-plnmg = is_data-plnmg.
epbetx-entli = 3. "日期类型
epbetx-updkz = 'X'.
epbetx-entlu = 'M'.
epbetx-meins = is_data-meins.
APPEND epbetx TO epbet.
CLEAR epbetx.
ENDLOOP.
**函数1
IF epbpt[] IS NOT INITIAL.
CALL FUNCTION 'REQUIREMENTS_MAINTAIN'
EXPORTING
ecm60r = ls_ecm60r "参数文件
TABLES
epbpt = epbpt "必输
epbet = epbet "表行
iproto = iproto "返回
EXCEPTIONS
error = 1
OTHERS = 2.
CLEAR lv_message.
LOOP AT iproto INTO DATA(ls_iproto) WHERE msgty CA 'AEX'.
lv_flog = 'X'.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = ls_iproto-arbgb
msgnr = ls_iproto-msgnr
msgv1 = ls_iproto-msgv1
msgv2 = ls_iproto-msgv2
msgv3 = ls_iproto-msgv3
IMPORTING
message_text_output = l_string.
lv_message = l_string.
CLEAR l_string.
EXIT.
ENDLOOP.
IF lv_flog = ' '.
es_return-ztype = 'S'.
es_return-zdate = sy-datum.
es_return-ztime = sy-uzeit.
es_return-zmessage = '独立需求的创建成功'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
es_return-ztype = 'E'.
es_return-zdate = sy-datum.
es_return-ztime = sy-uzeit.
es_return-zmessage = '独立需求的创建失败:' && lv_message.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
APPEND es_return TO et_return.
CLEAR es_return.
CLEAR lv_message.
ENDIF.
ENDLOOP.