Microsoft BPM&I Conference

If you haven’t already heard, the next big conference that our folks in Redmond are planning is the 2nd annual Business Process Management and Integration conference. This conference is going to be sponsored by the BizTalk server product group and it’s going to be held October 3rd through to the 6th at the Microsoft Conference Centre in Redmond (2006).  Complete details are going to be made available in the early summer, but be sure to save those dates if you’re interested.


People that attended last year tell me that they were around 500 partners and customers attending and that we had at least 40 from right here in Canada.  We’re expecting to get around 750 this year, so it’ll be the place to meet other BizTalk experts, exchange BizTalk stories and generally ramp up your skills. Hope to see you there.


Cheers


 

WSS Adapter handling of InfoPath forms with attachments

InfoPath supports forms with file attachments by encoding the attachement as base64 and including the following PI



<?mso-infoPath-file-attachment-present ?>


at the top of the XML document to indicate that a file has been attached to the document.


WSS adapter works with InfoPath forms with attachements by making sure that it does not add/remove/update any of the PIs that are related to file attachment. If the files are attached to the form in InfoPath then the PI should be there because InfoPath adds it. If the files are attached by your orchestration or some component other than InfoPath, then the orchestration/component needs to add the PI explicitly. The adapter cannot know if a file attachment is included in the form (unless the PI is present in which case there’s nothing to be done) so it will never add the PI. You can add the PI explicitly in your orchestration using a construct like this:



msg(XMLNORM.ProcessingInstructionOption) = 1;
msg(XMLNORM.ProcessingInstruction) = “<?mso-infoPath-file-attachment-present ?>”;


So, whatever component attaches the files to the form needs to also add the PI. WSS adapter will preserve the PI if it’s in the document, but it will never add such a PI to the XML document.

TechEd Australia 2006 Connected Systems Content

The latest draft of the content for this year’s TechEd in Australia has been posted to Kleefy’s blog. http://blogs.technet.com/mkleef/archive/2006/06/09/434444.aspx Please comment!!

 

Let me know if you want any Tracks relating to BizTalk removed / added…

 

At this stage the connected Systems Track includes;

 

(BTS) Business Process and Integration Landscape
(WinFX) Introduction to WinFX
(BTS) BizTalk Server 2006 and Office Business Scorecard Manager 2005: Integrating Real-Time Business Activity Monitoring with the Scorecard
(BTS) Planning and Designing Enterprise Class BizTalk Server Solutions
(CS) Connected Commerce with Commerce Server 2007
(WinFX) “InfoCard”: Introduction
(WinFX) Windows Communication Foundation: Introduction
(WinFX) Windows Workflow Foundation: Introduction
(BTS) BizTalk Server: Adapters for Host Systems
(BTS) Integration of BizTalk Server 2006 and Windows Workflow Foundation.
(BTS) Management, problem identification, trouble shooting, automation
(CRM) Modeling and Automating Business Processes with Microsoft CRM
(NET) .NET 2.0 to WinFX: How WCF will change the way you’re developing Service Oriented solutions
(WinFX) Windows Communication Foundation: Building Secure, Reliable and Transacted Services with WCF
(WinFX) Windows Communication Foundation: Designing Bindings and Contracts
(WinFX) Windows Workflow Foundation: Building Rules-Based Workflows
(WinFX) Windows Workflow Foundation: Creating Custom Activities for Workflows
(NET) .NET Framework 2.0: Build your own Enteprise Service Bus with it

 

 

Free SharePoint 2007 e-Book

[Via Eli Robillard] So you want to learn about the new version of SharePoint? Both Windows SharePoint Services v3 and Microsoft Office SharePoint Server 2007? Than this book is for you: 7 Development Projects for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0.

Quite a long title for a 236 page book, but the good news is that you can download it for free! These are the chapters:

  1. WSS v3
  2. Building Solutions with MOSS 2007
  3. Building a Basic SharePoint Site
  4. Organizing Lists and Documents with Site Columns and Content Types
  5. Working with Features in WSS
  6. WSS Core Development
  7. Creating Workflows
  8. Introducing Excel Services
  9. InfoPath 2007 and Forms Server 2007
Share this post: Email it! | bookmark it! | digg it! | reddit!

Proposed BAM Developer content

I have received requests for what might be called “Developing for BAM 101”. To address these requests I am planning to provide a topic set that will help the new BAM code developer get started. I have outlined our proposed set of topics below. I welcome your feedback on these topics. Does this set of topics address the needs of the new BAM developer?


The topics in this table of contents will initially be delivered as a stand alone document set. on the Microsoft Dev Center. Moving forward the contents of this guide will be pushed into the core documentation for the BizTalk Server.
The target audience for this document is the new BAM developer. This document will focus on development tasks associated with handling BAM events.


Getting Started Developing For BAM

Topic: What is BAM?
Content: This will be brief overview of BAM and will point to other resources.


Topic: Why Write Code for BAM
Content: This topic discuss the advantages and benefits gained by writing code to perform BAM tasks.
Additional topics that topic covers are code written to be called from inside BizTalk Server using the OrcheestraionEventStream and MessagingEventStream APIs and the use the native Interceptor.
Code written to be called from outside of BizTalk Server using the BufferedEventStream and DiredEventStream.


Topic: BAM Concepts for the Developer
         Topic: What is an Activity
         Topic: Tracking vs. Transactional Processing
         Topic: What are Continuations
         Topic: What is a Reference


Topic: BAM Development Prerequisites


Topic: Other Prerequisites
      Topic: Prerequisites for developing against a BizTalk Solution
      Content: This topic contains information on what minimal BizTalk and BAM infrastructure components must be in place before you can develop against them.


Topic: Key APIS for BAM Development
Content: This topics covers the BAM name spaces and describes the usage of the key BAM APIs. This topic may have several subtopics to address separate areas of functionality.



Topic: Best Practices for BAM development
         Topic: Developing Secure BAM code
         Topic: Considerations for developing BAM code solutions
         Content: This topic helps steer the new developer around common programming issues that are encountered by the new BAM developer.


Topic: Simple Sample
Content: The sample is a minimal sample designed to highlight the usage of the APIs without burying them in to much complexity.

BTS Diary II – 6 – More on MSMQT and BizUnit, AltovaXML

BTS Diary II – 6 – More on MSMQT and BizUnit, AltovaXML

Some more information for those who have been following my posts on this topic.


MSMQT : It appears that the MSMQT behavior is by design. Since it is a pseudo queue and really puts stuff into the messageBox, the basic msgBox principle has to apply (ie) a subscriber has to exist. So a dummy send port sending stuff to a file is acceptable even if it is stopped or unenlisted temporarily. Tomas Restrepo, an MVP on the newsgroup suggested i consider moving to MSMQ instead and use the MSMQ adapter since that is the MS recommendation for doing message queueing. Fancy that!! they release a pseudo queue and ask us to consider using something else!! Of course, there are pros and cons for each. For a comprehensive discussion on the history of MSMQ adapters in Biztalk, refer to this article . Anyway, the key point for me is that there is no guarantee of ordered delivery and in this phase of my project we have a service that pumps out customer data into a queue which is then picked up by an orch and sent to the hub which does the dispatch to other systems. Since the customer data involves inserts, updates, merges etc, the sequence is vitally important otherwise we would end up with unnecessary exceptions at the other end. (We may send an update message to the target system before sending an insert and so on). It was also suggested that i consider piping the MSMQT files to a folder while an update is going on and then resubmitting the files once the patch/redeploy is complete. A good suggestion, but the FILE adapter doesnt guarantee sequencing either. So im going to have to either write a custom adapter or work out some other tool which submits the files to the receive location one after another in the correct sequence. I did write something like this for my previous project (the controlled submission was to avoid locking in the database) so perhaps i can reuse that here.


BizUnit, XML Validation and AltovaXML: Turns out that there are problems in XMLValidation when using BizUnit. It cant handle validating against a collection of schemas even when all the ‘included’/imported schemas are in the same folder. Additionally, the XPath statements are constrained to those that can return nodesets only (in BizUnit 2006 there is an enhancement which works around this). So we had to look outside of BizUnit. We considered writing our own custom steps, but for the present the time element is critical and although that is a good long term solution, we didnt want to go down that route today. Fortunately, BizUnit has an inbuilt ‘extensibility’ mechanism or in other words, an escape route, in the form of a DotNetObjectInvoker which allows you to invoke any dotnet type that can take input parameters and return a result. So all that was needed was the requisite classes which could then be invoked from BizUnit. For XPath we wrote a helper class to evaluate and return expressions of integer, string and boolean values. For the XMLValidation, we found that Altova provides the AltovaXML 2006 library free of charge for developers ( i need to check the production license, just to be safe) and that has .NET interfaces as well as Java, COM and XSLT interfaces. So we wrote a wrapper around it and called it from the DotNetObjectInvoker. It works like a charm. So we are going to make extensive use of that in our tests. We also found that there is no ‘CommandLineStep’ which could be used to run a Shell exec on some command line statementas but that should be trivial to write (a bit like the NAnt ‘exec’ task) .

BizTalk Beta Exam 71-235 thoughts…

A couple of weeks back, the Beta exam for BizTalk 2006 was running, now I can’t wait to hear the feedback about what candidates thought about the exam.


If you have some thoughts, please record them here, any feedback will be greatly appreciated.


Personally, there was about 3 questions or so which I really didn’t remember. At least this is what I think. Hopefully, I did well enough warrant the title of “Author” of the exam.


P.S. I’d just like to know overall if you felt the exam was too easy, to hard, or fair.  Did the questions represent real life situations and etc.  My invested interest in this is that, I help create some of the exam items. Thanks.