Why (good) Xml is much better than plain text

There are many reasons, sure, and probably there are also reasons why plain text files can be better, but I would like to remark just only one reason, just because I fighting with it right now:


Xml is human readable


Or at least, it should be.


I’m dealing with the HL7 standard for healthcare. HL7 files are text files with some strange delimiters such ^ and |. Luckily we can use the BizTalk HL7 Accelerator, that allow us to abstract from the HL7 details.


A sample of an HL7 file:


MSH|^~\&|REG|MCM|BTS||199601121005||ADT^A04|000001|P|2.2
EVN|A04|199601121005||01||199601121000
PID|||191919^^^MYHOS^MR~123-45-6789^^^USSSA^SS|253763|SMITH^JOHN^Q||19560129|M|||123MAIN^^BUFFALO^NY^98052^””||(123)555-0100||S|M|10199925^^^MYHOS^AN|123-45-6789
PD1|S|F|NormalString^A^+1^-1^ISO^simpletext&Test&HCD^GI^simpletext&NormalString&ISO^I|NormalString^Test&Test^Test
^Test


^Test^Test^AE^simpletext^simpletext&Test&ISO
^P^NormalString^M10^MC^simpletext&NormalString&HCD^A|N|simpletext|I|I|N|NormalString^+1^M11^


simpletext&NormalString&L,M,N^RRI^simpletext&
NormalString&HCD|NOVALUE^NormalString^Test^Test^NormalString^Test|N
PV1|1|I|2000^2012^01^hey&test&DNS^test^test^test^test^test||||004777^MILLER^CONNIE^A.|||SUR||||2|A0


Where is the Patient Name? is “the substring between the fifth and the sixth | (pipe), in the third line (the line starting with PID). And remember, spaces are represented as ^(strange little hat)


The HL7 Accelerator comes with Xsd schemas to map these flat files. A sample message type ADT A04 (the above) looks something like this (just a small piece):


<ns0:ADT_A04_22_GLO_DEF xmlns:ns0=”http://microsoft.com/HealthCare/HL7/2X>
 <EVN_EventType>
  <EVN.1_EventTypeCode>A04</EVN.1_EventTypeCode>
  <EVN.2_DateTimeOfEvent>199601121005</EVN.2_DateTimeOfEvent>
  <EVN.3_DateTimePlannedEvent>199601121000</EVN.3_DateTimePlannedEvent>
  <EVN.4_EventReasonCode>01</EVN.4_EventReasonCode>
 </EVN_EventType>
 <PID_PatientIdentification>
  <PID.1_SetIdPatientId>191919</PID.1_SetIdPatientId>
  <PID.2_PatientIdExternalId>
    <
PID.5_PatientName>
       <
PN.0_FamiliyName>Doe</PN.0_FamiliyName>
       <
PN.1_GivenName>John</PN.1_GivenName>
    </
PID.5_PatientName>
[]


we still deal with HL7 codes and semantic structure, but it’s much easier to work the Patient Name. It’s located in “the FamilyName element under PatientIdentification” 🙂

BizTalk Server 2006: What is new with Business Activity Monitoring?

You probably already read Scott’s document on what is new in Business Activity Monitoring 2006.Today, I’ll shed some light on the brand new “out of the box” portal. All information are based on the CTP build you might have picked up at TechEd 2005. Keep in mind that the BAM Portal may (and probably will) change before its final version is released.



There are three main zones:




  1. the header. This is the location users can customize for branding purposes,


  2. the navigation bar (on the left on a light blue background) which displays all views and activities. This is the entry point to most features of the portal,


  3. the content where users will interact with data. The main page displays a quick summary of importan BAM concepts.

The header:


The header displays branding information (which can be customized for your company),  the contextual help link and the current location. On the screenshot below, I am on the Home page. You can always come back to the home page by clicking on the “Home” icon at the left of the header.



The navigation bar:


The navigation bar displays all views / activities which can be accessed by the current user. On the picture below, I have access to one view (SalesManagerView) under which there is currently one activity (“PurchaseOrder”).


 


I can search for instances of activity “PurchaseOrder” by clicking on “PurchaseOrder” under “Activity Search”. I can view aggregated data by clicking on one of the entries under “Aggregations”. Finally, I can manage alerts by clicking on “PurchaseOrder” under the “Alert Manager” node. The navigation bar is the main entry point to most BAM Portal features. It will always be displayed on the left of the window.


Join me tomorow as I explore the Activity Search, Aggregations and the Alert Manager.

BizTalk Integration with Sharepoint and InfoPath Lab

Curious on how you can use Sharepoint, InfoPath, and BizTalk 2004 together?  This hands on lab will take you through a simple integration scenario step-by-step using Sharepoint and InfoPath to display delivery exceptions using Delivery Notification inside an Orchestration using BizTalk 2004. 



This lab will take around 60 minutes to complete and is based on Microsoft’s hands-on-labs.  Sharepoint (or Windows Sharepoint Services) and the Sharepoint Adapter for BizTalk 2004 (available on GotDotNet) are required.



Download: Sharepoint-InfoPath Hands On Lab



Setup is simple.  Unzip the download to your c:\ drive.  Make sure the root folder named “Microsoft Hands-On-Labs” is located at c:\.  The lab manual is located under \ILL019_InfoPath.  The exercises are located in the \Source\Exercises folder.  The full solution is located in the \Source\Solution folder.



Although newbie’s to BizTalk can complete this lab, it covers advanced topics.  If you are new to BizTalk, do not get discouraged if you find this lab difficult. 


Sequential Flat File Message Processing Lab

Here is a 45 minute, step-by-step lab showing how to use the Flat File Disassembler, Delivery Notification, and a Sequential Convoy to map a large flat file document in BizTalk 2004.  This lab will break up a large flat file into single messages, map each message, and write the ordered output to an output file.



This lab takes you through it in three Exercises.  It is based on Microsoft’s hands-on-labs.



Download: Sequential Message Processing Hands On Lab



Setup is simple.  Unzip the download to your c:\ drive and run the included binding file to create the send and receive ports used in the lab.  Make sure the root folder named “Microsoft Hands-On-Labs” is located at c:\.  The lab manual is located under \ILL010_Convoys.  The exercises are located in the \Source\Exercises folder.  The full solution is located in the \Source\Solution folder.



Although newbie’s to BizTalk can complete this lab, it covers advanced topics.  If you are new to BizTalk, do not get discouraged if you find this lab difficult. 


Bloggers Guide to BizTalk 2006*

There’s a new edition out now, get it here. I’ve added a “BizTalk Server 2006” section, there’s only one post there, but this should change in the next edition as you guys get your hands on the TechEd builds, and the beta becomes available.

I’m thinking of keeping the 06 stuff in the same guide rather than creating a new guide. As the orchestration and messaging engine are the same, a lot of the stuff is relevant to both products. I’m thinking of adding a header to the articles depending on which version they are relevant to, and keeping the structure the same, rather than creating a separate 06 structure (the 06 folder I added is just for the “What’s New” stuff etc).

I also need to streamline the process so I’ll switch to Visual Studio 2005, and some automated process to compile the CHM (the Help Workshop is no fun with over 300 articles), this should allow me to restructure the guide as well, and produce more frequent updates.

* Not quite, but heading that way 😉

Integration with Sharepoint 2003 and InfoPath SP1 Lab

This lab will take you through a simple integration scenario step-by-step using Sharepoint and InfoPath to display delivery exceptions using Delivery Notification inside an Orchestration. Windows Sharepoint Services, the Sharepoint Adapter for BizTalk 2004, and InfoPath SP1 are required.

Get more information from the original blog post on this topic: http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/06/12/biztalk-integration-with-sharepoint-and-infopath-lab.aspx

Sequential Message Processing of a Flat File Lab

This lab will show you step-by-step how to use the Flat File Disassembler, Delivery Notification, and a Sequential Convoy to map a large flat file document.

Get more information from the original blog post on this topic: http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/06/12/sequential-flat-file-message-processing-lab.aspx

New White Papers…

We’ve been at it again.  If you haven’t seen these, check out these new white papers:



  • BizTalk Server 2004: A Messaging Engine Overview. This document describes the architecture and internal workings of BizTalk Server 2004 as a messaging engine.
  • BizTalk Server 2004 and Web Services. This paper discusses how BizTalk Server 2004 supports the use of Web services in building solutions.
  • Transactions Across BizTalk Server 2004. This document details transactional characteristics of BizTalk Server 2004 and how they apply across components, such as messaging, pipeline, and orchestration. It also describes how to construct business processes to guarantee message delivery.
  • Working With BizTalk Adapter for SQL Server. This document provides general knowledge about the BizTalk Adapter for SQL Server. It gives suggestions about when to use the SQL transport and how to retrieve, insert, update, and delete data. It also includes code samples

Tech-Ed Announcements – BizTalk 2006 Launch

A lot of folks heard at the Tech-Ed Keynote address on June 7 that we will have a joint launch of Visual Studio 2005, SQL Server 2005 and BizTalk Server 2006 on November 7, 2005.


Please do NOT confuse this with the RTM (Release to Manufacturing) date of BizTalk Server 2006.  BizTalk Server 2006 is still scheduled to RTM during the 1st Quarter of 2006.   November is just when the Joint  Launch “Party” will take place