我正在解决传出消息中缺少两个XML元素的问题。
我有以下相对简单的业务流程:
Receive Port -> Orchestration -> Send Port (IBM MQ)
我希望在消息通过业务流程之前检查消息,以查看传入消息是否有问题。为此,我创建了一个额外的发送端口,其中FILE
类型传输(我称之为DefectTroubleshootingSendPort
),PassThruTransmit
用于发送管道。
此端口的URI是:
C:\temp\Defect986\%MessageID%.xml
我将此发送端口的过滤器设置为
BTS.ReceivePortName == "OrderManagement.MembershipActivityExport.ReceivePort"
我将此新端口和原始MQ发送端口添加到发送端口组,并将此组绑定到业务流程的出站逻辑端口。
即使在此之后,我也没有看到临时文件被写入。然而消息传递给MQ。
我这样做是对的,还是有更好的方法来捕获收到的消息?我在这里甚至需要过滤器吗?
答案 0 :(得分:2)
您可以简单地停止编排,但保持其入伍。当收到消息时,业务流程实例将生成但处于Suspended(可恢复)状态,允许您查看其消息。
答案 1 :(得分:1)
允许你做你想做的事:
XmlReceive
,因为默认情况下可能未启用PassThruReceive
管道跟踪。Tracked Message Events
中心页面,查看已跟踪的属性。您可以找到接收端口名称/属性是否已写入消息(重要!)(如果已提升)。如果提升了接收端口属性,请检查过滤器是否正确。我认为你的过滤器是不正确的。