(培训体系)ABAPRFCBAPI培训教程

上传人:管****问 文档编号:126946008 上传时间:2020-03-28 格式:DOC 页数:20 大小:1.15MB
返回 下载 相关 举报
(培训体系)ABAPRFCBAPI培训教程_第1页
第1页 / 共20页
(培训体系)ABAPRFCBAPI培训教程_第2页
第2页 / 共20页
(培训体系)ABAPRFCBAPI培训教程_第3页
第3页 / 共20页
(培训体系)ABAPRFCBAPI培训教程_第4页
第4页 / 共20页
(培训体系)ABAPRFCBAPI培训教程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《(培训体系)ABAPRFCBAPI培训教程》由会员分享,可在线阅读,更多相关《(培训体系)ABAPRFCBAPI培训教程(20页珍藏版)》请在金锄头文库上搜索。

1、ABAP_RFC_BAPI培训教程 SAP R/3的接口方式主要有RFC、IDOC、BAPI三种。 RFC分二种:1 正常的本地RFC。2 远程RFC(外部系统调用)。BAPI(SAP自带业务函数-封装好函数)。 RFC,BAPI 都可以理解成一个函数。它有输入、输出,改变,排除 参数,表(既可以输入也输出)。1.1 RFC 参数介绍1.2 创建一个SAP本地RFC。1.3 创建一个远程RFC。2 查找BAPI3 调用RFC,BAPI1.1 RFC 参数介绍SE37 Attributes(属性), Import(输入参数),Export(输出参数),Changing(更改参数),Tables(

2、输入,输出内表),Exceptions(排除参数),Source code(编写代码)。Attributes(属性):Normal Function Module :在SAP内部调用RFCRemote-Enabled Module:远程函数调用,即使用外部系统(.NET,VB,JAVA.)调用SAP RFC。Update Module: 一般使用 Start immed(立刻执行).Import(输入参数): 就是要传入来的条件参数,不能为内表。最常用。Export(输出参数): 就是返回值,也不能为内表。最常用。Changing(更改参数): 返回值,与export差不多,这个很少用。Tab

3、les(输入,输出内表):可以把多个内表的值传进来,同时也可以把多个内表返回。Exceptions(排除参数。):不常用。Source code(编写代码): 就是编写代码了,如果不写代码,那这个RFC就没有用处了。輸入參數,輸出參數,表 可以不全部使用.1.2 创建一个SAP本地RFC。运行SE37 TCODE. 填写一个RFC函数名,名字必须是以“Z”或“Y”开头,建议使用“Z开头.然后点击Create按钮。填写函数组与函数描述。如果现有的函数组没有自己想的保存的函数组,则自己新创建一个。新开一个窗口,运行SE37.填写函数组名字及描述,保存。在弹出要求填写包界面,如果该函数组不需要传到P

4、RD,则保存到本地就行了,连扫LOACL OBJECT,如果要上传,自己从PACKAGE中选择包,与请求传输号。使用SE80創建包.函数组创建成功,再返回到刚才创建RFC函数要求选择函数组的界面选择。属性:选择Normal Function Module 与 Start immed.Import输入参数:如果有输入参数,就填写,没有,可以不填写。Parameter Name:填写参数名字。Typing:填写参考类型,如Type, TYPE REF TO.Associated Type:填写参考的字段,可以手工填写,也可以查找。Default Value:填写默认值。Optional:表示是否是

5、可选。 打勾表示可以不必填写,不打勾表示必填。Pass Value: 打勾表示使用默认值。如果填写了默认值,则此选择要勾上。Short text:该参数的描述,如果是使用系统字段,则自动带出来。在沒有默認值,如果optional沒有打勾,則會提示輸入值.Export 输出参数:如果有输出参数,就填写,没有,可以不填写。Table : 引用结构或表,使用 LIKE, 不能使用TYPE。在这里 ZPO_IN表示是传入的内表,ZPO_out是输出的内表。Associated type :填写参考的结构或表名。Source code:编写代码跟在SE38中是一样的了,定义变量,结构,内表,SQL等。F

6、UNCTIONZ_RFC_TEST1.*-*LocalInterface:*IMPORTING*VALUE(BUKRS_IN)TYPEBUKRSDEFAULT1000*EXPORTING*REFERENCE(BUKRS_OUT)TYPEBUKRS*TABLES*ZPO_INSTRUCTUREZFI001_018_PR*ZPO_OUTSTRUCTUREZFI001_018_PR*-DATA:BEGINOFGI_EKKOOCCURS0,PO采购订单表头EBELNLIKEEKKO-EBELN,PO采购订单号BUKRSLIKEEKKO-BUKRS,公司代码ENDOFGI_EKKO.DATA:BEGIN

7、OFGI_EKPOOCCURS0,采购表ITEM表EBELNLIKEEKKO-EBELN,采购单EBELPLIKEEKPO-EBELP,采购单ITEMMATNRLIKEEKPO-MATNR,物料号MENGELIKEEKPO-MENGE,采购数量ENDOFGI_EKPO.SELECTEBELNBUKRSINTOTABLEGI_EKKOFROMEKKOWHEREBUKRS=BUKRS_IN.公司代码的值从输入参数中来。IFZPO_INISNOTINITIAL.SELECTEBELNEBELPMATNRMENGEINTOTABLEGI_EKPOFROMEKPOFORALLENTRIESINZPO_I

8、N输入参数表WHEREEBELN=ZPO_IN-EBELNANDEBELP=ZPO_IN-EBELP.*记住,使用FORALLENTRIESIN来连接内表,一定要判断该内表不要为空,否则把该表全部记录都读取出来ENDIF.READTABLEGI_EKKOINDEX1.IFSY-SUBRC=0.BUKRS_OUT=GI_EKKO-BUKRS.把采购订单的第一条记录的公司代码输出ENDIF.LOOPATGI_EKPO.MOVE-CORRESPONDINGGI_EKPOTOZPO_OUT.输出内表APPENDZPO_OUT.CLEAR:GI_EKPO,ZPO_OUT.ENDLOOP.ENDFUNCT

9、ION.代码编写完成程,然后激活,本地RFC创建完成。1.3 创建远程函数。 在属性处选择Remote-Enabled Module.在输入、输出参数处还要把PASS VALUE勾选上。如果不勾选,不能激活:表,代码 都是一样的.激活成功之后,还需要释放。2 查找BAPI BAPI是个SAP的封装好的业务函数。 运行BAPI TOCDE查找BAPI。 在里面分模块,根据业务去找相对应的BAPI。 通过Hierarchical 可看R3模块的业务BAPI,不是所有业务都有BAPI。下面找到一个是创建发票的BAPI。双击BAPI进入查看,或者运行SE37进入查看,双击BAPI进入查看, 也是直接进

10、入SE37的界面的。输入参数:TABLE:3 调用RFC,BAPI. 在程序调用RFC,BAPI的地方,点击按钮,查看查找函数。点击确认按钮,会自动带出所有参数出来。如果输入参数,输出参数据都需要,则把它们去掉注解。并给参数,内表绑定值。得到的返回内表或输出参数再进行数据处理。BAPI也是这样调用:到这里还没有结束,调用RFC,BAPI都有一个返回信息,使用.SY-SUBRC 判断是否成功。Rfc: Z_RFC_TEST3Code: ZRFC_TESTREPORTZ_RFC_TEST.CALLFUNCTIONZ_RFC_TEST1*EXPORTING*BUKRS_IN=1000*IMPORTING*BUKRS_OUT=TABLESZPO_IN=ZPO_OUT=.ifsy-subrc=0.等于0表示成功endif.CALLFUNCTIONBAPI_BILLINGDOC_CREATEMULTIPLE*EXPORTING*CREATORDATAIN=*TESTRUN=*POSTING=TABLESBILLINGDATAIN=*CONDITIONDATAIN=*CCARDDATAIN=*TEXTDATAIN=*ERRORS=RETURN=SUCCESS=.ifsy-subrc=0.等于0表示成功endif.剩下的就是自己处理返回的参数与内表了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号