BizTalk 2006 R2 Beta now on http://connect.microsoft.com
Microsoft today posted the BizTalk 2006 R2 Beta on http://connect.microsoft.com
BizTalk 2006 R2 includes support for WCF, RFID and enhanced EDI support
Microsoft today posted the BizTalk 2006 R2 Beta on http://connect.microsoft.com
BizTalk 2006 R2 includes support for WCF, RFID and enhanced EDI support
What a week this is shaping to be – great bunch of keen students with a willingness
to learn.
BizTalk 2006 R2 offers some great value in WCF, EDI, BAM, Adapters….the list goes
on.
Just hope my voice will last the distance……got the Red-Eye back to Syd Wed night/Thurs
morning 🙂
Together we have trained over 150 students nationally in Australia with the MOSS
2007 Bootcamps during Feb & March.
It has been a big team effort. Thought I’d share some of the feedback we are receiving.
Thanks for the accolades Sezai!
Together we have trained over 150 students nationally in Australia with the MOSS
2007 Bootcamps during Feb & March.
It has been a big team effort. Thought I’d share some of the feedback we are receiving.
Thanks for the accolades Sezai!
Just in case you missed this from other sources BizTalk Server 2006 R2 – Beta 2 shipped last week.
Heres some verbiage that explains the whole deal:
BizTalk Server 2006 R2 will be 5th major release of BizTalk Server. This is another huge step forward for our 6,500+ customers globally and will add new capabilities for customers that need EDI and RFID. While there are numerous improvements to BizTalk, this release has three major themes:
EDI: The native support for comprehensive EDI and AS2 protocols in BizTalk Server 2006 R2 will provide much richer data integration and management capabilities for our customers. The Base EDI adapter that comes with BizTalk Server 2006 enables the sending and receiving of messages using X12 and EDIFACT. Customers can leverage this base functionality in order to build custom EDI solutions.
RFID: BizTalk RFID provides rich data, device and event management, as well as open APIs and tools. The capabilities allow customers to cost effectively build vertical solutions and configure intelligent RFID-driven processes.
Platform Alignment: BizTalk Server 2006 R2 features improved alignment with 2007 Microsoft Office system and Windows Vista, including key .NET Framework 3.0 technologies such as WF and WCF. This alignment will help customers access LOB data, as well as system-to-system or supply-chain processes from within their Office System applications (like SharePoint Server, InfoPath and Dynamics).
FAQ
A: BizTalk Server 2006 R2 Beta 2 is hosted on the Microsoft connect site. If you have not registered in the past, a simple username and password is all that is required. It is a quick process. As well, you will find other Microsoft public beta products on the site.
A: Feedback is used to improve the software or services that are being evaluated in a connection or program. In Microsoft Connect, feedback issues can include bugs and suggestions. A bug is something that does not work the way you think it is supposed to, and a suggestion is something that you think could be made better by doing it a different way. A Feedback option appears on the Connect menu.
Q: Are all of the associated components of BizTalk included in Beta 2.
A: Yes, the download includes BizTalk Server, the adapters and the accelerators.
Q: What is your pricing and SKU model for BizTalk Server 2006 R2?
A: We are gathering customer feedback to understand their requirements, and will make further announcements on this topic as we get closer to launch.
A: Microsoft will incorporate the customer feedback from Beta 2 into the development cycle. Currently there is not a beta 3 scheduled for BizTalk Server 2006 R2.
Q: When will BizTalk Server 2006 R2 be generally available?
A: The release of BizTalk Server 2006 R2 will be available in the 3rd quarter of CY07.
One thing that you learn pretty fast in BizTalk is that messages in an orchestration are immutable/read only.
If you need to modify a message in a BizTalk orchestration, you are pretty well restricted to using a Construct shape with encapsulated Transform and/or Message Assignment shapes to create a modified version or a copy of the original message. Distinguished fields,xpath statements, BizTalk maps, custom .Net components, etc. can be used to modify the message.
Below is one simple technique that can be used to modify a message anywhere in an orchestration.
Helper class(s) are required, but in certain situations (explained below) this technique can be used to easily modify a message anywhere in an orchestration.
Below is an orchestration where this technique is used:
Very simply this orchestration subscribes to a PO xml message and then produces a
final Invoice XML message that is send out from the orchestration.
Below are the artifacts used in the solution:
The artifacts for the BizTalk project, BTS_Immutable_To_Mutable include:
1) ClassOrchestration.odx (Orchestration as above)
2) Invoice.xsd (schema for outgoing Invoice XML message)
3) PO.xsd (schema for incoming PO XML message).
4) InvoiceClassGen.bat and POClassGen.bat
Below is the InvoiceClassGen.bat file:
The above uses the .Net xsd.exe utility to generate an Invoice.cs class from the Invoice.xsd schema.
This Invoice.cs class is used in the Class_Immutable_To_Mutable project as below.
The artifacts for the Class Library project, Class_Immutable_To_Mutable include:
1) Helper.cs (Helper Class to populate the some of the fields of the Invoice)
2) Invoice.cs (Invoice class for variable in the orchestration)
3) PO.cs (PO class for variable in the orchestration)
This orchestration will:
1) Accept a PO xml message
2) As below, in an expression shape, assign the BTS PO message to a BTS variable message of type PO.cs
// Set the BTS Variable PO to the incoming BTS Message PO
varPO = msgPO;
3) As below, in an expression shape, populate some of the Invoice fields from the PO fields:
// Populate some of the fields in the BTS Invoice Variable,
// from the BTS PO variable fields.
varInvoice.TotalAmt = varPO.Amt;
varInvoice.TotalCount = varPO.Qty;
4) As below, in an expression shape, call a helper class to populate and return the Invoice Items class:
varInvoice.Items = Class_Immutable_To_Mutable.Helper.mapPOItemsToInvoiceItems(varPO);
5) As below, in an expression shape, call a helper class to return and assign the description for the invoice Description field.
// Set the BTS Variable Description field
varInvoice.Description = Class_Immutable_To_Mutable.Helper.GetInvoiceDesc(varInvoice);
6) As below, in an expression shape, call a helper class to return and assign the version for the invoice Version field:
// Set the BTS Message Invoice Version field
varInvoice.Version = Class_Immutable_To_Mutable.Helper.GetInvoiceVersion();
7) Finally at the end, in a Construct/Message Assignment shape, construct the the outgoing BTS Invoice message:
// Create the BTS Invoice message from the Variable Invoice message
msgInvoice = varInvoice;
8) Send out the Final Invoice XML message
So after all of this, could a BizTalk map been used to create the Invoice message from the PO message. The answer is yes or no depending on the mapping logic that is needed.
This leads to when use this method:
Creation of a message requires multiple calls to Helper components/Business Rules to create the message.
Some of the upsides to using this approach are:
1) Using the above technique takes away the restriction of the immutable message and working with a mutable variable in the orchestration.
2) Intellisense is available on the variables inside of the orchestration.
3) The variable can be modified directly in an expression shape inside of the orchestration, without the use of distinguished fields or xpath statements.
Some of the downsides to using this approach are:
1) The overhead of deserialization and serialization from Message to Variable and visa versa.
2) Creating and maintaining the Helper classes (in this case PO.cs and Invoice.cs)
You can download the above example HERE (Zip File).
Read the Readme before installing and running the example.
For a similar example, goto Here
and download the Using a Custom .NET Type for a Message in Orchestrations example.
Here's a good question! If you receive your MVP renewal on April Fools Day should you be worried?
Seriously, I'd like to thank everyone on the Commerce Server team for a great first year as an MVP and renewing my status for another year. Being an MVP has opened many doors for me as a developer, manager and (sometimes rather pushy) Microsoft customer and the relationships I've been able to develop have added a great richness to my life.
I'd also like to thank my Codebetter.com friends Darrel Norton, Jeffrey Palermo, Peter Van Ooijen, Brendan Tompkins, Jay Kimble, Steve Hebert, Jeremy Miller, Raymond Lewallen, Eric Wise, Sam Gentile, David Hayden, John Papa, Scott Bellware, Karl Seguin, Greg Young, Rod Paddock and our newest member Jean-Paul Boodhoo. You are by far, some of the best architects, developers and managers that I've ever been privileged to know!
And a special thanks to Darrel, Jeffrey, Jeremy, Raymond, Sam, Scott, Karl and Jean-Paul for allowing me to hang with you during the MVP Summit. It was a blast!
PS: Ben Miller – It was great meeting you in person!
Here's a good question! If you receive your MVP renewal on April Fools Day should you be worried?
Seriously, I'd like to thank everyone on the Commerce Server team for a great first year as an MVP and renewing my status for another year. Being an MVP has opened many doors for me as a developer, manager and (sometimes rather pushy) Microsoft customer and the relationships I've been able to develop have added a great richness to my life.
I'd also like to thank my Codebetter.com friends Darrel Norton, Jeffrey Palermo, Peter Van Ooijen, Brendan Tompkins, Jay Kimble, Steve Hebert, Jeremy Miller, Raymond Lewallen, Eric Wise, Sam Gentile, David Hayden, John Papa, Scott Bellware, Karl Seguin, Greg Young, Rod Paddock and our newest member Jean-Paul Boodhoo. You are by far, some of the best architects, developers and managers that I've ever been privileged to know!
And a special thanks to Darrel, Jeffrey, Jeremy, Raymond, Sam, Scott, Karl and Jean-Paul for allowing me to hang with you during the MVP Summit. It was a blast!
PS: Ben Miller – It was great meeting you in person!
You know, I’m really sad that Lee has left the BizTalk team.
‘Cause he’s one of the few that can come up with gems like this:
“As a “parting gift”, I managed
to convince the team to let me add a small enhancement to persistence as long as I
did not push changes to the UI… As part of default dehydration now, the orchestration
engine also persists, in the clear, the name of the shape on which it was blocked”
How is this useful? Well if you don’t know, you can’t have had to debug too many orchestrations…
😉
If you have an orchestration which gets “blocked” i.e. gets dehydrated whilst waiting
for an operation to finish, or a message to arrive (or any one of the things which can
cause a dehydration event to occur) now you can see the name of the shape at which
dehydration occurred.
Previous to this, you would need to log the names of all the shapes as they executed,
or fire up orchestration debugger to see what the last shape executed was.
So now the race is on to develop a GUI for this…
Pity GotDotNet is no more, as
that would have been the perfect place for it.
Also, note that this applies to BizTalk 2006 R2 only, so unless you’re on the TAP,
you’ll have to wait for the Beta or final release to use this.
Howdy everyone,
So first off, I should probably say that my posts might be a bit more far and few between (not that they are all that often as it stands :). A long time co-worker, Kartik, will probably be manning the ship on the blog as I have decided to expand my skills a bit and work on SQL Server Analysis Services. Figured I had been helping people build the processes which actually executed their business logic, now I wanted a bit more experience with the tools they use to analyze what exactly they have been doing at their business. This blog, though, will remain a BizTalk blog since it was never meant to be “my” blog … just look at the name. Okay, enough of that. 🙂
As a “parting gift”, I managed to convince the team to let me add a small enhancement to persistence as long as I did not push changes to the UI. Ostensibly, this was really meant for PSS, but personally, I would rather have everyone else fix / figure out their problems without having to call PSS. So don’t tell them I told you, but here you go 🙂
As part of default dehydration now, the orchestration engine also persists, in the clear, the name of the shape on which it was blocked. I have seen many customers which turn on shape level tracking for orchestration just so that if things get “hung up” and lots of orchestrations end up in the dehydrated state, they can open the orchestration in the debugger view and see what it has executed and what it is waiting on. Using orchestration debugger for this is just a tremendous overkill and adds overhead to the processing and now you have to manage the potential buildup of this information in the tracking db. All just so you can know what an orchestration is blocked on. With R2, you have the potential to figure this out yourself. 🙂
Unfortunately, we did not get this into the UI. Would have been really cool to view it in the MMC and dehydrated orchestrations would have the string of the blocking shape. But we gave you a start and now if we ever did add the UI tools, we wouldn’t have to change to underlying db schema or any of the engine. So here are the details.
In the Instances table in the messagebox there is a new column called nvcLastAction. This column contains a guid for dehydrated instances. Sorry, all I had access to in the engine was a guid. However, in the DTA database you will find a table called dta_ServiceSymbols which contains some xml for each service which is deployed, regardless of whether you have any tracking on. This xml is used to translate the guids into string names for some of our tools. It is relatively easy to look at this and build a little tool which will map the guid to the actual shape name. Sorry I have not written the tool … Remember about being very careful when looking directly in the messagebox. Be careful of locking tables and causing all sorts of blocking issues. Use NOLOCK hints and never, ever, ever update / delete anything. If you are at all unsure about rules around this, please see http://blogs.msdn.com/biztalk_core_engine/archive/2004/09/20/231974.aspx which is specific to 2004 and mostly obsolete for 2006 with the new enhancements to the MMC which makes these direct queries unnecessary, but the rules for quering are still valid. Be very, very, very careful. If you change things or cause problems by introducing blocking, your chances of support are pretty much nill.
Couple of caveats. We did not do extensive testing on this for parallels where you might be blocking on more than one shape. It could technically pick either shape with no gaurantees. Also, we are simply depending on the orchestration engine to provide this information as we hook in to grab it in the same fashion as the tracking interceptors do.
So there you go. Have some fun with it. Perhaps if you ask nicely, you could convince someone to put this in for 2006 SP1. You have to ask nicely, though. 🙂
Hope everyone is having a great day.
Lee