从一条消息转换和发送(分成两种不同的格式)

时间:2014-08-19 13:21:04

标签: split biztalk messages

我有一个报告文件。我想将文件读入BizTalk并将模式映射到另一种格式,同时解析出字段的任何错误值。当我解析这些值时,我想将它们记录在第二条消息中,作为错误输出发送。

所以我想:

  • 收到一条消息

  • 发送两条消息

一个发送消息是“已清理”且已验证的副本,而另一个是这些错误值的消息日志。

我希望有人可以帮助我设置如何设置业务流程和/或映射。我不确定如何将原始消息转换两次。 任何帮助表示赞赏。谢谢!

编辑:我正在考虑重命名源文件而不是删除它,然后再次读取它(然后删除),每次接收转换并发送消息,但我觉得还有更好的方法

3 个答案:

答案 0 :(得分:3)

我的第一个建议是不要过度思考。

最简单的解决方案是使用2个发送端口,每个端口都有您需要的两个地图之一。两个发送端口都将使用相同的过滤条件,并且都将收到已接收消息的副本。

答案 1 :(得分:2)

根据您的逻辑,如果您可以为两个o / p消息创建两个映射,则可以在业务流程或发送端口中使用这两个映射。您不需要再次阅读同一文件。

您还可以创建需要创建的两个o / p消息的复合模式,并在一个映射中根据您的逻辑进行两者的转换。然后从第一张地图o / p消息中再输出两张地图,将它们分开。

答案 2 :(得分:2)

如前所述:最简单的方法是使用一个接收端口和两个发送端口。一个用于成功消息的发送端口,一个用于发送错误消息的端口。

BizTalk的发布/订阅架构将能够向两个发送端口发送一条消息,从而产生两个输出文件。

需要考虑的另一点是,如果没有成功或没有错误结果,您是否需要文件。

如果文件中没有错误,使用两个发送端口的直接方案将导致错误文件,但没有任何错误。

为实现这一点,我将在接收端口中有一个映射,它将输入格式映射为预处理格式。

在那里,您可以在标题节点中指明 - 是否找到任何成功或错误的字段。在您的发送端口中提升这些属性并对其进行过滤将解决上述问题,因为没有任何内容可以订阅。