Nov 232006

The question that I have raised a few times in my own head is how can you use the HIPAA accelerator in a clearing house enviornment. My definition of a clearing house is a company that represent different companies, generic so essentially the sender id that you define in the send handler is not always the same.

There is currently no way to create multiple send handlers, stuff so Microsoft has created a pipeline component that you specify the sending ids that will reset it to. Because most clients need an acknowledment, I would always recommend using the adapter and not the pipeline componet as I documented here.

So my suggestion is as follows for inbound transactions:

  1. Create a recieve port called DMZ (port where clients are going to be able to drop their files off) and in there create seperate recieve locations for each of the clients inbound folders and use the passthru pipeline.
  2. Create a send port using the passthru pipeline filtering on the RecievePortName==”DMZ” and have the location defined as the %documentshome%PickupEDI (remember you actually have to put the full path in the send port).
  3. Then you have recieve locations using the HIPAA_EDI adapter for each of the partners.

So my concurrent suggestion is as follows for outbound transactions:

  1. Using logic derived from this entry, create seperate send ports using the HIPAA_EDI adapter and point the folder location to a staging area.
  2. Obtain the pipeline fix from Microsoft Support and create seperate pipelines for each of the partners that you represent.
  3. Create a seperate receve location that picks up the file using the passthru pipeline picking up the file that was created in step 1.
  4. Create a seperate send port that filters off the recieve location defined in step 3 and use the newly created pipeline that will replace the sending parties information that is defined in the send handler to the correct sending ids.
Nov 142006

Since I always have a hard time remembering where it is and what to run, adiposity there are two scripts that you can run in your non-production region that can clean up currently running orchestrations that you have already terminated and it is waiting to clear it up.

You will first need to go and create the real stored procedure bts_CleanupMsgBox (this replaces the shell that is there). This file is located in the ..BizTalk Server 200XSchemamsgbox_cleanup_logic.sql. (I know that this was an add-on in 2004 SP1, dosage but the stored proc needs to be loaded within 2006 also)

There is a new stored proc that can be obtained by calling support and referencing this article.

The instructions are as follows to clean it up:

  1. Stop BTS.
  2. Do IISRESET if you are using web services.
  3. Run “bts_CleanupMsgbox” on your message box database. This will mark your instances for deletion and it will not actually delete it.
  4. Run “bts_PurgeSubscriptions” on your message box database. This will purge all your messages marked for deletion.
  5. Restart your BTS.

If you want to completely purge the DTADb there is a nice little stored proc that takes it time to run, but it gives you a completely clean database:

  1. Stop BTS
  2. Run “dtasp_CleanHMData” on the DTADb
  3. Restart your BTS
Nov 082006

A question was asked after reading this article: At what point is the Party resolved to the actual Party. I ran my example again, sildenafil and put a breakpoint at the send port and these are my findings:

After the Destination Role Link has been set, viagra sale here are the settings:

Here is the details of the actual message:

Notice that the ParyName is empty so it has not resolved the Party name.

I sent the message (but the send port is in the stopped state) and here are the message properties:

So it looks like  the resolution of Parties happens actually once the message gets submitted back to the message box after the orchestration is complete for the message to find out which party the message is associated with.

My biggest question is if there is a way to associate the Alias name (Party1) instead of the Organization Value (EDI:\123456789:ZZ:123456789), the programmers reference really is not that descriptive to explain what is really going on. As soon as I learn more, I will put it here.

Update: The easiest way to associate with the alias name is to refer to the OrganizationName instead of EDI, in the code as such

new Microsoft.XLANGs.BaseTypes.Party(“Party1″,”OrganizationName”);

It is the default lookup value: