8.7. 在映射的数据项中添加自定义转换
当源数据项目不满足目标系统要求时,您可能需要修改源数据项目的格式。
例如,为了满足目标系统的要求,所有客户 ID 都用括号括起:
在 Mappings 面板中,选择
customerNum映射来填充详细信息面板。在详情窗格中,点
ABCOrder源框中的
打开下拉菜单。
选择 Add custom transformation 以打开 Add Custom Transformation 页面。
点 Class 字段旁的
打开 Create a New Java Class 向导。
修改以下字段:
-
软件包 Enter-EnterEnter
示例 . -
名称 Enter-EnterEnter
MyCustomMapper. 方法名称 objectClass-将Change
映射到方括号。所有其他字段保留原样。
-
软件包 Enter-EnterEnter
点 Finish。
Add Custom Transformation 页面会自动填充 Class and Method 字段:
单击 OK 以在 Java 编辑器中打开
MyCustomMapper.java文件:编辑
方括号方法,更改最后一行返回 null;这样:return "[" + input + "]";
return "[" + input + "]";Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点击 transformation.xml 选项卡切回到转换编辑器。
详细信息窗格显示
方括号方法已与customerNum数据项目相关联。方括号方法在源输入上执行,然后再发送到目标系统。在
TransformationTest.java文件上运行 JUnit 测试。详情请查看 第 8.4 节 “创建转换测试文件并运行 JUnit 测试”。Console 视图显示 JSON 格式的输出数据:
{"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web", "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25}, {"itemId":"BANANA","amount":400,"cost":1.25}]}{"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web", "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25}, {"itemId":"BANANA","amount":400,"cost":1.25}]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow