demo bapi创建采购订单demo
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FUNCTION zbapi_po_create1.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(POHEADER) LIKE BAPIMEPOHEADER STRUCTURE BAPIMEPOHEADER *" VALUE(ZMMS_USER) TYPE ZMMS_USER OPTIONAL
*" EXPORTING
*" VALUE(EXPPURCHASEORDER) LIKE BAPIMEPOHEADER-PO_NUMBER
*" TABLES
*" POITEM STRUCTURE BAPIMEPOITEM
*" RETURN STRUCTURE BAPIRET2 OPTIONAL
*" POACCOUNT STRUCTURE BAPIMEPOACCOUNT OPTIONAL
*" POACCOUNTX STRUCTURE BAPIMEPOACCOUNTX OPTIONAL
*"----------------------------------------------------------------------
DATA:poheaderx LIKE bapimepoheaderx,
poitemx LIKE TABLE OF bapimepoitemx WITH HEADER LINE,
poschedule LIKE TABLE OF bapimeposchedule WITH HEADER LINE, poschedulex LIKE TABLE OF bapimeposchedulx WITH HEADER LIN E.
* DATA:poaccount LIKE TABLE OF bapimepoaccount WITH HEADER LINE,
* poaccountx LIKE TABLE OF bapimepoaccountx WITH HEADER L INE.
*写外挂的用户
* DATA: F_WA_EXTENSIONIN LIKE BAPIPAREX. "BAPI 参数 ExtensionIn/ExtensionOut 的参考结构
* DATA: F_IT_EXTENSIONIN LIKE TABLE OF F_WA_EXTENSIONIN.
DATA:bapi_te_mepoheader TYPE bapi_te_mepoheader,
bapi_te_mepoheaderx TYPE bapi_te_meoutheaderx,
lwk_extensionin TYPE bapiparex,
litab_extensionin LIKE TABLE OF bapiparex WITH HEADER LINE.
REFRESH:litab_extensionin.
CLEAR:bapi_te_mepoheader,bapi_te_mepoheaderx,lwk_extensioni n,litab_extensionin.
bapi_te_mepoheader-userid = zmms_user-userid.
bapi_te_mepoheader-username = zmms_user-username.
lwk_extensionin-STRUCTURE = 'BAPI_TE_MEPOHEADER'.
lwk_extensionin-valuepart1 = bapi_te_mepoheader.
APPEND lwk_extensionin TO litab_extensionin.
bapi_te_mepoheaderx-userid = 'X'.
bapi_te_mepoheaderx-username = 'X'.
lwk_extensionin-STRUCTURE = 'BAPI_TE_MEPOHEADERX'.
lwk_extensionin-valuepart1 = bapi_te_mepoheaderx.
APPEND lwk_extensionin TO litab_extensionin.
* lwk_extensionin-STRUCTURE = 'BAPI_TE_MEPOITEMX'.
** lwk_extensionin-valuepart1 = bapi_te_mepoheaderx.
* APPEND lwk_extensionin TO litab_extensionin.
* 转换供应商
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = poheader-vendor
IMPORTING
OUTPUT = poheader-vendor.
MOVE 'X' TO poheaderx-doc_type. "采购凭证类型
MOVE 'X' TO poheaderx-comp_code.
MOVE 'X' TO poheaderx-creat_date.
MOVE 'X' TO poheaderx-created_by.
MOVE 'X' TO poheaderx-vendor.
MOVE 'X' TO poheaderx-purch_org.
MOVE 'X' TO poheaderx-pur_group.
MOVE 'X' TO poheaderx-ref_1.
LOOP AT poitem.
IF poitem-material IS INITIAL OR poitem-quantity IS INITIAL .
DELETE poitem.
CONTINUE."如果物料号为空或数量为0则不处理,忽略此行
ENDIF.
poitem-po_unit = ''.
poitem-po_item = sy-tabix * 10.
* 采购价格以输入的为准
poitem-po_price = '2' .
poitem-calctype = 'B'.
* 转换物料
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = poitem-material
IMPORTING
OUTPUT = poitem-material.
MODIFY poitem.
poitemx-po_item = poitem-po_item.
MOVE 'X' TO poitemx-material.
* poitemx-SHORT_TEXT = 'X'.
* poitemx-MATL_GROUP = 'X'. "非自营物料组
* poitemx-PO_UNIT = 'X'. "非自营物料组
* poitemx-acctasscat = 'X'.
MOVE 'X' TO poitemx-plant.
MOVE 'X' TO poitemx-quantity.
* MOVE 'X' TO poitemx-price_date.
MOVE 'X' TO poitemx-net_price.
MOVE 'X' TO poitemx-price_unit .