BizTalk Server 使你能够将提交到批处理业务流程的 EDI 事务集与传出批处理相关联。 为此,请将提交到批处理业务流程(BTSInterchangeID)的事务集的状态报告条目关联到业务流程的状态报告条目(ActivityID)。 此关联是使用 BusinessMessageJournal BAM 活动中的条目执行的。 收到批处理元素时,批处理业务流程会创建这些条目。
重要
仅当协议启用了 EDI 状态报告和事务集跟踪时,BizTalk Server 才会在 BusinessMessageJournal 活动中输入条目。
以下各节介绍以下内容:
BizTalk Server 如何保存跟踪数据
如何创建自定义管道组件以启用关联
如何将传入的交易集与传出的批次相关联。
如果您知道批处理中包含的事务集的 BTSInterchangeID,那么如何查询 BusinessMessageJournal 活动来获取批处理的 BTSInterchangeID。
先决条件
必须以 BizTalk Server 管理员或 BizTalk Server B2B作员组的成员身份登录。
对活动的更改
批处理业务流程在 BatchingActivity、TransactionSetActivity 和 BusinessMessageJournal BAM 活动中输入条目。 事务集在 BizTalk Server 中移动时,BizTalk Server 将为事务集及其所在的批处理在这些活动表中创建以下记录:
当 EDI 反汇编程序处理传入的 EDI 交换时,它会在 InterchangeStatusActivity 和 TransactionSetActivity 表中创建条目。
注释
有关 BAM 活动的详细信息,请参阅 创建用于跟踪 EDI-AS2 消息的 BAM 活动。
实例化批处理业务流程时,业务流程会在 BatchingActivity 中创建一个条目。 BAM 子系统为 ActivityID 创建值。
批处理业务流程选取事务集后,它会为 TransactionSetActivity 表中的事务集创建一个条目。
编排在 BusinessMessageJournal 活动中创建一个条目。 它将此活动的 MessageTrackingID 字段设置为业务流程在 TransactionSetActivity 表中创建的条目的 ActivityID 字段的值。 它还将 BTSInterchangeID 字段设置为交易集的 BTS.InterchangeID 上下文属性,将 BTSMessageID 字段设置为交易集的 BTS.MessageID 上下文属性。
业务流程在 BusinessMessageJournal 活动中创建第二个条目。 它将 MessageTrackingID 字段设置为业务流程在 TransactionSetActivity 表中创建的记录的 ActivityID 字段。 它将 BTSInterchangeID 字段设置为批处理的 BTS.InterchangeID 上下文属性。 它未设置 BTSMessageID。 它将 ContainerActivityID 设置为 BatchingActivity 中的 ActivityID 的值。
创建自定义管道组件以启动关联
若要设置传入事务集与包含该事务集的传出批处理的关联,需要创建自定义管道组件。 此管道组件应先于 EDI 反汇编程序以及 EDIReceive 管道的 BatchMarker 组件之前。 此管道组件需要在 BusinessMessageJournal 活动中创建一个条目。 在此条目中,BTSInterchangeID 字段应设置为 BTS.InterchangeID 上下文属性,BTSMessageID 字段应设置为 BTS.MessageID 上下文属性。
在批处理中查找交易集的交换 ID
使用如下所述的 BatchingActivity 表和 BusinessMessageJournal 活动中的条目,将收到的互换和包含该互换的事务集的批处理进行关联。
将一个传入事务集与一个包含该事务集的传出批次相关联。
确定 BatchingActivity 表中批处理的 ActivityID 值。
在 BusinessMessageJournal 活动表的 ContainerActivityID 字段中搜索 ActivityID 值。
在 ContainerActivityID 标识的记录中,查找与批处理关联的 MessageTrackingID 字段的值。
使用与 BusinessMessageJournal 活动表中的批处理关联的 MessageTrackingID 字段的值,在 BusinessMessageJournal 活动表中其他记录的 MessageTrackingID 字段中搜索相同的值。 找到的任何记录都与批处理中的事务集相关联,由批处理业务流程记录。
在 BusinessMessageJournal 活动表中与交易集关联的记录中,查找 BTSInterchangeID 字段的值。
使用 BTSInterchangeID 的值,您可以查找事务集的记录,该事务集是在 BusinessMessageJournal 活动表中由自定义管道组件创建的。 还可以在 TransactionSetActivity 表中查找事务集的记录。
查询 BusinessMessageJournal
如果启用了事务集报告,并且你知道收到的交换的 BTSInterchangeID,则可以使用以下 SQL 查询来查找包含提交到批处理业务流程的事务集的批处理的 BTSInterchangeID。 使用此代码,可以创建自定义应用程序来了解批处理中的消息。
重要
仅当协议启用了 EDI 状态报告和事务集跟踪时,BizTalk Server 才会在 BusinessMessageJournal 活动中输入条目。
Select MessageTrackingID
From BusinessMessageJournal
Where BTSInterchangeID = <given InterchangeID of the receive interchange>
Select BTSInterchangeID
From BusinessMessageJournal
Where MessageTrackingID = <MessageTrackingID from the previous query> and BTSInterchangeID = <given InterchangeID>