Sending EDI To Multiple Partners Using Single Send Port in Orchestration

Hi Guys,

I am having a scenario where i am receiving a XML(which can be in between 11-15). I am having 150 Trading Partners with whom these datsets have to be shared. Now every Trading partner is having there own character Sets and unique numbers so i have created 150 party agreements for all the Trading partners. I am interested to use a single port. I have created an orchestration to achieve this. Below are the steps i used to create orchestration :-

1) Receiving 11 XML from receive shape.

2) Extracting the value of Node TSP(this value is used to know the trading partners unique number on which i am deciding to which party agreement this XML needs to go) using xpath.

3) I am constructing the message in construct.                                                                                                                      3.1) Mapping  from XML To EDI.                                                                                                                                            3.2) As all 11 datasets are having different version. So i am overriding the value ISA and GS in Message Assignment(SourceName).

4) Decide shape to decide on the value of TSP to which port it has to be send.

But according to me this is not an optimized solution. Below are reasons:-

1) I have to create 150 branch into decide shape. As i am receiving 11 different XML messages i need to create decide shape for all the different Xml messages.
2) I have to create 150 different ports which are having 15 operation(depending upon XML we received).

Note:- I have to create 150 different Send Ports only because of Party Agreement. So is there any solution? i only want Single Send port and i can select the party Agreement in the orchestrations.


  • Edited by Gagz Friday, May 02, 2014 11:11 AM title edited
May 2nd, 2014 2:10pm

As you can read here:

http://blog.vertica.dk/2013/09/20/party-resolution-in-biztalk-server-edi/

It is possible to control the Agreement/Party relation by using the Properties:

-AgreementNameForSend

-SenderPartyNameForSend

-ReceiverPartyNameForSend

in the namespace: http://schemas.microsoft.com/Edi/PropertySchema.

By using these you don't need a Send Port pr. Agreement anymore. 

Morten la Cour

Free Windows Admin Tool Kit Click here and download it now
May 2nd, 2014 2:25pm

You can use a single Send Port because there are other ways the EDI Assembler can resolve the Agreement. They are all detailed here: http://msdn.microsoft.com/en-us/library/bb259945.aspx

In your case, #3 might fit best.  You can set the TSP (I'm assuming that some sort of unique Id) as an Identifier on each Agreement.

I take it you are receiving 15 different message types and have to send 15 corresponding EDI transactions.  That's a manageable number of Decide Branches but you could also use 15 Orchestrations.

May 2nd, 2014 2:48pm

Hi,

Thanks for the prompt reply

I am using dynamic port, and in Expression shape i am using the following if block:-

if(TSP=="SomeValue")

{

    Send_Dynamic(Microsoft.XLANGs.BaseTypes.Address)= "FILE://D:/PORTS/XML_To_EDI/EDI_Out" + "%SourceFileName%.txt";

}

Can i use the 3 properties in this block so that the BTS come to know when the TSP==""; Then he route the message to the party agreement selected in this block.  Basically i want that i can route the message to selected agreement on the basis of TSP values and send through the Dynamic Port as shown above.

Thanks

Gagz



Free Windows Admin Tool Kit Click here and download it now
May 5th, 2014 1:51am

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

Other recent topics Other recent topics