Parameterized mapping是利用映射程序拥有多个应用程序的好方法。SAP 首先在 SAP PI 版本 7.1 中引入了这项技术。参数化映射允许您将值传输到映射程序或从映射程序中传输值。与我们在函数中使用导入和导出参数的方式类似,可以使用参数化映射技术将参数添加到 SAP PI/PO 映射程序中。
Parameterized mapping支持Graphical Message Mappings, Java Mappings 以及XSLT Mappings。
演示中使用的 SAP 版本:
- SAP PO 7.5
Parameterized Mapping中的参数类型:
- Import:在执行映射程序之前,可以使用 import 参数将值传递给映射程序。导入参数的值可以从转换步骤或界面确定中分配。
- Export:Export参数允许我们在映射程序由集成管道流程或监控执行后从映射程序中传输值。您只能使用用户定义的函数 (UDF) 为导出参数分配值。
Parameterized Mapping中的参数类别:
- Simple Type: Simple 类型可用作导入或导出参数。Simple Type 的参数数据类型为 xsd:string 和 xsd:integer。
- Adapter:参数类别“Adapter只能用作导入参数。Adapter参数主要在实施映射查找时使用。例如,在 JDBC 查找场景中,您可以设置用于接口确定中的 JDBC 查找功能的 JDBC 通信通道名称。
Parameterized mapping 元素层次结构
Parameterized Mapping的配置步骤:
示例场景:
让我们创建一个包含两个参数的简单文件到文件方案。我们将使用导入参数 “Parameter_1” 为输出数据结构字段 “Att1” 分配一个值。在设计集成目录时,导入参数“Parameter_1”的值将保留在集成配置对象 (ICO) 中。
输出数据结构
第 1 步 – 在 Mapping Program 中创建参数。
进入映射程序的 签名 页签,创建参数。
转到 Message Mapping
在这里,我创建了两个参数,但我们只会使用导入参数 “Parameter_1”。
使用 'Add' 按钮创建导入导出参数
第 2 步 – 将 Import Parameter 映射到 Required Output 字段。
图形映射元素常量可用于将导入参数分配给所需的输出元素。选择 constant mapping element 的属性 ,从下拉菜单中选择参数名称。
从 'Constant' 元素设置下拉列表中选择参数名称。
将导入参数 “Parameter_1” 映射到接收器的 “Att1” 字段
第 3 步 – 在 Operation Mapping 中创建参数。
由于按摩映射是 PI/PO 运行时通过对应的 Operation Mapping 执行的,因此我们需要在 Operation Mapping 中创建参数,并对其进行绑定或映射到消息映射参数。
创建操作映射参数:
在 Operation Mapping definition 选项卡中选择参数
同样,我们将创建两个参数,但在本例中我们只使用 “Import_p1” 导入参数。
创建“Import_p1”简单类型导入参数和“Export_p1”简单类型 xsd:string 导出参数
第 4 步 – 将操作映射参数与消息映射参数绑定。
选择绑定并使用 Message Mapping Parameters 映射 Operation Mapping 参数。
从 Operation Mapping 中选择绑定
将 Message Mapping 参数与 Operation Mapping 参数进行映射。
将消息映射参数与操作映射参数绑定
第 5 步 – 在设计时将 Value 设置为 Import Parameter。
转到 Integration Directory 并分配一个值以在 Integration Configuration Object (ICO) 或 Receiver Termination(在双堆栈中)中导入参数。
在设计时在 Integration Configuration Object (ICO) 中设置参数值
在较新的 PI 或 PO 单堆栈版本中,可以在集成配置对象 (ICO) 的 Receiver Interfaces 选项卡下访问参数。
让我们将常量值 “10” 分配给导入参数 “Import_p1”,该参数映射到消息映射参数 “Parameter_1”。
测试结果:
测试消息。
测试 Integration Scenario
在 ICO for Import 参数“Import_p1”中维护的值“10”被分配给属性“Att1”。
参数化映射输出。分配给输出数据结构元素 Att1 的导入参数“Parameter_1”的值。