我有来自 2 个不同系统(SystemA 和 SystemB)的 2 条相关传入消息,我只想将 SystemA 消息中的几个字段复制到 SystemBmessage。
所以我的 Construct Message 形状如下所示:
消息分配形状里面只有这个代码:
xmlIncomingNoAttachHolder = new System.Xml.XmlDocument();
xmlIncomingNoAttachHolder = msgMultiPartInNoAttachment.BodySegments;
// assigning the SsytemB version (no attachment) first.
// Also, since we are only copying a couple fields, this can serve as the base.
msgComboWithAttach = xmlIncomingNoAttachHolder;
msgComboWithAttach(XMLNORM.TargetCharset) = "UTF-8";
然后,该映射只有左侧的 2 个输入(SystemA 模式和 SystemB 模式)ORU 消息和右侧的输出 ORU 消息,它们也与 SystemB 输入消息共享相同的模式。
我希望我可以只使用上面的消息分配代码来分配输出msgComboWithAttach
消息,然后使用映射器将我们需要的几个字段从 SystemA 消息映射到 SystemB 消息。
但似乎一旦我应用地图,它就会msgComboWithAttach
在执行转换之前清除预加载的消息,然后应用地图。然后,生成的消息仅包含在映射中复制的那些字段,并且不包含在消息分配pre-load中分配的其他段/字段。
这是预期的行为吗,在这种情况下,我必须对地图中的所有部分进行批量复制?或者有没有办法像我想要的那样预加载/复制消息,然后只映射几个字段?