BAPI(Business Application Programming Interfaces)业务应用编程接口,它实际上是一种特殊的RFC。
T-CODE:SWO1 建立Business Object type,也可以查看系统中的 Business Object
SWO3 查看和分析系统中的业务对象以及对应的BAPI方法
BAPI BAPI浏览器
BAPI的使用过程
1)查找,分析使用的BAPI
2)获取数据,通过界面录入,本地上传等方式
3)校验相关数据,为BAPI参数赋值
4)调用BAPI
一、BAPI数据定义
*BAPI数据定义
DATA GS_POHEADER TYPE BAPIMEPOHEADER.
DATA GS_POHEADERX TYPE BAPIMEPOHEADERX.
DATA GV_EXP TYPE BAPIMEPOHEADER-PO_NUMBER .
DATA GT_RETURN TYPE TABLE OF BAPIRET2.
DATA GS_RETURN TYPE BAPIRET2.
DATA GT_POITEM TYPE TABLE OF BAPIMEPOITEM .
DATA GS_POITEM TYPE BAPIMEPOITEM.
DATA GT_POITEMX TYPE TABLE OF BAPIMEPOITEMX .
DATA GS_POITEMX TYPE BAPIMEPOITEMX.
*初始化
BAPI参数传值
*初始化
clear: GS_POHEADER ,GS_POHEADERX,
GT_POITEM[], GS_POITEM,
GT_POITEMX[], GS_POITEMX,
GT_RETURN , GS_RETURN , GV_EXP .
*获取数据
*擡头赋值
GS_POHEADER-DOC_TYPE = 'NB'.
GS_POHEADER-COMP_CODE = '2000'.
GS_POHEADER-PURCH_ORG = '2000'.
GS_POHEADER-PUR_GROUP = '001'.
GS_POHEADER-VENDOR = ''.
GS_POHEADERX-DOC_TYPE = 'X'.
GS_POHEADERX-COMP_CODE = 'X'.
GS_POHEADERX-PURCH_ORG = 'X'.
GS_POHEADERX-PUR_GROUP = 'X'.
GS_POHEADERX-VENDOR = 'X'.
*行项目数据赋值,按照采购申请创建采购订单
LOOP AT GT_MIAN.
GS_POITEM-PREQ_NO = GT_MAIN-PREQ_NO.
APPEND GS_POITEM TO GT_POITEM .
GS_POITEMX-PREQ_NO = 'X'.
APPEND GS_POITEMX TO GT_POITEMX .
ENDLOOP.
BAPI 调用
*调用BAPI
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = GS_POHEADER
POHEADERX = GS_POHEADERX
* POADDRVENDOR =
* IMPORTING
EXPPURCHASEORDER = GV_EXP
* EXPHEADER =
* EXPPOEXPIMPHEADER =
* TABLES
RETURN = GT_RETURN "获取返回消息
POITEM = GT_POITEM
POITEMX = GT_POITEMX
* POADDRDELIVERY =
.
*bapi函数的返回值,判断标准
READ TABLE GT_RETURN INTO GS_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0 AND GV_EXP IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
COMMIT WORK AND WAIT .
MESSAGE S001(ZGJX).
* SUCCESS!
ELSE .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
* IMPORTING
* RETURN =
.
ROLLBACK WORK .
LOOP AT GT_RETURN INTO GS_RETURN WHERE TYPE ='E'.
WRITE: GS_RETURN-MESSAGE .
ENDLOOP.
ENDIF.