首页 > 编程知识 正文

理解REST2PROXYSAP PO 开发九

时间:2023-05-03 20:02:10 阅读:192780 作者:500

登陆PO服务器,启动JAVA客户端三步(SAP PO 开发一)

搭建一个WebService接口环境(SAP PO 开发 二)

用SAP PO连通一个WebService接口(SAP PO 开发 三)

ERP系统RFC协议发送端通过PO连通WebService接口(SAP PO 开发四)

我的第一个SAP PROXY ABAP Program(SAP PO 开发五)

SAP PO (Process Orchestration) 中间件接口管理平台(SAP PO 开发六)

接口开发技术概念与名词术语解释(SAP PO 开发七)

C# 调用SAP PO中间件的WebService接口(SAP PO 开发八)

理解REST2PROXY(SAP PO 开发九)

C#使用REST JSON协议连接SAP PO(SAP PO 开发十)

 

外围系统使用REST协议接入SAP PO,SAP PO同ERP之间使用PROXY(XI)协议。接口实现外围系统发起查询,在ERP系统中查询到数据后,返回给外围系统。

在ESR中新建“1号系统”的数据定义如下图:DT和MT,因为这个接口是同步的,有返回链路,所以DT和MT还有RESP的类型。

在ESR中新建“3号系统”的数据定义如下图:DT和MT,因为这个接口是同步的,有返回链路,所以DT和MT还有RESP的类型。

这样看起来DM有4个、MT有4个需要定义:

还好是可以拷贝的,这样减少了一些工作量。

3号系统的DT定义如下:

3号系统的DT返回消息定义如下:

1号系统的DT、DT返回同上图一样,这里省略了。

下面是3号系统的接口定义SI:

下面是1号系统的接口定义SI:

 

还好MM消息映射只有来和去两处,下图是在CALL方向上的MM定义:

下图是在返回方向上的MM定义:

最后是OM把前面的元素都拉起来,call方向:

return方向:

这样ESR上的配置完成

这个有一个关键的概念理解,inbound和outbound:

1号系统上的SI被定义为outbound,怎么理解?

如果我们的角度从1号系统为主体出发,那么消息是从1号系统发出来的,所以属于outbound类型。

3号系统的SI被定义为inbound,怎么理解?

以3号系统为主体的视角出发,那么消息是从PO系统发过来进入我的系统,所以属于inbound类型。

在后面IB的配置里,对IC的定义还有inbound和outbound的概念,是站在2号系统PO的视角出发,call方向上进入PO的数据为

inbound processing,出PO的数据为outbound processing.

 

下面时IB里面需要配置的元素:

需要2个BS和2个通道CC,最后用一个IC串起来。

通常,我们使用PROXY协议,PO和ERP之间的链接,这端的BS和CC是其它接口共用的,就是外围系统多条通道被PO联通,最后使用一条共用的PROXY通道连接到ERP。

所以我们只需要新建1号系统相关的BS和CC即可,这1号系统的CC,就是使用了REST协议的配置:

第一页签

第二页签:

第三页签:

第四页签:

第五、六页签空白。

 

IC配置:

第一页签

第二页签

第三页签

第四页签

IC配置完毕。

 

当在SI配置完毕时,在ERP系统的SPROXY的响应SI中需要去编写ABAP接口的代码:

因为SI的接口处理代码是在ERP上编写,因此zjdqq觉得SI不是PO上的内容,应该是属于PO外部的对象。所以SI的inbound和outbound分类我们应该站在外部系统的视角来定义。

最后,我们用SOAPUI模拟一下外围系统用REST的JSON报文调用接口,OK,返回也是JSON。

JK0089输入的参数是1层:

JSON报文时这样:{ "UNAME" : "xxx"  } 

 

如果接口的输入参数是2层:

JSON报文时这样:

 {
     DATA:{  "MATNR" : "000000000000000003" } 
 }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。