none
Party Agreement Resolution RRS feed

  • Question

  • Hi,

    I am converting from XML->EDI

    I have party agreements set up for 50 different trading partners. So they have different ISA6/ISA8 and GS02/GS03. I want to transfer the XML through specified party agreement. So EDI will have the respective ISA and GS specified in there agreements.

    1) I have 2 XML Files named A and B.

    2) I have Two Agreements A1 and A2.

    I want to that XML File "A" Should go through agreement A1  and XML File B to go through A2 and the EDI generated for A should have the ISA/GS specified in respective Agreement in this case i.e. A1 and EDI generated for B should have the ISA/GS specified in respective Agreement in this case i.e. A2.

    Thanks in Advance

    Wednesday, March 5, 2014 9:57 AM

Answers

  • If you follow the Orchestration Correlation Technique, you will see the Correlation Set needs to be Initialized on the Send Port.
    • Marked as answer by Pengzhen Song Monday, March 17, 2014 10:25 AM
    Wednesday, March 12, 2014 12:08 PM

All replies

  • This article at MSDN describes all the steps the EDI Assembler uses to resolve the associated Party.

    http://msdn.microsoft.com/en-us/library/bb259945.aspx

    Basically, it can be done by setting Context Properties or the Send Port.

    I recommend you disable the Fallback Settings since it can lead to unpredictable results.


    • Edited by Johns-305MVP Wednesday, March 5, 2014 1:26 PM forgit link
    Wednesday, March 5, 2014 12:41 PM
  • Hi,

    Can you send me the link please

    Wednesday, March 5, 2014 12:46 PM
  • Link included in original response. Oops!
    Wednesday, March 5, 2014 1:27 PM
  • Hi,

    Can you tell how i can promote the context properties in orchestrations.

    Thanks

    Thursday, March 6, 2014 4:48 AM
  • To Promote in an Orchestration, you have to use the Correlation Technique.  Basically, you initialize a Correlation Set on the Properties you want Promoted.

    This blog described the whole process: http://blogs.biztalk360.com/property-promotion-inside-orchestration/

    Thursday, March 6, 2014 11:49 AM
  • Hi,

    I am Converting from XML->EDI

    Can i promote ISA8 and GS3 values in orchestrations and use them in the Filter at Send Port. I want on the basis of ISA8 & GS03 the Biztalk should decide which party agreement to use. Because in my scenario i am having only one Send port and one receive port and i want on the basis of party agreement Biztalk should be able to select from respective party agreement. I am having 150 trading partners and all of them are having different ISA8 and character sets. So when i input the XML in receive port at the Send port it should decide to which Trading partner it belongs to. Can you please suggest me how can i achieve this.

    Thanks


    • Edited by Gagz Monday, March 10, 2014 4:21 AM Some point added
    Monday, March 10, 2014 4:12 AM
  • Hi Gagz,

    There is a provision of overriding the EDI context properties, which should help you in this scenario. You can override the ISA8 and GS03 in Orchestration by adding reference to Microsoft.BizTalk.Edi.BaseArtifacts assembly

    Have a look at following MSDN article:

     http://msdn.microsoft.com/en-us/library/bb226554.aspx

     http://msdn.microsoft.com/en-us/library/dd223988.aspx


    Maheshkumar S Tiwari|User Page|Blog|BizTalk Server : How Map Works on Port Level

    Monday, March 10, 2014 4:47 AM
  • Hi Mahesh,

    Thanks for prompt reply

    Actually i am new to Biztalk. So can you please elaborate how to solve the above problem by using orchestration using Microsoft.BizTalk.Edi.BaseArtifacts reference.

    Thanks in advance.

    Monday, March 10, 2014 5:02 AM
  • Yes, but you don't need to use the EdiOverride feature to accomplish this.

    A number of EDI Context Properties are already defined, including ISA08 and GS03.  You can access them by referencing the Microsoft.BizTalk.Edi.BaseArtifacts.dll Assembly in the BizTalk install folder.

    You would have to Promote or re-Promote them in the Orchestration using the same Correlation technique above.

    Then you can apply the Filter on the Send Port.

    Monday, March 10, 2014 1:41 PM
  • Hi,

    If i want to re-Promote the ISA08 and GS03, should i initialize at the Receive Shape( but i think it will not work as these are not present in Receive Shape) and Following at the Send Shape. Can you suggest me with step to accomplish this task?

    Thanks

    Wednesday, March 12, 2014 9:38 AM
  • If you follow the Orchestration Correlation Technique, you will see the Correlation Set needs to be Initialized on the Send Port.
    • Marked as answer by Pengzhen Song Monday, March 17, 2014 10:25 AM
    Wednesday, March 12, 2014 12:08 PM
  • Hi,

    Can you please post a solution for promoting or re promoting the context properties. It would be a great help for me.

    Thanks in advance

    Thursday, March 20, 2014 10:47 AM
  • To Promote in an Orchestration, you have to use the Correlation Technique.  Basically, you initialize a Correlation Set on the Properties you want Promoted.

    This blog described the whole process: http://blogs.biztalk360.com/property-promotion-inside-orchestration/


    Here you go.
    Thursday, March 20, 2014 11:42 AM
  • In the above example the property ID is promoted from the XML itself, but our senerio is different we can't promote the ISA or GS from the XML.

    I want to promote context properties i.e. ISA08, GS03 using Microsoft.BizTalk.Edi.BaseArtifacts.dll .

    I have created two messages In and OUT

    Now at the receive port is connected to receive shape i have given the message as In which is having message type for Microsoft.Edi.BaseArtifacts.

    The receive shape is having Two options which are:- 1) Filter, 2) Following(Which to use?)

    At the send shape what should be the message type?

    At the filter will this promoted properties will work for all parties by just selecting the ISA or GS values.

    Thursday, March 20, 2014 12:17 PM
  • Sorry, I don't follow.  The example above doesn't use any Schema promotion.  The properties are Promoted using a Correlation Set in an Orchestration.

    All you need to do is Initialize a Correlation Set based on EDI.ISA08 and EDI.GS03 and they will be Promoted when published, by the Send Shape, to the MessageBox.

    That assumes those Propeties already exist on the Message, which they would if they come directly from the Receive Port where the EDI Disassembler runs.  Otherwise, you have to set them first:

    MyOutboundEDIMessage(EDI.ISA08) = myISA08Value;

    Thursday, March 20, 2014 1:32 PM
  • I have 70 trading partners. if i fix myISA08 value than i have to create 70 send ports for 70 trading partners because every Trading Partner is having different ISA08 and bind the port to the send port in orchestration in BT administration console. and i have 11 data sets XML To EDI to send to these Partners.

       So can you suggest me any solution so that i can just promote the ISA08 and than in Send port i can filter it with the ISA08 and send to the respective Trading Partners. 

    Tuesday, March 25, 2014 6:31 AM
  • Ok, it sounds like you're looking for an alternative to using a Send Port to identify the Agreement for an outgoing Interchange.  That would make sense.

    This article, also references above, describes all of the options you have for Agreement resolution when sending EDI, using Context properties mainly.  http://msdn.microsoft.com/en-us/library/bb259945.aspx

    This combined with Dynamic, or semi-Dynamic, Send Ports can reduce the number substantially.

    Tuesday, March 25, 2014 11:11 AM
  • Hi,

    I think it is my mistake i have created the mess for you. Now let me recall the whole scenario which i want to configure.

    1) I am Converting from XML->EDI.

    2) I am only willing to create Single receive port where we will input the XML.

    3) I am having approx 90 trading partner and there is a chance that it would increase and i am exchanging 11 X12 standards data sets with each of the Trading partners.

    4) I have created an orchestration who override the EDIOverride.ISA12 and EDIOverride.GS03 because all the 11 datasets are having different version numbers. Now i want to extend this orchestration.

    5) I want when the XML file receive in the Receive folder, Biztalk pick the file and i want on the basis of Party agreement it should pick the file and send the file to the send port with respective ISA, GS , Character sets and envelops.

    6) I want on the basis of ISA and GS on the send port i can tell Biztalk to identify for which party this message belongs to.

    7) I am only willing to have 1 send port for all the Trading Partners because i want all the file to be processed and saved locally on the same system in the single folder. 

    Wednesday, March 26, 2014 5:34 AM
  • So, one Send Port is the goal.  Does that also mean the same destination, file folder for example, or does each Trading Partner's output have to go to a different folder?

    Wednesday, March 26, 2014 11:33 AM
  • One send port is the goal. Every Trading partner output should go to single folder but for every Trading Partner Party agreement is different. 

    So when XML come we are able to tell BTS that to under which agreement this XML file has to go and then reach to single specified send port.

    Note:- I want to configure all the process mentioned above.

    Suggest any solution for this problem.

    Thanks for your efforts

    Wednesday, March 26, 2014 11:49 AM
  • In that case, I think option 3 in the referenced article is you best bet.

    You can set the EDI.DestinationPartyName to something like ISA06+ISA08 which is hopefully unique enough.  If not, just add more, like GS02.  Then set the same value in the Additional Agreement Resolvers for DestinationPartyName.

    I'm pretty sure DestinationPartyName does not have to be Promoted so you can just set it in the Orchestration.

    Wednesday, March 26, 2014 1:30 PM
  • Hey,

    Thanks for the prompt reply

    When i set this property on Send port. it is not working.  following are the steps i do:-

    1) I created the Agreement xyz\abc then in xyz->abc under identifier i set the name spect as DestinationPartyName.

    2) Now i am using this property in send port filter. But it is not working.

    In orchestration how can i use this property. It would be good if i can extend the already existing orchestration mentioned in point 4 i.e. I have created an orchestration who override the EDIOverride.ISA12 and EDIOverride.GS03 because all the 11 datasets are having different version numbers. Now i want to extend this orchestration.

    Can you provide me steps to achieve this problem.

    Thanks

    Thursday, March 27, 2014 6:21 AM
  • You wouldn't use DestinationPartyName as a Send Port Filter. That's just for Agreement Resolution in the EDI Assembler.

    You have to get the outgoing messages to the Send Port in another way.

    Also, make sure that Send Port is not on the list of Send Ports for any Agreement.

    Thursday, March 27, 2014 11:23 AM
  • Can you guide me step by step using orchestrations  how i can get this problem solved. I hope scenario is very much cleared to you. It would be of great help.

    Thanks

    Friday, March 28, 2014 6:20 AM
  • This thread is getting a bit long so I'll recommend starting a new one.

    First, describe what you have tried yourself already.  Ports, Orchestrations, etc.

    We can provide advice on how to fix any issues.

    Friday, March 28, 2014 11:45 AM