这里是创建采购订单BAPI的学习及研究,没有涉及到增强结构。就是常规的信息
文章目录
创建测试的函数模块
创建函数模块
创建函数组
创建需要的结构
设置传入参数
还有一个导出参数:
运行结果
非常注意
代码解析
定义需要的变量
抬头赋值
"-->>采购订单抬头
LS_POHEADER-COMP_CODE = I_HEAD-BUKRS. "公司代码
LS_POHEADER-VENDOR = I_HEAD-LIFNR. "供应商帐户号
LS_POHEADER-PURCH_ORG = I_HEAD-EKORG. "采购组织
LS_POHEADER-PUR_GROUP = I_HEAD-EKGRP. "采购组
LS_POHEADER-DOC_TYPE = I_HEAD-BSART. "采购凭证类型
LS_POHEADER-DOC_DATE = I_HEAD-AEDAT.
LS_POHEADER-CURRENCY = I_HEAD-WAERS. "货币码
LS_POHEADER-CREATED_BY = SY-UNAME. "创建对象的人员名称
LS_POHEADER-COLLECT_NO = ''.
LS_POHEADER-ITEM_INTVL = ''.
"-->>采购订单抬头数据(更改参数)
LS_POHEADERX-COMP_CODE = 'X'.
LS_POHEADERX-VENDOR = 'X'.
LS_POHEADERX-PURCH_ORG = 'X'.
LS_POHEADERX-PUR_GROUP = 'X'.
LS_POHEADERX-CREATED_BY = 'X'.
LS_POHEADERX-DOC_DATE = 'X'.
LS_POHEADERX-DOC_TYPE = 'X'.
LS_POHEADERX-CURRENCY = 'X'.
LS_POHEADERX-COLLECT_NO = 'X'.
LS_POHEADERX-ITEM_INTVL = 'X'.
行项目
交货计划行
条件
账户分配
IF LS_ITEM-KNTTP = 'K'.
LS_POACCOUNT-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNT-SERIAL_NO = 1.
LS_POACCOUNT-COSTCENTER = LS_ITEM-KOSTL.
LS_POACCOUNT-GL_ACCOUNT = LS_ITEM-SAKNR.
APPEND LS_POACCOUNT TO LT_POACCOUNT.
LS_POACCOUNTX-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNTX-SERIAL_NO = 1.
LS_POACCOUNTX-COSTCENTER = 'X'.
LS_POACCOUNTX-GL_ACCOUNT = 'X'.
APPEND LS_POACCOUNTX TO LT_POACCOUNTX.
CLEAR: LS_POACCOUNT,LS_POACCOUNTX.
ELSEIF LS_ITEM-KNTTP = 'F'.
LS_POACCOUNT-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNT-SERIAL_NO = 1.
LS_POACCOUNT-ORDERID = LS_ITEM-AUFNR.
LS_POACCOUNT-GL_ACCOUNT = LS_ITEM-SAKNR.
APPEND LS_POACCOUNT TO LT_POACCOUNT.
LS_POACCOUNTX-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNTX-SERIAL_NO = 1.
LS_POACCOUNTX-ORDERID = 'X'.
LS_POACCOUNTX-GL_ACCOUNT = 'X'.
APPEND LS_POACCOUNTX TO LT_POACCOUNTX.
CLEAR: LS_POACCOUNT,LS_POACCOUNTX.
ELSEIF LS_ITEM-KNTTP = 'M'.
LS_POACCOUNT-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNT-SERIAL_NO = 1.
LS_POACCOUNT-SD_DOC = LS_ITEM-VBELN.
LS_POACCOUNT-ITM_NUMBER = LS_ITEM-VBELP.
APPEND LS_POACCOUNT TO LT_POACCOUNT.
LS_POACCOUNTX-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNTX-SERIAL_NO = 1.
LS_POACCOUNTX-SD_DOC = 'X'.
LS_POACCOUNTX-ITM_NUMBER = 'X'.
APPEND LS_POACCOUNTX TO LT_POACCOUNTX.
CLEAR: LS_POACCOUNT,LS_POACCOUNTX.
ELSEIF LS_ITEM-KNTTP = 'A'.
LS_POACCOUNT-PO_ITEM = LS_ITEM-EBELP.
LS_POACCOUNT-SERIAL_NO =