We are trying to achieve following scenario. Let me know if someone can help me in this.
There is master orchestration which need to initate different orchestrations based upon one of the value returned by rules defined(BRE). We want orchestration binding to be done at runtime i.e we are planning to keep Orchestration name in the rule engine, which will return us different value based upon the business logic.
e.g. Following is written in BRE, if messageType = 'XXX' then return 'Name of Orchestratrion1 or Orchestration1 Assembly Name', if messagetype = 'YYYY' then return 'Name of Orchestration2 or Orchestration2 Assembly Name'
Our master orchestration will call the business rule engine using Call Rule shape, which will return us the name or assembly name of orchstration to be initiated. Now we will pass the assembly name to .NET code which will call 'Start Orchestration Shape'.
We can't use 'Start Orchestration Shape' or 'Call Orchestration shape' in the Master Orchestration as doing this means they will be tighly coupled. The only way to achieve is to call 'Start Orchestration shape' from .NET Assembly and pass Orchestration name returned from BRE to the .NET assembly, which will initiate Orchestration based on the name returned.
I haven't done this before. Can someone let me know how can we do this in .NET assembly.
What you can try to do is go for a direct binding on the message and ensure that the schema specific to the Orchestration is sent along with the payload.