1

我有这个 XML 消息:

<ns0:PurchaseOrder xmlns:ns0="http://Samples.BreFramework.Schemas.Schema1">
  <Header>
    <ReqID>ReqID_0</ReqID>
    <Date>Date_0</Date>
  </Header>
  <Item>
    <Description>Description_0</Description>
    <Quantity>400</Quantity>
    <UnitPrice>20</UnitPrice>
  </Item>
  <Status>Denied</Status>
</ns0:PurchaseOrder>

我正在使用一个名为 PurchaseOrder_Receive 的管道,其中设置了以下阶段:解码阶段属性和默认 XML 反汇编器

我的政策是这样设置的:PurchaseOrderRules - 政策

使用 ReceiveLocation 中的上述管道正确配置了我的所有端口。

我发布的 Xml 消息是用作输入的消息,但是,输出 Xml 消息应包含“已批准”的状态值,但仍为“已拒绝”。

基本上,这里的问题是,我做错了什么导致我的策略无法在管道上使用,请记住,我的策略的“如果条件”总是正确的。

4

1 回答 1

1

我联系了 BRE Pipeline Framework 的作者,这是他的回复。

我根本没有看到问题中使用了 InstructionLoaderPolicy。XML 文档类型必须在 InstructionLoaderPolicy 中声明,以便 ExecutionPolicy 可以访问基于 XML 的事实。这在此处记录(在文本“创建 TypedXMLDocument 对象”之后)- https://adventuresinsidethemessagebox.wordpress.com/2014/03/19/using-the-bre-pipeline-framework-to-assess-and-update -xml-message-content-using-xml-vocabularies/。InstructionLoaderPolicy 中指定的消息类型必须与 XML 词汇表中的消息类型相匹配,这一点很重要。

您对他应用 TrackingFolder 参数的建议是正确的。他可能会看到 XML 事实没有被断言,因此规则没有触发。使用 CAT 仪器跟踪也将非常有帮助。

于 2016-01-28T21:45:19.813 回答