The issue:
I’m trying to transform and route a message based on its input file name. The file name gives hints about how the data should be processed. Being a noob I’m reasonably sure I’m doing this the hard way…
I created an orchestration. I transform the message from the input schema to the output schema. I’d like to examine the file name and add a little logic to classify the input message. That works just fine.
What I tried:
I added an expression shape after the transformation. I added logic to classify the message and assign that to a property. It won’t allow me to change the property (messages are immutable?)
I added a construct message shape. I can set properties in a new message within this shape but it doesn’t allow “if” statements or conditional assignments in the expression. I need conditional logic to search the file name string and set the property to one of several choices.
Any suggestions?
You can either wrap your logic into a .net helper method and call this from the assignment shape, or you can use the conditional flow control shapes provided by biztalk, such as the decide shape, and have multiple contruct shapes in your branches.
Let me know if you need more detail about either approach via a comment and I will expand the answer to include.
Hope this helps.