BAPI_PR_CREATE
"bapi BAPI_PR_CREATE
DATA ls_return TYPE bapiret2.
DATA lt_return TYPE TABLE OF bapiret2.
DATA ls_pritem TYPE bapimereqitemimp.
DATA lt_PRITEM TYPE TABLE OF bapimereqitemimp.
DATA ls_PRITEMX TYPE bapimereqitemx.
DATA lt_PRITEMX TYPE TABLE OF bapimereqitemx.
DATA ls_head TYPE bapimereqheader.
DATA ls_headx TYPE bapimereqheaderx.
DATA ls_text TYPE bapimereqitemtext.
DATA lt_text TYPE TABLE OF bapimereqitemtext.
DATA ls_texth TYPE bapimereqheadtext.
DATA lt_texth TYPE TABLE OF bapimereqheadtext.
DATA ls_PRACCOUNT TYPE bapimereqaccount.
DATA lt_PRACCOUNT TYPE TABLE OF bapimereqaccount.
DATA ls_PRACCOUNTX TYPE bapimereqaccountx.
DATA lt_PRACCOUNTX TYPE TABLE OF bapimereqaccountx.
"PR_CREAT BAPI
CLEAR ls_head.
ls_head-pr_type = lw_head_in-bsart."采购申请凭证类型
ls_headx-pr_type = 'X'."采购申请凭证类型
CLEAR: ls_pritem,ls_pritemx.
ls_pritem-preq_item = lv_bnfpo. "行项目
ls_pritem-acctasscat = lw_head_in-knttp. "科目分配类别
ls_pritem-pur_group = lw_head_in-ekgrp. "采购组
ls_pritem-preq_name = lw_head_in-afnam."申请人姓名
ls_pritem-preq_date = lw_head_in-badat."需求 (请求) 日期
ls_pritem-short_text = lw_head_in-txz01."短文本
ls_pritem-material = lw_head_in-matnr."物料编码
ls_pritem-material_external = lw_head_in-matnr."物料编码
ls_pritem-plant = lw_head_in-werks."工厂
ls_pritem-store_loc = lw_head_in-lgort."存储地点
ls_pritem-matl_group = lw_head_in-matkl."物料组
ls_pritem-pur_group = lw_head_in-ekgrp."采购组
ls_pritem-quantity = lw_head_in-menge."采购申请数量
ls_pritem-unit = lw_head_in-meins."采购申请计量单位
ls_pritem-deliv_date = lw_head_in-lfdat."项目交货日期
ls_pritem-des_vendor = lw_head_in-lifnr."供应商
ls_pritem-currency = lw_head_in-waers."货币
ls_pritem-preq_price = lw_head_in-preis."采购需求中的价格
ls_pritem-price_unit = lw_head_in-peinh."价格单位
ls_pritem-tax_code = lw_head_in-mwskz."税码
ls_pritem-gr_ind = 'X'."收货标识
ls_pritem-ir_ind = 'X'."发票收据标识
IF ls_pritem-acctasscat = 'ZNB1' ."资产类勾选
ls_pritem-gr_non_val = 'X'.
ENDIF.
"is_item-created_by = lw_head_in-ernam."负责创建对象的人员姓名
APPEND ls_pritem TO lt_pritem.
"项目文本
CLEAR ls_text.
ls_text-preq_item = lv_bnfpo.
ls_text-text_id = 'B01'.
ls_text-text_line = lw_head_in-itemtext."短文本
APPEND ls_text TO lt_text.
"抬头文本
CLEAR ls_texth.
ls_texth-preq_item = lv_bnfpo.
ls_texth-text_id = 'B01'.
ls_texth-text_line = lw_head_in-headertext."短文本
APPEND ls_texth TO lt_texth.
"科目分配
CLEAR ls_PRACCOUNT.
ls_PRACCOUNT-preq_item = lv_bnfpo.
ls_PRACCOUNT-gl_account = lw_head_in-sakto. "总帐科目
ls_PRACCOUNT-costcenter = lw_head_in-kostl. "成本中心
ls_PRACCOUNT-asset_no = lw_head_in-anln1. "资产
ls_PRACCOUNT-orderid = lw_head_in-aufnr. "订单
ls_PRACCOUNT-co_area = 'BWUS'. "成本控制范围
APPEND ls_PRACCOUNT TO lt_PRACCOUNT.
CLEAR ls_PRACCOUNTx.
ls_PRACCOUNTx-preq_item = lv_bnfpo.
ls_PRACCOUNTx-gl_account = 'X'. "总帐科目
ls_PRACCOUNTx-costcenter = 'X'. "成本中心
ls_PRACCOUNTx-asset_no = 'X'. "资产
ls_PRACCOUNTx-orderid = 'X'. "订单
ls_PRACCOUNTx-co_area = 'X'. "成本控制范围
APPEND ls_PRACCOUNTx TO lt_PRACCOUNTx.
ls_pritemx-preq_item = lv_bnfpo.
ls_pritemx-acctasscat = 'X'.
ls_pritemx-pur_group = 'X'.
ls_pritemx-preq_name = 'X'.
ls_pritemx-preq_date = 'X'.
ls_pritemx-short_text = 'X'.
ls_pritemx-material = 'X'.
ls_pritemx-material_external = 'X'.
ls_pritemx-plant = 'X'.
ls_pritemx-store_loc = 'X'.
ls_pritemx-matl_group = 'X'.
ls_pritemx-pur_group = 'X'.
ls_pritemx-quantity = 'X'.
ls_pritemx-unit = 'X'.
ls_pritemx-deliv_date = 'X'.
ls_pritemx-des_vendor = 'X'.
ls_pritemx-currency = 'X'.
ls_pritemx-preq_price = 'X'.
ls_pritemx-price_unit = 'X'.
ls_pritemx-tax_code = 'X'.
ls_pritemx-gr_ind = 'X'.
ls_pritemx-ir_ind = 'X'.
ls_pritemx-gr_non_val = 'X'.
ls_pritemx-tax_code = 'X'.
APPEND ls_pritemx TO lt_pritemx.
CALL FUNCTION 'BAPI_PR_CREATE'
EXPORTING
prheader = ls_head
prheaderx = ls_headx
* TESTRUN =
IMPORTING
number = lw_data_out-banfn
prheaderexp = ls_prheaderexp
TABLES
return = lt_return
pritem = lt_pritem
pritemx = lt_pritemx
* PRITEMEXP =
* PRITEMSOURCE =
praccount = lt_praccount
* PRACCOUNTPROITSEGMENT =
praccountx = lt_praccountx
* PRADDRDELIVERY =
pritemtext = lt_text
prheadertext = lt_texth
* EXTENSIONIN =
* EXTENSIONOUT =
* PRVERSION =
* PRVERSIONX =
* ALLVERSIONS =
* prcomponents = lt_PRACCOUNT
* prcomponentsx = lt_PRACCOUNTx
* SERVICEOUTLINE =
* SERVICEOUTLINEX =
* SERVICELINES =
* SERVICELINESX =
* SERVICELIMIT =
* SERVICELIMITX =
* SERVICECONTRACTLIMITS =
* SERVICECONTRACTLIMITSX =
* SERVICEACCOUNT =
* SERVICEACCOUNTX =
* SERVICELONGTEXTS =
* SERIALNUMBER =
* SERIALNUMBERX =
.
BAPI_REQUISITION_CREATE
"修改BAPI
DATA lv_number TYPE bapieban-preq_no.
DATA is_ebano TYPE bapiebanv.
DATA it_ebano TYPE TABLE OF bapiebanv.
DATA is_ebann TYPE bapiebanv.
DATA it_ebann TYPE TABLE OF bapiebanv.
DATA is_ebkno TYPE bapiebknv.
DATA it_ebkno TYPE TABLE OF bapiebknv.
DATA is_ebknn TYPE bapiebknv.
DATA it_ebknn TYPE TABLE OF bapiebknv.
DATA is_ebantxo TYPE bapiebantx.
DATA it_ebantxo TYPE TABLE OF bapiebantx.
DATA is_ebantxn TYPE bapiebantx.
DATA it_ebantxn TYPE TABLE OF bapiebantx.
DATA is_returnc TYPE bapireturn.
DATA it_returnc TYPE TABLE OF bapireturn.
"获取
DATA:it_itemg TYPE TABLE OF bapieban.
DATA:is_itemg TYPE bapieban.
CLEAR is_item.
is_item-preq_item = lv_bnfpo."行项目
is_item-doc_type = lw_head_in-bsart."采购申请凭证类型
is_item-acctasscat = lw_head_in-knttp."科目分配类别
is_item-pur_group = lw_head_in-ekgrp."采购组
is_item-created_by = lw_head_in-ernam."负责创建对象的人员姓名
is_item-preq_name = lw_head_in-afnam."申请人姓名
is_item-preq_date = lw_head_in-badat."需求 (请求) 日期
is_item-short_text = lw_head_in-txz01."短文本
is_item-material = lw_head_in-matnr."物料编码
is_item-plant = lw_head_in-werks."工厂
is_item-store_loc = lw_head_in-lgort."存储地点
is_item-mat_grp = lw_head_in-matkl."物料组
is_item-pur_group = lw_head_in-ekgrp."采购组
is_item-quantity = lw_head_in-menge."采购申请数量
is_item-unit = lw_head_in-meins."采购申请计量单位
is_item-deliv_date = lw_head_in-lfdat."项目交货日期
is_item-des_vendor = lw_head_in-lifnr."供应商
is_item-des_vendor = lw_head_in-lifnr."所需供应商
is_item-currency = lw_head_in-waers."货币
is_item-c_amt_bapi = lw_head_in-preis."采购需求中的价格
is_item-price_unit = lw_head_in-peinh."价格单位
"收货标识
is_item-gr_ind = 'X'.
"发票收据标识
is_item-ir_ind = 'X'.
"收货,未评估
IF is_item-doc_type = 'ZNB1' ."资产类勾选
is_item-gr_non_val = 'X'.
ENDIF.
APPEND is_item TO it_item.
CLEAR is_account.
is_account-preq_item = lv_bnfpo.
is_account-g_l_acct = lw_head_in-sakto. "总帐科目
is_account-cost_ctr = lw_head_in-kostl. "成本中心
is_account-asset_no = lw_head_in-anln1. "资产
is_account-order_no = lw_head_in-aufnr. "订单
is_account-co_area = 'BWUS'. "成本控制范围
APPEND is_account TO it_account.
CLEAR is_ebantx.
is_ebantx-preq_item = lv_bnfpo.
is_ebantx-text_id = 'B01'.
is_ebantx-text_line = lw_head_in-Itemtext.
APPEND is_ebantx TO it_ebantx.
CALL FUNCTION 'BAPI_REQUISITION_CREATE'
IMPORTING
number = lw_data_out-banfn
TABLES
requisition_items = it_item
requisition_account_assignment = it_account
requisition_item_text = it_ebantx
return = it_return
extensionin = it_extension.
俩个抖能创建采购申请。
区别在于BAPI_PR_CREATE字段较全
BAPI_REQUISITION_CREATE 会缺少一部分字段,比如税号,表头文本。