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.