Property promotion inside pipeline and use inside orchestration

can somebody give me a step by step process of "Property promotion inside pipeline and use inside orchestration" i want that property ("Amount") as a filter.so that I can decide destination folder based on that amount..

Note:I know the same thing we can do without Pipeline component (with distinguish or Promoted property promotion).

But I want this with pipeline component.

So please help me how can I do property promotion inside pipeline.please guide me every step till accessing it.

Thanks in advance

Manoj

September 7th, 2015 9:57am

Hi Manoj,

For property promotion inside pipeline first create Property schema and promoted it in pipeline component.

Please refer below article for step by step process;

Promoting custom context property using Pipeline Component

Accessing Promoted Properties in a Pipeline Component

Easy Promotion of Context Properties

A ContextPropertyPromoter Custom Pipeline Component

Promotion using Custom Pipeline component

Property Promotion inside Orchestration

Related thread;
PropertyPromotion in Custom pipeline component

Free Windows Admin Tool Kit Click here and download it now
September 7th, 2015 10:27am

You can opt for 2 options here:

  • Use any of the Global Property Schema properties and promote it in the Custom pipeline component and you can use the global property in the Orchestration.
  • A better approach is to use you own property Schema and promote the property in pipeline and use it in orchestration. Please follow the below steps for this:

            - Create a Property Schema in your project with property called "Amount"

            - Set  the Property Schema Base to MessageContextPropertyBase

            - Promote the property in the custom pipeline component as:

             
pInMsg.Context.Promote(property.PropertyName, property.NamespaceUri,pInMsg.Context.Read(property.PropertyName, property.NamespaceUri));

              where property.PropertyName = "Amount", property.namespaceUri = Namespace of the property     schema you created, last parameter = the Amount from the input message to the pipeline component

             - You can then use the Property in the Orchestration using PropertySchema.Property.

Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question

Rahul

  • Proposed as answer by Rahul_Madaan 14 hours 17 minutes ago
September 7th, 2015 10:30am

You can opt for 2 options here:

  • Use any of the Global Property Schema properties and promote it in the Custom pipeline component and you can use the global property in the Orchestration.
  • A better approach is to use you own property Schema and promote the property in pipeline and use it in orchestration. Please follow the below steps for this:

            - Create a Property Schema in your project with property called "Amount"

            - Set  the Property Schema Base to MessageContextPropertyBase

            - Promote the property in the custom pipeline component as:

             
pInMsg.Context.Promote(property.PropertyName, property.NamespaceUri,pInMsg.Context.Read(property.PropertyName, property.NamespaceUri));

              where property.PropertyName = "Amount", property.namespaceUri = Namespace of the property     schema you created, last parameter = the Amount from the input message to the pipeline component

             - You can then use the Property in the Orchestration using PropertySchema.Property.

Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question

Rahul

  • Proposed as answer by Rahul_Madaan Monday, September 07, 2015 4:44 PM
Free Windows Admin Tool Kit Click here and download it now
September 7th, 2015 2:28pm

You can opt for 2 options here:

  • Use any of the Global Property Schema properties and promote it in the Custom pipeline component and you can use the global property in the Orchestration.
  • A better approach is to use you own property Schema and promote the property in pipeline and use it in orchestration. Please follow the below steps for this:

            - Create a Property Schema in your project with property called "Amount"

            - Set  the Property Schema Base to MessageContextPropertyBase

            - Promote the property in the custom pipeline component as:

             
pInMsg.Context.Promote(property.PropertyName, property.NamespaceUri,pInMsg.Context.Read(property.PropertyName, property.NamespaceUri));

              where property.PropertyName = "Amount", property.namespaceUri = Namespace of the property     schema you created, last parameter = the Amount from the input message to the pipeline component

             - You can then use the Property in the Orchestration using PropertySchema.Property.

Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question

Rahul

  • Proposed as answer by Rahul_Madaan Monday, September 07, 2015 4:44 PM
September 7th, 2015 2:28pm

You can opt for 2 options here:

  • Use any of the Global Property Schema properties and promote it in the Custom pipeline component and you can use the global property in the Orchestration.
  • A better approach is to use you own property Schema and promote the property in pipeline and use it in orchestration. Please follow the below steps for this:

            - Create a Property Schema in your project with property called "Amount"

            - Set  the Property Schema Base to MessageContextPropertyBase

            - Promote the property in the custom pipeline component as:

             
pInMsg.Context.Promote(property.PropertyName, property.NamespaceUri,pInMsg.Context.Read(property.PropertyName, property.NamespaceUri));

              where property.PropertyName = "Amount", property.namespaceUri = Namespace of the property     schema you created, last parameter = the Amount from the input message to the pipeline component

             - You can then use the Property in the Orchestration using PropertySchema.Property.

Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question

Rahul

  • Proposed as answer by Rahul_Madaan Monday, September 07, 2015 4:44 PM
Free Windows Admin Tool Kit Click here and download it now
September 7th, 2015 2:28pm

Hi Manoj,

By Schema:

- In the schema you can do quick promotion for a non repeating field, it creates a property schema with the field name.
- You can update / access the promoted field value in the orchestration as well.
- This promoted field you can use in sending port for subscriptions.

By Component:

- if you are trying to promote a field using component and you want to use this for subscription purpose means, then below are the steps you need to follow.

1) Create a property schema with one field that you are going to use in sending port, using property schema wizard in your BizTalk project, optionally you can update the proper target namespace and deploy to the admin console.
2) Create a pipeline component that reads your incoming data, access or read the XML field value from the incoming message using XPathwrite that value to the property schema field that you created above, against property field, Property namespace - from property schema.
3) Create receive pipeline and add your component in any of the stages except the disassemble stage, deploy the pipeline,  GAC the component.
4) Create, send and receive ports, configure receive location with your receive pipeline, having custom component, update send port with filter using your custom property schema with value.

5) you will be able to access this in orchestration as well.

Test the flow with proper deployment steps, you should be able to subscribe the message based on your field values promoted to your send ports configured with same value that you promoted.

Code

pInMsg.Context.Promote("Field", "Namespace", Value);

let us know if you face any issues in doing the above steps.

Thanks, SMSVikasK

September 7th, 2015 2:37pm

Create a property schema in the BizTalk project and add a field element "Amount"

In pipeline component use the below line of code to promote the value

InputMsg.Context.Promote("Amount", "PropertyschemaNamespace", Value);

Cheers

Free Windows Admin Tool Kit Click here and download it now
September 7th, 2015 7:32pm

Hi Rahul, Thanks for your reply.

The property node is promoted but the value is beling blank (i can see that in message context proeperties).

and I have few daoubts here.

1-if we are creating proerty schema for promotion then why we are writing custom component for property promotion.can you please explain

2-in pInMsg.Context.Promote  what is 3rd parameter means we are setting value? for that property node

Thanks

Manoj

September 8th, 2015 8:32am

Hi Manoj,

Please find the answers below:

1-if we are creating proerty schema for promotion then why we are writing custom component for property promotion. - Property Schema is used to define the property that you want to promote to be used in BizTalk. Without property schema where you will define the property. And you only highlighted that you want to use custom pipeline for your flow. If in the custom pipeline you are only promoting the property and doing nothing else then no point in using pipeline component.

2-in pInMsg.Context.Promote  what is 3rd parameter means we are setting value? for that property node - 3rd parameter in the value (from imput msg) that you want to promote

Rahul

Free Windows Admin Tool Kit Click here and download it now
September 8th, 2015 9:45am

Thanks rahul,

Why my value is being blank even the property is being promoted ?can you please explain

September 8th, 2015 10:31am

Check how you are passing the value to the Promote method. Possibly you are not sending the value in correct way so it is not getting promoted.

Rahul

Free Windows Admin Tool Kit Click here and download it now
September 8th, 2015 11:08am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics