by stephen-w-thomas | Jun 11, 2005 | Stephen's BizTalk and Integration Blog
Just a quick note about calling a BizTalk Orchestration exposed as a web service with the input and output schema that have the same type.
In this case, the web service wizard creates the input as byref rather then byval.
by stephen-w-thomas | Jun 4, 2005 | Stephen's BizTalk and Integration Blog
Many of these were released a few months ago in a beta form but now they are available on the Microsoft website.
They include the following:
BizTalk Server 2004: A Messaging Engine Overview
BizTalk Server 2004 and Web Services
Connecting to the Elemica Network with BizTalk Accelerator for RosettaNet 3.0
Developing Integration Solutions with BizTalk Server 2004
Implementing UAN on BizTalk Server 2004 to Integrate Siebel and SAP
Risk Scoring with BizTalk Server 2004 and the Business Rules Framework
Transactions Across BizTalk Server 2004
Working With BizTalk Adapter for SQL Server
BizTalk Server 2004 Convoy Deep Dive
They all look like great reading!
In addition, I have finally gotten around to getting my website up and running. It still needs A LOT of work, but at least it lists all my BizTalk samples, tools, and demos in one place. Check it out at http://www.biztalkgurus.com
by stephen-w-thomas | May 25, 2005 | Stephen's BizTalk and Integration Blog
NAcks or Negative Acknowledgments are small SOAP messages that exist in BizTalk when a messaging error occurs. This happens when adapters fail, pipelines fail, messages do not match subscriptions, ect.
These messages can be subscribed to and a business process can be written to react to all of these messages or specific error codes.
This sample Orchestration shows how simple it is to catch these messages. To subscribe to a NAck, just create a subscription to: BTS.AckType = NACK. It’s that easy!
Download: NAck Catching Sample
Setup: Download and extract the solution. Create a receive port that causes a routing failure. Drop a message and watch for the output in the Out folder.
For a routing failure NAck, the following properties are available in the message context and could be accessed inside the Orchestration:
AckDescription
AckFailure Category
AckFailure Code
AckID
AckInboundTransportLocation
AckOwnerID
AckReceivePortID
AckReceivePortName
AckType
With this information, logic could be included inside the Orchestration to extract / reprocess a message or log the error to an additional notification facility (other then the event log since it would already be logged there).
by stephen-w-thomas | Apr 28, 2005 | Stephen's BizTalk and Integration Blog
Congratulations to everyone who is going to attend TechEd 2005 in Orlando, FL – since it is now sold out.
I just wanted to point out a few exciting instructor led labs that I will be leading. If you like my blog content, chances are you will like these labs.
These labs will give you a chance to walk through step-by-step the topics listed below. I will also be available to answer questions.
Using InfoPath SP1 and SharePoint 2003 to Design an Effective Tracking System for BizTalk Server 2004
Abstract: Learn how to utilize InfoPath SP1 through SharePoint to display business process exception returned from within a business process. Learn how to build a simple InfoPath form to display exception information, publish this form into SharePoint, use processing instructions to reference this form, and use delivery notification to catch delivery errors.
Using Sequential Message Processing and the Flat File Disassembler to Map a Large Flat File in BizTalk Server 2004
Abstract: In this lab, you will learn to use the native features of the Flat-file disassembler to break up a large inbound flat file into single messages to allow for easy processing inside BizTalk. Without this ability to break up the document, it would be difficult to process documents of this size. In order to maintain the order of the single messages inside the Message Box, the messages will be processed sequentially using a Convoy Messaging Pattern. Each record will be mapped and written in order to an output file. Delivery notification will be used to ensure sequencing and delivery of the single messages.
If you do not make it to my labs, you can always catch me in the cabana room or after these sessions if you have any questions or just want to say “HI”.
by stephen-w-thomas | Apr 25, 2005 | Stephen's BizTalk and Integration Blog
Message context is a critical part of message routing and processing inside BizTalk Server 2004. How this context is handled during mapping is different depending on the location of the mapping. The context is copied differently using Receive Port mapping verses Orchestration mapping.Why should you care? If you are using Direct Message Box Binding to route message out of an Orchestration you might not have the correct context propertied to route your message. This only impacts messages that needed to be routed out of an Orchestration based on a value in the original pre-mapped message. Let’s look at the two types of mappings and what happens to the context.Receive Port MappingThis is a common type mapping since it generally allows for greater flexibility. Receive port mapping occurs after the pipeline completes. This means that context properties will already be promoted by various stages of the pipeline. In this case, the new mapped message has all the original context values of the initial message with any duplicate values updated (i.e. like message type is now the type of the mapped message). In addition, any prompted values in the mapped message are now promoted into the context.To sum it up, Receive Port mapping yields a superset of message context data from both the original message and the new mapped message.Orchestration MappingOrchestration mapping behaves in a totally different manner. Using Orchestration mapping, the context of the original message is NOT copied automatically into the newly created message. But, any promoted fields in the new message are promoted into the message context after mapping. Getting the original message context into the new message is easy. Just add a Message Assignment shape after the transform but inside the same Construct. Add the following code: MessageOut(*) = MessageIn(*)This would look something like this:This will copy the entire context from the original message into the new message and result in a superset just like the Receive Port mapping. Individual message context fields can also be copied using this same method.To sum it up, Orchestration Mapping does not copy original message context by default.Overall, it is import to know what values are inside your message context as your message flows through your workflow process. This will ensure correct message routing and help resolve routing failures quickly.
by stephen-w-thomas | Apr 22, 2005 | Stephen's BizTalk and Integration Blog
The Convoy Deep Dive white paper and sample code is now available on MSDN. You can read the paper on-line and download the sample code here.
For anyone who read the “beta” version of the paper, Scenario 2 went through a minor change. I now use an atomic scope to build the output message rather then a simple string concatenation. This eliminates messages collecting inside the message box in the “Delivered, not consumed” status.
It seems that the status of a message is not updated until a persistence point is reached or the Orchestration dehydrates. I would guess this is the case with any messages that are used inside an Orchestration and not just inside a looping-receive Convoy. But, I have not verified this.
Overall, this change provides a better solution since the Orchestration state is being saved when each new message arrives and can be easily be restated/recovered in the event of a system failure.
by stephen-w-thomas | Apr 4, 2005 | Stephen's BizTalk and Integration Blog
Microsoft has released 5 new White Papers today in a “Beta” mode. Full details on all 5 are available here.
They include the following:
– BizTalk Server 2004 Web Services (Brian Loesgen)
– BizTalk Server Internal Workings (Internal)
– SQL Adapter Deep Dive (Todd Uhl)
– Convoy Deep Dive (Stephen W. Thomas)
– Extending BizTalk Server with Host Integration Server (Jon Fancy)
They all look like great reading. I’m rather fond of the Convoy Deep Dive paper myself.
As always, feedback is welcome.
by stephen-w-thomas | Apr 1, 2005 | Stephen's BizTalk and Integration Blog
In addition to all the other cool stuff available in BizTalk Server 2004 Service Pack 1 is the addition of the Additional Flat File Schema Properties to the schema properties window when working with Flat Files.
Now, properties like Allow Early Termination, Generate Empty Nodes, Lookahead Depth, Parse Optimization, and Suppress Empty Nodes can be set inside Visual Studios. This will eliminate the tedious and error prone manual editing of the schema using notepad. Error prone? Yep, I messed this one up once…
by stephen-w-thomas | Apr 1, 2005 | Downloads
Microsoft BizTalk Server 2004 supports the use of convoy message processing, a new messaging pattern. Convoys are a messaging pattern and not a feature of BizTalk Server 2004. A convoy is not something a customer can use, like the Rules Engine, but instead it is something that the business process dictates and requires.
This paper discusses examples of business scenarios that require convoy message processing. After establishing a business need through the scenarios, this paper explains basic convoy theory and the different types of convoy messaging patterns. This paper discusses a solution to each business scenario and reviews each included sample.
View this whitepaper online at: http://msdn2.microsoft.com/en-us/library/ms942189.aspx
by stephen-w-thomas | Mar 31, 2005 | Stephen's BizTalk and Integration Blog
Today I was working on some content for Tech Ed when I found a major error in a sample I posted about 4 months ago.
The error caused the CR-LF’s between records to be included in the positional character count during debatching and actually into the messages themselves. This through off the file layout but did not give any errors. In fact, the expected result of three files were received. They just did not have the right data in them.
I have seen similar problems in the past were the Flat File Disassembler does not behave in any way as I would expect.
Below is before and after screen shots of the schema.
Before: After:
The error is easily fixed by added an additional node into the schema that is Delimited, Post Fixed with CR-LF as the Hexadecimal delimiter. This fix was required in both the Header and SingleRecord schemas.
The updated sample is available for download.
Download: Flat File Disassembler Sample
Watch the video: Flat File Disassemblier Output Options Video