Mohsin Kalam’s Blog

Party Resolution

Goal:

During parsing, serializing and batching of an EDI message, certain settings are applied to the message for example perform validation, generate Acks etc. These settings are all configured in either a party or the global level. This post describes how a party is resolved in the EDI system so that these settings can be applied.

Engine Receive: 

The following algorithm describes how Engine Receive resolves a party during parsing. To avoid repetition, all properties mentioned below in PAM are under Party as Interchange Sender Tab

  1. Using both Sender and Receiver Qualifier and IDs from instance, the engine will attempt to find a party by matching against the four fields in PAM (highlighted in red below). If found, the engine will use that party to apply settings during parsing
    • PAM validation will ensure that the quartet is unique among all parties
  2. If the above fails, it will use just the Sender Qualifier and ID from the instance and null values for Receiver Qualifier and ID and attempt to find a party by matching against the four fields in PAM
  3. Finally it will use Global settings in case of no match

The table below shows the respective translation for X12 and EDIFACT values 

Sender Qualifier Sender ID Receiver Qualifier Receiver ID
X12 ISA5 ISA6 ISA7 ISA8
EDIFACT UNB2.2 UNB2.1 UNB3.2 UNB3.1

Here is a snapshot of PAM property pages for X12. EDIFACT has a similar page under its Party as Interchange Sender tab.

Sender 


Example:

ISA*00*00000ISA02*00*11111ISA04*01*2222222222ISA06*01*3333333333ISA08*670123*0123*^*00401*111121891*0*I*:~

If you encounter the above ISA segment in the instance, you need to have the following settings in a party for this document to be resolved to that party

  • ISA5 = Sender Qualifier = 01
  • ISA 6 = Sender ID = 2222222222ISA06
  • ISA7 = Receiver Qualifier = 01
  • ISA8 = Receiver ID = 3333333333ISA08

Engine Send:

The following algorithm describes how Engine Send resolves a party during serialization. To avoid repetition, all properties mentioned below in PAM are under Party as Interchange Receiver Tab

  1. Send Pipeline will first check the presence of the “DestinationPartyName” context property. If present it will attempt to lookup the party by matching the Party Name. If found, the engine will use that Party’s settings during serialization
  2. If the above fails, it will look for the presence of four context properties mentioned below representing the Sender and Receiver IDs and Qualifier. If all four are present, the send pipeline will use these properties to look up a party by matching the value specified in PAM (highlighted in red below)
    • If found, the engine will use the Party settings during serialization
    • If all four properties are not present, or a party cannot be found, an error will be written to the event viewer and the message will be suspended
    • PAM validation will ensure that the quartet is unique among all parties
  3. If neither the DestinationPartyName nor the four properties are present, the Send Pipeline will check to see if a party is associated with that send port and use its settings during serialization
  4. Finally it will use Global

Here is a snapshot of PAM property pages for X12. EDIFACT has a similar page under its Party as Interchange Receiver tab.

Receiver

The table below shows the context values used match the values in PAM

Property Name

Value to match in Pam: X12 Value to match in PAM: EDIFACT
EDI.DestinationPartySenderQualifier ISA5 (dropdown) UNB2.2
EDI.DestinationPartySenderIdentifier ISA6 UNB2.1 (dropdown)
EDI.DestinationPartyReceiverQualifier ISA7 (dropdown) UNB3.2
EDI.DestinationPartyReceiverIdentifier ISA8 UNB3.1 (dropdown)

*NameSpace used for all context properties is “http://schemas.microsoft.com/Edi/PropertySchema“.

End Note:

I hope this clarifies the process of how a party is resolved in the R2 EDI engine. Your comments/questions are most welcome!

Mohsin Kalam

Advertisements

3 Comments »

  1. Hi there,

    Is there any way to access the UNB/ISA segments in an orchestration or mapping?

    Comment by prhodeslegend — January 15, 2008 @ 11:49 pm

  2. Hi there,

    Will resolution succeed if just UNB 2.1 and UNB 3.1 are present in the message? In that case can/must the party EDI property be set to Not Valued on UNB2.2 and 3.2 (and btw: aren’t UNB 2.2 and 3.2 defined in dropdowns??)

    Comment by Charles Storm — March 12, 2008 @ 8:03 am

  3. Hi,

    say we have an outbound edi party set-up and we want to identify this party using several aliases.
    How would we best do this?

    Since the EDI engine checks the party name, does it take into account alias names? I tried this but it did not function.

    Why do we need this?

    Say an application send out information that has to be transformed to EDI.
    Say the application has several destinations that all result in 1 EDI party. (because the EDI is sent to a gateway the does further splitting…)
    Wouldn’t it be nice to use the application party names as aliases all resulting into 1 EDI party?

    I now have to translate the application party names into the 1 edi party name… or am I missing something?

    Thanks for any advice.

    Comment by Koen — March 17, 2008 @ 2:22 am


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: