Note: BAPI_DELIVERYPROCESSING_EXEC 未发布
根据内向采购订单创建内向交货单: FORM CREATE_INBOUND_DELIVIRY. DATA: _RET TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE, _CREATED_ITMES TYPE STANDARD TABLE OF BAPIDELICIOUSCREATEDITEMS WITH HEADER LINE, _REQUEST TYPE STANDARD TABLE OF BAPIDELICIOUSREQUEST WITH HEADER LINE. LOOP AT GT_DO_ITEMS ASSIGNING FIELD-SYMBOL(<lfs_do>). CLEAR: _REQUEST. _REQUEST-ID = sy-tabix. _REQUEST-DOCUMENT_NUMB = <lfs_do>-VGBEL."我这儿参考的单据为内部采购订单 _REQUEST-DOCUMENT_ITEM = <lfs_do>-VGPOS."参考行项目确认控制为0001 _REQUEST-DOCUMENT_TYPE = 'B'. "B: 处理采购订单 See domain : LESHP_DOCUMENT_TYPE _REQUEST-PLANT = <lfs_do>-WERKS. _REQUEST-STGE_LOC = <lfs_do>-LGORT. _REQUEST-QUANTITY_BASE__UOM = <lfs_do>-LFIMG. _REQUEST-DELIVERY_DATE = SY-DATUM. _REQUEST-DELIVERY_TIME = ''. APPEND _REQUEST. ENDLOOP. CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC' TABLES REQUEST = _REQUEST CREATEDITEMS = _CREATED_ITMES RETURN = _RET. PERFORM DEAL_BAPI_RET TABLES _RET CHANGING G_ERR_FLAG. DATA(LV_VBELN) = VALUE #( _CREATED_ITEM[ 1 ] OPTIONAL ). IF G_ERR_FLAG = ABAP_TRUE OR LV_VBELN IS INITIAL. RETURN. ENDIF. MESSAGE S001(00) WITH |内向交货单{ LV_VBELN }创建成功.|. ENDFORM. FORM DEAL_BAPI_RET TABLES RET_ERRMSG USING STEP CHANGING ERR_FLAG. FIELD-SYMBOLS: <FS_RET> TYPE BAPIRET2. DATA: ERRMSG TYPE SMESG. CLEAR ERR_FLAG. REFRESH GT_SMESG. DATA(LV_ZEILE) = LINES( GT_SMESG_ALL[] ). LOOP AT RET_ERRMSG ASSIGNING <FS_RET>. IF ERR_FLAG = ABAP_FALSE AND ( <FS_RET>-TYPE = 'E' OR <FS_RET>-TYPE = 'A' OR <FS_RET>-TYPE = 'X' ). ERR_FLAG = ABAP_TRUE. "失败 ENDIF. CLEAR ERRMSG. ERRMSG-ZEILE = LV_ZEILE + SY-TABIX. ERRMSG-MSGTY = <FS_RET>-TYPE. ERRMSG-ARBGB = <FS_RET>-ID. ERRMSG-TXTNR = <FS_RET>-NUMBER. ERRMSG-MSGV1 = <FS_RET>-MESSAGE_V1. ERRMSG-MSGV2 = <FS_RET>-MESSAGE_V2. ERRMSG-MSGV3 = <FS_RET>-MESSAGE_V3. ERRMSG-MSGV4 = <FS_RET>-MESSAGE_V4. APPEND ERRMSG TO GT_SMESG. ENDLOOP. APPEND LINES OF GT_SMESG TO GT_SMESG_ALL. IF ERR_FLAG = ABAP_TRUE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CALL FUNCTION 'FB_MESSAGES_DISPLAY_POPUP' EXPORTING IT_SMESG = GT_SMESG[] EXCEPTIONS NO_MESSAGES = 1 POPUP_CANCELLED = 2 OTHERS = 3. RETURN. ENDIF. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. ENDFORM.