Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Using Orchestration in ESB Itinerary

Status
Not open for further replies.

MichelleHartney

Programmer
Jul 31, 2009
1
US
I am trying to use an Orchestration in an Itinerary to transform using custom XSLT provided at runtime. I ran into problem and not able to resolve it. Can you point out where am I going wrong?

Once the orchestration gets the message, I need to perform two transformations before sending out the request to the WebService. And, When I get the response from the WebService, I need to perform another two transformations before sending it out to the caller. Note, that the transformations should be done using a .NET code and not using BizTalk Mapper. This is because the transformation logic is only available in the XSLT Style Sheet which would be available only at runtime. You can't user the mapper for the XSLT, because the path would be provided at runtime. I have written a Custom .NET code to do the transformations and I am able to pull call that code from the Orchestration and perform the transformation.


Initially, I thought of doing all this in an ESB Itinerary. The way I would do this is, one of the Itinerary Service would call the Orchestration to do the custom mapping using the XSLT style sheet provided at the runtime. Once the orchestration returns the transformed XML, another Itinerary Service would send it to the WebService for processing. When I get the response from WebService, another Itinerary Service would pick it up from there and call the Orchestration again to do the transformations before sending it back to the client. This is the perfect logic...

But where I am stuck is, one I get the transformed message back from Orchestration, I am not able to send it to WebService. The Itinerary Service that is supposed to pick this message and send it to Webservice isn't picking up. When I look at the event log, it says, The published message could not be routed because no subscribers were found. with status.

What could be wrong?? Do let me know. I would really appreciate your help!!! Is there any better way to do this?

Thanks a lot!!!
 
If a subscription fails, then you either:
Didn't promote the fields you want to subscribe on, do you have a property schema that tells BizTalk what fields to promote?
Or you don't have the subscription set right on the receive port that is picking it up to send it to the web service.

Given the problem description, is there a reason that you're using publish/subscribe? It sounds like this is all one continuous process that can run synchronously, and by publishing to the message box you are just creating correlation problems (making sure you are sending the right response for the right request if two are being processed at a given time).

You are doing a construct message in BizTalk prior to calling out to the XSLTs, correct? BizTalk needs to know that there is a new message that it must handle, and then once you instantiate it you can populate it via your custom code and the XSLT. Maybe you are missing the construction?

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top