在使用知行EDI系统的过程中,我们经常会用到XMLMap端口进行数据转化,XMLMap端口可以通过拖拽方式进行字段取值映射,同时也可以写代码添加字段对应的取值及判断条件。有时在完成映射后,发现源文件/目标文件待映射的字段和段落需要添加、删除,或者取值逻辑需要调整,可以按照以下步骤解决:
源文件修改
XMLMap端口的源文件在知行之桥页面是无法手动编辑的,若是发现源文件映射字段需要修改的时候,需根据不同情况判断:
- 当源文件的来源是数据库端口时(源文件显示带有connector://前缀,即表明数据来源是数据库端口):
此时修改源文件需要从业务数据库入手,因为源文件是从数据库中获取到的,需要在业务数据库中添加/删除对应的字段,并将修改同步在数据库端口需要获取的模板中,使其显示在对应的源文件中。
操作步骤如下(以添加字段为例):
在数据库中添加对应的字段或者表结构;
在数据库端口“设置”页面将添加后的字段或者表结构勾选并保存;
刷新页面,即可在XMLMap端口设置页面左侧看到源文件中已存在刚才添加的字段和表结构。
- 当源文件是手动上传至端口时(源文件没有带有connector://前缀):
此时修改源文件需要进入知行之桥后台对应的端口模板处编辑源文件进行字段添加/删除,详细步骤是:进入../XMLMap端口/Resource/Samples文件夹下打开源文件,添加/删除对应的字段或段落并保存,然后刷新知行之桥页面,即可在XMLMap端口看到源文件字段已更新:
目标文件修改
在使用XMLMap端口取值映射过程中,最常见的是目标文件中字段的增删及取值修改,目标文件可以在知行之桥页面编辑,具体操作如下:
1. 目标文件字段变更:
若目标文件需要添加新的字段值,在对应的节点右击—>新增—>子节点即可:
若目标文件字段值名称需要修改,右击该字段—>编辑节点,即可重新命名该字段:
若目标文件字段需要删除,右击该字段—>删除节点,即可在目标文件中删除该字段:
若目标文件需要增加段落,先添加字段作为段落名称,然后在该段落右击新增—>子节点即可添加段落及其子节点:
若目标文件来源是数据库端口时(同样目标文件显示带有connector://前缀,即表明数据来源是数据库端口)。此时表明目标文件需要写入数据库,除了在页面直接编辑,也可以在业务数据库中修改对应的字段,修改完成在数据库端口设置页面选中修改的字段,在XMLMap端口点击右下角的刷新按钮并保存即可:
2. 目标文件的取值循环位置变更:
在使用XMLMap端口时,还有一个常见问题:当我们发现节点的循环位置有误时,需要重新拖拽循环位置。这时候拖拽就会跳出一个警告弹框提示:重新拖拽会导致现有的映射关系丢失。点击确认之后,页面的所有映射就会丢失,显然这个做法是不可取的。
此时我们可以在后台修改XMLMap端口下Map.json文件中的循环逻辑(Map.json文件中包含了端口的所有映射代码逻辑):
例如:需要将Items段的循环逻辑移动到HEADER段,页面是无法操作的。不论是重新拖拽还是删除循环关系,都会导致之前的映射丢失。
建议步骤:进入…/XMLMap端口/resource下,打开Map.json文件,替换foreach段的位置即可,如图:
修改完成后刷新知行之桥页面可以看到循环位置已更新,且原有的映射依然保留。
更多 EDI 信息,请参阅: EDI 是什么?
阅读原文