Enterprise Library Logging with BizTalk 2006

First off, it has been a long time since I’ve last blogged.  I have been very busy working on some other endeavors and I was on vacations for a few weeks.  I am now working on some new blog posts and samples so I can get back into the swing of things.


 


Recently, I have been working with Enterprise Library for .net 2.0.  I was able to get basic logging set up and working with little effort using this static method call:


 


Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(oLogger);


 


Were oLogger is an instance of Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry.  To get this to work, all I had to do was add a reference to Microsoft.Practices.EnterpriseLibrary.Logging and I was all set.


 


Now, I was trying to add a category so I can separate out tracing messages from error messages.  The call looks like this:


 


Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(oLogger, “Trace”);


 


With “Trace” being a string for the category.


 


When I try to build this inside Visual Studios 2005, I get an “unknown system exception”.


 


I am not really sure why this is happening.  I’m guessing it is because internally categories are a Generic Collection and for whatever reason when I define a category the BizTalk compiler can not handle it?


 


I was able to find a simple work around that accomplished my goal.  I created a simple .net helper class to wrap the static method call.  Rather than using the overload to the Write method that takes in a category, I am now able to add the category to the collection.  The helper method looks like this:


 


static public void myLog(Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry Message, string Category)


{


// Clear the collection first to make sure nothing is already in there


Message.Categories.Clear();


 


// Add the one category needed for logging


Message.Categories.Add(Category);


 


// Make the static method call for logging


Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(Message);


}


 


I’m now able to set up two categories in the configuration file to accept trace events and error conditions.

BizTalk Server Web Casts galore!!

We all need to thank Erik Leaseburg in the US for collating and keeping this list up to date! Thanks Erik, the whole BizTalk world thanks you 😉

 

2003

Aug 29          BizTalk 2004 Overview & VS.NET Integration – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG&pw=35DKTQ

 

Sep 5            Setup & Installation – Vipul Goyal

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-1&pw=35DKTQ

 

Sep 19          2002 to 2004 Comparison & Migration – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-2&pw=35DKTQ

 

Sep 26          XML Editor – Guru Venkataraman

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-3&pw=35DKTQ

 

Oct 3            XML Mapper – Vipul Goyal

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-4&pw=35DKTQ

 

Oct 10          Orchestration – Dale Michalk

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-5&pw=35DKTQ

 

Oct 17          Deployment – Rajan Dwivedi

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-6&pw=35DKTQ

 

Oct 24          Content Based Routing – Marty Wasznicky

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-7&pw=35DKTQ

 

Nov 7            Pipeline & Custom Components – Gavin Islip

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-8&pw=35DKTQ

 

Nov 20          BizTalk Message Queuing (MSMQ/T) – Rajan Dwivedi

                   http://www.placeware.com/cc/microsoft/view?id=6DWNGR-16&pw=494ZRK

                   Note: Click on Agenda slide to skip first 30min of unrelated information

 

Dec 5            Web Services and Orchestration – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-10&pw=35DKTQ

 

Dec 12          Rules Composer – David Wang

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-11&pw=35DKTQ

 

Dec 19          Advanced Orchestration, Part 1 – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-12&pw=35DKTQ

 

2004

 

Jan 9            Health and Activity Tracking (HAT) & Debugging – Patrick Smith

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-13&pw=35DKTQ

 

Jan 16          Business Activity Services (BAS) – David Wang

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-14&pw=35DKTQ

 

Jan 23          Advanced Orchestration, Part 2 – Marty Wasznicky

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-15&pw=35DKTQ

 

Jan 30          Human Workflow Services (HWS) – Raman Mahal

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-16&pw=35DKTQ

 

Feb 6           InfoPath/BizTalk 2004 Integration – David Solomon

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-17&pw=35DKTQ

 

Feb 13          BizTalk Adapter Framework – Gavin Islip

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-18&pw=35DKTQ

 

Feb 20          Business Activity Monitoring (BAM) – David Wang

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-19&pw=35DKTQ

 

Feb 27         BizTalk Explorer & Administration – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-20&pw=35DKTQ

 

Mar 5           Enterprise Single Sign-On (SSO) – Jonathan Gao

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-21&pw=35DKTQ

 

Mar 12          EDI Covast Adapter – Scott Mauvais

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-22&pw=35DKTQ

 

Mar 26          SQL Adapter – Ananth Krishnamurthy (Equarius)

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-23&pw=35DKTQ

 

Apr 2            Performance, Stress & Scalability – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-24&pw=35DKTQ

 

Apr 16          SAP Adapter – Bryan McCutchan

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-25&pw=35DKTQ

 

Apr 30          Migrating from BizTalk 2002 to 2004 – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-26&pw=35DKTQ

 

May 7           MQSeries Adapter – Susie Adams

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-27&pw=35DKTQ

 

May 14         SharePoint Adapter – Steve Resnick

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-28&pw=35DKTQ

 

May 21         Advanced Orchestration – Erik Leaseburg

                   http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032253626

 

May 28         HIPAA 3.0 Accelerator – Monica DeZulueta

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-29&pw=35DKTQ

 

Jun 18          Advanced Dev – Crypto Pipeline, Submit Direct, Orchestration – Rajan Dwivedi

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-31&pw=35DKTQ

 

Jun 25          Trading Partner Management & FTP Adapter – David Wang

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-30&pw=35DKTQ

Jul 9             SWIFT Accelerator – Fredda Cole

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-32&pw=35DKTQ

 

July 23         RosettaNet Accelerator – Cuneyt Havlioglu

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-33&pw=35DKTQ

 

July 30         HL7 Accelerator – Suren Machiraju

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-34&pw=35DKTQ

 

Aug 20         BizTalk Configuration and Administration – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-35&pw=35DKTQ

 

Sep 3           Orchestration Drilldown: Transactions, Exceptions and Compensation – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-36&pw=35DKTQ

 

Sep 10          BizTalk Adapter Wizard – Boudewijn van der Zwan (Unisys)

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-37&pw=35DKTQ

 

Sep 17          HIS Integration with BizTalk – Mike Cramer

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-38&pw=35DKTQ

 

Sep 24          Advanced Mapping – Aleksey Savateyev

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-39&pw=35DKTQ

 

Oct 1            BizTalk PowerToys – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-40&pw=35DKTQ

 

Oct 8            BizTalk 2004 Administration Management Tool – Paul Somers (Charteris)

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-41&pw=35DKTQ

 

Oct 14          Microsoft BizTalk Adapter for WSE 2.0 Technical Overview – Joe Klug

                   http://www.placeware.com/cc/microsoft/view?id=WSE2.0&pw=WSE2.0

 

Oct 15          UK SDC BizTalk 2004 Documenter v.2.0 – Jason Birth

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-42&pw=35DKTQ

 

Oct 22          BAM Drilldown – Zach Jason and John Ballard

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-43&pw=35DKTQ

 

Oct 29          Building Adapters From Scratch Using VB.NET – David Stampfli

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-44&pw=35DKTQ

 

Nov 12          BizTalk 2004 Adapter for MSMQ (NAIAD) – Rick Mittelstaedt

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-45&pw=35DKTQ

 

Nov 19          BizTalk Native Adapter & Orchestration Tips & Tricks – Erik Leaseburg

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-46&pw=35DKTQ

 

Dec 3            Trading Partner Management (TPM) & Business Activity Services (BAS) – Dale Michalk

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-47&pw=35DKTQ

 

Dec 10          WRQ Verastream BizTalk 2004 Screen Scraping Adapter for Legacy Integration – Paul Neutz & Jeff Zuber (WRQ)

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-48&pw=35DKTQ

 

Dec 17          Clearway Workflow Suite and Microsoft BizTalk – Gene Rodgers & Christian Manasseh (Clearway)

                   http://www.placeware.com/cc/microsoft/view?id=JUPBAG-49&pw=35DKTQ

 

2005

 

Feb 18          ODBC Adapter for BizTalk Server 2004 – Todd Van Nurden

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-54&pw=35DKTQ

 

Mar 18          Deep Dive WRQ Verastream BizTalk 2004 Screen Scraping Adapter for Legacy Integration – Jeff Zuber & David Stanley (WRQ)

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-56&pw=35DKTQ

 

Mar 25          BizTalk Server 2004 Service Pack 1 – Doug Girard and Vikas Nahata

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-57&pw=35DKTQ

 

Apr 1            Multi-Server BizTalk 2004 Installation and Configuration – Naveen Goli and Paul Davidson

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-58&pw=35DKTQ

 

Apr 15           Utilizing Enterprise Library with BizTalk 2004 – Steve Yi

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-60&pw=35DKTQ

 

May 13          Extracting, Transforming and Delivering Gigantic Legacy Application Interface Files Using BizTalk 2004 and Oracle – George Dunphy

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-61&pw=35DKTQ

 

May 27          Custom Pipeline Component Development, XmlCompleteValidator & More – Martijn Hoogendoorn

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-62&pw=35DKTQ

 

Jun 3            BizTalk 2004 Oracle Adapter – Khaled M. Hnidk (LINKdotNET)

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-63&pw=35DKTQ

 

Jun 17           BAS and Sharepoint Adapter in Pathfinder (BizTalk 2006) – Gary Keong & Sunghwa Jin

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-64&pw=35DKTQ

 

Jun 24           BAM in Pathfinder (BizTalk 2006) New Features – Mubarak Elamin & Brad Paris

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-65&pw=35DKTQ

 

Jul 1             New Features of Pathfinder (BizTalk 2006) Messaging Engine – Ruslan Yakushev

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-66&pw=35DKTQ

 

Jul 8             e-Taxation Portal: Using BTS, WSS  and InfoPath for providing electronic tax filing services – Tarek Bohsali (TerraVision)

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-67&pw=35DKTQ

 

Jul 15            Using the BizTalk Adapter for SQL Server – Common Scenarios – Todd Uhl (Avanade)

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-68&pw=35DKTQ

 

Aug 5            Two Worlds Collide: Transferring Data Between BTS 2004 and SQL Svr 2005 – Jesus Rodriguez & Javier Mariscal (TwoConnect)

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-69&pw=35DKTQ

 

Aug 12          Leveraging Windows 2003 Kerberos – Extensions Protocol Transition and Constrained Delegation in a Multi-Tier Integration Scenario Using BizTalk Server – Akhtar Hossain & Kathy Wilson

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-70&pw=35DKTQ

 

Aug 26          Windows SharePoint Services (WSS) Adapter in Pathfinder (BizTalk 2006) – Greg Prickril & Adrian Hamza

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-71&pw=35DKTQ

 

Sep 9            Adapters New Features (POP3 & SMTP Drilldown) in Pathfinder/BizTalk 2006 – Erik Leaseburg & Doug Girard

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-72&pw=35DKTQ

 

Oct 7            SAP Adapter Drilldown, Common Issues & Questions – Gruia Pitigoi-Aron & Guru Venkataraman

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-74&pw=35DKTQ

 

Oct 14          Writing Effective BizTalk Server Adapters – Kartik Paramasivam

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-75&pw=35DKTQ

 

Nov 18          Beginning-to-End Ordered Delivery (Sequential FIFO) in BizTalk 2004 and 2006 – Erik Leaseburg

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-76&pw=35DKTQ

 

Dec 2            Best Practice Analyzer (BPA) – BizTalk 2006: Rules Design Spec Review/Discussion – Gruia Pitigoi-Aron

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-77&pw=35DKTQ

 

Dec 12          BizTalk Server 2006: Development and Adapters – Joe Sharp

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-78&pw=35DKTQ

 

2006

 

Jan 6            Future Directions: Beyond BizTalk Server 2006 – Eddie Churchill

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-79&pw=35DKTQ

 

Feb 3            Discarded and Suspended Message Control – Mark Berry

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-80&pw=35DKTQ

 

Feb 10          BizTalk Server 2006 Lifecycle: Deployment, Monitoring & Maintenance – Nikhil George & Erik Leaseburg

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-81&pw=35DKTQ

 

Feb 24          Upgrading from BizTalk Server 2004 to 2006 – Charlie Ferebee

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-82&pw=35DKTQ

 

Mar 3        BizTalk 2006 Adapter for SAP – Gruia Pitigoi-Aron

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-83&pw=35DKTQ

 

Mar 17          BizTalk 2006 Adapters for DB2 and Host Files – Ricardo Mendes

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-84&pw=35DKTQ

 

Apr 7            BizTalk 2006 Adapter for Oracle DB – Puru Amradkar

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-85&pw=35DKTQ

 

Apr 28           BizTalk 2006 Adapter for Siebel – Puru Amradkar

                    http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-87&pw=35DKTQ

 

May 5           BizTalk 2006 Adapter for WSE 3.0 – Jesus Rodriguez, Rick Pelletier, Javier Mariscal (Two Connect) & Mark Fussell

                    http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-88&pw=35DKTQ

 

May 12          WSE 2.0 SP1 Adapter for BizTalk 2006 – Michael Elizarov

                    http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-89&pw=35DKTQ

 

May 19          BizTalk Operations – Rob Cameron

                    http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-90&pw=35DKTQ

 

May 26          BizTalk 2006 Adapter for RIM BlackBerry – Jennifer Zouak (Zouak Consulting)

                    http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-91&pw=35DKTQ

 

Jun 2            BizTalk Adapter for WebSphere MQ (Client-Based) – Anil Balakrishnan

                   http://www.livemeeting.com/cc/microsoft/view?id=BTSBAG-92&pw=35DKTQ

 

 

Business Activity Monitoring (BAM) and ASP.net 2.0 Web Parts

Last year at the Microsoft BPI Conference in Seattle over a few beers Scott Alan (a Microsoft integration technology specialist) shared with me his idea about using ASP.net 2.0 Web Parts to present BAM data. The idea was to give managers a more precise, flexible and easy to use interface into their business processes, they could essentially go to one dashboard and get a historical and current view of how various areas of their business unit or organisation were doing.


I’ve searched the blogosphere half a year later and I’m surprised no one has written about this it’s so simple to build.


The only gripe I have is that ASP.net 2.0 Web Parts cannot be deployed to SharePoint Services 2003 you’ll have to wait until the next version out later this year. You can however get to grips with how build Web Parts to show BAM data on an ASP.net 2.0 page now. (you can use Son of SmartPart see feedback below)


This post isn’t going to cover how to enable BAM it also isn’t about how to build Web Parts the basics of which are covered in these 3 tutorials:


WebParts1


WebParts2


WebParts3


Here is a simple BAM dashboard (ok I’m not a graphic designer). From the right hand side of the page the manager selects what data in which format they want to view and where on the page it should sit. Once the web part is on the page they can drag it to where ever they want or get rid of it and display another one.



All the Web Parts


 How to plug into BAM


I know of three ways to access BAM data the first is obvious just grab it from the Views in the BAMPrimaryImport database, the second is by accessing the cubes in SQL Server Anaylsis Services the third is by calling the Web Services which the BAM Portal uses to access BAM data (these are installed with BAM):


http://[server]/BAM/BAMQueryService/BamQueryService.asmx


 http://[server]/BAM/BAMManagementService/BamManagementService.asmx 


 


I developed 3 simple Web User Controls to display BAM Data, as a best practice I think it’s a good idea if you develop all your web parts as Web User Controls (these will be later wrapped up as Web Parts).









<TD style="BORDER-RIGHT: windowte

Invoking Tcp-Hosted Web Services using the WSE 3.0 adapter for BizTalk Server

One of my favorite’s features of the WSE 3.0 adapter is the capabilities to invoke Web Services that uses non-HTTP transports. That’s a feature that a lot of people, including myself, were expecting on the WSE 2.0 adapter for BTS 2004.


Now with on this version we are able to invoke Web Services hosted using transports like Tcp, MSMQ, etc. We can also expose orchestration as host-independent ASMX services and how those services in an application that uses a different transport.


 


Let’s run through a simple demo.


Suppose that we have the following WSE 3.0 Web Services hosted in a Console application using TCP-IP as transport.


 



Web Part


Usage


Access method





public class UtilWebService: SoapService


    {


        [SoapMethod(“Echo”)]


        public string Echo(string msg)


        {


            Console.WriteLine(“Request received: message=” + msg);


            return “Message received: “ + msg;


        }


    }


Figure 1: WSE Service code


 


The Web Services host looks like the following:


 






static void Main (string[] args)


        {


            UtilWebService service = new UtilWebService();


            Console.WriteLine(“Soap Tcp Service…”);


            Uri to = new Uri(“soap.tcp://tc2003s:8089/MathWS”);


            EndpointReference EPR = new EndpointReference(to);


            SoapReceivers.Add(EPR, service);


            Console.ReadLine();


 


        }


Figure 2: WSE Service Tcp host


 


The WSE Schema Generator wizard is able to query a TCP endpoint using WS-MetaDataExchange (I blogged about this technique a while ago) to obtain the Web Service WSDL.


 


 


 


Figure 3: Importing schemas


 


The next required step is to configure the WSE 3.0 send port at deployment time. As part of the Send Port properties we can specify a soap:tcp address.


 


 


Figure 4: Send Port properties.


 


With that configuration the WSE 3 adapter will send the following Soap request to the WSE Service.


 







<soap:Envelope xmlns:wsa=”http://schemas.xmlsoap.org/ws/2004/08/addressing xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/“>


<soap:Header>


  <wsa:Action>Echo</wsa:Action>


  <wsa:MessageID>urn:uuid:498d2ea0-d65b-465a-b779-939fa0bd0bc7</wsa:MessageID>


<wsa:ReplyTo> <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>


  </wsa:ReplyTo>


  <wsa:To>soap.tcp://tc2003s:8089/MathWS</wsa:To>


  </soap:Header>


<soap:Body>


  <ns0:string xmlns:ns0=”http://tempuri.org/“>string_0</ns0:string>


  </soap:Body>


  </soap:Envelope>

 


Figure 5: Soap Request

Share this post: Email it! | bookmark it! | digg it! | reddit!
BizUnit – Context tamed!!

BizUnit – Context tamed!!

Whew!! It took an entire evening but i finally cracked the mysteries of the BizUnit context and how it can be used. I even wrote a couple of my own custom steps to manipulate context. Writing BizUnit custom steps is really easy. The ITestStep interface and the Execute method are all you need.


What really took me by surprise is the number of bugs in it. Take the XmlContextLoader for example. This step allows you to extract data from an Xml file ,using XPath expressions, and store them in the Context. The step will not work out of the box because a stream which contains the data is being read into a string, and then the stream is being used to load up an XmlDocument without rewinding it first. I also fixed a couple of others including the weird “Param” typo that i blogged about earlier. Just after i had finished all this i checked the GDN workspace and found a reply to my posts from Tanveer Rashid which was quite helpful, but then again, i had solved the issue by that time.


So, Im planning to write a detailed document covering the use of Context and perhaps extend it to be a general BizUnit tutorial. I’ve reworked the documentation thoroughly especially in the area of the context load steps and im pretty comfortable that its much clearer now than earlier. I’ve also written more tests and documented the existing ones so folk can get an idea of whats available. I’m also considering starting up a BizUnit extensions project on the lines of NAntContrib to add more custom steps for the community (if Kevin doesnt grant me permissions to join the existing workspace, that is). Let me know if this is of interest and if there are custom steps that you would like to see. I should have the Context tutorial up in a couple of days max.

BizTalk Server 2006: New Healthcare Video Published

A new BizTalk Server 2006 customer evidence video has been produced and published for Oncology Hematology Associates of Southwest Indiana.


 


See how OCA raised revenue by 15 to 20 percent by using Microsoft BizTalk Server 2006 and BizTalk Accelerator for HL7 to exchange patient data in real time between the practice management software, the billing system, an internal lab facility, and an external lab vendor with only two developers.


 


Video | Case Study | Solution Brief


 


For more BizTalk Server 2006 customer evidence, see:


http://blogs.msdn.com/CSDCustomerExperience/archive/2006/03/27/562292.aspx

BizTalk Server 2006: New Healthcare Video Published

A new BizTalk Server 2006 customer evidence video has been produced and published for Oncology Hematology Associates of Southwest Indiana.


 


See how OCA raised revenue by 15 to 20 percent by using Microsoft BizTalk Server 2006 and BizTalk Accelerator for HL7 to exchange patient data in real time between the practice management software, the billing system, an internal lab facility, and an external lab vendor with only two developers.


 


Video | Case Study | Solution Brief


 


For more BizTalk Server 2006 customer evidence, see:


http://blogs.msdn.com/CSDCustomerExperience/archive/2006/03/27/562292.aspx

Zero Byte files through FTP

I’ve seen a number of places where it’s documented that zero byte files pulled in through the FTP adapter throw an error.  It would probably be more factual to say that zero byte files pulled in through the FTP adapter are passed on to the Flat File Disassembler, which fails.  Either way, this behavior is often an annoyance, since the File Receive adapter manages some voodoo that doesn’t generate the error.

I’ve taken the BizTalk Server Pipeline Component Wizard and done something very simple in the Execute method:

if (inmsg.Body.Data.Length == 0)
    return null;
else
    return inmsg;

I’ve seen other people suggest creating a custom pipeline component, but I’ve never seen how or that “this” works.

I got over-eager and wanted to create the component to be an “any” type component.  This way it could be dropped in the pipeline at any point a developer thought he might end up with a zero byte stream.  The first error was that I hadn’t implemented the IDisassemblerComponent interface.  All well and good; I implemented the interface as a passthrough.

It seems that BizTalk attempts to publish to the Message Box whatever comes out of the GetNext method.  Since, in my case, I was returning the raw stream (which was not XML), there wasn’t anything that BizTalk could match to that as a subscriber, and the message failed.  I ended up rolling back my changes and setting the component as a Decode component.