WSS Adapter webcasts/videos

BizTalk 2006 RTMd last month, and the BizTalk Betaplace has been closed for a few weeks now. Many people have asked me for access to the WSS Adapter videos that were shared on the betaplace and finally, here they are.

The videos are shared on this SharePoint site:, in the Shared Documents document library, WSS Adapter Webcasts folder.

This posting is provided “AS IS” with no warranties, and confers no rights.
Use of included videos are subject to the terms specified at Some of the content was developed for the BizTalk Beta builds, but it is still generally applicable to the RTM version.

Comments (24)

  1. Adrian Hamza has posted 4 great demo videos covering the BizTalk Adapter for Windows SharePoint Services….

  2. pkarpati says:

    Great videos!!!

    Is it possible to define different SharePoint Site URL for Templates Document Library and Destination Folder URL?

    It would be very important if I have many SPS sites, and I want to use the same templates on each sites, and I want to upgrade my templates in a single step. Of course, I want to use only one dynamic port on my orchestration…



  3. Garry Trinder says:


    No, unfortunately you cannot specify a Templates Document Library and a Destination Folder URL that point to different SharePoint sites. The Destination Folder URL must be a URL relative to the SharePoint Site URL field. The Templates Document Library field must contain the document library NAME (not URL) and it refers to the site specified in SharePoint Site URL field.

    I understand your scenario, it seems to be a perfectly valid one. Luckily, it’s pretty easy to copy the SharePoint templates from one site to another.

  4. pkarpati says:

    One more question:

    I’ve tried to create a Form Library in a BizTalk Orchestration according to another Form Library (just like a copy). I’m using WSS web services (Lists.asmx) to create (AddList method) a SharePoint list, with the type of XML Library (115). After that, when I get (in BizTalk Expression with System.Xml classes) the properties.xfp file from the source form library (to show published columns), and send it to the form library created earlier, the file successfully submitted into its new location ("Form_library1/Forms/" folder), but I’m getting this error in Event Viewer:

    The adapter failed to transmit message going to send port "InfoPathSendPort" with URL "wss://isbudaapl01/sites/BIRSite_48/Velemenyezes_1_1/Forms/". It will be retransmitted after the retry interval specified for this Send Port. Details:"[System.NullReferenceException] Object reference not set to an instance of an object.

    This error was triggered by the Windows SharePoint Services receive location or send port with URI wss://isbudaapl01/sites/BIRSite_48/Velemenyezes_1_1/Forms/.

    Windows SharePoint Services adapter event ID: 12310".

    So I dont understand, because the file was placed into the Forms library in SharePoint, instead of this error.

    Can you tell me more specific about this adapter event?

    With many thanks,


  5. Garry Trinder says:

    All libraries contain a hidden folder named "Forms".

    I’m not completely sure I understood your scenario. It seems to me that you are trying to receive/send files from/to the "hidden" folder Forms, folder that exists in all document libraries and forms. That’s not supported a supported scenario.

    What is your end goal?

    You can save the form library/document library as a template (with or without the contained files) and then create a form library from that template. The new form library will contain copies of the files from the original form library.

  6. marco zagolin says:

    cannot access to the SharePoint site:

    I can ping the site, but I get the

    "The page you are looking for is currently unavailable"

    error when trying to connect.

    can you help me to get the videos ?


    marco (from Italy)

  7. Garry Trinder says:

    Hi Marco,

    It should work now. If it doesn’t try again a couple of hours later. My ISP is upgrading their infrastructure and there will be some temporary failures.


  8. AndersR says:


    i have successfully gone through the webcasts, and they were a great help understanding how the adapter works.

    however my scenario is different, and i wondered if you could point me in the right direction of how to best achieve my goal:

    -A complex InfoPath form template is published to a WSS forms library. (Complex == The template contains several nested repeating sections)

    -The adapter must monitor all changes in that library (saving of new or existing xml forms)

    -Each time a form is changed, the entire content of the form is written into x new records in a flat table in SQL 2005 (flat as in that several items in repeating sections will result in several redundant rows in that one table. This is ok since the data will be used later in a BI/Reporting Services scenario)

    Can the WSS adapter help me in this scenario?

    I see 2 caveats here:

    1. As i see it, the WSS adaptor is time based rather than event based, but i might be able to get around this by checking the Modified timestamp. Not sure how though…

    2. How do i get BT to map and write data into SQL server?

    hope you can help me out a bit



  9. Garry Trinder says:

    It’s possible. You can use WSS and SQL adapters to do that or something similar.

    WSS adapter processes documents from a SharePoint view so you can specify a particular view in your receive location and only documents from that view will be processed. The view is a filter and you can filter on the Last Modified field. The only caveat here is that WSS adapter deletes or archives files that have been processed (in order to not process them again). Once the file is received in BizTalk you will construct one or more new messages and sent those messages to SQL using the SQL adapter.

  10. AndersR says:

    Great! It Works fine.

    I created a SPS eventhandler that triggers on Insert and Update. It copies the file to a new doclib that is monitored with a WSS adapter enabled recieve location (XML Recieve) that has a mapping file that matches InfoPath XSD up against SQL Adapter XSD.

    The Send Port is set up as an SQL adapter.

    Result: instant logging of all save events in InfoPath 🙂

  11. AndersR says:

    An addition to the above:

    my proof-of-concept worked as a charm: when a repeating table or other repeaters was used in InfoPath, SQL Adapter would create a row for each repeating row.

    But now i mapped a full InfoPath XSD up against a database, that contains several repeating sections (also nested), SQL Adapter always write one row only!

    I checked both the IP schemas and the SQL Adapter schemas -everything is the same except the amount of fields mapped! 🙁

    Any idea what causes this?

  12. Garry Trinder says:

    I used SQL adapter seldomly so I can’t help you there. I saw you posted your question to the BizTalk Newsgroup, hopefully somebody will answer your question.

  13. AndersR says:

    Hi Adrian,

    thats cool!

    nothing like the wooshing sound of a deadline passing by you huh? 😉

    no answers yet tho -if you happen to know whos the developer guru on Sql Adapter, and if he runs a blog i would really appreciate if you could a)drop me a link to his/her blog or b)give him/her a nudge about the thread on usenet



  14. AndersR says:

    I solved this problem.

    If anyone else run into a similar issue, this is how i solved it:

    First i ran a test on the map, which showed that the problem was that the schema had multiple source loop paths (repeating sections in the InfoPath XSD).

    In fact it had 21 repeating sections -some nested- which BT apparently had trouble mapping automatically to my flattened target schema (SQLXML schema mapped to a single table)

    I introduced a Looping Functoid that mapped each of the nodes/elements that repeated (look for attribute maxOccurs="unbounded") to the root node of the target schema.


  15. Anders Rask says:


    Im using WSS adapter to pick up InfoPath files. These are then send to an SQL Adapter and written to an SQL database.

    I have looked for a way to get hold of the filename of the document that is caught by WSS adapter so that i can have the filename as my ID in the database.

    When i move the files to the doclib that WSS adapter monitors i add a timestamp to the filename as a suffix (eg. "632908117120000000_AP30 CIDER WITH PEACH-PASSION TASTE 90_10"), so the filename would be ideal for me to use for this purpose in the map file (where i map IP schema with SQL adapter generated schema)

    How do i obtain this value from inside BT?


    Anders Rask

  16. Garry Trinder says:

    You can obtain all SharePoint information you need. The filename is available in the WSS.Filename property, all SharePoint columns including custom ones are available in an XML blob stored inside WSS.InPropertiesXML property. There are other additional properties for the most used values.

    msg(WSS.Filename), msg(WSS.InPropertiesXML) is how you retrieve the values of these properties from the message.

    The properties are documented here

    You are interested by the ones prefixed with "In" or not prefixed at all.

  17. Anders Rask says:

    Hi Adrian

    thanx for pointing that out.

    since the BT project only consist of static ports and a mapping file where i map IP > SQL server XSD, im not exactly sure how i map this value from the WSS adapter property?

    Can the property be reached within a scripting functoid or?

    I would like to avoid creating an orchestration.



  18. Garry Trinder says:

    You can do it from a custom pipeline but you will have to find some resources on how to do that, I haven’t tried it.

    I don’t know if you can access the context properties from the mapper, my guess is that you cannot do that, although it would kind of make sense to allow that.

  19. This question comes up quite often that it deserves its own post. Is there a way to configure one send

  20. Kuldeep says:


    I am having an InfoPath form, that has some code for validation, so I have made it an administrator approved template, I have create a forms library that adheres to this template.

    When the biztalk places the xml into this forms library, it works fine, but it does not populate columns I have promoted.

    The XML is counstruction the InfoPath form poperly, but its not filling in the values in the columns.

    Can you please help me?

    Thanks in advance

  21. Kuldeep Desai says:


    I am having a BizTalk 2006, SharePoint 2007 and InfoPath 2007 collabration architecture.

    The InfoPath form contains code, so it is an administrator-approved template for a Forms Library(A browser based solution).

    I have promoted certain fields, in form which are columns in forms library, but when i submit a form from BizTalk, the columns are not being populated with data, i have tried both static one way and dynamic port with wss.configpropertiesxml but none of them work.

    Please Help ME!!!

  22. Garry Trinder says:

    InfoPath property promotion works only when the document is saved from InfoPath directly to the WSS form library.

    BizTalk property promotion can be used for the case when the XML document is sent from BizTalk to the WSS form library. As part of the BizTalk send port (static or dynamic) you need to define the names of the SharePoint columns that  you want to be updated and the XPATHs for extracting the values.

  23. Asif Hussain Azad says:

    Hi Hamza

    I can’t open or download these videos. Its   asking for ID and Password, so what should I do to see or download these videos….????

    Asif Hussain Azad

  24. Garry Trinder says:

    Try again, it was probably a glich with the hosting company. It works right now.