Aug 292008

For those of you who have trading partners that deal with trading partners that send EDI in batch mode and can’t fix/resend edi transactions individually, there was really no way to deal with this in the current R2 process, as there was no schema that could be created to consume the XML message that was created when you choose the Preserve Interchange – suspend Interchange on Error

Existing Setting

The issue is that if the interchange was valid nothing but the EDI send pipeline can consume it:


So Microsoft has created a new processing option Preserve Interchange – suspend Transaction Sets on Error


Which can be downloaded from KB956051

Aug 282008

There is the issue of the behavior of the mapping process creates invalid XML.

The input instance looks like this:

<xml> <loopA /> <loopB /> <loopA /> <loopB /> </xml>

However, when using the mapper, you create your output and it ends up looking like this:

<xml> <loopA /> <loopA /> <loopB /> <loopB /> </xml>

How to get this to work (only in R2) is to open up the btm file and change the following attribute from its default value of No to Yes in the mapsource element


<mapsource Name="BizTalk Map" BizTalkServerMapperTool_Version="2.0" Version="2" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="No" GenerateDefaultFixedNodes="Yes" PreserveSequenceOrder="No" CopyPIs="No" method="xml" xmlVersion="1.0" IgnoreNamespacesForLinks="Yes">

Here is the new code:

<mapsource Name="BizTalk Map" BizTalkServerMapperTool_Version="2.0" Version="2" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="No" GenerateDefaultFixedNodes="Yes" PreserveSequenceOrder="Yes" CopyPIs="No" method="xml" xmlVersion="1.0" IgnoreNamespacesForLinks="Yes">

Aug 272008

Eric Washburn CTO Athena Advanced Technologies

Very interesting method to warehouse all data components to the warehouse. There is a separate table that defines all of the complex data types, cialis but each segment has its own table.

There is a unique key in the segment to represent the complex data type that then ties the segment to the complex type.

I would write more about it, but I was too interested in seeing how everything was done.

Aug 262008

Sean Nolan – Chief Architect, Microsoft

Health Vault is like PayPal, they go to sites that use Health Vault to communicate data.

Why should you integrate with HealthVault:

Private and Secure Storage

Consistently log in using secure login

Application Interoperability – the ability to collect various data into one central repository

Device Connectivity – The ability for new devices to communicate directly to the health vault

Application and Device Discovery

Privacy and Security Focused – the customer is in control, the customer is in control of their own privacy

Industry Standards, it is an open platform, free and published SDK and APIs,  (found on the HealthVault site) Community Promise, Easily Extensible Data Model, Strong Developer Community: MSDN Documentation


Native: HealthVault is an online database

Copy: HealthVault is a synchronization resource to (imporpe cloyt/export/merge)

Per-type globalized transformation

  • html
  • tabular view
  • Standards and Device Exchange
  • Custom (custom xsl) on the Healthvault server ‘dime’

Custodianship – allows to permissions to be granted to people (children for example) that can be granted on a ‘sliding’ scale, eventually, you can give it up when they move away.

Online and Offline processing mode, grants access instantly, and only for that session, or a longer term if necessary

Aug 262008

Herb Larsen Sr. Vice President of Alliances, Edifects Inc.

Not a lot of payors or providers have found that that ROI has been reached by implementing HIPAA.

A lot of the reasons is because the tasks of moving the edits from the back end system to the front end (BizTalk) is difficult.

Ramp Manager product – allows to test without being on the test without having to be on the phone with the other party and asking them to ‘submit’ the file and read back the errors.

Edifects XEngine – built on BizTalk Server 2006 R2

Because MS is not considered a covered entity, MS has not supplied a lot of HIPAA security standard documentation.

Aug 262008

The next conference will be on April 4th 2009 in Chicago.

Steve Aylward – General Manager Health and Life Sciences Microsoft

Watched the future of Microsoft in healthcare video.

Microsoft is making a huge investment in healthcare.

It took 4 releases (10 years) to outsell MSDOS

It took 9 releases (11 years) to become most popular word processor

It took 5 releases (10 years) to become the leading spreadsheet

$8 billion in R&D, see a large (no numbers as far as percentage directed directly at Healthcare, pill but a large portion)

In 2000, MS had 63 employees dedicated to Healthcare.

Amalga – Health Information System – not available in the US. Designed for the emerging markets. (used to be called Global Care)

Amalga – Unified Intelligence System – not limited to caregivers, but can be customized to end users

HealthVault – Internet health platform that enables third parties to create applications to stored personalized health care information

Aug 262008

I wrote my first two way adapter the other day. I have created it to communicate with Zirmed to send insurance verification request/responses via a HTTP Post.

My question, however, is how often are people using this method of transport, and would anyone else be interested in using this?

The REAL dilemma however is that there are specific items that are necessary to communicate with Zirmed, but any other post is going to look drastically different. How best to approach an enterprise solution though, do you walk thru a wizard, possibly pointing to the web page post page to ‘interrogate’  what needs to be passed?

Let me know if there is anyone out there interested…

Aug 232008

I’ve needed to cast my BizTalk message as a System.String in a couple of occasions so I’m going to put it here to remember how to do it.
1. Create a Variable of type System.Xml.XmlDocument (I’m calling it xml_Temp here)
2. Create a Variable of Type string (I’m calling it str_MessageAsString here)
3. In the expression shape insert the following code:

//Instantiate your xml_Temp System.Xml.XmlDocument
xml_Temp = new System.Xml.XmlDocument();
//Assign the message you want as a string to your new xml_Temp System.Xml.XmlDocument
xml_Temp = msg_YourOriginalMessage;
//Assign the .OuterXml property of your xml_Temp to your str_MessageAsString System.String
str_MessageAsString = xml_Temp.OuterXml;

Aug 222008

If you are debugging pipelines or adapters in BizTalk, you can’t just ‘debug’ the said component in Visual Studio (however, there are rumors of that changing in v.Next), you have to deploy and run it in the service.

You need to attach to the BTSNTSvc.exe and if you are lucky, all of the pdb files are in the correct place, and you can instantly start debugging.

However, if you are like me, and the dlls are in separate locations from the pdb files (GAC for example), you need to associate the dll with the pdb. This can only be done via the Module window.

According to the Module Window definition on MSDN you should “On the Debug menu, choose Windows, and then click Modules.”

However, this is what I see:


The easiest you can bring it up is by pressing Ctrl – Alt – U

Aug 202008

I’ve created a nice little tool I’m using more and more.  As a BizTalk Administrator, I’m constantly needing to ensure nothing is going wrong on my servers.  I need an alert process that could email me if/when there is a problem.  I’ve created an event log monitoring tool that will email me depending on the search criteria I specify.  I’ve included a feature that allows me to create multiple emails depending on the exact error.  I use this quite a lot if a specific user needs to only know about their particular error.

The program is a single executable.


It is executed via the command prompt and takes the following parameters, which can be in any order.

-TOEMAIL: = ToEmail (Required) Can include multiple To Email addresses.                                 
-FROMEMAIL: = FromEmail (Required)                                                     
-SMTPSERVER: = SmtpServer (Required)                                                   
-NUMBEROFDAYS: = Number of Days to look back (Optional) if not set to today’s data   
-NUMBEROFHOURS: = Number of Hours to look back (Optional) if not set will use -NUMBEROFDAYS   
/n = Send Email if there are no events (Optional)                                      
/e = Send Errors (Optional)                                                            
/w = Send Warnings (Optional)                                                          
/i = Send Information (Optional)                                                       
-EVENTSOURCE: = Event Source (Optional) Can include none or multiple Event Sources to include in the search                         
-EVENTCATEGORY: = Event Category (Optional) Can include none or multiple Event Categories to include in the search
-EVENTMESSAGESEARCHSTRING: = Event Message Search String (Optional) Can include none or multiple Event Message Strings to include in the search

I usually set up a batch file that is run on the Windows Scheduler and sends me an email every night for the previous day’s information.

For example, I have the following event log:


I would like to receive an email for all the Events of Type Errors in the “BizTalk Server 2006” Category over the last 5 days.  I would execute the following command at the command prompt:

“Generic Event Log Emailer.exe”


Alternatively, I would just create a batch file with that string and schedule it to execute every 5 hours.

I then get an email every 5 hours with all the information I’m looking for.


Don’t forget that you can also search using the -EVENTMESSAGESEARCHSTRING: parameter.  Using this parameter, you can really narrow down your search to specific messages.

Here are my list of planned upgrades:

1.  Add regular expressions to the -EVENTMESSAGESEARCHSTRING: parameter

2.  Add -EXCLUDE parameters to allow you to exclude Source, Categories, or Messages instead of only including.

3.  Add the other Event Logs besides the Application Event Log.

4.  Create a real time monitoring tool that would push errors to you as they happen instead of pulling them at certain intervals.

If you have any other features you’d like to see in this product, please email me.