问题标签 [biztalk-mapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2506 浏览

biztalk - Biztalk 循环仿函数行为

早上好,

我正在尝试学习 BizTalk,但它正在做一些我不明白的事情。

我正在为员工地址输出 XML。循环 functoid 创建两个“通信”元素。我希望将“CountrySubDivisionCode”视为它们两个中的子元素,但它们只出现一次:

输入是一个平面模式。

带有电话号码的通信元素有一个循环功能。它的输出是输出模式中的通信元素。

还有另一个带有州和县输入的循环 functoid,它的输出是输出模式中的 CountrySubDivisionCode 元素。

映射如何决定什么是输出,什么不是?它不是因为它们是重复的而输出第二组吗?我发现的所有教程似乎都是相同源材料的复制和粘贴版本,而且非常简单。

谢谢

0 投票
3 回答
3743 浏览

biztalk - 无法抑制 BizTalk 映射中的节点

整个下午,我正在学习 BizTalk 并被困在这个问题上。

有一个带有电话或地址的选择组。我可以在输出电话时得到一些地址字段被抑制。为了简单起见,我将只讨论“CityName”字段。

我尝试了以下方法:

  • 将输入文件中的“City”(文本)节点映射到输出中的“CityName”。将Exists逻辑 functoid连接到输入节点中的“Address1”节点和输出中的“CityName”。我总是得到一个带有文字的城市名称。

  • 将输入文件中的“City”节点和Exists逻辑 functoid 映射到Value Mapper functoid。将Value Mapper functoid连接到输出中的 CityName。我在地址节点(正确)中得到一个城市名称,在电话节点中得到一个空节点(不正确)。

  • 将输入文件中的“City”节点和 Exists 逻辑 functoid 映射到Value Mapper (Flattening) functoid。将值映射器(扁平化) functoid 连接到输出中的 CityName。我在地址节点(正确)中得到一个城市名称,在电话节点中得到一个空节点(不正确)。

我认为最后两个中的一个应该可以工作,但两者都给出了一个空节点而不是一个抑制节点。空节点没有属性。

CityName 节点由以下模式类型描述:

类型定义中是否存在强制创建空节点的内容?

谢谢

编辑:下面是不正确的输出。第二个和第三个通信节点有一个地址子节点,不应该。

我在电话号码和平面输入模式中的第一个地址行上有一个循环 functoid 。这产生了三个通信节点。我在地址线上使用逻辑存在函数来抑制第一个节点中的电话信息。我在输出模式中直接与 Address 节点绑定的输出上有一个Logical Not functoid。我认为这应该关闭整个地址节点,但事实并非如此。

我尝试将连接到逻辑存在 functoid 的值映射functoid 添加到城市名称和邮政编码元素,这使它们为空,但它们不会消失。啊!

我检查了这些字段都设置为零 MinOccurs 并且我不相信它们被分配了默认值。

0 投票
1 回答
748 浏览

biztalk - 允许分隔文件中的 Biztalk 架构变量列数?

希亚斯。我有一位客户以平面文件的形式向我们发送订单。文件实际上没有任何复杂性,但文件之间存在一些不一致之处。

文件的格式是这样的:

1,2,3[CRLF]
1,2,3[CRLF]

围绕该结构创建模式没有问题,但是他们会不时添加一个新列。

1,2,3, 4 [CRLF]
1,2,3, 4 [CRLF]

不幸的是,他们不会将更改向后级联,因此我们希望同时支持 3 列和 4 列格式。两种格式都可能通过相同的管道,所以我真的没有创建单独的模式/管道的选项。他们总是将新字段添加到行的末尾,因此至少是一致的。

我能想到的唯一一件事就是创建一个精心设计的“找出适用的架构并相应地路由管道组件”,但在我走这条路之前,我想看看是否有人对如何让它工作有一些想法使用单个平面文件架构(我尝试将可选列的 minOccurs 属性设置为 0,但这并不好)。

提前感谢您的任何建议。

0 投票
1 回答
194 浏览

biztalk - 将 BizTalk 2010 映射 (btm) 部署到 BizTalk 2006 R2 服务器?

我知道有人将 2010 地图部署到 2006 服务器不是正常做法,但我别无选择。我的问题是“我可以将 2010 地图部署到 2006 R2 服务器”吗?在我看来,由于它们都是 btm 文件,因此 2010 和 2006 映射器之间的唯一区别在于 UI,而不是生成的地图。但是,我不确定这是否属实,在我可以将它部署到生产服务器之前,我需要确定一下。

0 投票
1 回答
564 浏览

biztalk - BizTalk 映射 - 脚本 Functoid 对象生命周期,何时初始化和销毁

在 BizTalk 映射中,当您调用脚本功能时,对象(您正在调用的类)是否在第一次调用时初始化并在整个转换过程中保存在内存中?还是每次执行新行或每次调用脚本时都被销毁和初始化?

我之所以问,是因为我就通过脚本功能在内存中缓存一个小型查找表的优点进行了辩论。我想在我们第一次查找第一条记录时缓存一个字典,并使用相同的字典而不访问数据库进行后续查找。

这是一种天真的方法吗?字典会因为对象被重新初始化而丢失,还是一直保存在内存中直到转换结束?Microsoft 对此是否有任何指导(我找不到任何指导)?

0 投票
2 回答
969 浏览

xslt - 在目标文档上创建可变数量的节点,而源文档上没有相应的数据

我正在尝试使用 BizTalk Mapper 映射两个文档,我的目标文档应如下所示:

我应该创建的<filler>节点数是可变的(从 0 到 9)。它基本上是计算的结果(基于源文档中提供的一些数据)。

有没有办法<filler>用一些functoids组合来创建这些节点?

我尝试使用 Table Looping functoid(创建了一个只有一列的表,填充字符 '9')但并没有真正起作用,因为它创建的<filler>节点与表中定义的行一样多,这不是我想要的因为行数必须是可变的(同样,基于计算)。我目前所做的是将消息 (XmlDocument) 传递给 C# 方法,然后以编程方式附加<filler>节点。我希望 Mapper 有一种更“BizTalk-y”的方式来做到这一点。

0 投票
1 回答
1177 浏览

biztalk - BizTalk - 将具有父子关系的源映射到平面目标

我见过这个关于父子关系的问题,但它并不完全相同,因为我没有什么可标记的。

我有一个看起来像这样的源平面文件

这是杀手锏,对于 Route、Prod 和 Company 的每个唯一组合,我需要一个记录并填写星期几。例如,前面的示例应该映射到输出中的 3 个单独的行。

现在我的问题是,有没有办法在没有XSLT 的情况下做到这一点?可以通过在一个或多个系列地图中使用 functoid 来完成吗?似乎 table looping functoid 是为这种情况的反面定制的,可以反向完成吗?如果只能使用 XSLT 来完成,我还在摸不着头脑怎么做?

谢谢你的帮助!

0 投票
2 回答
549 浏览

c# - 什么时候在 WF4 中使用 BizTalk Mapper Activity 而不是 BizTalk Engine?

我已经看到 BizTalk 2010 支持 Workflow Foundation 的新映射器活动(从这里在 AppFabric 应用程序的 WF 设计器中轻松使用映射器和 LOB 适配器)。该依赖项似乎与 AppFabric 相关联(因此 - IIS?)。问题是在什么情况下您会使用 BizTalk 引擎外部的映射器活动?在 WF Runtime/AppFabric 中托管映射器提供了在 BizTalk 引擎内部托管所没有的哪些优势?为什么不直接调用 BizTalk 编排 Web 服务?

0 投票
1 回答
2336 浏览

xslt - 如何在 Biztalk 中使用 XSLT 从 XML 中复制某个节点(带有子节点)并指定自定义命名空间?

我需要使用 XSLT 将 XML 中的子节点复制到 Biztalk Map 中新 XML 的某个节点。

考虑以下输入 XML:

我需要的是提取名为“usefulDataList”的节点,所以我需要将它复制到一个新的 XML 中,如下所示:

这应该在 Biztalk Functoid 内完成,因为您会看到来自源和目标的命名空间是不同的。

我是 XSLT 的绝对初学者,我一直在做一些测试,但我的 XSLT 表达式有问题:

我会很感激任何提示,使用 XSLT 或 Biztalk 映射器。如果我可以用 XSLT 表达式解决它,我不喜欢一个一个地链接大量的字段。

问候。

0 投票
1 回答
1907 浏览

biztalk - BizTalk 映射值映射循环 Functoids

我有一个源模式,其中地址可以作为多个“AddressLine”元素或多个“Street”元素或组合给出。我的目标架构只有多个“街道”元素。我在用 functoids 映射它时遇到了麻烦(自定义 XSLT 没有问题,但我宁愿使用这个映射的图形方法)。我已经尝试将两个源元素映射到一个循环functoid,然后将其映射到目标元素,但这只会产生循环通过源“AddressLine”和“Street”元素但不向目标写入任何内容的XSLT!

我在下面粘贴了源模式和目标模式的相关部分:

来源

目的地