Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Need advice about an orchestration
- This topic has 1 reply, 1 voice, and was last updated 9 years, 6 months ago by
community-content.
-
AuthorPosts
-
-
October 24, 2006 at 8:31 AM #16179
My company, as well as myself, is new to BizTalk and I needed some advice on how to solve a problem regarding an orchestration that I am building.
Here is the business need:
Pass a message from a web service, through BizTalk, to an inbound file drop port. The message that is dropped off is then consumed by another app. Once it has finished its work, that app puts either a response XML or error XML file in an outbound folder that BizTalk is monitoring. BizTalk then takes this message, if it is the response message, and sends the it to the response port or, if it is an error XML file, transforms the file into a response message and then it goes to the response port.
The issue I am having is regarding the files coming from the outbound file ports. I have tried a couple methods to get this orchestration to work and have had no luck thus far.
1) Have two receive ports looking at the same folder. Port 1 looks for response XML files (they begin with res, so res*.xml). Port 2 looks for error XML files (err*.xml). I then create a parallel action where one path has a receive shape looking at the Response port and the other path has a receive shape looking at the Error port and a transform shape to turn it into a Response message. I wrap the Response and Error paths in separate scopes that have no transaction and are synchronized. Underneath the parallel port shape itself is one send shape that sends a respone to the web service. The issue I am seeing with this solution is that when any message comes back the message does not leave the scope that it is in and the orchestration never gets to the send shape even though the message is valid. I tried to put a send shape inside each scope, but I got an error basically telling me you can't have 2 sends going to the same web service port. I would like to use this method, but I am not sure how to configure it to exit the scope properly and pass the message to the send shape.
2) The other method that I was working on was to have one receive port attached to the outbound folder. The port is of type System.Xml.XmlDocument. I have a single receive shape back in my orchestration that accepts a message of type System.Xml.XmlDocument. I would then use promoted properties, a Decide shape and message assignments to send the appropriate message back to the web service. I had trouble with this method as since the untyped Receive shape I was using was part of a convoy, I needed to follow a correlation ID. My correlation ID in this case was a promoted Message ID attribute in the initial message sent out by the web service. Since the message coming from the outbound folder is untyped, I can't get the Message ID and the orchestration does not build. This method could work as well, but I can't seem to find a non-message specific property to use as my initial correlation ID.
Any advice that I could get on either of these options, or even ideas on other options, would be greatly appreciated.
Thanks,
Cameron
-
October 24, 2006 at 9:21 PM #16194
Have you tried using the Listen Shape and follow the correlation on both of them? Not really sure if you can do that though.
For your 2nd step, was Message ID a custom property you created? If so, make sure your Property Type is “Message Context Base”. Then you can use it on untyped messages. I talk more about this here http://www.biztalkgurus.com/blogs/biztalk/archive/2004/09/17/Working-with-Untyped-Messages-In-An-Orchestration-_1320_-Part-2.aspx
Hope this helps.
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.