Just finished the main writing stage for the REST book.  Wow books are hard (people
ask me all the time why I dont’ write a book on BizTalk and or WF and sometimes I
forget why – books are hard).

Next week I’m teaching the R2
course for Pluralsight in NY
.  Should be fun.  Sam will
be sitting in, so that should add some color to the course ;-).

Also, Monday night I’m doing a talk at the NY Connected
Systems User Group
.  Come by if you are in the area. 


Check out my BizTalk
R2 Training

Comma Delimited to Pipe Delimited for Thomson Process

Comma Delimited to Pipe Delimited for Thomson Process

The Thomson system for processing UPS files uses pipe delimited flat files and the UPS generated files are comma delimited. Commas were being replaced with pipes manually and we developed a process that does this automatically. The important part of this was changing the matter field format from the user input to a standard.

The matter field was coming in using the following formats: 99999-01, 99999/01, or 99999.01. They needed to be in the format xxxxx.xxxxx. They would come in all numeric, or alpha-numeric. They were separated by either a (-), (/), or a (.) or a white space.

As an example a Matter Field would come in looking like this:

image or image or image the output needed to be all numeric looking like this image (five numbers followed by a period and five more numbers and enclosed in pipes.)


If anything came in with something besides a period as a separator we replaced it with a period. If the segment on the left came in with anything less than five numbers we padded it with zeros i.e. 01 -> 00001, anything more than five numbers we trimmed it to five. If the second segment (right of the separator) came in with anything other than numbers i.e. 12345.02bigman, we trimmed the letters and padded the number with 0’s ie 12345.00002.

We also had to deal with fields being populated with commas in the text ie. ,”America Town, USA”,. We set up our BizTalk Program to recognize the the quotes and output |”America Town, USA”|, essentially ignoring any problems with commas in text.

SOAP Adapter – Confusing error with an untrusted Root Certificate Authority

I recently wrote about problems with two-factor authentication and installing a certificate in the correct certificate store. Well, we’ve had similar problems, this time securing the transport link on a SOAP adapter, which resulted in the following error:
Could not establish trust relationship for the SSL/TLS secure channel with authority ’your machine name’. The underlying connection […]

I am really thinking about reviving this blog…

I am really thinking about reviving this blog…

…but not the way it was before.

My Russian blog on Technet is flooded with readers, and I am wondering if I could bring some of that value to English-speaking audience.

First, while I still will publish an occasional technical piece or two, the topics will be much more diverse and more aligned with my interests. Which includes management (no, I don’t want to manage, been there, done that, did not like it, I am just interested in theory), teams dynamics, evolutionary approaches to society and management, corporate parasites (no, that’s not just a rude analogy, that’s a precise term), and an occasional piece or two on other topics from science to my personal adventures.

And, just in case somebody don’t understand it, no Windows Home Server articles. Sorry. When I published my previous article half a year ago, I really meant it. Ciao, Bambino, Sorry. No Windows Home Server for me.

QuickLearn Releases Expert Series Training!

QuickLearn has just released a new series of BizTalk Server 2006 R2 training classes for advanced BizTalk developers. The Expert Series classes provide a drill-down on specific BizTalk features and toolsets that are currently covered only at a high level in our BizTalk Developer Immersion and BizTalk Developer Deep Dive courses. The Expert Series classes are 2-3 days long and cover BAM, RFID, ESB, EDI, BRE, and Testing. You can learn more about these classes here.

IBM to buy ILOG

IBM to buy ILOG

IBM has announced plans to buy ILOG for $360m, subject to antitrust scrutiny. ILOG specialises in rules-based processing centred on their JRules engine. Although it has been obvious for some time that ILOG was interested in being purchased, the news still came as something of a surprise. In recent times, they have been pursuing a greater presence in the .NET world, releasing a .NET version of their engine, becoming a Microsoft Global ISV partner and joining Microsoft’s prestigious Business Process Alliance. Not surprising, then, that a few months ago there were rumours circulation of an impending purchase of the company by Microsoft. I have to say that, when I put this to a Microsoft contact a few months ago, it was strenuously and unequivocally denied that any such deal was being, or had ever been, considered. I have no idea if there was ever any truth in the rumour. Still, I can’t help wondering if an opportunity has been missed.
Now that the company is to be bought by IBM, and their technology is to be incorporated into WebSphere, I wonder what will become of their partnership with Microsoft and their .NET offering.

Replace any String or Character Pipeline Component – Regex Version

Replace any String or Character Pipeline Component – Regex Version

I had previously created a pipeline to replace any string. What I liked about it was its simplicity. I could just put the string I wanted replaced, followed by a comma then the string I wanted as the replacement. I wanted to expand that functionality to allow replacing commas and other characters including HEX characters. Regex was my solution, so my new version allows you to replace any string with another using Regex expressions for .NET. Just include as many replacements as you’d like separated by commas.

Here’s a sample Regex expression I included:

(\d)\x2C(\d),$1$2,%u00bb,HEX CHAR,FRANK,RIZZO

It replaces

1. a digit surrounded comma with nothing ((\d)\x2C(\d),$1$2)

2. a HEX character “%u00bb” with the words HEX CHAR (%u00bb,HEX CHAR)

3. The word FRANK with RIZZO (FRANK,RIZZO)

Here is my input file:


Here is my output file:


Note to Self: Don’t forget to put parentheses around the groups for which you are searching. It allows the $n to work.

If you’d like a copy, please email me.