BAPI_GOODSMVT_CREATE 使用方法 * GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order * 02 - MB31 - Goods Receipts for Prod Order * 03 - MB1A - Goods Issue * 04 - MB1B - Transfer Posting * 05 - MB1C - Enter Other Goods Receipt * 06 - MB11 * * Domain: KZBEW - Movement Indicator * Goods movement w/o reference * B - Goods movement for purchase order * F - Goods movement for production order * L - Goods movement for delivery note * K - Goods movement for kanban requirement (WM - internal only) * O - Subsequent adjustment of "material-provided" consumption * W - Subsequent adjustment of proportion/product unit material
实例1-(Z01MMR0901 批量创建物料凭证 ):
DATA: LS_GOODSMVT_HEADER TYPE BAPI2017_GM_HEAD_01, LS_GOODSMVT_CODE TYPE BAPI2017_GM_CODE, * lv_materialdocument TYPE bapi2017_gm_head_ret-mat_doc, LV_MATDOCUMENTYEAR TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR, LT_GOODSMVT_ITEM TYPE TABLE OF BAPI2017_GM_ITEM_CREATE, LS_GOODSMVT_ITEM TYPE BAPI2017_GM_ITEM_CREATE, LT_RETURN TYPE TABLE OF BAPIRET2, LS_RETURN TYPE BAPIRET2, LS_OUTPUT TYPE TY_UPLOAD. DATA: LV_MATERIALDOCUMENT TYPE MBLNR, LV_MESSAGE TYPE CHAR255. *抬头部分给值: LS_GOODSMVT_HEADER-PSTNG_DATE = SY-DATUM. LS_GOODSMVT_HEADER-DOC_DATE = SY-DATUM. LS_GOODSMVT_HEADER-PR_UNAME = SY-UNAME. LS_GOODSMVT_HEADER-REF_DOC_NO = PS_OUTPUT-XBLNR. "单号 LS_GOODSMVT_HEADER-HEADER_TXT = PS_OUTPUT-BKTXT. "备注 LS_GOODSMVT_CODE = '03'. "MB1A *行项目部分给值(根据移动类型有差异): LOOP AT PT_OUTPUT INTO LS_OUTPUT . LS_GOODSMVT_ITEM-MATERIAL = LS_OUTPUT-MATNR. LS_GOODSMVT_ITEM-PLANT = LS_OUTPUT-WERKS. LS_GOODSMVT_ITEM-STGE_LOC = LS_OUTPUT-LGORT. LS_GOODSMVT_ITEM-MOVE_TYPE = LS_OUTPUT-BWART. LS_GOODSMVT_ITEM-ENTRY_QNT = LS_OUTPUT-ERFMG. CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT' EXPORTING INPUT = LS_OUTPUT-ERFME * LANGUAGE = SY-LANGU IMPORTING OUTPUT = LS_GOODSMVT_ITEM-ENTRY_UOM EXCEPTIONS UNIT_NOT_FOUND = 1 OTHERS = 2. IF SY-SUBRC <> 0. * Implement suitable error handling here ENDIF. * ls_goodsmvt_item-entry_uom = ls_output-erfme. LS_GOODSMVT_ITEM-ORDERID = LS_OUTPUT-AUFNR. "生产订单 IF LS_OUTPUT-BWART = '262' OR LS_OUTPUT-BWART = 'Y62'. "部分冲销 LS_GOODSMVT_ITEM-XSTOB = 'X'. ENDIF. APPEND LS_GOODSMVT_ITEM TO LT_GOODSMVT_ITEM. ENDLOOP. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING GOODSMVT_HEADER = LS_GOODSMVT_HEADER GOODSMVT_CODE = LS_GOODSMVT_CODE IMPORTING MATERIALDOCUMENT = LV_MATERIALDOCUMENT MATDOCUMENTYEAR = LV_MATDOCUMENTYEAR TABLES GOODSMVT_ITEM = LT_GOODSMVT_ITEM[] RETURN = LT_RETURN[]. IF LV_MATERIALDOCUMENT IS INITIAL. * pv_flg = 'X'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. PS_OUTPUT-MSGTYPE = 'E'. PS_OUTPUT-LIGHT = '1'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. LV_MESSAGE = TEXT-001. PS_OUTPUT-MSGTYPE = 'S'. PS_OUTPUT-LIGHT = '3'. ENDIF. LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE = 'E' . CONCATENATE LV_MESSAGE LS_RETURN-MESSAGE LS_RETURN-MESSAGE_V1 LS_RETURN-MESSAGE_V2 LS_RETURN-MESSAGE_V3 LS_RETURN-MESSAGE_V4 INTO LV_MESSAGE. ENDLOOP. PS_OUTPUT-MBLNR = LV_MATERIALDOCUMENT. PS_OUTPUT-MJAHR = LV_MATDOCUMENTYEAR. PS_OUTPUT-MESG = LV_MESSAGE.