首页 > SAP > ABAP > 关于PI调用ECC时ECC的操作方法
2020
09-14

关于PI调用ECC时ECC的操作方法

在零售企业中,大多时间会采用SAP的接口中间PI(早期叫XI,现在取名PO,不过我还是习惯叫PI).在PI与SAP连接时,一般有三种方式:IDOC,RFC,PROXY。

1.IDOC对标准业务是优选

IDOC使用的应该是最稳定的,对于一些标准业务来说,可能使用IDOC可能是最好的选择,并且IDOC本身有很好的日志及重处理机制,所以在使用时,我们可以完整的使用IDOC的优势,但对于自定义的功能,使用IDOC,就要做太多工作了,相对快速开发来说,可能不会是好选择。

2.RFC不太稳定,感觉不太好

在使用PI连接RFC时,其实使用的是tRFC的方式连接的相当于

当调用数据频率太高时,很容易造成进程堵塞,这可能是TRFC处理进制的原因,我觉得这个相当于是所有调用都在使用同一个线程在处理,好比是都在使用固定的线程,固定的ECC资源在处理pi来的所有数据,所以容易造成堵塞,所以现在我做的接口方式使用少会采用此种方式。

PROXY方式,自定义功能的最好选择。

在PI与SAP连接时,使用最多的应该是PROXY方式,我使用此方式最好的可能是因为我是ABAP,使用此方式时,可以把接口传入传出参数的定义能PI先定,也就是说需要PI与业务顾问先确认好,那我对于我来说可能少了定义参数的时间及烦心的确认,或许是我最喜欢觉此种方式的原因。

3.PROXY的使用方法

1.PI,开发好接口,此为PI的工作

2.在ECC中使用事务码:SPROXY,生成PROXY,此工作可能由ABAP操作,也可能由PI操作,每个项目都可能不同,

3.PORXY使用时,由于proxy进出方式的不同,主要分两大类,传出(ECC主动调用传出数据并(或)同时 接口返回数据),传入ECC(接收外部传入数据,并处理或返回)

4.对于从ECC主动传出数据的PROXY时,我们需要在我们的程序中主动调用此PROXY,大概的调用试如下代码

对于从外部程序传入的PROXY,需要传入的代理类中写入接收数据及处理数据的代码,为了模块化操作,一般在此程序中写入调用函数,然后在函数中在写调用代码,以下是一个很好的代理类处理方法的例子。

我们需要在每个一个接口中都定义一个HEADER-INTERFACE_ID节点来标记这个接口的接口号(通常我们应该在此HEAD中定义接口ID,接口传入方,传出方,传出时间),我们在ECC中增加配置表ZPIT0041,在此表中定义所有接口相关的接口ID对应的接口函数,此是否生效(此标记在以后使用中会很有用的),及接口描述等信息。

在此调用中,我用通过表来决定此接口ID在表中是否存在(可以加上是否在生效状态),判断函数是否存在,并调用,其实在此此判断处理的功能可以做一个统一的判断函数,并在其中做处理.

最后才调用我们真正的处理接口的函数

最后编辑:
作者:yangsen
有需要可在文章留言或者邮件yan252@163.com给我。

留下一个回复

你的email不会被公开。

eight − five =