Proxy分为两种,ABAP Proxy和JAVA Proxy。他们之间的不同不仅在于语言,ABAP Proxy在应用端(R/3等)生成的,JAVAProxy是从IR中生成的.JAR文件。但是它们都是依据message interface中的WSDL产生的。
Proxy具有与message interface相同的属性:Inbound, Outbound, Synchronous, Asynchronous
ABAP Proxy之前,要用 RZ70去建立R/3与PI的连接。这里还可能需要用SM59去定义相应的RFC Destination。用SMGW可以在PI的端找到相应的Service。
Table:SPROXSET,是用来设置SPROXY权限的,可以查找在这张表里查找自己是不是有权限。
T-CODE:SPROXY就是在Application端生成PROXY的主要工具,在这之前,你需要在PI端设置好相应的Message Interface,SAP端才能根据Message Interface的WSDL生成ABAP Proxy。
JAVAProxy相对简单,只要在Message Interface中右击相应的Message Interface,会有Java Proxy Generation选项,就可以自动生成JAVAProxy,.JAR文件,开发人员可以对其进行部署。
这里我不再对proxy做介绍,只是讲调用过程。
首先创建了功能函数,没必要是rfc。(当然,可以在proxy代理类内直接写功能代码,不推荐)
比如:创建外向交货单的fm: ZFM_IF_OUT_DELIVERY_CREATE_SLS
然后进入proxy创建代理
t-code:sproxy
进入如下初始:
大概的层级如下:
到 点开 service interfaces,
中文是
找到对应的代理(接口那边会告诉你具体名称),未生成的代理和已经生成的,图标是不一样的。
找到需要生成的代理,双击,提示如下界面,然后按要求填上就行了
然后保存,然后激活。会提示如下:
这个时候双击proxy的 class,不是proxy name。
如果双击class提示什么不存在,说明没激活,全部激活就可以了
尽到类里面,双击method就行了。然后里面写代码。
在里面实现功能代码即可
最后保存,激活即可。
如果接口有任何变动,记得激活后重新生成代理
传入参数,都是string类型的
然后需要根据名称,转换为咱们需要的类型,然后再去调用接口函数。
最后把返回结果转为string。再赋给代理
这是同步的,比较简单