问题描述
我对 BizTalk 映射很陌生,我现在的问题是:
假设我需要接收 UBL 文档,将其转换为我的 Biztalk Core 并发送相同的 UBL。当然,我可以在没有核心格式的情况下执行 1:1 UBL->UBL,但是如果我需要发送其他内容 - EDIFACT、OIOXML 或其他任何内容,我可能需要这个核心,所以我相信使用核心是一个很好的做法。所以它看起来像 UBL -> Incoming map -> Core -> Outgoing map -> UBL。
所以问题是:创建核心格式架构的最佳实践是什么?
我的传入文件必须符合所有 OIoUBL 标准,因此我必须使用预定义为 XSD 架构的内容(例如,像这样:http://www.oioubl.info/Classes/en/Order.html)。外发文件也一样。
但另一方面,我知道在我的例子中这个标准包含很多冗余字段。我永远不会使用其中一些字段或参数;其他一些是常量,不需要存储它 - 我们可以在传出地图中定义默认值......等等。
所以我的问题是:构建核心文件的最佳实践是什么?使用满足所有标准的完整 UBL xsd 是否更好,即使它是多余的(在这种情况下,它将简化传入和传出的地图 - 我只能使用 1:1 批量复制),还是更好地 KISS 并简化核心,因为它是可以只使用我真正需要的字段并在需要其他任何内容时一一添加吗?
这个问题与代码无关 - 只是关于最佳实践是什么。
谢谢。我将不胜感激。
解决方法
最佳实践是内部核心或规范架构通常与入站外部架构(目标命名空间除外)匹配,这样您就不会丢失第一次映射中的任何数据,这在您发现确实需要时经常发生将它发送到另一个系统并需要另一个出站映射,您需要的字段可能包含在原始系统中没有的字段。当然,任何规则都有例外,何时不适合这样做是一个判断问题。