2016-01-28 2 views
1

J'ai ce message XML:BizTalk Framework Business Rules Pipeline Engine

<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> 

J'utilise un pipeline nommé PurchaseOrder_Receive les étapes suivantes définies: Decode Stage properties and default XML Disassembler

Ma stratégie est définie comme ceci: PurchaseOrderRules - Policy

Tous mes ports sont configurés correctement, en utilisant le pipeline ci-dessus dans mon ReceiveLocation. Le message Xml que j'ai posté est celui qui est utilisé en entrée, cependant, le message Xml de sortie doit contenir une valeur Status de "Approved", mais reste "Denied". Fondamentalement, la question ici est, qu'est-ce que je fais de mal qui empêche ma politique d'être utilisé sur le pipeline, gardez à l'esprit que ma politique "Si la condition" est toujours vrai.

+0

Avez-vous testé la politique dans le Rules Composer? –

+0

Oui. Et il semble bien fonctionner là-bas. Il est vraiment stressant à ce point -_- – Andrade

+1

Peut-être que le composant BRE devrait venir après le XmlDisassembler? Il existe une dépendance interne sur le type .Net qui est résolue par le XmlDisassembler. –

Répondre

1

J'ai interrogé l'auteur du BRE Pipeline Framework et voici sa réponse.

Je ne vois aucune instruction InstructionLoaderPolicy utilisée dans la question. Le type de document XML doit être affirmé dans les faits basés sur InstructionLoaderPolicy for XML pour être accessible à ExecutionPolicy. Ceci est documenté ici (en suivant le texte "Pour créer l'objet TypedXMLDocument") - https://adventuresinsidethemessagebox.wordpress.com/2014/03/19/using-the-bre-pipeline-framework-to-assess-and-update-xml-message-content-using-xml-vocabularies/. Il est important que le type de message spécifié dans InstructionLoaderPolicy corresponde au type de message dans le vocabulaire XML.

Votre suggestion pour lui d'appliquer le paramètre TrackingFolder était sur place. Il verrait probablement le fait XML n'a pas été affirmé et donc la règle n'a pas tiré. L'utilisation de l'instrumentation CAT serait également très utile.

+0

Va essayer et laissera des commentaires après l'avoir testé. Merci beaucoup pour l'information, et ce lien jette une lumière sur la façon dont les choses fonctionnent "derrière les rideaux", c'est une bonne lecture. – Andrade

+0

Cela a fait l'affaire! Merci beaucoup pour l'aide. – Andrade