Thursday, November 18, 2010

Off Topic: Introducing BizTweet for Windows Phone 7

In addition to blogging about BizTalk, I have decided to start blogging about Windows Phone 7.  Therefore, I have created a new blog to focus on WP7 and will continue to blog about BizTalk here. 

I recently had my first WP7 App published in the marketplace.  The app is called BizTweet and may be found in the Social category.  The purpose of the application is to aggregate information related to BizTalk and AppFabric.  So if you have a WP7 and are interested in BizTalk and/or AppFabric then I encourage you to check it out. 

For more details, check out the BizTweet blog post.

Monday, October 4, 2010

BizTalk: HTTP Adapter and preventing Cached Responses

A while back I blogged about a service that would go fetch Natural Gas Prices, the price of Oil and Stock Quotes from Yahoo.    The information that is returned from BizTalk is surfaced in an Xcelsius dashboard along with a lot of other business critical data from SAP.  Our executive team accesses this information from a web part in SharePoint site.  As people launch their browsers, they see the Stock Quotes and other commodity prices get updated.  Since this is a dashboard, people will view the data for a few minutes and then close their browser.  This type of user behavior never uncovered a flaw in the application.  It is not like someone sat on the dashboard all day long waiting for the stock price to change.

A request came in to turn this Dashboard into a Windows 7 widget.  Once this widget was in place, we uncovered that the stock quotes were not being updated.   The Widget simply acts as a container for the dashboard.  So we dug out Fiddler and could determine that the BizTalk service was not being called on a regular interval.  The reason?  Caching.  There was no cache command or expiration date sent on the HTTP header going back to the dashboard so it would not be called on a regular basis.  Since this Widget does not get restarted like a Web Browser does, the stock quotes would remain static for the duration of a user’s desktop session.

To avoid this situation, I needed to provide an explicit command in a Message Assignment Shape to prevent my responses from being cached:

msgStockQuoteResponse(HTTP.UserHttpHeaders) ="Cache-Control: no-cache";

Since the client was instructed not to cache the response, it would now go ahead and call the service when it goes to refresh the rest of its data.




There are many options that you can set within the HTTP Header.  For example,  if you wanted to expire content every 2 minutes, you could set your header to  Cache-Control: max-age=120.  If you are interested in what other features can be set in an HTTP Header, I recommend checking out this site.

Sunday, September 26, 2010

BizTalk 2010 – RTM has arrived!



As you are probably aware by now, BizTalk 2010 has RTM’d.  You can catch the announcement here.  I am not going to recap all of the new features as you can read about them here.  However, here are a few points worth noting about the new release.

  • The  BizTalk 2010 Developer’s edition is now free.  So if you are curious about BizTalk and getting a licensed copy has been a barrier for you in the past, now is your chance to test drive BizTalk at no cost.  Full details and download may be found here.
  • For those AppFabric/WCF/WF developers, there is a new compelling feature called BizTalk AppFabric Connect which allows you to leverage BizTalk components such as the BizTalk LOB Adapter Pack and BizTalk Mapper within your .Net projects. This is a true enabler for connecting your WF applications to Line of Business Systems (LOB)
  • If you have written applications in the past that have used the traditional line of business adapters, you will now be forced to use the BizTalk Adapter pack when communicating with SQL Server, SAP, Oracle and Siebel.  Microsoft had deprecated these adapters in BizTalk 2009 and they have been officially removed in 2010.  For the past year or so, I have been using the BizTalk Adapter pack when communicating with LOB systems and there are some subtle differences between the legacy and new LOB adapters. Overall, I am satisfied with the experience and there are no “show stoppers” that we have run into  when making the switch.  So if you are planning a BizTalk 2010 upgrade and currently use the legacy adapters, ensure migrating these applications to use the BizTalk adapter pack is in your project plan as you will need to regenerate schemas using these new adapters.

Wednesday, September 15, 2010

BizTalk 2009 + SharePoint 2010


Note:  The following steps do not represent a supportable configuration by Microsoft and extreme caution should be used when following these steps.  To my knowledge, these steps are complete, but it is possible that I missed something.  These steps have been tested in a Send Port Subscription scenario.   Use these instructions at your own risk.

At the organization that I work for, we are rolling out SharePoint 2010.  We currently run BizTalk 2009 and  at this point in time, the  BizTalk 2009 SharePoint Adapter Web Service isn’t supported with SharePoint 2010.  BizTalk 2010 has been updated to support SharePoint 2010.  We really have no choice but to head in this direction since upgrading to BizTalk 2010 just isn’t an option at this point in time.

When you launch the BizTalk 2009 installation on a SharePoint 2010 Server you will not be able to install the Windows SharePoint Services Adapter Web Service as it is not able to detect the pre-requisite Windows SharePoint Services v 3.0 files.


Mick Badran has a post that helped me out tremendously. However, I found that I had to take a few additional steps so I will recap exactly what we did in order for us to get this to function in our environment.

We had an existing MOSS 2007 server that had the BizTalk Adapter Web Service installed and functioning correctly.  Since you cannot use the BizTalk installation wizard to install this Web Service, we decided to reverse engineer what was deployed on MOSS 2007 and manually deploy on SharePoint 2010.

  • Copy the c:\program files\Microsoft BizTalk 2009 folder from your MOSS 2007 Server to your SharePoint 2010 Server
  • Create the BTSharePointAdapterWS Web Application in IIS Manager and set the physical path to C:\Program Files (x86)\Microsoft BizTalk Server 2009\Business Activity Services\BTSharePointV3AdapterWS 

Note: This path represents a 64 bit installation.


  • We leveraged the existing App Pool that the SharePoint Site was using
  • Modify the web.config to set the appropriate SharePoint Enabled Hosts, if required.  For us, we use AD Groups and had to change to reflect our “DEV” AD group
  • Rebind the Microsoft.SharePoint.dll to point to version 14.


  • We removed the Document Tag so that we could browse the WSDL properly.  See this post for more info.


  • We then exported two keys from the Registry on our MOSS 2007 Server and import them on your SharePoint 2010 Server:
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server]
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server]
  • At this point we thought we were done and attempted to push a message from BizTalk 2009 to SharePoint 2010 but discovered the following message in event viewer:


Event Type:    Warning
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5743
Date:        9/10/2010
Time:        1:37:51 PM
User:        N/A
Computer:    SERVER

The adapter failed to transmit message going to send port "SendPort1" with URL "wss://SERVER:80/DropOffLibrary". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.BizTalk.KwTpm.OfficeImporters2, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.BizTalk.KwTpm.OfficeImporters2, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at Microsoft.BizTalk.KwTpm.WssAdapter.BTSharePointAdapterWS..ctor()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

   --- End of inner exception stack trace ---

This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://SERVER:80/DropOffLibrary.

Windows SharePoint Services adapter event ID: 12462".

For more information, see Help and Support Center at


Once again it was back to the MOSS 2007 server and more specifically, a trip to the GAC where we discovered the following BizTalk Dlls.  This list included the Microsoft.BizTalk.KwTpm.OfficeImporters2.dll that was mentioned in the event viewer.  We then pulled these dlls off of the installation CD and gac’d them on the SharePoint 2010 server using gacutil.


After Gac’ing these assemblies we had success pushing messages from BizTalk 2009 to SharePoint 2010.


Note: There is another option which I have not tried that Kirk Hofer discusses here.  It involves installing WSS v3.0 SP2, but not configuring it, so that the BizTalk install Wizard thinks it is installed.  Our SharePoint team was not crazy about having these other dlls on their fresh SharePoint 2010 server so we were unable to proceed with this approach.

Friday, August 27, 2010

Managing your BizTalk Environment using SCOM

I recently had the opportunity to speak at the Swedish BizTalk user group in Stockholm. It was an excellent opportunity to present to one of the top BizTalk user groups worldwide. My presentation consisted of slide ware, a tour of the SCOM 2007 R2 console and several BizTalk/SCOM demos using BizTalk 2010 beta and the BizTalk 2010 Management Pack beta. You may find the presentation below.

Tuesday, June 22, 2010

BizTalk integration with SharePoint and the Cloud Presentation

I recently had the opportunity to speak at the Calgary .Net User Group. My presentation included slideware and demonstrations involving integrating BizTalk with SharePoint 2010 and the AppFabric Service bus. You can view the presentation below:

Saturday, June 19, 2010

BizTalk 2010 Beta – Where are the AppFabric Service Bus bindings?

After installing the Windows Azure platform AppFabric SDK V1.0 - April Update I was expecting all of the AppFabric Service Bus relay bindings to be available inside of the BizTalk Admin Console but they were not.  I could run the AppFabric Echo .Net Sample without any issues.  After re-installing both the AppFabric SDK and BizTalk 2010 Beta I was still unable to find these bindings in the Admin console.  I checked the machine.config files (both 32 bit and 64bit) and both files were updated.  The problem with this is that I checked the .Net 2.0 config files.

After stumbling across Wade Wegner’s blog, the picture became much clearer.  Wade explains “I soon realized that the issue was the machine.config file.  When you install the Azure AppFabric SDK the relevant WCF extensions are added to the .NET Framework 2.0 machine.config file, which is shared by .NET Framework 3.0 and 3.5.  However, .NET Framework 4.0 has its own machine.config file, and the SDK will not update the WCF extensions.”

To resolve the issue you need to run a utility called: RelayConfigurationInstaller.exe which can be found in C:\Program Files (x86)\Windows Azure platform AppFabric SDK\V1.0\Assemblies (64 bit machine) or C:\Program Files\Windows Azure platform AppFabric SDK\V1.0\Assemblies (32 bit machine) and provide an input file that includes

<?xml version ="1.0"?>
<requiredRuntime safemode="true"

The name of this file should be called RelayConfigurationInstaller.exe.config.


C:\Program Files (x86)\Windows Azure platform AppFabric SDK\V1.0\Assemblies>RelayConfigurationInstaller.exe /i

After this command was run successfully, I could now see the “Cloud Bindings” including the NetTcpRelayBinding


Wednesday, June 16, 2010

Presenting at Calgary .Net User Group - June 22, 2010

Topic: BizTalk integration with SharePoint and the Cloud
Speaker: Kent Weare
Date: 22-June-2010
Location: Nexen Conference Center
801-7th Ave. S.W., Calgary, AB. (Plus 15 level)
Registration: 5:00 pm - 5:30 pm
Presentation: 5:30 pm

Part 1 - Discover how you can leverage BizTalk to integrate with SharePoint and InfoPath

In this session, Kent will demonstrate some of the ways that you can integrate with SharePoint using the BizTalk WSS Adapter and Web Services. Kent will also discuss some real world scenarios where this technology has been used to provide value to the business.

Part 2 - Discover how you can leverage BizTalk to integrate with the AppFabric Service Bus

Learn about Microsoft's cloud based Service Bus and how you can leverage BizTalk to communicate with external applications and services. Kent will demonstrate BizTalk's ability to expose on premise services to the cloud and consume AppFabric Service Bus end points. Kent will also discuss some scenarios where it may be appropriate to leverage these integration patterns in the real world.

Friday, June 11, 2010

TechEd 2010 – Day 4

TechEd 2010 North America is done for another year.  I thought the conference went really well and people were full of enthusiasm.  A lot of Product Groups have shipped, or are shipping products this year.  There were over 11 300 in attendance for this event eager to hear about the latest bits in the pipeline .  I was at TechEd in LA last year and can tell you there wasn’t near that many people in attendance.


BizTalk and the Cloud

I saw a really interesting session where BizTalk was brokering a connection through the Service Bus into a SAP and a Mainframe system.  A Web app was hosted in Azure and BizTalk was listening for requests via the AppFabric Service Bus.  It was probably the riskiest demo I saw, but Chris and Elizabeth pulled it off without a hitch.  I have been thinking about these types of scenarios quite a bit since I have done a fair about of integration with SAP in the past.  SAP certainly cannot connect into the Azure Service Bus at this time nor do I expect them to be able to do that any time soon.  Mainframe systems are no different since they most likely will not have a transport mechanism capable of communicating with the Microsoft cloud.  Many businesses leverage SAP to run their core business, having BizTalk capable of connecting into the cloud provides an additional layer of abstraction and security when accessing SAP data.


More Cloud

There was certainly no shortage of Cloud talk at this conference.  The next session I saw was called Appfabric: Extend .Net technologies to the Cloud.  It was presented by Aaron Skonnard and Keith Brown.  You can tell these guys are very comfortable on the presenter’s stage.  It was probably best presentation that I have seen in a long time.

Some of the topics discussed include:

  • You can think of Azure AppFabric as an extension of the .Net framework
  • No Azure Workflow as a Service in this release
  • Relay bindings allow your application access into the Service Bus
  • Direct connections allow you to communicate peer to peer with other clients in order to improve performance and reduce charges
  • Eventing pub/sub can be used in multi-cast situations
  • To increase interoperability use Http Relay Bindings

View from the BizTalk Booth

  • A had a few conversations with attendees who were using other middleware products such as Oracle or IBM and wanted to know how BizTalk stacked up in terms of feature set.  None of the features that they were requesting were absent from the BizTalk stack.  They also wanted to see how easy the Microsoft tools are to use and the impression that I got is that they felt they were on par with what they were use to seeing.
  • Another attendee wanted to know whether they should be using  WF or BizTalk.  Quite frankly this scenario can still get a little blurry for me.  We talked about things like low latency, durable messaging, flat file requirements, Adapters and management of the solutions.


Next Year

Next year TechEd will be held in Atlanta from May 16th-19th.  There is currently an early bird special where you can save $500 for registering early.

Thursday, June 10, 2010

TechEd 2010 – Day 3

More BizTalk

We took a closer look at the Dashboard Settings in the BizTalk Admin Console. There are 3 main categories that you can configure:

  • Group Configurations
  • Host Configurations
  • Host Instance Configurations

Probably the most compelling setting allows you to control the polling interval when connecting to the MessageBox for new messages. You even have the ability to configure these settings based upon a Messaging or Orchestration scenario at the Host level. In the demo, we saw a simple Receive and Respond scenario. The default configuration setting is to have BizTalk connect to the MessageBox every 500 ms. This message took .68 seconds to be processed end to end. The Polling interval was then changed to 10 ms and the message took .09 seconds to process. Some pretty dramatic improvements. The end result is that the BizTalk Host Instances are not waiting as long for their next polling interval so messages will be processed more frequently. These actions are not without some risk though. The more frequently you poll, the more stress you put on you SQL Server database so mileage will vary.

The portability of the Dashboard settings were also demonstrated. You now have the ability to export and import your configuration settings across environments so you are not manually tweaking on several servers. You also have the ability to script the import and export of these settings

The new BizTalk Management Pack for SCOM was demonstrated. They have rebuilt this MP from the ground up and now include 2 separate views:

  • Application
  • Deployment

The Application view focuses on artifacts that would typically be addressed by BizTalk developers. So if you have a message that failed in a pipeline or a retrying sent port then you would find them in this view. More infrastructure related items would be found in the Deployment view. So if you had a database or host instance offline, you will find these types of alerts in the Deployment view.

Unfortunately, the new SCOM pack will only work with BizTalk 2010 so if you are still on BizTalk 2009 or previous, you cannot use this MP. The good news is that the MP will ship with BizTalk 2010 so there will be no gap between those two products and their release dates.

Other bits

  • The support for SQL 2005 and Windows 2003 is gone for BizTalk 2010
  • BizTalk 2009 (and earlier) will not be certified for Windows Server 2008 R2.
  • Business Activity Monitoring (BAM) Portal will support 64 bit app pools - Not exactly true, please see comment by Rahul for further clarification
  • BizTalk Admin Console is still not a native 64bit app. You can run in WOW mode on 64 bit machine though

BizTalk Business to Business integration

I later sat in on a B2B presentation that discussed EDI and Trading Partner Management. I have not had a lot of exposure to these 2 features of BizTalk so it was interesting to get a look under the hood. The TPM management is greatly improved and is more intuitive to use as you can now group Business Units under a Parent entity.

They also discussed the BizTalk Mapper since EDI schemas tend to be large and complex. Leveraging new features like Search, Indicative Match, copy and pasting functiods, highlighting selected nodes and links goes along way.

The enhanced FTP adapter was discussed and here are some of the core features:

  • Support for Read Only Receive scenarios
  • FTPS protocol is now supported
  • Improved performance when connecting to AIX systems
  • Atomic Sends for Text files

Communications Server 14

Office Communications Server (OCS) has been rebranded to just Communications Server or “CS 14”. I am not that familiar(at a deep technical level) with OCS and related technologies but since we do use it I thought I would check out the Q and A session that deals with interoperability.

I think it is pretty safe to say that this industry is in a state of transition. You have traditional telecom companies like Cisco and Avaya who are trying to hold onto their footprint and then you have Microsoft who is very hungry in this vertical. The frustrating part is that these companies have so much at stake that they are not collaborating much (from what I can see) and that leaves customers who have a blend of this technology frustrated as it is tough to develop roadmaps with so much changing. It may be a good idea to sit on the sidelines for a year to see how this all shakes out.

View from the BizTalk Booth

More great conversations at the BizTalk booth:

  • An Infrastructure Architect wanted to know what impact BizTalk has on his environment since his organization is planning on implementing BizTalk
  • Another attendee is looking and managing the provisioning of Datacenter assets through BizTalk. He wanted BizTalk to host services that would expose functions like “deploy Windows Server”, “Deploy SQL Server”, “Deploy Application ‘x’ to Server ‘y’”. It was a very interesting discussion about how they wanted to provision systems to their private cloud.
  • More questions about using the BizTalk Mapper activity in WF
  • There genuinely seems to be interest in BizTalk. Perhaps people are just being polite, but a lot of people are talking about introducing BizTalk to their environment(s).

Wednesday, June 9, 2010

TechEd 2010 – Day 2


I opened up day two with a session involving Connecting to Line Of Business (LOB) systems in 15 minutes

We saw:

  • A demonstration of the BizTalk mapper activity in WF
  • Many questions from the audience regarding the licensing model.  Some people questioned that if you had to buy a BizTalk Standard license to use the Mapper and LOB adapters then why wouldn’t you just use BizTalk.  The response was that there may be some scenarios where you still want to avoid the BizTalk message box but want to connect to LOB systems like SAP without having to write a lot of code to transform data between the two systems.  The BizTalk Mapper will easily pay for itself over time as it allows you to convert data through a GUI tool instead of writing a lot of code.
  • You will not have to install all of BizTalk in order to use these two new activities in WF.  Microsoft plans on providing a “AppFabric Connect” feature that allows you to just install the BizTalk bits that you need
  • Licensing for these components will be based on the same model that BizTalk standard edition uses so you will be paying per proc(and not by the core)
  • Oracle adapter exposed as WCF service that SharePoint BCS (Business Connectivity Services) code is required.
  • Connecting to IBM lob systems in a similar manner.  Use the BizTalk HIS components outside of BizTalk and connect to legacy IBM systems without BizTalk.
  • I got the sense that a lot of .Net developers were excited to see these capabilities but not so excited that they needed to pay for BizTalk licenses in order to use these bits.

Another interesting session I saw involved extracting SAP data so that it can be used by Microsoft BI tools.  The tool is called Simplement Data Liberator.  We heard from one of their customers who uses a blend of SAP and Microsoft tools.  They explained some of their Roadblocks to “True BI”;

  • SAP tables difficult to understand
  • SAP tables difficult to extract
  • Need too many experts
  • Explicit skill set required to use a SAP BI tool
  • Needed real time access to SAP data
  • Needed SharePoint integration
  • Better value with Microsoft Consultants
  • Wanted wider talent pool

SAP has over 50 000 tables so trying to extract data manually or through Custom code is a daunting experience.  The Simplement Data Liberator tool has solved this challenge. The Tool replicates SAP data into SQL Server. You can get both German and English Meta data  and SAP Security  info is also replicated.  This tool eliminates the need to write ABAP for reporting in SAP.  Surface SAP data into Microsoft BI products by using SQL queries.

Other features:

  • Work with only tables you need
  • Load into SQL server via replication
  • Manipulate/Transform data such as dates (ETL)
  • Attached meta data so that you can use English Table names
  • Use SharePoint, Excel services or SQL Server Reporting Services (SSRS) to query data

We saw a demo where a customer was updated in the SAP GUI system and within seconds (3-5) the data was in the SQL BI system.  I must say that I was impressed by the demo, it seems like this vendor understands SAP very well and has figured out a way to lower customer costs when consuming SAP data.

View from the BizTalk Booth 

More great questions and conversations about BizTalk:

  • An excellent conversation about End to End Message Security.  You always want to trust your developers to do the right thing, but how do you prevent a developer from adding their own receive location, or subscription in BizTalk for malicious purposes; to prevent a rogue developer from depositing money into  their Bank Account via BizTalk.  If anyone one has thoughts on this type of scenario and have figured out a way to solve it I would be interested in hearing about it – use comments below.
  • Whether BizTalk is truly pub/sub due to the polling nature of the Host instance connecting to BizTalk MessageBox looking for more work.  This attendee was looking for more Event Driven processes inside BizTalk.
  • A DBA was interested to know how BizTalk will connect to their Database and some of the “gotchas” to look out for
  • A few people that closed the door on BizTalk after BizTalk 2004 that are now back taking another look at BizTalk 2010.  I can’t say this enough, the product has matured significantly over the past and it is worth taking another look at
  • Connecting BizTalk to the AppFabric Service bus in order to connect with other external parties

Monday, June 7, 2010

TechEd 2010 – Day 1

Below are some of my ad hoc notes from TechEd 2010 in New Orleans. 

The Atmosphere

Much more encouraging than last year, in my opinion.  The numbers seem to be up and the convention centre is very busy even though the facility is huge.  Microsoft has rented over 1 mile worth of space to host the event.  At a meeting that I attended on Sunday, a Microsoft rep indicated that registrations had exceeded their expectations this year.  They attributed this to improvements in the North American economy.


A great deal of the keynote was dedicated to cloud computing.  The phrase that has been floating around Microsoft circles for the last little while is “we’re all in” meaning Microsoft is betting big time on the emergence of cloud computing.

Some items that were discussed include new tools available for Developers and IT Pros to monitor cloud applications including:

  • Intelitrace for Azure
  • SCOM Management packs for monitoring Web Roles and other artifacts in the cloud
  • SQL Management Studio integration for managing SQL Azure databases

Microsoft discussed a client, Chicago Tribune, and their shift from moving On-Premise assets to the Cloud.  Some of the key drivers for this move includes:

  • Reduction in the amount of Data centers required to run their operations
  • Pay as you go Scalability.  As you can imagine there would be some very newsworthy days that would stress a media outlet’s IT infrastructure
  • Reliability and Uptime.  If your site is down, people will just go to your competitor’s site.

Other announcements

  • Windows 7 SP1 and Windows 2008 R2 SP1 will enter Beta in July (2010)
  • Windows 2008 R2 SP1 will include enhancements such as Dynamic Memory
  • Office Communication Server 14 is schedule for Q4 – 2010 Key Features include
    • Tighter SharePoint and Exchange integration
    • Picture displays in the OCS Client as pulled from SharePoint
    • Pictures include a presence border (Green/Yellow/Red)
  • Microsoft has over 74 000 Enterprise voice users internally and saves $1 million per month by using OCS and Live Meeting for long distance and conference calls
  • Use OCS to search for Skills within your organization
  • 720p video supported with OCS 14
  • Exchange pushes polices down onto Windows Mobile 7 phones
  • Windows Mobile 7 supports multiple exchange accounts including on-premise and in the cloud
  • Windows Mobile 7 easily separates your work and you life within one phone
  • Edit documents from SharePoint using your Windows Mobile phone

Other Sessions

BizTalk 2010 and VNext

  • Customer wants include better alignment with Platform releases (SQL/Windows/VS)
  • Session was full – BizTalk interest is alive and well
  • Enhanced Mapper exists in 2010 that allows for
    • Functoid “Move to page”
    • Reduction of noise by focusing on specific areas
    • Node Search
    • Undo
    • New Ribbon at the top of Mapper – Ribbons are in-style
  • Mapper and LOB Activities are available within WF Workflows
    • A license will be required – potentially a BizTalk Standard license
    • Potentially, BizTalk Dev edition may become a free version
  • Enhanced BizTalk Management Pack for SCOM will be included
    • Better terminology and modeling used
    • Better support for multi-node BizTalk deployments
    • Adoption of SCOM still low for BizTalk deployments (around 10-20% of the room uses SCOM – non-scientific survey)
  • Settings Dashboard available in 2010
    • Allows for more granular control over performance settings
    • Some Settings remain Global, some Host specific and some Host Instance/Machine specific
    • Settings are scriptable via WMI
  • Upgrade
    • Full support from BizTalk 2006 R2 and BizTalk 2009
  • New FTP Adapter
    • FTPS protocol is supported
    • Support for read only scenarios
    • Improved performance when connecting to AIX systems
  • VNext
    • Plans still vague but looking at more Cloud integration – perhaps we will see BizTalk in the cloud or Transformations as a service in the cloud

Building Communication enabled Business Processes with Microsoft Communications Server 14

This session contained some really cool demos and makes me wish I had more spare time.  I saw some demos where a CRM application was extended to include OCS integration.  You may be saying what is the big deal you can do this today?  What was really neat was that they were able to push the CRM context into OCS so that when you called/IM’d the recipient their OCS window would be expanded to include context about what you were contacting them about.  Imagine you needed to speak to “Bob” about customer “XYZ’s” payment.  Wouldn’t it be nice to include the data that you are looking at as part of the conversation so that Bob does not have to log into the CRM? This is now possible by using the Microsoft Communications Server 14 API.  The API seemed very intuitive and includes XAML components that allow you to drag and drop these components onto your WPF/Silverlight canvas.  I see plenty of opportunities of this type of functionality in Contact Centre or CRM type applications.

View from the BizTalk Booth

This year I am spending some time helping out at the BizTalk Booth.  I thought it would be interesting to post some of the questions or trends that I am seeing while visiting with other attendees. 

  • Many people still don’t know what BizTalk is/does.  Once you explain it to them, they usually provide a response similar to “I have a broken down process that is hard to manage and is unreliable, can I use BizTalk in that scenario”?  The answer in many cases is Yes.
  • A great question came up regarding BizTalk and SAP Enterprise Services with respect to performance
  • Some people expressed frustrations over previous versions specifically some of the management tools in BizTalk 2004.  For those that have been there before and have moved on, I encourage you to come back and take a look at what BizTalk 2010 has to offer.  The tooling, tracking and management of applications has greatly improved.
  • Great questions around how do you manage your BizTalk environments?  The answer is SCOM, but you need to invest some time so that you do not create a SPAM engine.  I wouldn’t want to manage a BizTalk environment without a tool like SCOM as it provides great visibility into the Health of your BizTalk application. Tune, tune and then tune again to find the right balance.

Sunday, May 16, 2010

ShareTalk Integration – WSS Adapter Web Service Request format is unrecognized

When you install the SharePoint Adapter Web Service for BizTalk, and browse to the BTSharePointAdapterWS.asmx Web Service, you will be prompted with an error that makes it seem like your installation of this Web Service was not successful:

Server Error in '/BTSharePointAdapterWS' Application.

Request format is unrecognized.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Request format is unrecognized

In fact your Web Service may be functioning correctly as mine was.  The issue is that the Service metadata is disabled by default.  To enable the Service metadata, you will need to update the web.config of the BTSharePointAdapterWS Application



Comment out, or remove the <remove name="Documentation"/> line in order to enable displaying the Service metadata.



Metadata will now be displayed correctly.


Friday, May 14, 2010

Microsoft Canadian Leadership Summit Day #2

On the 2nd and final day of the Canadian Leadership Summit, I  focused on Dynamics xRM and Windows XP to Windows 7 Migration. 


In the context of  “xRM”, the ‘x’ stands for “anything” meaning if you have a requirements to track relationships then Dynamics may be a good fit.

Relationships with many different entities

  • Employees
  • Customers
  • Vendors

Dynamics CRM Global Customer list

  • ING
  • Nortel
  • LG
  • Volvo
  • Sara Lee
  • Minnesota Twins
  • Vancouver Canucks
  • City of London
  • Pfizer
  • Barclays
  • Tourism Whistler

Dynamics xRM Deployments

  • Over 22 000 customers
  • 1.1 million users
  • 4000 worldwide partners
  • 50 worldwide hosting partners
  • Dynamics CRM runs on top of the xRM platform and is available in the Cloud (hosted by Microsoft) or On Premise
  • Experience is delivered through PC, Browser or Phone


Rapid Deployment

The session contained a video that included a complete Sports team management application built in less than 24 hours on the xRM platform by 4 Microsoft employees during the World Partner Conference in the summer of July 2009.  Surveys were posted on Twitter asking for ideas and requirements as to what people would like to see built.  The deliverable included a semi-detailed design and fully functional system within the allotted time.  The team then presented the solution to the attendees of the conference.  I have found a LiveMeeting of this event here.  Use  Meeting ID 8B74CC to view the content.


CRM Key Capabilities

  • Point and Click Application Development and Deployment
  • Out of the box user experiences (Outlook, Office, Mobile, Offline)
  • Leverages Microsoft Application Platform Technologies
    • SQL
    • Windows Server
    • SRS/SAS
    • WF
    • .Net

CRM 5 – The Road Ahead

Here are some of the themes that Microsoft is focusing for the next version of the software:


  • Insightful
  • Role-Tailored
  • Collaborative


  • Social
  • Connected
  • Extensible


  • Cloud and On-Premise
  • Solution Partners
  • Smooth Upgrade

SharePoint and XRM are Complementary

SharePoint and XRM have overlapping capabilities.  SharePoint has evolved beyond just storing Word documents.  It has become a platform that is capable of performing some tasks that a CRM is capable of .  On the flipside CRM, has some lightweight document management features.  The end result is that the two platforms work better, together.  If you owned both sets of technology, it makes sense to leverage both solutions to build the total package.

  • SharePoint better with unstructured data
  • xRM is better for structured Data


The next portion of the session involved Christian Gosselin, the CRM Practice Leader for CGI in Quebec, Canada.  CGI is a very experienced CRM implementer with over 50 Certified professionals on platform.

Christian, discussed some of the Business and IT Challenges that make CRM a viable option:

Typical Organizational Challenges

  • Rapid Innovation is a key mandate
  • Waiting for IT to deliver requested Applications
  • Business builds shadow applications(MS Access)  to survive
  • Poor productivity due to many different user interfaces and tools
  • Lack of intelligence/insight

IT Challenges

  • Limited budget and resources
  • Trying to support all requests coming from business
  • Option of  building or buying (both have big negatives in cost, time and scope)
  • Supporting hundreds of legacy applications
  • Difficult to deliver quick wins

xRM as a platform

xRM was built from a platform perspective and then added the application as opposed to some other vendors building the CRM application and then duct taping the platform around it in order to make it extensible.

xRM is a complete business application platform:

  • Data and Metadata Services
  • User experience services
  • Access and Security Services
    • Active Directory
  • Analytical Services
  • Extensibility Services
  • Integration Services
    • User Interface – Mash-ups
    • Web Services
    • Plug-ins
    • Data Integration
  • Architecture Services
    • Deploy once
    • Currency Conversion
    • Multi-language support
  • Platform Management Services
    • System Centre Operations Manage
  • Process Automation and Orchestration Services
    • WF
    • BizTalk
  • Point and Click Customization Services

Related Microsoft Technologies

  • Outlook
  • Office
  • SQL Server
  • .Net

One Platform, many Applications

Organizations use xRM for a variety of applications including:

    • Project Management
    • Recruitment Management
      • Professional Sports
    • Property Management
    • Employee Management
    • Asset Management
    • Supplier Management
    • Program Management
    • Customer Management

Benefits of building on Dynamics xRM

  • Drive Efficient and Effective IT
  • Develop the right business applications
  • Deliver Rapid Innovation and Agility
    • Don’t have to rebuild the plumbing
  • Demonstrate  Business Success
    • Let IT become the enabler and not the bottleneck

Real Life Projects

Christian then described some of the projects that his organization has been involved in:

  • Financial Services Client
    • Centralized and shared application accessible across Canada in English and French
    • Stronger, more profitable customer relationships
    • More Competitive advisor recruitment
    • Better regulatory compliance
    • New business insights
  • Government Client
    • Needed to communicate with other Government entities
    • Not one line of code was written
      • Customizations were accomplished through configuration
    • Better collaboration between Ministry and other agencies
    • Higher quality of information
    • Reduced manual data entry
    • Simplified communications
      • Ability to follow up on communications is more rapid
    • Increased business agility
  • Pharmaceutical Client
    • Tracking of drug/medical agents
    • Implementation was 9 weeks
    • More time spent on business requirements than on time to implement
    • Centralized application accessible from all of the the world in multiple languages
    • Minimal end user training
    • Ability to easily generate custom reports with Excel
    • Ability to quickly create new LOB applications

Dynamics CRM as a business application platform generally saves 50-70% of the development time as opposed to custom development

Windows XP to Windows 7 – A roadmap for success

The next area that I focused on was migrating from Windows XP to Windows 7.  A key component to a Windows 7 migration is the Windows Deployment kit wizard.  We saw a 7 year old upgrade his Windows XP system, with data, to Windows 7 using this wizard.  I should note that his father works for Microsoft in the Windows division so I suspect he had a little help.

When configuring the Windows Deployment kit, a wizard will walk you through the various options including:

  • Choose Migration type
    • Refresh this computer
      • save information and install new OS
    • Upgrade this computer
  • Specify computer name
  • Join domain or workgroup
  • Specify where to save your data and settings
    • Can specify network location
      • Local Disk
      • Network
  • Specify language and locals
  • Time Zone
  • Specify BitLocker configuration
  • Branding


  • Refresh existing hardware – don’t have to wait for hardware replacement
  • Make the process fast and non-disruptive
  • Test wisely, but don’t expect things to break as often as before
  • That means fewer helpdesk calls

Microsoft’s Environment overview

  • Microsoft has offices in 105 countries
  • 89 000 employees globally
  • 70 000 venders globally
  • 220 windows deployment servers and product servers globally on a virtual server infrastructure
  • User is supported by 5 call centers globally

How did it go?

  • No new hardware purchases beyond 3 year refresh cycle
  • Very few compatibility issues  - mostly with Internet Explorer 8
  • Single image for each platform(x64 and x86) for entire globe 
  • Helpdesk staff was not increased
  • Deployment numbers
    • Beta > 60 K in 3 months
    • RC >90K in 3 months
    • RTM > 100k in 3 months

How was it possible?

  • User excitement
    • easier to achieve these days because of user satisfaction
  • Executive sponsorship and local goals
  • Vastly improved toolset
    • Task sequence automation
    • Hard-link data migration
    • Multi-cast and multi-stream deployment model

Early Adopters of Windows 7

  • T-Mobile
  • Dell
  • EDS
  • Avanade
  • Halliburton
  • Sheraton
  • Del Monte
  • StatollHydro
  • WiPro
  • Samsung
  • BMW
  • City of Miami

Recommended Deployment Tools

  • Microsoft Deployment Toolkit(MDT) Lite Touch and/or
  • System Center Configuration Manager (SCCM) 2007 Zero Touch
  • Automates what would be manual processes

Thursday, May 13, 2010

Microsoft Canadian Leadership Summit Day #1

I recently had an opportunity to attend the Microsoft Canadian Leadership Summit in Redmond and thought I would share some of my findings. The Leadership Summit allows Microsoft Canada to invite key customers and partners to discuss technology trends that are relevant to the Canadian business climate.  Below is a recap of some ad hoc notes that I made through-out the presentations.


Why use Microsoft products?

    • Standardization allows you to reduce costs
    • Flexibility is required to change directions as the economy demands it
    • Microsoft technologies allow you to manage costs and have agility
    • Microsoft provides building blocks that allows you to fill the gaps between legacy applications, 3rd party and core Microsoft offerings no matter whether they are on-premise or in the cloud.

Pressures continue to Intensify

    • New generation of workers
    • Security and Compliance continues to be a challenge as more and more integration occurs
    • Mobile and Distributed Workforces are increasing in numbers
    • Innovate without additional resources

Consumerization of IT

We use to go to work to have a more advanced IT Experience

    • Fast network download speeds
    • Stable email environments

Now people at home have more IT capabilities at home than in the office

    • Video conferencing
    • IM
    • Facebook
    • Wireless Access points

Customers can use Microsoft products to provide a balance between improved collaboration while implementing security and management of those services.  Some examples of these technologies include the Social networking features in SharePoint 2010 and Office Communication Server (OCS).

The Cloud

  • Decision to move to the cloud should be a business decision and not a technology decision
  • Need to trust in enterprise-class services that Microsoft provides
  • Delivering consistent connected experience across devices (PC, Mobile phone, Laptop, Consumer devices)
  • Microsoft has had success with a lot of large “house hold” companies moving their assets to the Azure cloud.  Announcements will be made shortly
  • Understanding Canadian Federal and Provincial privacy laws continue to create challenges

Low Cost Computing

  • More companies are able to leverage low cost platforms for mission critical applications.  Windows Server is an enterprise ready OS that is much more affordable than other enterprise offerings.  Migrating your traditional AIX/Oracle environments is feasible , and achievable , on the Windows Platform
  • Technology exists to maximize the efficiency of your IT infrastructure
  • Take advantage of new ways to acquire and deliver technology


Microsoft's Commitment to Customers

  • Over 1 Billion active Windows Users
  • 500 Million Office users
  • $9.5 Billion invested in R&D
  • Long Term, tenacious and Partner-Centric

Business climates are changing faster than they have before

  • Every minute on YouTube, 24 hours of video is uploaded by users
  • Starbucks – Office Online
    • Growth through stores
    • More cross selling and up selling
    • needed to extend technology into the store level
    • Microsoft Online Services - Email and SharePoint Team sites available to 19000 employees in-store to allow employees to collaborate on  how to grow the company$

Deep investments in infrastructure

  • $2.3 Billion invested in cloud infrastructure
  • Geo-replicated data to multiple data centres
  • public and private cloud flexibility
  • 30 000 engineers working on cloud services

Microsoft’s Commitment to services excellence

  • Financially backed uptime guarantees
  • SAS 70 and ISO 27001 compliant
  • carbon footprint innovation
  • Rapid innovation model


Office 2010 launch

Some key features:

  • Ignore conversation – will remove current user from all future Distribution Lists emails and place related emails into the deleted folder
  • Pictures of email recipient, from “My Site” show up in the bottom of compose email message
    • click on the picture and you see additional context from Facebook, LinkedIn and SharePoint
  • SharePoint 2010 Search –
    • refined search and meta data
      • filter by author, date and other meta data
    • Specify content in links i.e. PowerPoint
    • Preview slides before opening document
    • People Search
  • PowerPoint over the web
    • high fidelity without the need of Live Meeting
  • SharePoint - My Site
    • status updates, similar to Facebook
    • tagging competencies allows you to easily search and identify an expert in the related competency
    • Post on “Note board’ – much like Facebook’s “wall”
    • Enriched Org chart including pictures and metadata
      • surfaced using Silver Light
    • Improved Blogging capabilities
    • Tags and Notes
      • tag pretty much anything in SharePoint – blogs, documents which create a Tag Cloud
      • follow tags via newsfeed
    • Offline capabilities – use  SharePoint workspace
  • SharePoint 2010 wide scale adoption – early adopters include:
    • Global Crossing
    • Sony
    • Associated Press
    • Six Flags
    • Telus
    • Constellation Energy
    • Energizer
  • 8.6 Million Beta Downloads
  • 80 % Beta users encouraged others to download
  • 450 Customers in early adoption program
  • Edmonton Oilers (Professional Hockey) use SharePoint to collaborate on potentials players by aligning video with meta data and statistics 
    • Player Dashboard
    • Current prospects
    • Player video page
  • Oiler organization feels that SharePoint 2010 is very intuitive and straight forward to use
    • leverage messaging and collaboration features
  • 1000 Microsoft Partners are developing SharePoint 2010 solutions
  • 20 000 Microsoft Partners partners trained
  • 500 000 developers are using SharePoint

Microsoft Online Services

Why Customers are embracing the cloud:

    • Reduce CAPEX & OPEX
    • Predictable & Pay per use subscriptions
    • Focus on Market differentiation
    • Energy Efficiency
    • Latest versions with no server upgrades
    • Choice, Flexibility and Resource Agility
    • Merger, Acquisition and Divestitures
    • Up and Running quickly

Interesting quote from a Gartner reference":

“By 2012, 20% of businesses will own no IT Assets”.  Quite frankly I have a hard time believing this statement.


Microsoft Azure data canters include: Chicago, San Antonio, Northern Virgina, Dublin, Amsterdam, Singapore

No plans for Canada to have a data centre

  • Concerns about privacy and laws due to provincial jurisdiction


Customers moving to cloud

  • McDonalds
  • Rexel
  • Staples
  • Eddie Bauer
  • Phillips
  • GlaxoSmithKline
  • Blockbuster

Microsoft Online Services

  • 40 million Online paid seats
  • more than 5oo government agencies
  • Over 50% of the fortune 500
  • 9000 business customers

Sunday, April 18, 2010

BizTalk Adapter Pack 2.0 – Part 4 Sending XML IDocs to SAP

When I started this series, I was more focused on the challenges that are involved with receiving XML IDocs and the schema versions that are  tightly coupled to the version of SAP that you generated them on.  In Post 1 we discussed how the SAP Adapter will use the DOCREL version that is provided by SAP and line this up with your schema forcing you to be in sync with SAP Upgrades.  I wanted to better understand the implications on the Send side so you will find some of my notes below. The story is a little better on the Send side when sending XML IDocs.


  • When generating your XML IDoc schemas ensure that the RecieveIdoc Format = Typed.


  • Since BizTalk will be sending IDocs to SAP, you want to select “Client (Outbound operations)” and ensure that your schema has a name of “Send”.


  • You still want to be aware of the version of SAP that you will be connecting to but it is not as important as when you are choosing to Receive an XML IDoc.  You are best off asking your BASIS admin what version you are on.


  • My initial test scenario was generating a ZCONF32 – 700 version of my IDoc.  The version of SAP that I am connecting to is 700 so everything should work correctly.
  • As expected when I wired up my Receive Port to my Send Port, I am able to submit an IDoc to SAP successfully.  Something that I was interested in knowing was the namespace that was included in the context properties.


Something also to note is that when you import the Binding file, that was generated when you created your IDoc Schemas,  is the SOAP Action header configured in your send port.  You will notice that the Action includes the namespace for the Schema that was generated.

<BtsActionMapping xmlns:xsi="" xmlns:xsd="">
  <Operation Name="Send" Action="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/CONF32/ZCONF32/700/Send" />

  • My next scenario included downloading schemas for version 710 of the IDoc(knowing that I am connecting to an SAP version that is set to version 700).  I updated my map to include this version of the schema. All of the “connection lines” in the mapper updated successfully which makes me think that there are no structural differences between these two versions – at least not with the data elements that I was trying to map. I redeployed the application and left the existing send port in tact.  I was prompted with a warning/error in the event viewer:

Event Type:    Warning
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5743
Date:        4/18/2010
Time:        8:50:45 AM
User:        N/A
Computer:    BizTalkServer
The adapter failed to transmit message going to send port "SendSAPIDoc" with URL "sap://CLIENT=XXX;LANG=EN;@a/SAPSERVER/XX?RfcSdkTrace=False&AbapDebug=False". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.Xml.XmlException: Start element 'Send' from namespace 'http://Microsoft.LobServices.Sap/2007/03/Idoc/3/CONF32/ZCONF32/700/Send' expected. Found element 'ns0:Send' from namespace 'http://Microsoft.LobServices.Sap/2007/03/Idoc/3/CONF32/ZCONF32/710/Send'.

Server stack trace:
   at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".

For more information, see Help and Support Center at

  • This error leads me to believe that the “magic” when sending XML IDocs is in the SOAP Action Header in the Send Port.  Upon updating the SOAP Action Header to reference the 710 version of the IDoc, I had success.

<BtsActionMapping xmlns:xsi="" xmlns:xsd="">
  <Operation Name="Send" Action="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/CONF32/ZCONF32/710/Send" />


  • I checked the WE02 SAP Transaction and found that my IDoc was processed successfully as indicated by the green light.




What I am able to conclude from this exercise is that you are not bound by the version of DOCREL like you are when Receiving IDocs but rather by the structure of the IDoc itself.  I am pretty confident that you can update your SAP version without having to regenerate your schemas as long as the structure of the IDoc itself does not change.  This puts you in a similar risk category as using flat file schemas which I will discuss in the next post of this series.  Something that became evident is that the SOAP action header must match the version of the schema that you have generated.

Sunday, April 11, 2010

BizTalk Adapter Pack 2.0 – Part 3 Receiving multiple Flat File IDocs using SAP Adapter

In Part 2 of this series we discussed how you can receive IDocs from SAP in flat file format in order to avoid tight coupling with the version of SAP you are running as discussed in Post 1.

As I alluded to in the end of the Part 2 post, there is an issue when you include more than 1 IDoc schema in a Receive Pipeline that will be use the same Program ID and Receive location.

The behavior that I experienced when working through this scenario is the first message in my pipeline would be processed successfully but the second type(Vacations) would not.




When I tried to process my 2nd type of IDoc (Employee Vacations) I would get the following error:


Event Type:    Error
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5719
Date:        4/11/2010
Time:        10:10:49 AM
User:        N/A
Computer:    *BizTalk Server*

There was a failure executing the receive pipeline: "SAPVersions.ReceiveSAPIDocs, SAPVersions, Version=, Culture=neutral, PublicKeyToken=147585b889447deb" Source: "Flat file disassembler" Receive Port: "ReceiveIDocsFromSAP" URI: "sap://CLIENT=XX;LANG=EN;@a/SAPSERVER/XX?ListenerGwServ=sapgwXX&ListenerGwHost=SAPSERVERci&ListenerProgramId=*ProgramID*&RfcSdkTrace=False&AbapDebug=False" Reason: Unexpected data found while looking for:
The current definition being parsed is idocData. The stream offset where the error occured is 520. The line number where the error occurred is 2. The column where the error occured is 0.

For more information, see Help and Support Center at


In the rest of the post I will discuss how you can fix this problem manually and then discuss the Hot Fix from Microsoft that addresses this situation.  I recommend proceeding with the Hot Fix route as it is a more sustainable solution.  The manual steps include modifying a schema that was generated by the Consume Adapter Service Wizard.  The risk is you can manually modify one of these schemas only to have a colleague regenerate the schema and overwrite your manual change.  If you do proceed with the Hot Fix route you will want to ensure any other developers that will be generating IDoc schemas are also using this Hot Fix.  I also want to highlight that this Hot Fix should be applied to developer’s workstations as this fix addresses a design time issue.


Fixing issue manually

  • Open up your schema that contains the “meat” of your IDoc information in an XML Editor view.  Whenever you generate  SAP IDoc schemas you are bound to have multiple XSD schemas created.  You can expect 1 IDoc that includes the various complex types, another that acts as the “Request” container IDoc, a Response xsd and the “meat” xsd which will include most of the “core” details of the schema.
  • Scroll down until you find a section that includes tag_name=”EDI_DC40” tag_offset="0" and replace it with tag_name="ZHR_VAC" tag_offset="39" where “ZHR_WS” is the name of your IDoc type.





  • What you will find as you open your schemas is that all of them will have this tag_name="EDI_DC40" tag_offset="0" string included in the IDoc which prevents BizTalk from distinguishing one IDoc from another.
  • Once you have modified all IDocs in this fashion, redeploy and you should find that both(in my case) IDocs were processed successfully.


Fixing issue with HotFix

  • In KB977528 Microsoft describes the issue as “This problem occurs because the first Flat file disassembler pipeline component in the custom pipeline tries to disassemble all the IDOCs that are received. However, the IDOCs should be processed by different Flat file disassembler components that have different schemas”.

  • When using the HotFix, you download schemas the same way as you previously did


  • Note when you open up the schema, you will now notice that the same change that we applied manually has now been incorporated into the schema definition automatically.


  • If you have changed the name of you XSD files, make sure you update your receive pipeline, deploy and restart your host instance(s).  You should now be able to receive both types of flat file IDocs without issue




My developer workstation is a 64 bit machine so when I navigated to the Hot Fix Web site it detected that my system was a 64 bit system and provided me with a 64 bit patch.  The problem is that Visual Studio runs in 32 bit mode and since this fix is a design time issue my issue was not resolved until I downloaded the 32 bit version of this KB.  I logged onto a 32 bit machine and navigate to the same site in order to get the 32 bit fix.




Thus far we have been  focusing on receiving IDocs.  A reader has asked if I can demonstrate how to sent a flat file schema to SAP using the BizTalk Adapter Pack so that will be the next post in this series.

Sunday, March 14, 2010

BizTalk Adapter Pack – SAP Binding ReceiveTimeout


One of the most important configurations to make inside a SAP Receive location is the “receiveTimeout” property.  The documentation describes this property as:

“Specifies the WCF message receive timeout. Essentially, this means the maximum amount of time the adapter waits for an inbound message. The default is 10 minutes.


For inbound operations such as receiving IDOCs, we recommend setting the timeout to the maximum possible value, which is 24.20:31:23.6470000 (24 days). When using the adapter with BizTalk Server, setting the timeout to a large value does not impact the functionality of the adapter.”

The default value(10 minutes), is too short of a period for BizTalk to stop listening for messages from SAP.  For instance, if your organization has a weekly back up scheduled for SAP, it will likely take longer than 10 minutes.  The documentation indicates that there is no impact to using a large number so I am not sure why the default is only 10 minutes.




Just to give a practical example of what you can expect when SAP goes down (either planned or unplanned) from a BizTalk perspective.

SAP going down

Event Type:        Warning

Event Source:    BizTalk Server 2009

Event Category:                (1)

Event ID:              5740

Date:                     3/13/2XXX

Time:                     10:01:31 PM

User:                     N/A

Computer:          SERVER


The adapter "WCF-Custom" raised an error message. Details "The WCF service host at address sap://CLIENT=XXX;LANG=EN;@a/SAPServer/00?ListenerGwServ=SAPGateWay00&ListenerGwHost=SAPServer&ListenerProgramId=IDOC&RfcSdkTrace=False&AbapDebug=False has faulted and as a result no more messages can be received on the corresponding receive location. To fix the issue, BizTalk Server will automatically attempt to restart the service host.".

For more information, see Help and Support Center at

Event Type:        Warning

Event Source:    BizTalk Server 2009

Event Category:                (1)

Event ID:              5740

Date:                     3/13/2XXX

Time:                     10:01:31 PM

User:                     N/A

Computer:          SERVER


The adapter "WCF-Custom" raised an error message. Details "Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_FAILURE. AdapterErrorMessage=An exception has occurred on the listener while executing RfcWaitForRequest..

   at Microsoft.ServiceModel.Channels.Common.Design.AdapterAsyncResult.End()

   at Microsoft.ServiceModel.Channels.Common.Channels.AdapterReplyChannel.EndTryReceiveRequest(IAsyncResult result, RequestContext& requestContext)

   at Microsoft.Adapters.Internal.LayeredChannelBindingElement.LayeredInboundChannel`1.System.ServiceModel.Channels.IReplyChannel.EndTryReceiveRequest(IAsyncResult result, RequestContext& context)

   at System.ServiceModel.Dispatcher.ReplyChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext)

   at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)".

For more information, see Help and Support Center at


Event Type:        Warning

Event Source:    BizTalk Server 2009

Event Category:                (1)

Event ID:              5740

Date:                     3/13/2XXX

Time:                     10:01:32 PM

User:                     N/A

Computer:          SERVER


The adapter "WCF-Custom" raised an error message. Details "The faulted WCF service host at address sap://CLIENT=XXX;LANG=EN;@a/SAPServer/00?ListenerGwServ=SAPGateWay00&ListenerGwHost=SAPServer&ListenerProgramId=IDOC&RfcSdkTrace=False&AbapDebug=False could not be restarted, and as a result no messages can be received on the corresponding receive location. BizTalk Server will continue trying to start the service host until it succeeds or the receive location is disabled.

To fix the problem, you may choose to:

1. Use the error information given to fix the problem.

2. Restart the receive location.

3. Keep waiting for BizTalk to recycle the service host. Another event will notify if the service host is successfully started.

SAP coming back up

Event Type:        Information

Event Source:    BizTalk Server 2009

Event Category:                (1)

Event ID:              8112

Date:                     3/13/2XXX

Time:                     11:03:13 PM

User:                     N/A

Computer:          SERVER


The WCF service host at address sap://CLIENT=XXX;LANG=EN;@a/SAPServer/00?ListenerGwServ=SAPGateWay00&ListenerGwHost=SAPServer&ListenerProgramId=IDOC&RfcSdkTrace=False&AbapDebug=False was successfully restarted, therefore the associated receive location can now receive messages.

For more information, see Help and Support Center at


You are now able to receive messages from SAP without any intervention.  Had we not set an appropriate ReceiveTimeout, the receive location would have still be down when SAP tried to push this IDoc to our system.



You never want your middleware to be the cause of an outage so it is important to understand when your dependant servers/services have scheduled maintenance so that you can ensure that your application can sustain this downtime.  Configuring the ReceiveTimeout to an appropriate value will reduce the chance that BizTalk will be down due to someone else's maintenance window.

BizTalk Adapter Pack 2.0 – SAP Adapter IDoc Schema Versioning Part 2

In my first post, I discussed how the BizTalk Adapter pack Consume Adapter Service wizard tightly couples the IDoc schema version with the version of SAP that you used to generate the schema with.  The goal of this post is to discover how you can avoid this tight coupling and hopefully survive an SAP upgrade.  I know the organization that I work for would not be pleased with having to update all of our IDoc schemas when we do our next SAP Upgrade just because the version of SAP has been incremented.

When the BizTalk Adapter Pack came out I was pretty excited that I could throw away my Flat File schemas and pipelines.  While true, it comes at a cost.  When using the XML Receive pipeline with the new Adapter, the Adapter will use data in the SAP Control record to determine what version of the message you retrieving from SAP and will assign a namespace to your message, that contains SAP version information, before depositing it in the message box. If have not changed your SAP version since generating your IDocs you are in business.  If you have upgraded your SAP system or have generated the wrong schemas for your SAP version then you will be in a lot of pain. 

To get around this tight coupling issue, you can revert back to the old style of IDoc processing which involves flat files and pipelines.  Now there is nothing really wrong with this model, but it does require a few extra steps and is not as “clean” a solution as using the XML Receive pipeline.

I will now take you through how you generate a flat file schema that can be used to process different versions of the same IDoc.  When I say different schemas this means that the version, and therefore namespace, are different but structurally the documents are the same.  Note that I will not go through all steps required to generate an IDoc schema, only those that are important to generate a Flat File schema.  To see a more comprehensive walk through of generating an IDoc schema, please see my Webcast.


  • When using Consume Adapter Service wizard, ensure that “GenerateFlatFileCompatible” is set to true.


When you set the GenerateFlatFileCompatible property to true, you will now see the flat file specific data within the Schema specification.


Without setting GenerateFlatFileCompatible ,  the schema will not contain this flat file information.



  • You also want to indicate the “ReceiveIDocFormat” will be a String.  You will find out why this is important later on in this post.


  • Once the schemas have been imported into Visual Studio, enable “Flat File Extensions” to the “core schema”.  When using the BizTalk Adapter Pack Consume Adapter Service wizard you will generate more than 1 schema unlike the old .Net Connector version where you would always only generate 1 schema.  By “core schema” I mean the one that contains the “meat” of your schema, not one that contains the shell(all of the imported schemas) or any of the base type schemas.


  • You will now need to create a Receive Pipeline and add a Flat File disassembler


  • Add your “shell” schema to the document schema property


  • Build and Deploy your application
  • When configuring your SAP Receive location you will want to specify your Receive Pipeline as opposed to XML Receive


  • On the Binding tab, set the “ReceiveIdocFormat” to String


  • On the Messages tab, provide an XPath expression that will extract the flat file data so it can be disassembled by the Receive Pipeline.  The XPath expression that I used is:


    The adapter is essentially wrapping this flat file in XML tags so that it can make it through the adapter stack as an XML message. 

    Also ensure the “Node encoding” is set to String as the default is “XML”


  • Start your application and you are good to go


  • Up until this point, I have not modified the namespace of my schema and everything worked well as expected



  • However, the purpose of this post is to demonstrate how we can break away from the default namespaces that are generated by the adapter.


  • Since I have redeployed the application, the message subscription have also been updated:


  • Start your application up and it should function with this new namespace and therefore subscription.


  • The next test is to generate a different version of an SAP IDoc and ensure receiving a different version of the IDoc does not break our application.  If you recall from Post 1 we received an error in this situation.  From the Consume Adapter Service wizard, I am deliberately going to generate a schema that has a DOCREL  greater than my current SAP version.


  • My subscription is updated and is looking for a “710” IDoc where as SAP is going to generate a
    “700” IDoc


  • I received, processed and delivered the message downstream without issue


  • Even though SAP, populated the Control record with DOCREL = 700, I am able to process this message because this DOCREL is not being used to derive the target namespace like it is when you use the XML Receive pipeline.  This is really where the value of the Flat file pipeline comes in as it will use the namespace in the schema that is configured inside the pipeline instead of having the Adapter generate a namespace automatically.   This also works as the structure of the 700 IDoc has not changed in the 710 IDoc.  If the structure of the IDoc changes with the version number then you have no other option than to regenerate your schemas.



So everything is fine and dandy until you try to deploy another IDoc with the same Program Id/Partner Profile.  There is bug with the BizTalk Adapter Pack that prevents you from deploying multiple IDoc Flat File schemas with the same Program ID.  Look for a workaround with my next post in this series.  I should be able to turn that post around quicker than this one.