BizTalk Adapter for SharePoint 2010

As far as I know there’s some good news and bad news

Good news: the existing BizTalk SharePoint Adapter *should* work
with SharePoint 2010 – you will however need to add ’<rebinding>’ section to
the existing adapters web.config *if* the SharePoint 2010 is installed locally to
the BizTalk Server.

The ’rebinding’ tells your local .NET app that even though you want V12.0.0.0 of the
SharePoint APIs, V14.0.0.0 assemblies will give it to you.

Bad News: there’s no new BTS Adapter on the Horizon for this – AFAIK.

——

With SharePoint 2010 we now have the capability to involve many tighter technologies
such as:

1) event notification, rather than polling for the adapter.

2) LINQ and ADO.NET Entities to query the Data.

3) SharePoint Client WCF Service – Client.svc . This is a lightweight
and fast interface, where we can batch up requests, send them over the wire and get
back just what we ask for.

4) Lists.ASMX web service (+ the others) for backward compatibility.

When I get some time:D, I’m keen to develop a .NET LOB WCF Adapter.

BizTalk 2009 – Configuring the SharePoint Adapter *Manually*

Well – after spending *far* too long trying to get a little Red X to disappear from
my BTS Configuration tool, so I can have a green light to configure the SharePoint
adapter, I thought “There’s got to be an easier way”

Exhibit A – your honour. The SharePoint Adapter Configured.

So – what I did was roll my sleeves up and do this by hand.

This particular install – BTS09 x86, I installed WSS V3.0 with Sp2 and created a local
sharepoint web application, site collection and had a whole bunch of SharePoint happiness
coming back to me on http://biztalk (my server name).

All good I thought – except the configuration tool didn’t like what it found. I looked
at logs, ran network sniffers and even manually ran the tool  Microsoft.BizTalk.KwTpm.StsOmInterop3.exe http://biztalk with
success:

But still no joy in the configurator.

Here’s how to do it manually:

  1. Setup your local or domain SharePoint Groups
    Typically this is the ’SharePoint Enabled Hosts’ Group – if it already exists
    on the domain, then great, if not create it. For this I created my group on the local
    machine.
    I also added as members, my biztalk service account and my Sharepoint Service
    Account
    .

  2. Configure IIS – BTS SharePoint WS Web Application

    1. Within the BizTalk Installed folders – e.g. c:\program files\Microsoft BizTalk 2009\Business
      Activity Services, you’ll find the set of WebServices to choose from. Select the right
      one for your SharePoint deployment.

    2. As you can see I selected BTSharePointV3AdapterWS (for WSS V2 SP3, select BTSharePointAdapterWS).

    3. This is the folder you will point IIS to later.

    4. Open this folder and you’ll see a web application with a web.config.tmpl

    5. Copy the web.config.tmpl and rename the *copy* to web.config

    6. Open up your Web.Config in Notepad and configure as follows:

        <?xml version=”1.0″ encoding=”utf-8″?>
        <configuration>
          <system.web>
                <httpModules>
                    <!–add name=”UrlAuthorization”
        type=”System.Web.Security.UrlAuthorizationModule” /–>
                </httpModules>

            <!– Change debug=”true” if you want to debug this web service
        –>
            <compilation defaultLanguage=”c#” debug=”false” />
            <customErrors mode=”Off” />
            <!– Windows Authentication is required for this web service.
        –>
            <authentication mode=”Windows” />
            <!– Impersonation is required for this web service. –>
            <identity impersonate=”true” />
            <authorization>
                <allow roles=”SharePoint Enabled Hosts”
        verbs=”GET,HEAD,POST”/>
                <deny users=”*”/>
            </authorization>

            <!– Uncomment this block if you want to do some tracing of
        this web service –>
            <!– <trace enabled=”true” requestLimit=”10″ pageOutput=”false”
        traceMode=”SortByTime” localOnly=”true” />  –>
            <globalization requestEncoding=”utf-8″ responseEncoding=”utf-8″
        />

            <!– The size of a document being posted to SharePoint depends
        on this setting –>
            <httpRuntime maxRequestLength=”100000″ />
            <trust level=”Full” originUrl=”” />
          </system.web>
          <runtime>
            <assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
              <dependentAssembly>
                <assemblyIdentity name=”Microsoft.SharePoint”
        publicKeyToken=”71e9bce111e9429c”/>
                <bindingRedirect oldVersion=”11.0.0.0″
        newVersion=”12.0.0.0″/>
              </dependentAssembly>
            </assemblyBinding>
          </runtime>
        </configuration>

      1. (you can always go back and tighten security up on this when you’ve got it working).

      2. Note the ’SharePoint Enabled Hosts’ – local group here.

      3. I’ve also removed the ’Documentation’ tags so I could get some WSDL to make sure it
        works within the browser.

      4. Save your web.config within Notepad.

      5. NOTE: make note of the Folder Path to get here as we’ll need it in IIS next.
    7. Configuring IIS

      1. Bring up IIS Admin MMC snapin.

      2. Select your SharePoint enabled Web Site, I selected ’Default Web Site’. Right click
        when ’Default Web Site’ is Selected and select ’Add Application’

        note: IIS 7.0 Manager shown.

      3. Configure this as follows:

        (Note – the App Pool User should be able to post into BizTalk and SharePoint)
        Physical Path: <path you had previously to either V2 or V3 of your BTSharePointV3Adapter>

      4. Click OK.

      5. To Test your WS: browse to: http://<your server>/BTSharePointAdapterWS/BTSharePointAdapterWS.asmx

      6. You *should* get this:

        You can invoke the IsAlive function and get TRUE back.

      7. If not, then fix your IIS related errors, at this point you’ve got a WS that uses
        the SharePoint APIs (locally). Some things to check:

        1. Local file security – make sure the Web App Pool acct can access those directories.

        2. Windows Auth is turned on, on your Web App.

        3. Check IIS log files for clues.
      8. You’re done on the IIS side of things, let’s configure BTS Side.
  3. Configuring BizTalk Side
    Fortunately the WSS Adapter is installed as part of the BizTalk Runtime configuration
    – it’s just not configured. So as far as registering the adapter with BizTalk it’s
    already been partly done.
    1. Install the “I’ve been Configured Registry Keys” – I took these from a previously
      successful 2009 install.
    2. BTS
      WSS Reg Keys

    3. Once the registry keys have been applied you’ll need to go and configure the \TPM
      key
      to reflect your setup as follows:
      1. In Particular – configure your SharePoint SiteID to the one you saw in IIS.

      >

    4. How is this Different for a x64 bit Install
      1. The IIS piece is the same.

      2. The BTS Piece – the Perf counters are the same,

        but the ..\TPM piece is under HKLM\SOFTWARE\WOW6432Node\Microsoft\BizTalk
        Server\3.0\ConfigFramework

      3. So you’ll need to ammend 1 of the above 2 REG files.

      >

      You’re done!

      Why oh why is this so hard from within the Configurator.

      NOTE: There *USED* to be a Registry key that told the BTS WSS Adapter where
      to go looking for the BTSharePoint WS – a URL (..STSServiceUrl). This eliminated the
      need for a local machine install of SharePoint/WSS. Alasthis is *NOT* the case with
      WSS Adapter post BTS06.

ACSUG Meeting Thursday November 19 – A Practical exploration of the Business Rules Engine in BizTalk Server with Jeffrey Chilberto

ACSUG Meeting Thursday November 19 – A Practical exploration of the Business Rules Engine in BizTalk Server with Jeffrey Chilberto

I’m happy to announce that the next Auckland Connected Systems User Group meeting is set for the 19th of November 6:00pm at Datacom, 210 Federal Street downtown Auckland, New Zealand . Free entry, pizza and drinks provided as usual. Register here.
Jeff will take us through a practical exploration of the powerful Business Rules Engine in […]

SOA Manifesto signatories page is up – and growing fast

The SOA Manifesto signatories page went live a few days ago. Approximately 300 people have already signed up to show their support for the Manifesto, including some very well known names, and some of the worlds leading corporations and organizations. You can see a list of the signatories here.

In addition, Thomas Erl has very eloquently described the background and the process that lead to the Manifesto, you can read that here.

Lastly, if you read the SOA Manifesto, and agree with the value statements and principles it sets forth, you can show your support and become a signatory here.

ExpressionMaximizer

ExpressionMaximizer

A bigger expression shape window is a feature that almost always appears on “next version of BizTalk wish lists”.
Every time Microsoft releases a new version of BizTalk we are all very disappointed that they did not make the expression window resizable or at least bigger.
There are rumors that this is done to discourage developers to […]