by community-syndication | Sep 15, 2005 | BizTalk Community Blogs via Syndication
Windows Workflow Foundation has been officially announced at the PDC. Get a load of this, from Darren Jeffords blog;
For those of you familiar with BizTalk Server 2004, Windows Workflow Foundation is analogous to the Orchestration Designer and Orchestration Runtime (XLANG) in BizTalk. It allows you express your “workflow” using a designer and then have this executed by a runtime.
The Orchestration designer in BizTalk was fairly heavy-weight and not really suitable to be hosted and used in other applications (memory footprint, etc.), Windows Workflow Foundation is light-weight and re-hostable allowing you to integrate workflow functionality into your application.
I wonder what this means?
Business Rules are built into the designer allowing you to encode any flexible rules separate from the implementation allowing for easy modification.
WWF provides a framework for building and hosting workflows inside Windows apps. It will be part of the WinXF namespace along with Indigo and Avalon.
OK, no need to panic – from the horses mouth;
Future versions of BizTalk Server, MBS Applications and Office “12” will use this technology. As of today workflow is a new player in the middle tier for application development. Every application includes some workflow and with Windows Workflow Foundation you can capture that workflow in a model.
by community-syndication | Sep 14, 2005 | BizTalk Community Blogs via Syndication
Can you see why I kept stum, there were some rumours about the workflow strategy and partnership. Still not quite sure whether K2.Net will be bought out by Microsoft. I dont think so, as the WWF is to allow workflow partners to complement the base workflow services, for example look also at Captaris Teamplate
An indepth look at the architecture is now available
by stephen-w-thomas | Sep 14, 2005 | Stephen's BizTalk and Integration Blog
I have put together a video and sample walking through a simple Sequential Workflow using Beta 1 of WinWF (available for download from Microsoft).
This video will take you step by step through creating your first sequential workflow in less than 15 minutes!
This workflow is hosted by .net using a Windows Form. It takes in an input value and returns a string of how long it took to process the order.
The sample includes two windows form for calling the workflow.
Download the sample code: Sequential Workflow using WinWF
Download the video: My First Sequential Workflow Video
by stephen-w-thomas | Sep 14, 2005 | Stephen's BizTalk and Integration Blog
Today Microsoft released the long awaited Windows Workflow Foundation at PDC.
You can get all the details from the Windows Vista Development Center for Workflow.
Microsoft’s awesome new Windows Workflow Community Site is located at http://www.windowsworkflow.net.
WinWF will provide a framework for building and hosting workflows inside Windows. It will be part of the WinXF namespace along with Windows Communication Foundation (Indiago) and Windows Presentation Foundation (Avalon).
The Beta Code for WinWF is available though the Vista Development Center.
Watch for samples and videos to be posted shortly to my Windows Workflow Foundation page.
by community-syndication | Sep 13, 2005 | BizTalk Community Blogs via Syndication
I wish to express my sincere condolencies to Cristiano Ronaldo , who lost his father at an early age, as did I. I know exactly what he is going through. You have the support of the worlds biggest football fan club my friend. God Bless. Rest in Peace.
by community-syndication | Sep 13, 2005 | BizTalk Community Blogs via Syndication
ATLAS has now landed. Asynchronous Javascript and XML ie AJAX is now supported within ATLAS and will be integrable within Whidbey as an addon. I’ve been using XMLHTTP object in IE for many years when one of my colleagues introduced it in one of our client projects. Good for minimisation of round trips at page level, and give web page that extra stable look and feel, ie no more flickering… As far as browser independence is concerned alot of the modern browsers will be wrapping up this object within their javascript.
So yeup, its all happening at PDC , wish you were here as they say…I’m not unfortunately.
by community-syndication | Sep 13, 2005 | BizTalk Community Blogs via Syndication
Forgot to mention this, also I discussed the workflow strategies, and how I was impressed with K2.Net, and so whats gonna happen to HWS. Well WinOE is now WWF, Windows Workflow Foundation in theme with Indigo is Windows Communication Foundation etc…
I have been asked to stay stum about WWF as it could well be unveiled at PDC, tomorrow? Heres a sneak preview before then.
If you want to catch up on this arena I suggest you monitor the workflow webcasts webcasts
So yes, partners such as K2.Net and others, should be be able to layer their apps on top of WWF for that extra piece of workflow functionality.
by community-syndication | Sep 13, 2005 | BizTalk Community Blogs via Syndication
Just came back from Microsoft today for a partner event on BPI, integration with Biztalk Server 2006 and other 2006 DotNet Servers. Good event, glad they clarified that the backend for sql server databases will be tied in with Yukon engine and not Shiloh engine. My current CTP install of Biztalk Server 2006 is still integrated with Shiloh and I was getting concerned about this so had to cllarify. Glad they also showed how BAM can add intangible business value to systems integration via real time data analysis, that other vendors just seem to ignore, which gives Biztalk that extra edge in the ZLE arena. They gave a great BAM case study for fraud detection which I will most certainly leverage for my presales activities!
by community-syndication | Sep 10, 2005 | BizTalk Community Blogs via Syndication
Recently, somebody asked me how to access the MSMQ label from BizTalk, in order to access some information that is passed by its own C# application through the MSMQ label.
See issue described below.
———————————-
Below I give my problem, Please give me a good solution for me.
I have a C# application. It has an upload page. If user uploads a XML file,the C# application reads it and send this to MSMQ as a Message.
The code is below.
StreamReader sr = new StreamReader(Path); string str; str = sr.ReadToEnd(); System.Messaging.Message mm = new System.Messaging.Message(); mm.Formatter = new ActiveXMessageFormatter(); mm.Body = str.ToString(); mm.Label = UserID; mq.Send(mm);
I create a Orchestration with receive and send ports. The receive ports looks message from the MSMQ using MSMQ adapter. then I use schemas and maps to transfer the Message. After that, I use a file adapter for save the final message to a folder.
Every thing works fine. My problem is, I want to identify the User who uploads the file. In C# application I set the label for the message as USERID.
I want to save the name of the output file is [userid].xml.
I use %SourceFileName% and MsgOut(FILE.ReceivedFileName) to rename the output file. But how to get the userid from the C# application and set the file name. I cant able to access MSMQT.Label in Expression Editor. Because I use MSMQ adapter. Please give me a good solution.
The main problem is identify the user who uploads the file.
———————————-
The problem with the existing implementation of MSMQC lies in the MSMQPropertySchema.xsd file that seems to be incorrect.
This XSD schema must be updated so that the properties are marked as context properties. To do this, select each property and change the “Property Schema Base” property from default value (no value) to MessageContextPropertyBase. Once you do this, re-build and re-deploy the updated schema project, and you should be able to access these properties from your orchestration.
This is how the schema should look like
<?xml version=”1.0″ encoding=”utf-16″?>
<xs:schema xmlns=”http://schemas.microsoft.com/BizTalk/2003/msmqc-properties” xmlns:b=”http://schemas.microsoft.com/BizTalk/2003″ targetNamespace=”http://schemas.microsoft.com/BizTalk/2003/msmqc-properties” xmlns:xs=”http://www.w3.org/2001/XMLSchema“>
<xs:annotation>
<xs:appinfo>
<b:schemaInfo schema_type=”property” xmlns:b=”http://schemas.microsoft.com/BizTalk/2003″ />
</xs:appinfo>
</xs:annotation>
<xs:element name=”AppSpecific” type=”xs:int”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”ec76abf6-1c10-4383-8182-635eaf20a790″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”ArrivedTime” type=”xs:dateTime”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”3d8ae2da-2f26-4422-a68a-67f005cf32c8″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”Authenticated” type=”xs:boolean”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”36e29190-e4cc-4e64-b181-4a63488ccd75″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”CorrelationId” type=”xs:string”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”d16e9d65-f742-4982-9c71-59089fa23b22″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”Id” type=”xs:string”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”c0e64a4d-8a6f-4b21-936c-5531abb255f4″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”Label” type=”xs:string”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”1ff2b7af-2dd8-4b38-8360-2373e5fb05f6″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”Priority” type=”xs:int”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”7f13d6b8-21c6-4914-9025-b91dc03c0b24″ propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”ResponseQueue” type=”xs:string”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”8cf607f9-165e-43c8-b730-07559d876b5c” propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”SentTime” type=”xs:dateTime”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”603ffea4-4fd9-443c-9362-b662b8aacddb” propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name=”SourceMachine” type=”xs:string”>
<xs:annotation>
<xs:appinfo>
<b:fieldInfo propertyGuid=”32fbdf7b-d19f-4e27-9b45-331810780eef” propSchFieldBase=”MessageContextPropertyBase” />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:schema>
by stephen-w-thomas | Sep 9, 2005 | Stephen's BizTalk and Integration Blog
It’s late on a Friday. I am still at the client site. I just canceled my flight home. It is my anniversary weekend (yep it is on 9/11, sure sucks). We are hours from going live… But, what does Exceptions.Types.InterceptorException GetTempFileName Failed mean?
I ran into this problem while testing some recently updated Orchestrations that use Convoys to process messages received from multiple source systems in order. A small change was made that removed a Send Shape and replaced it with a custom .net component call to a java web service. Seems simple enough.
When the process encounters an exception, it uses the file adapter to write the file to disk and stops message process. That all tested perfectly.
When the process completes successfully but no other messages have arrived in the convoy. That all tested perfectly.
When the process completes successfully but new messages have arrived in the convoy the follow error occurs:
Exceptions.Types.InterceptorException
GetTempFileName Failed.
Exception type: StreamingException
Source: Microsoft.BizTalk.Streaming
Target Site: System.IO.Stream CreatePersistentStream()
Help Link:
Additional error information:
Not only do I get an exception, but the process continues forever in an endless loop with a 100% CPU spike.
So, what could be the problem and more importantly how can it be fixed?
The answer lies with the change that was made by replacing the Send Shape with a .net component call. This removed a persistence point in the Orchestation. In fact, it removed the only persistence point for the happy path (i.e. no errors) inside the Orchestration. So, when this message is processing, a 2nd message arrives in the convoy, and the next Receive Shape is hit the whole process goes down hill.
Solution: I added an Atomic Scope (persistence point) right after the Receive Shape. Problem solved.
A better solution: Isolate the units of work inside the Orchestration into logical units and use Atomic scopes to track progress through the Orchestation. In the event of a Server Crash, the Orchestrations would restart in more desirable state.
Even better solutions? I’m sure.