BizTalk Summit London 2013 – The experience

BizTalk Summit London 2013 – The experience

The BizTalk Summit 2013 in London was a huge success. Saravana Kumar
from BizTalk360 did an outstanding job organizing this event with Microsoft.
Over a 140 attendees,  more than 70 different companies from 15
different countries
(UK, Ireland, USA, Denmark, Netherlands, Austria,
Belgium, Sweden, Italy, Spain, Switzerland, Germany, France, Norway, India).
Including the speakers there were 10 Microsoft Integration MVPs
present. On the Q&A panel there was Jon Fancey, Michael Stephenson and
Charles Young. Stephen W. Thomas flew over from the US to
attend the event.

My session was straight after the Keynote by Guru
Venkataraman
/Ravi Krishnaswamy from Microsoft Product
Group. I was given the opportunity to co-present with Guru in Almere (Avande)
during the special BizTalk User Group event. In London I did a session on the
new cloud related adapters that’s going to ship with BizTalk Server 2013.

BizTalk 2013 will feature some new adapters, the
WCF-BasicHttpRelay, WCF-NetTcpRelay, SB-Messaging and
WCF-WebHttp. The first three have capabilities to configure
connectivity with the Windows Azure Service Bus. This will enable you to create
solutions that will enable communication between systems and applications across
network boundaries. The WCF-WebHttp adapter will bring Rest Support for
BizTalk. In my session I demonstrated the characteristics of each adapter with a
demo.

My session was followed by Saravana. He talked about the
monitoring and management of BizTalk Server using BizTalk360.
Imaging that is already the FIFTH release of the product with
the next version under way. That’s just amazing release cycle in just two years!

Lunch was around noon and followed by a Q&A panel with Jon Fancey, Michael Stephenson, Charles
Young
joined by Microsoft Kent Brown and
Ravi Krishnaswamy. No holds barred as any question was allowed
to be asked by the attendees. A lot of questions were targeted towards
Microsoft. Ravi and Kent did an excellent job answering them. After Q&A Sandro
Pereira
took the stage with his session on BizTalk Azure Service
EAI/EDI capabilities containing some deep technical demos.
The session after Sandro was followed by two more sessions.
The architect assessment by Nino Crudele. He did the most hilarious
session of the day. With his Italian accent, jokes and funny customer scenario’s
he had the room laughing to tears.

 
 

The last session was done by the new Microsoft Integration MVP Tord G.
Nordahl
. During his session he discussed the platform improvements
in Windows Server 2012 and SQL server 2012 that BizTalk people need to be aware
of.

It was a great experience and honor to share the stage with my fellow
speakers (#BizTalkCrew), fellow Microsoft Integration MVP’s and
Microsoft Product Group. As speakers we have done a good job providing sessions
on different topics around BizTalk Server 2013, Azure and BizTalk360.

 
 

Thanks Saravana Kumar, Microsoft and all the attendees for
making this event something to remember by.

I had a great time. I enjoyed the
discussions with the attendees and meeting the BizTalk community. It was good to
meet Naushad
Alam
, Stuart Brierly, Charlie Mott and Colin
Meade
in person.

The next event done by us will be in Portugal in March 2013. See you there!

Cheers,

Steef-Jan

Debugging pipeline components and other .NET  components executed by BizTalk Host Instances

Debugging pipeline components and other .NET components executed by BizTalk Host Instances

I have seen a lot developers struggle with debugging pipeline components and other .NET classes that get executed by BizTalk host instances. I have also often heard statements claiming that these sorts of artifacts are hard or impossible to debug in the BizTalk runtime. I would very much like to clear up this notion for […]
Blog Post by: Johann

Extending the BRE Pipeline Framework to conditionally add namespaces/prefixes to the root element of an XML Document

Extending the BRE Pipeline Framework to conditionally add namespaces/prefixes to the root element of an XML Document

A colleague of mine was implementing a system which required a generic XML on ramp that accepted messages from a variety of trading partners. He quickly encountered the age-old problem of not so sophisticated trading partners sending XML documents which contained no namespaces. This can quickly become a nightmare scenario in the world of BizTalk […]
Blog Post by: Johann

BizTalk Summit 2013 – London. The story of the day

It’s a great feeling when you successfully execute something after months of work. That’s exactly how we feel after BizTalk Summit 2013, London event after 5 months of preparation. I thought I’ll summarise the story of the day when it’s fresh in my mind. The day began with a warm welcome at Microsoft office, London […]

The post BizTalk Summit 2013 – London. The story of the day appeared first on BizTalk360 Blog.

Blog Post by: Saravana Kumar

BizTalk 2013: Swift Adventures

While getting my BizTalk SWIFT environment prepared on BizTalk, I decided to test
the waters by running through the Tutorial – big trouble in little Sydney resulted.

While the tutorial is comprehensive, it’s written for previous versions of the SWIFT
accelerator so there’s the few paths (BREConfigurator.exe.config) that need correcting
for some of the SDK tools. Which I can live with as their part of the SDK and this
isn’t quite baked BizTalk 2013 yet.

The part where I hit trouble is that during the tutorial once schemas + rules are
deployed, you are to drop a sample MT103_Sample.txt into a folder and viola – it appears
as XML in another folder.

The MT103_Sample.txt is incomplete/incorrect for the SWIFT Schema
– I had a whole series of errors. Called upon my trusted SWIFT guru Angelo whom could
just look at the message and tell me what bits to remove and I should replace parts
with a an Australian Bank who’s code is ’XXXXSSBCXXX’ (scared me), we almost got the
file working.

We decided to settle on this working file MT103 Sample:

Feel free to use it and remove the leading and trailing CRLF in your file.

Mick.

{1:F01SAAJBEBBAXXX0000000001}{2:I103SAAJBEBBXXXXN2020}{4:
:20:TEST000001
:23B:CRED
:23E:SDVA
:23E:INTC
:23E:CORT
:23E:PHOB
:23E:TELE
:23E:PHOI
:26T:AAA
:32A:001118USD3,34
:33B:DEM3,34
:36:1,3456789012
:50A:/34x
SALABEBB
:52A:/C/34x
SALABEBB
:53D:/D/34x
4X35x
:54B:/C/34x
35x
:55B:/C/34x
35x
:56A:/C/34x
SALABEBB
:57A:/C/34x
SALABEBB
:59:4X35x
:70:35x
3X35x
:71A:OUR
:71G:USD1,34
:72:/AAAAAAAA/25x
/A/32x
//33x
/A/x
//x
//x
:77B:35x
2X35x
-}

 

And here’s the original MT103 Sample.txt working message:

{1:F01BOFAUSNYJXXX4321000123}{2:I103BANKDEFFAXXXN2020}{3:{103:CAD}}{4:
:20:NY20040126000111
:23B:CRED
:32A:040116USD1000000,00
:50K:/987654321
Big Deal Real Estate
Madison Avenue
New York, NY USA
:57A:/654321
NOSCATTT
:59:/1234567890123
I. Buy Buildings
200 Front Street
Toronto, Ontario
Canada
:70:re real estate purchase
10000 King Street East
Toronto
:71A:OUR
-}{5:{CHK:123456789012}}

Blog Post by: Mick Badran

Using the HL7 Accelerator, MLLP & ESB Toolkit in BizTalk 2013 to process HL7 v2.X messages

BizTalk Accelerator for HL7 extends the capabilities of BizTalk Server for health care providers. Health Level 7 (HL7) is an industry-standard application protocol for electronic data exchange of information.
The Minimal Lower Layer Protocol (MLLP) is the most common mechanism for exchanging the HL7 data. MLLP uses the TCP/IP protocol to transfer the data. MLLP delimiters are used to recognize the start and the end of message.

In BizTalk are often different Receive Ports used for each message type that is sent to BizTalk but some healthcare applications support only one connection. As always there are different solutions but in this example I’m going to use the ESB toolkit to create a MLLP On Ramp and use business rules to determine on the basis of the message type which routing slip or itinerary has to be initiated.

The following tasks must be performed:

  • Create a BizTalk project with the required HL7 schemas for the HL7 v2.X message types.
  • Create maps to transform the HL7 messages to the destination messages.
  • Create a pipeline with the HL7 disassembler pipeline component and necessary ESB Toolkit components.
  • Create an itinerary for each message type to process the messages.
  • Create business rules to determine which itinerary has to be initiated.
  • Create a Receive Port & location that uses the Minimal Lower Layer Protocol (MLLP) and the custom pipeline.

 

Before You Begin

You have to install the BizTalk 2013 Accelerator for HL7 & ESB Toolkit before you perform the steps later in this How-to topic:

BizTalk 2013 Accelerator for HL7
Download the BizTalk2013 Accelerators Beta file from the Download Center
 
Run the downloaded BizTalk2013AcceleratorsBeta.exe from your hard drive and choose the directory from which to install the downloaded product.
 
From the directory where you extracted your files, run Setup.exe and follow the instructions to install the BizTalk 2013 Accelerator for HL7.
 
The installation is fairly simple. Perform a custom installation to install also the MLLP test tools.
 
ESB Toolkit
With BizTalk Server 2013 Beta, ESB Toolkit is now fully integrated with BizTalk Server. Also, the
ESB Toolkit configuration experience is simplified to enable a quick setup. The installation and configuration is described on MSDN and in an older blog post.

            

Steps

Create a BizTalk project with the required HL7 schemas for the HL7 2.X message types.
the HL7 Accelerator comes with 1300 predefined schemas to match almost every 2.X (2.1 through 2.5.1) message type.
First you will need add the following core schemas:
datatypes_XXX.xsd, segments_XXX.xsd, and tablevalues_XXX.xsd
 
The segments_XXX.xsd schema will be imported again in the HL7 schema
 
Regardless of the specific HL7 version that you are processing, you will always have an MSH segment. Because of the backward-compatibility rules, the version 2.5 MSH segment is appropriate for all prior versions.
 
 
Create maps to transform the HL7 messages to the destination messages.
You almost always need a map to transform the HL7 message to the required message type.
In this example I’m transforming the HL7 message to a canonical message for internal
BizTalk Server use.
 
 
Create a pipeline with the HL7 disassembler pipeline component and necessary ESB Toolkit components.
Create a custom pipeline in Visual Studio with the HL7 message disassembler pipeline component to convert the message to XML. Add the ESB Itinerary Selector  and the ESB Dispatcher components to select the itinerary.
 
 
Create an itinerary for each message type to process the messages.
Create an itinerary for each message type to transform and route the HL7 messages.
Export the itineraries to the itinerary database so they can be used by the Itinerary Selector component.
 
 
Create business rules to determine which itinerary has to be initiated.
Create business rules for each message type and set the Itinerary Name based on the
ContextMessage Type.
Publish and deploy the policy.
 
 
Create a Receive Port & location that uses the Minimal Lower Layer Protocol (MLLP) and the custom pipeline.
When the HL7 projects are deployed to BizTalk you can create a Receive Port and Receive Location that uses the MLLP adapter and the custom pipeline.
In the MLLP Transport Properties dialog box, the following properties are required:

Connection Name : Name of monitored connection.
Host : Specify a local interface on which to listen for incoming connections
Port : Local port ID to listen on
 
With the custom pipeline it’s necessary to set the name of the business rule policy that is called to determine the itinerary.
Use the Configure Pipeline dialog box to configure the following Itinerary Selector component properties:
a. Click the ItineraryFactKey property, and then type Resolver.Itinerary.
b. Click the ResolverConnectionString property, and then type
BRI:\\policy=MyPolicy;useMsg=true;recognizeMessageFormat=true
 
 

To test the MLLP onramp, business rules and itineraries

You can use the command-line tools from the Accelerator for HL7 to send encoded MLLP messages to BizTalk.
The structure of an MLLP message is given below:
<SB> + <Message> + <EB> + <CR>

<SB> = Start Block. Messages are prefixed with start byte
<Message> = HL7 Message
<EB> = End Block. Messages are terminated with end byte
<CR> = Carriage Return

 
The following shows the syntax you use to invoke the mllpsend command-line tool:
mllpsend.exe [/I <IP>] [/P <PORT>] [/TWOWAY] [/REPEAT <n>] [/F <FILENAME> /SB nn /EB nn /CR nn
 
When BizTalk receives the HL7 v2 message it’s converted to XML in the pipeline by the HL7 message disassembler pipeline component .  The Itinerary Selector component calls the Business Rule engine that determines the message type and set’s the itinerary. In my example itinerary that is executed, the message is transformed to a canonical message and routed to the destination folder.
 
 

Conclusion

The BizTalk Accelerator for HL7 works well with the ESB Toolkit. In this example I’ve skipped however the Acknowledgement (ACK) messages. Maybe nice to check out in a future post if it’s possible to use the ESB toolkit to return the ACK and NACK messages!

Interacting with Clouds From Visual Studio: Part 2 – Amazon Web Services

Interacting with Clouds From Visual Studio: Part 2 – Amazon Web Services

In this series of blog posts, I’m looking at how well some leading cloud providers have embedded their management tools within the Microsoft Visual Studio IDE. In the first post of the series, I walked through the Windows Azure management capabilities in Visual Studio 2012. This evaluation looks at the completeness of coverage for browsing, […]
Blog Post by: Richard Seroter