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.