具有信封架构的BizTalk业务流程

具有信封架构的BizTalk业务流程,biztalk,biztalk-2010,biztalk-orchestrations,Biztalk,Biztalk 2010,Biztalk Orchestrations,我有一个平面文件模式,在该模式中,我将中缀根的Allow Message Breakup设置为true。我还将记录最大出现次数设置为1。发送消息并将多个消息发送到发送端口。我在接收和发送端口使用了带有平面文件反汇编和发送管道XML传输的接收管道。在这之前,一切都很顺利 接收端口的输入.txt文件 1000 ABC IT 1001 DEF维护 1002 GHI工资单 输出是三个.xml文件,如 <?xml version="1.0" encoding="utf-8" ?> &

我有一个平面文件模式,在该模式中,我将中缀根的Allow Message Breakup设置为true。我还将记录最大出现次数设置为1。发送消息并将多个消息发送到发送端口。我在接收和发送端口使用了带有平面文件反汇编和发送管道XML传输的接收管道。在这之前,一切都很顺利

接收端口的输入.txt文件

1000 ABC IT 1001 DEF维护 1002 GHI工资单

输出是三个.xml文件,如

  <?xml version="1.0" encoding="utf-8" ?> 
  <Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
  <Employee xmlns="">
  <ID>1000</ID> 
  <Name>ABC</Name> 
  <Dept>IT</Dept> 
  </Employee>
  </Record>


 <?xml version="1.0" encoding="utf-8" ?> 
 <Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
 <Employee xmlns="">
 <ID>1001</ID> 
 <Name>DEF</Name> 
 <Dept>Maintenece</Dept> 
 </Employee>
 </Record>

 <?xml version="1.0" encoding="utf-8" ?> 
 <Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
 <Employee xmlns="">
 <ID>1002</ID> 
 <Name>GHI</Name> 
 <Dept>Payroll</Dept> 
 </Employee>
 </Record>
如果我在接收端口发送相同的消息,我在发送端口收到四条消息,如下所示。我不知道是什么错,谁能告诉我是什么错

<?xml version="1.0" encoding="utf-8" ?> 
<Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
<Employee xmlns="">
<ID>1000</ID> 
<Name>ABC</Name> 
<Dept>IT</Dept> 
</Employee>
</Record>

<?xml version="1.0" encoding="utf-8" ?> 
<Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
<Employee xmlns="">
   <ID>1000</ID> 
   <Name>ABC</Name> 
   <Dept>IT</Dept> 
  </Employee>
 </Record>

<?xml version="1.0" encoding="utf-8" ?> 
<Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
<Employee xmlns="">
<ID>1001</ID> 
<Name>DEF</Name> 
<Dept>Maintenece</Dept> 
</Employee>
</Record>

<?xml version="1.0" encoding="utf-8" ?> 
<Record xmlns="http://FlatFilewithEnvelop.FlatFileSchema1">
<Employee xmlns="">
  <ID>1002</ID> 
  <Name>GHI</Name> 
  <Dept>Payroll</Dept> 
  </Employee>
  </Record>

可能发生的情况是,您最初创建了一个发送端口,其中包含订阅消息的筛选器

然后,您创建了一个业务流程,该业务流程还订阅消息并绑定到发送端口

如果在BizTalk Server管理控制台中查找并执行新的查询并搜索Equals订阅,您将看到发送端口的筛选器,如下所示

    Property    Operator    Value   Group by
    http://schemas.microsoft.com/BizTalk/2003/system-properties.SPTransportID   ==  {GUID}  Or
    http://schemas.microsoft.com/BizTalk/2003/system-properties.MessageType ==  MesageType  And
请注意订阅是如何具有OR的,第一部分是端口的GUID,第二部分是添加到端口的筛选器。 绑定到端口的业务流程发布的任何消息都会将SPTransportID设置为端口的GUID

发送端口上的筛选器仍在查找消息,业务流程也在将消息发布到端口,因此是四条消息


解决方案。从端口中删除筛选器。

可能发生的情况是,您最初创建了一个发送端口,其中包含订阅消息的筛选器

然后,您创建了一个业务流程,该业务流程还订阅消息并绑定到发送端口

如果在BizTalk Server管理控制台中查找并执行新的查询并搜索Equals订阅,您将看到发送端口的筛选器,如下所示

    Property    Operator    Value   Group by
    http://schemas.microsoft.com/BizTalk/2003/system-properties.SPTransportID   ==  {GUID}  Or
    http://schemas.microsoft.com/BizTalk/2003/system-properties.MessageType ==  MesageType  And
请注意订阅是如何具有OR的,第一部分是端口的GUID,第二部分是添加到端口的筛选器。 绑定到端口的业务流程发布的任何消息都会将SPTransportID设置为端口的GUID

发送端口上的筛选器仍在查找消息,业务流程也在将消息发布到端口,因此是四条消息


解决方案。从端口删除筛选器。

另一件事是保留您的发送端口订阅,并使用所需值验证提升的字段ID来充实它,并禁用业务流程。因此,您的消息将仅被发送端口截获。

另一件事是保留您的发送端口订阅,并通过使用所需值验证提升的字段ID来丰富它,并禁用业务流程。因此,您的邮件将仅被发送端口截获。

是的,但您还必须为您不想要的邮件订阅,否则这些邮件将无法找到订阅者。是的,但您也必须为您不想要的邮件订阅,否则这些邮件将无法找到订阅者。