BT2010 EDI TPM Deep Dive
I was given a challenge. In the EDIGUIDANCE for ESB 2.1 we need to be able to grab, EDI , EDIFACT, AS2 Information outside of a pipeline based on some attributes from something like a PO or EligiblilitySchema before we actually put them into the MIcrosoft EDI schemas. I was told this wasn’t possible and we needed to store the data in 2 locations. This made me want to see if I could somehow read out the binary data so we could keep all the settings in the TPM rather than in 2 places.
So I went ahead and created a couple of parties:
I wanted to set data on specific parts of forms in order to see where this data landed.
I needed to set up some new profile information (This is much better than previous versions, to use Jim Dawsons’s words: Biztalk shouldn’t be the center of the universe in an EDI scenario. In the pats you would have right clicked on a party and selected EDI PROPERTIES or AS2 PROPERTIES.
After I setup my two parties
ACME CORPORATION and EDIGUIDANCE I had to create 2 sets of Agreements, one for x12 and the other for AS2
Since you can have multiple protocols on each party, you need to select these out (2010 allows a 1 party to many protocols situation, allowing much more freedom when configuring the server.) I had used the default protocol names for Both EDIGUDIANCE and ACME CORPORATION. Now it would make you think that both protocols are the same since they have the same name X12_Settings_1, but this is incorrect. The protocol set belongs to the party and the default name is X12_Settings_1, these are essentially completely seperated configurations that just both happen to have a lazy developer who used the default name for both.
I stepped through trying to find where I set the ISA5, ISA6, ISA7 and ISA8, since these were the values I needed to be able to reach into the database and grab.
After setting the values in both directions I needed to capture what I had so I knew what to look for.
After I went into what I thought was where teh EDI data was stored to find almost all those Databases empty.
Q:I am a little concerned since these tables arent used anymore why could they be there?
A:My best guestimate is that these remained for BT EDI party Upgrades from older systems.
So I started some pretty wild queries to see if anything had the name ISA5 in it. THere were a few in the EDI setup above, but also I found them in the
Tables that started with TPM.
I found where I had set my 850 override:
Th partnership I had setup:
This allowed some Joins against the TPM.PARTNER database. This is when I realized I had really normalized standard tables to deal with. Unlike the past. I had access I wasn’t able to have before.
Low and behold THe puzzle started to come together.
Which brought me to the TPM.BusinessIdentityTable (Jackpot!)