采购申请创建(BAPI_PR_CREATE/BAPI_REQUISITION_CREATE)

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 会缺少一部分字段,比如税号,表头文本。

相关推荐
蜂蜜黄油呀土豆1 小时前
Java虚拟机垃圾回收机制解析
java·jvm·性能优化·gc·垃圾回收
DomDanrtsey1 小时前
oracle查询某数据库用户下哪些表的索引没有被使用到?
数据库·oracle
前方一片光明1 小时前
Linux——麒麟v10国产化系统升级openssh到10.0版本全过程
linux·运维·服务器
东湖山上1 小时前
解决Cursor 远程ssh连不上服务器的问题
运维·服务器·ssh
Trouvaille ~1 小时前
【Linux】Linux线程概念与控制(四):glibc源码剖析与实现原理
linux·运维·服务器·c++·操作系统·glibc·线程控制
像少年啦飞驰点、1 小时前
零基础入门 Spring Boot:从‘Hello World’到可上线的 Web 应用
java·spring boot·web开发·编程入门·后端开发
独处东汉1 小时前
freertos开发空气检测仪之输入子系统按键驱动测试
android·java·数据库
Cult Of1 小时前
一个最小可扩展聊天室系统的设计与实现(Java + Swing + TCP)(2)
java·jvm·tcp/ip
上海运维Q先生1 小时前
[漏洞修复]openssh-9.9p2 漏洞升级修复补丁
linux·运维·服务器
allway21 小时前
统信UOS桌面专业版开启 ROOT权限并设置 SSH 登录
java·数据库·ssh