MM-BAPI-创建采购申请DEMO

这段代码展示了如何使用SAP ABAP编程创建采购申请。它详细定义了采购申请的抬头和行项目信息,并通过调用BAPI_PR_CREATE函数模块进行创建。尽管遇到增强字段赋值问题,但通过直接修改EBAN表字段的解决方案得以解决。
摘要由CSDN通过智能技术生成

&---------------------------------------------------------------------
*& Report ZBAPI_01
&---------------------------------------------------------------------
*& 创建采购申请
&---------------------------------------------------------------------
REPORT ZBAPI_01.

DATA:IS_PRHEADER TYPE BAPIMEREQHEADER.
DATA:IS_PRHEADERX TYPE BAPIMEREQHEADERX.

DATA:EV_NUMBER TYPE BAPIMEREQHEADER-PREQ_NO.
DATA:ES_PRHEADEREXP TYPE BAPIMEREQHEADER.

DATA:IT_RETURN TYPE TABLE OF BAPIRET2,
LS_RETURN TYPE BAPIRET2.
DATA:IT_PRITEM TYPE TABLE OF BAPIMEREQITEMIMP,
IS_PRITEM TYPE BAPIMEREQITEMIMP.
DATA:IT_PRITEMX TYPE TABLE OF BAPIMEREQITEMX,
IS_PRITEMX TYPE BAPIMEREQITEMX.
DATA:IT_PRITEMTEXT TYPE TABLE OF BAPIMEREQITEMTEXT,
IS_PRITEMTEXT TYPE BAPIMEREQITEMTEXT.
DATA:IT_PRHEADERTEXT TYPE TABLE OF BAPIMEREQHEADTEXT,
IS_PRHEADERTEXT TYPE BAPIMEREQHEADTEXT.

DATA:IS_BAPI_TE_MEREQITEM TYPE BAPI_TE_MEREQITEM.
DATA:IS_BAPI_TE_MEREQITEMX TYPE BAPI_TE_MEREQITEMX.
DATA:IT_EXTENSIONIN TYPE TABLE OF BAPIPAREX,
IS_EXTENSIONIN TYPE BAPIPAREX.

  • 赋值
    IS_PRHEADER-PR_TYPE = ‘NB’.

IS_PRHEADERX-PR_TYPE = ‘X’.

IS_PRITEM-PREQ_ITEM = ‘10’.
IS_PRITEM-MATERIAL = ‘000000000600000732’.
IS_PRITEM-SHORT_TEXT = ‘一个锤子’.
IS_PRITEM-PUR_GROUP = ‘TG1’."采购组
IS_PRITEM-MATL_GROUP = ‘110110’."物料组
IS_PRITEM-PREQ_NAME = SY-UNAME.
IS_PRITEM-PLANT = ‘5010’."工厂
IS_PRITEM-STORE_LOC = ‘6001’."存储地点
IS_PRITEM-QUANTITY = ‘30’."采购申请数量
IS_PRITEM-UNIT = ‘EA’."采购申请数量的单位
APPEND IS_PRITEM TO IT_PRITEM.

IS_PRITEMX-PREQ_ITEM = ‘10’.
IS_PRITEMX-PREQ_ITEMX = ‘X’.
IS_PRITEMX-MATERIAL = ‘X’.
IS_PRITEMX-SHORT_TEXT = ‘X’.
IS_PRITEMX-PUR_GROUP = ‘X’.
IS_PRITEMX-MATL_GROUP = ‘X’.
IS_PRITEMX-PREQ_NAME = SY-UNAME.
IS_PRITEMX-PLANT = ‘X’.
IS_PRITEMX-STORE_LOC = ‘X’.
IS_PRITEMX-QUANTITY = ‘X’.
IS_PRITEMX-UNIT = ‘X’.
APPEND IS_PRITEMX TO IT_PRITEMX.

  • 行项目文本
    IS_PRITEMTEXT-PREQ_ITEM = ‘10’.
    IS_PRITEMTEXT-TEXT_ID = ‘B01’.
    IS_PRITEMTEXT-TEXT_LINE = ‘项目文本’.
    APPEND IS_PRITEMTEXT TO IT_PRITEMTEXT.

  • 抬头文本
    IS_PRHEADERTEXT-TEXT_ID = ‘B01’.
    IS_PRHEADERTEXT-TEXT_LINE = ‘抬头文本’.
    APPEND IS_PRHEADERTEXT TO IT_PRHEADERTEXT.

** 增强字段赋值 有点不太灵,项目上的一个解决办法是是直接修改EBAN表字段,测试没有问题
*IS_BAPI_TE_MEREQITEM-PREQ_ITEM = ‘10’.
*IS_BAPI_TE_MEREQITEM-ZZSJSL = ‘22’.
*
*IS_BAPI_TE_MEREQITEMX-PREQ_ITEM = ‘10’.
*IS_BAPI_TE_MEREQITEMX-ZZSJSL = ‘X’.
*
*CALL METHOD CL_EEWA_CONVERT=>CONVERT_BAPIPAREX_IN

  • EXPORTING
  • PAR_STRUCTNAME = ‘BAPI_TE_MEREQITEM’
  • PAR_DATA = IS_BAPI_TE_MEREQITEM
  • CHANGING
  • PAR_BAPIPAREXTAB = IT_EXTENSIONIN.

*CALL METHOD CL_EEWA_CONVERT=>CONVERT_BAPIPAREX_IN

  • EXPORTING
  • PAR_STRUCTNAME = ‘BAPI_TE_MEREQITEMX’
  • PAR_DATA = IS_BAPI_TE_MEREQITEMX
  • CHANGING
  • PAR_BAPIPAREXTAB = IT_EXTENSIONIN.

CALL FUNCTION ‘BAPI_PR_CREATE’
EXPORTING
PRHEADER = IS_PRHEADER
PRHEADERX = IS_PRHEADERX

  • TESTRUN =
    IMPORTING
    NUMBER = EV_NUMBER
    PRHEADEREXP = ES_PRHEADEREXP
    TABLES
    RETURN = IT_RETURN
    PRITEM = IT_PRITEM
    PRITEMX = IT_PRITEMX
  • PRITEMEXP =
  • PRITEMSOURCE =
  • PRACCOUNT =
  • PRACCOUNTPROITSEGMENT =
  • PRACCOUNTX =
  • PRADDRDELIVERY =
    PRITEMTEXT = IT_PRITEMTEXT
    PRHEADERTEXT = IT_PRHEADERTEXT
    EXTENSIONIN = IT_EXTENSIONIN
  • EXTENSIONOUT =
  • PRVERSION =
  • PRVERSIONX =
  • ALLVERSIONS =
  • PRCOMPONENTS =
  • PRCOMPONENTSX =
  • SERVICEOUTLINE =
  • SERVICEOUTLINEX =
  • SERVICELINES =
  • SERVICELINESX =
  • SERVICELIMIT =
  • SERVICELIMITX =
  • SERVICECONTRACTLIMITS =
  • SERVICECONTRACTLIMITSX =
  • SERVICEACCOUNT =
  • SERVICEACCOUNTX =
  • SERVICELONGTEXTS =
  • SERIALNUMBER =
  • SERIALNUMBERX =
    .

CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’

  • EXPORTING
  • WAIT =
  • IMPORTING
  • RETURN =
    .

BREAK-POINT.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值