&---------------------------------------------------------------------
*& 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.