I still had this drawing lying on my desk since 2009. As it MIGHT be almost correct, why not publish it? ;-)
This is a very slick REST based sample that leverages ATOM feeds to publish event notifications. Hats off to Ian and the guys behind the sample. Nothing can beat the good old polling consumer. With an ATOM implementation the guaranteed delivery responsibility is in the hands of the consumer. This opens up the possibility for the consumer to further optimize the communication by only processing those categories where it is interested in. Categories are basically entry meta data (properties of the...
CharacterTranscoder is a BizTalk pipeline component + stream class that can transcode a stream from a configurable source encoding to a configurable target encoding. The source is now available on github.com. Git takes some time to get used to. I managed to put something online somehow, which means everybody should be able to :-) Microsoft also offered a free support case for the FFASM bug and the behavior is already reproduced at their side. Nice...
In order to get the FFASM encoding bug looked at, Microsoft Support asked me to call an 0800 number and provide payment info :-( Since I am still convinced every bug should be reported I will try again next month when I have my client's support contract details (the guy with the info is on a very long summer holiday :). In the mean time I have developed a custom fix which you may use at your own risk... This TranscodingStream class is a binary transformation stream decorator: while reading, the underlying...
Or how to fix a bug while introducing another one that's a lot nastier. Let's start by describing the original bug: the BizTalk flatfile assembler has issues with custom target (output) encodings. When compiling a custom pipeline with the FF assembler and configuring the 'target charset' in the pipeline designer everything works as expected and you will get your messages in the desired encoding. When you want to dynamically control the encoding, according to the docs, you should also be able to do...
Recently we have been receiving another series of complaints from clients that had trouble reading the pdf attachment of a BizTalk dynamic generated email. For some years we have been using the MIME encoder pipeline component and dynamically buildup our emails as multi-part message from inside orchestration. We got the mustard from here. As said, it wasn't the first time we had these complaints. But it was always for a small minority of users only. Hence it sounded more like a user-specific issue....
The previous BAM portal post reminded me of some BAM classes I re-use but never blogged about... Here is my small-scale proven semi-automated alternative based on the mapper pattern and nullable fields. The core functionality comes from a 'BAM gateway class' which is composed with a IMapper<A,B> instance, responsible for mapping strongly typed activities to an object array. This object array contains the activity property names and corresponding values just like the eventstreams likes them,...
Yesterday I've tried to reproduce the scenario 'Configuring a Static Port to Behave as a Dynamic Port' from the excellent MSDN article 'Consuming and Hosting WCF Services with Custom Bindings in BizTalk Server' but with a twist: instead of writing the BTS.OutboundTransportLocation context property inside a custom pipeline component I've tried doing this from inside orchestration. It didn't work. I had to do it differently. Let me explain... If you manually promote a custom value for the BTS.OutboundTransportLocation...
For a couple of years I have been tracking message-bodies inside BAM but only recently I was asked to make a BAM Portal document link to these message bodies that actually works :-) Strangely enough I couldn't find any solution on Google so I tried to figure this one out myself. Guess what? I had to jump through quite a few hoops. I decided to share those hoops with my other 2 blog readers (yes you). Hoop 1: the 1st and most obvious step is getting the message bodies into the BAM tables using the...
This post is about Finite State Machines, the Flying Spaghetti Monster is for next time. For one of the EAI projects I'm working on I needed a specific StreamReader that adds field-wrappers (around the fields, obviously) of a char-based stream. For example: field1-1,field1-2;field2-1,... => "field1-1","field1-2";"fiel... My first approach was the currently popular test-driven one: a default passthru read method and a bunch of tests, that of-course all initially failed. I trusted...