HIPAA Subdocument splitting – EXPLAINED

I wanted to enhance my previous blog entry about how to successfully split the EDI transactions into individual claims.

The one liner does not adequately do justice as to what is really going on, so I thought I would embellish on how to get it properly configured, but also what is really going on, and how to make changes (if you really want to).

The first thing is to explain the fundamental difference between the the single and multiple schema:

The single schema breaks up an interchange into individual transactions per BizTalk message. This means that each transaction with all of the claims in the transaction is submitted as one message.

The multiple schema is designed to break up an interchange into individual claims per message (regardless of the transaction it came in, by default). This means that each message that is submitted to BizTalk Message Box contains only one claim.

The schemas are mostly the same, except for the subdocument_creation_break attribute in the annotation:

<!-- Multiple -->
<xs:element name="TS837Q3_2300_Loop">
<xs:annotation>
 <xs:appinfo>
   <b:recordInfo structure="delimited" delimiter_type="inherit_record" field_order="infix" count_ignore="yes" child_delimiter="default" subdocument_creation_break="yes" notes="Claim information" />
 </xs:appinfo>
</xs:annotation>

<!-- Single -->
<xs:element name="TS837Q3_2300_Loop">
<xs:annotation>
 <xs:appinfo>
   <b:recordInfo structure="delimited" delimiter_type="inherit_record" field_order="infix" count_ignore="yes" child_delimiter="default" notes="Claim information" />
 </xs:appinfo>
</xs:annotation>

One thing that is not documented (at least I could not find it), is that after you downloaded and applied the 5010 hot fix, you need to add the following attribute Split_Without_Sibling_Data to the root <xs:appinfo> element

<!-- Out of the box -->
<xs:appinfo>
 <schemaEditorExtension:schemaInfo namespaceAlias="btsedi" extensionClass="Microsoft.BizTalk.Edi.SchemaEditorExtension.EdiSchemaExtension" standardName="EDI" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
 <b:schemaInfo subdocument_break="yes" BiztalkServerEditorTool_Version="1.5" root_reference="X12_00401_837_I" displayroot_reference="X12_00401_837_I" version="3.0" standard="EDI" standards_version="00401" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="Yes" />
</xs:appinfo>

<!-- After modification -->
<xs:appinfo>
 <schemaEditorExtension:schemaInfo namespaceAlias="btsedi" extensionClass="Microsoft.BizTalk.Edi.SchemaEditorExtension.EdiSchemaExtension" standardName="EDI" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
 <b:schemaInfo subdocument_break="yes" Split_Without_Sibling_Data="yes" BiztalkServerEditorTool_Version="1.5" root_reference="X12_00401_837_I" displayroot_reference="X12_00401_837_I" version="3.0" standard="EDI" standards_version="00401" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="Yes" />
</xs:appinfo>

If you don’t manually modify the schema, you will end up with all of the members in the transaction with one claim in each message that is submitted to the message box. ’Bloated XML’ as a friend of mine calls it.

This means that you are now empowered on how to make changes to the splitting behavior, you can take the subdocument_creation_break attribute and move it from the claim level (2300) and move it to the member level (2000) and BizTalk will split the claims by members with all of that members claims grouped together.

What’s new in TPM for BizTalk Server 2010!!

We are very excited to welcome the public Beta release of BizTalk Server 2010. We have some very interesting enhancements in B2B space in this release. I want to share a brief around the Trading Partner Management feature.

Trading Partner Management(TPM) is increasingly challenging in the exploding global trading economy. A huge heterogeneous mixture of business players are coming in with cost effective options to trade with.

Previous releases of BizTalk provided a functional party management offering that enabled customers to build solutions that needed party management data, but it did come with a few challenges around usability and scalability. To address the growing demand for a scalable TPM, we interviewed a number of customers from different market and sizes and incorporated their valuable feedback. With the new release of BizTalk Server 2010, we have rebuilt the TPM model ground up to meet the tactical and long term needs of the B2B players.

I want to lay out some of the key aspects that are new in TPM for BTS 2010. Detailed blogs would be based on your interest in the specific areas

Functional/Operational

%u00fc Party Model enhanced ground up that would be Business user friendly:

a. Party, Business, Agreement, Protocol Settings: More intuitive model to reflect trading partners, their various businesses, partnerships and agreements between partners. Default Protocol settings to reflect the expectations and abilities of either party getting into an trading partner agreement

b. Inbound, Outbound Settings: Reflective of how business handles inbound messages and sends outbound messages

c. Directional Agreements: Agreements are made two part, one part each for the direction of messages

%u00fc Centralized Business Identities: Identities that are used by the business are centralized without making them protocol-specific. This enhances the productivity as well, as business identities can be set/updated in one place and one time and not repeated across protocol settings

%u00fc Message Type Inclusion/Exclusion: A configurable list of accepted Transaction/Message Types that the business wants to support. Greatly reduces noise of unsupported message types being exchanged and dropped.

%u00fc Productivity around Agreement onboarding:

a. Ability to create protocol settings that are by default expected by a business and reusing them automatically in all agreements created with the business. Ability to override and specific setting as needed in the agreement

b. Ability to save agreements as ’Agreement Templates’ and applying the same across all similar agreements by a click of a button

%u00fc TransactionSet/Payload validation by Message type: No more validation settings at interchange level; now you set validation (’leading trailing spaces, ’extended EDI validation etc) for each message type differently

%u00fc Enhanced Global/FallBack Settings: All the settings possible for an onboarded party can now be set in Fallback settings too(earlier releases didn’t support all settings in Global settings and for some users were forced to use pipeline settings)

Access

%u00fc B2B Operator Role: A new BizTalk role that reduces the onus on the Admins to perform all Party management operations which was also sometimes security risk. The new role allows windows users associated with the role to perform all party management operations.

Upgrade Customers

%u00fc Migration Tool: With all these changes comes a Party Migration tool that helps upgrade customers to easily move from the old PAM based model to the new enhanced TPM of BTS 2010 without having to redo the onboarding of hundreds of parties/agreements

These are the highlights that I wanted to call out and have you all try them out. Any feedback on the feature would be greatly appreciated.

Hoping that the feature excites you as much as it excites me, and looking forward to a great success!!

Until next time

Ravi

*TechEd Alert*

I will be presenting a session at TechEd 2010 North America on this TPM feature with a demo. If you want to see how it really works and hear the story of how this feature got build, do visit the session at TechEd on 9th June (ASI 304: Building Large B2B Integration Solutions on Microsoft BizTalk Server 2010). See you folks there!!!

Using the BizTalk mapper activity in AppFabric workflows

Introduction

As described in the post of Richard Seroter, (http://seroter.wordpress.com/2010/05/24/using-the-new-biztalk-mapper-shape-in-a-windows-workflow-service/) there is a nice new feature that gets installed through the released beta of BizTalk 2010.  Two capabilities of BizTalk Server are made available to WF 4.0!  This is about the BizTalk mapper and the Line of Business adapters (like SQL, Oracle, SAP…).

These features are described in the following wiki white paper on the social technet site : http://social.technet.microsoft.com/wiki/contents/articles/biztalk-appfabric-better-together.aspx.

This is a first article in a series of three that is about these features.  Three articles will be posted in the coming days:

1.       Using the BizTalk mapper in Workflow

2.       Using the LOB Adapter functionality in Workflows

3.       Performance impact of the mapper shape, compared to code mapping.

The BizTalk mapper used in workflow services.

It happens a lot that data structures that are exposed through web services are different from the contracts and object types that need to be consumed by that service. 

During one of the demos I gave lately, I showed how an AppFabric workflow service was used to compose and consume three different other web services.  Allthough the customer really liked the pattern and the performance, he felt it was a bit too technical and too much code was involved to instantiate the web service requests and objects for the different services.  They were right (I needed to use too much assign shapes and different variables).

Luckily, we have a good answer to this at this moment, through the BizTalk mapper workflow activity.  It makes these workflows more model-driven and less code-oriented.

Installing the activities

It is important to know that the activities are only available in the Workflow designer toolbox, when installing the BizTalk LOB Adapter pack!  They are not part of the BizTalk 2010 installable and it looks like the installer of the adapter pack is checking if BizTalk 2010 is available to see if he should make the activities available.

Sample workflow service

The scenario I’ll be working out in this post is the exposing of a service that will call another web service.  This service will implement some specific logic and will also hide and abstract the actual names and contracts of the ‘backend-service’.  The functionality we provide through this service is a loanrequest, where a consumer can request a loan and gets response with a result. 

The exposed contracts

<to do : copy contracts  />

Designing and beginning the workflow service

1.       After adding a new workflow service, I changed the action and namespace on the ReceiveRequest activity. 

2.       I also defined two variables: loanRequest and loanResponse that apply to their corresponding DataContract message types.  These are linked to the ReceiveRequest and SendResponse activities.

Adding a service reference to the ‘backend service’.

1.       Right-clicking the project and selecting Add Service Reference, pops up the dialog where I am linking to the WSDL of my web service.
 

2.       After a rebuild of this project, a new custom activity is added to my toolbox that can be used to call the web service operation.  If my web service would have had multiple operations, multiple activities would have been added, one for each operation.  They totally hide the implementation of doing this web service call.

 

3.       Now, two new variables get defined that represent the request and response to the backend service.  (notice the uppercased host-like names J)
 

4.       Dragging the LOANSIM activity to the designer canvas allows us to link the variables to the Activity Parameters of this web service operation call.

 

Use the BizTalk mapper activity to map request and response variables

1.       The Mapper activity is available in the BizTalk category in the Workflow Toolbox.  I just dragged two instances of this activity to the canvas, just before and after the LOANSIM activity.

2.       Once the mapper is dragged to the canvas, the input and output data types need to be configured, using the type picker dropdown.  This will be used to define the BizTalk map inputs and outputs.

 

3.       After this, the correct variables need to be linked and configured to their corresponding parameter.

 

4.       Clicking the Edit button on the activity, allows us to automatically generate a new BizTalk map that will use these types or we can reuse an existing map.

 

 

5.       Creating a new map, results in a new Biztalk mapper being opened.  Various schemas are being generated and added to the project in a specific sub folder.  The nice new BizTalk mapper can be used to make the mapping between both objects.  If required, custom XSLT functionality can also be used for this.

 

6.       The above logic has been done for both the request and the response messages.

Resulting workflow

 

 

 

 

 

 

 

ACSUG June Meeting – BizTalk High Availability with Lloyd Lim

ACSUG June Meeting – BizTalk High Availability with Lloyd Lim

The next ACUSG meeting is confirmed for Thursday the 24th of June at 5:30pm (presentation starts at 6:00pm). Don’t forget to register if you are attending. Free drinks and pizza as always! BizTalk High Availability Location: Datacom Systems Limited, 210 Federal Street, Auckland CBD, Auckland, 1141. Parking on the street around Datacom. There is also […]

Videos & Feedback on the new features of BizTalk Server 2010

It’s been about 10 days since we have launched the Beta version of BizTalk Server 2010 together with the Windows Server AppFabric RC. The virtual launch site includes a 4 new videos of recorded demos that you can get access to only if you pick the BizTalk technology stands and bring the videos play list. to make sure you discover them here are the direct links to these videos:

  • BizTalk and AppFabric Integration – using the Mapper and LOB Adapters within Workflow Designer  
  • Using the new BizTalk Mapper to create new maps (new features: search, predictive matching, “move to page” and enhanced functoid configuration)
  • Using the new BizTalk Mapper to modify an existing map (new features: search, sibling coalescence, copy/paste of functoid, noise reduction enhancement)
  • Using the new setting dashboard to fine tune BizTalk performance (includes: examining settings, modifying setting per host, exporting and importing settings)

 

The release of BizTalk 2010 Beta version has promoted BizTalk MVPs and technical Microsoft experts to blog about their feedback and experience with it. Some of them have been test driving BizTalk CTP for a few weeks now.

They have provided quick reviews of their most favorite these features. You may want to take a look at these blog entries:

If you have not done so it is not too late to start evaluating BizTalk Server 2010 Beta.

Join the party Today!

Technorati Tags: BizTalk,BizTalk Server 2010 Beta,Videos,Demos,Feedback