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





进入如下初始:



PROXY(一:同步调用)_python

​​
大概的层级如下:
​​

PROXY(一:同步调用)_python_02

​​

到 点开 service interfaces,



中文是



PROXY(一:同步调用)_java_03





找到对应的代理(接口那边会告诉你具体名称),未生成的代理和已经生成的,图标是不一样的。





PROXY(一:同步调用)_c++_04



找到需要生成的代理,双击,提示如下界面,然后按要求填上就行了

​​

PROXY(一:同步调用)_c++_05

​​
然后保存,然后激活。会提示如下:



这个时候双击proxy的 class,不是proxy name。
​​

PROXY(一:同步调用)_python_06

​​
如果双击class提示什么不存在,说明没激活,全部激活就可以了



尽到类里面,双击method就行了。然后里面写代码。
​​

PROXY(一:同步调用)_java_07

​​

在里面实现功能代码即可
​​

PROXY(一:同步调用)_java_08

​​

最后保存,激活即可。





如果接口有任何变动,记得激活后重新生成代理



PROXY(一:同步调用)_linux_09

​​
或者:
​​

PROXY(一:同步调用)_python_10

​​


这里需要注意的是参数,



传入参数,都是string类型的



然后需要根据名称,转换为咱们需要的类型,然后再去调用接口函数。



最后把返回结果转为string。再赋给代理





这是同步的,比较简单