一、需求背景
当前公司有个 PI 中间件,但是因为没有对应的 PI 顾问,且运维管理不方便,后续新增的接口都是通过 Webservice 或者 API 的方式集成,之前已有的接口就继续保留 PI 集成,PI 接口运行基本是稳定的,几乎没有什么变化。
门店主数据为了适配海外业务,需要在门店主数据下发中台新增: LAND1
所属国家/地区字段,这个字段的新增需要三方系统的配合,SAP 端、PI 端和外部系统的接收,目前达成统一,三个系统都命名为 LAND1 字段,因此需要做好三个系统的映射。
于是需要了解一波 PI,现在记录一下过程。本文档总结了涉及到 ABAP 和 PI 如何新增字段的方法,遇到同类需求或者问题可以借鉴。
二、ABAP 端更改
ZSD139 事务码的后台程序是 ZBC122_SD139
,这类代码的生成主要是 ZBC122_CONFIG
程序配置生成的,因此新增 T001W-LAND1 字段可以通过这个程序来新增。
- 新增字段,进入如下配置

添加字段 LAND1:

将该条目传输到请求当中

- 生成程序,点击执行:

点击执行:

将上述改动传输到请求包中,点击执行。如下图:


自此,SAP 端的改动完成。
注意:如果是复杂字段的取值逻辑,通过配置是解决不了,需要额外写代码。
三、PI 中的更改
前提条件,在系统中安装 Java JDK 1.8,高版本的 JAVA 环境可能不支持。
然后在浏览器中输入这个 URL:http://XXX/rep/start/sso/Repository.jsp ,
接着会让你输入账号密码,如图:

输入用户和密码之后,然后会下载一个 repository.jnlp 文件,如下图:

接着点击这个文件,会弹出一个弹框:

选择稍后,就会打开 PI 应用程序,勾选我接受分险,然后点击运行,如图:

直接进入了 ESB 界面,如下图:

如果是初次登录主界面,第一次运行打开有点慢,等几分钟左右就行,第二次打开就快了。打开后如下图:
SAP PI 主页有以下四个 Java 链接 :
-
企业服务存储库(ESR)(Enterprise Service Repository 用于设计和创建要在其中使用的对象整合方案.您可以设计接口对象,映射对象和不同的集成过程)。
-
集成目录(ID)( Integration Directory 用于配置在 Enterprise Service Repository 中创建的对象,并且配置为由 Integration Engine 在运行时执行;配置 ESR 前,需要导入对象服务和通信通道)。
-
系统架构(SL)(System Landscape 管理系统架构和所有可安装和已安装的元素)。
-
配置和监控(CM)(Configuration and Monitoring 监控 SAP 系统中集成引擎,CCMS 集成和过程监控基础架构的功能)。
每个超链接都可以打开对应的应用。这四个都是 Java 应用。ESR 和 ID 是 swing 应用。它们基于 JNLP,需要从浏览器启动,所以第一次会花较多的时间来下载整个库文件。但是从第二次开始,加载时间就会变短了。SL 和 CM 是纯web应用,运行在浏览器上。
PI 主界面点击 ESR 进入对应的 DT、MT、MM 配置界面。
在正式机修改前,需要将对应的包设置为可以编辑:


改好了之后,重启应用程序,重新进。
DTO(Data Types) 新增字段
因为我们是 ECC 传到中台,因此找到对应的 PN_ECC of SAP
对象,找到 SD139 的 Data Types,名字为 DTO_ECC_ZT_SD139
,点击编辑按钮,如下图:

添加同层级 的国家字段 LAND1
,输入描述:国家/地区,如下图:

添加完成之后,点保存,如下图:

注意,要输入字段 0 和 1,如下图:
0 表示非必输

保存完成,激活:


Message Types 和 Service Interfaces
激活后,会自动生成内部 Sheet 类型 Message Types 和 Service Interfaces,MT 是真正传输消息的消息体,在 MT 中引用上面定义好的 DT。MT 和 DT 这里是一一对应的,在 DT新增好后,MT 对应有新增的字段。
这一步不需要用户自己操作

外部定义 ED_ECC_ZT_SD139 需要导入 WSDL
接下来,就是在 SAP 内部和外部字段定义做一个映射关系,操作如下,找到 ED_ECC_ZT_SD139

这一步需要外部用户给出对应的 WSDL 文件,文件格式如下:


同样,保存并激活,成功后可以在 Messages 的 Tab 页中看到对应的 land1 字段:

注意,如果是 SAP 的 WSDL 文件,需要把 Policy 段注释掉,否则导入 PO 会出问题

映射关系 MM_ECC_ZT_SD139 更改
然后找到 PN_PI, 1.0 of sap,同样也需要将这个对象设置可以修改对象。
在 MessageMapping 中定义 Mapping 规则(为 PI 和 RFC 字段建立映射):
然后找到 PI 和中台的字段的映射关系,将这两个字段进行连线:

同样,需要保存并激活:

至此,所有的 PI 端设置已经完成。
四、增加完成后进入 SPROXY 事务码
使用 T-Code: SPROXY 关联上刚刚的的改动。

在更改模式下,您将启用重新生成选项,如下面红色标记。找到这个对应在 PI 的改动,然后点击重新生成:

就会在对应的请求包中生成相应的对象,如下图:

成功激活后的结构中也会有对应的 LAND1 字段:

五、PI 成功如下
下发成功如下图:

双击日志号,可以进入如下界面:

点击消息标识,可以进入监控器,看 PI 的消息内容:

可以看到,已经多了国家字段的传输,功能完成。
参考链接: