by community-syndication | Aug 2, 2007 | BizTalk Community Blogs via Syndication
It’s official, registration for this year’s SOA & Business Process Conference is OPEN! As Mike hinted in his post, this year’s conference is one not to be missed. During 4 days of breakout sessions, chalk talk discussions, hands-on-labs, peer networking, social events, and interaction with the Microsoft product groups we will discuss both our current technology and business portfolio and examine the future of the industry and the Microsoft platform. Whether you are a developer, architect, or business decision maker we will have something for you with tracks spanning the full spectrum of technology, architecture, and business value topics. You can get the full scoop and register at www.mssoaandbpconference.com and I’ve included some details below to get you started. Attached to this post is also an email invitation that you can use to invite others to the conference. Finally, there will be another post coming shortly with a call for sessions.
Looking forward to a great event and to seeing you there,
Kris
What you can expect:
- Keynote Sessions by Senior Microsoft Executives and Technical Leaders
- Over 60 Breakout and Chalk Talk Sessions
- Hand-On-Labs
- Customer Case-Studies & Roundtables
- Birds of a Feather Reception
- Ask The Experts Reception
- Partner Expo
Sessions will be focused on four primary tracks:
Tools Track
The Tools track will provide details on the broad portfolio of SOA and business process tools and technologies available from Microsoft and its partner ecosystem. You can expect sessions on everything from the new designers coming in Visual Studio “Orcas” to the wide array of offerings from our SOA & Business Process Alliance partners. You will also see how to leverage new tools in BizTalk Server 2006 R2, Office System 2007, System Center, and others.
Solution Architecture Track
The Solution Architecture track will focus on the design and implementation of service oriented and business process solutions. We will provide best practices and proven patterns for handling challenges with many aspects of solution architecture including: data, identity, user experience, messaging, workflow, and rules. We will also focus on key capabilities such as service and process analysis and design, service enablement, service composition, process modeling, service instrumentation, service & process lifecycle management and others.
Infrastructure Architecture Track
The Infrastructure Architecture track will focus on the organizational and technical issues faced when planning and establishing service oriented and business process infrastructures in the enterprise. We will provide guidance and best practices on topics ranging from designing and implementing shared infrastructure for service and process management to overcoming cultural challenges when defining standard governance processes. We will also focus on key infrastructure capabilities such as service virtualization, SLA management, policy enforcement, service and process monitoring, governing service consumption and others.
Business Value Track
The Business Value track will focus on issues ranging from business capability analysis to establishing a SOA roadmap to defining metrics to measure your return on investment. We will provide case studies and guidance to ensure your SOA and business process initiatives demonstrate value quickly and stay focused on business goals. Whether you are a partner practice manager evaluating the business opportunity of SOA and business process or an enterprise decision maker evaluating the potential return on investment of your SOA and BPM initiatives, the Business Value track is for you.
by community-syndication | Aug 2, 2007 | BizTalk Community Blogs via Syndication
In 2004 in the SDK it provided you the schema, but in 2006 there are documents about what is in the binding file:
http://msdn2.microsoft.com/en-us/library/aa559686.aspx
and even how you can command line work with it here:
http://msdn2.microsoft.com/en-us/library/aa559898.aspx
But no schema out of the box!
I needed the schema so I can take an existing excel spreadsheet of trading partners and create a binding file that will import all of them at once. I asked the product group how to extract the binding file, and was not given the information (having access to the product group with the MVP status has its limitations obviously), but I found out through some other friends. The command to produce the schema that represents the binding file is:
xsd.exe “C:\Program Files\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Deployment.dll” /type:BindingInfo
by community-syndication | Aug 2, 2007 | BizTalk Community Blogs via Syndication
Web Services Addressing Metadata is now a proposed recommendation!! Congratulations to Martin Gudgin, and all the guys who worked on the spec….(read more)
by community-syndication | Aug 2, 2007 | BizTalk Community Blogs via Syndication
Hi All,
A new set of code samples are available for BizTalk Server 2006 at MSDN
They include:
BizTalk Server 2006 Code Samples Collection
This file contains all of the BizTalk Server 2006 samples for easy download. It is updated as new samples are published.
Integrating BizTalk Server 2006 and Windows Workflow Foundation (BizTalk Server Sample)
This sample demonstrates how to […]
by Richard | Aug 2, 2007 | BizTalk Community Blogs via Syndication
There was a question on the Microsoft newsgroup the other day where someone had to split a message into parts. But some of the information that was supposed to go in to the different parts were part of the envelope. I thought I’d give my solution to the problem a try – here it is.
Say for example that we receive the following message.
<div><span style="color: #0000FF; "><</span><span style="color: #800000; ">ns0:EmployeeSalesReport </span><span style="color: #FF0000; ">ReportID</span><span style="color: #0000FF; ">="R100"</span><span style="color: #FF0000; "> EmployeeID</span><span style="color: #0000FF; ">="0012345"</span><span style="color: #FF0000; "> xmlns:ns0</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.EmployeeSalesReport"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Sales</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ns1:Sale </span><span style="color: #FF0000; ">xmlns:ns1</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.Sale"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">100</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">10</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ns1:Sale</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ns1:Sale </span><span style="color: #FF0000; ">xmlns:ns1</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.Sale"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">200</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">20</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ns1:Sale</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Sales</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ns0:EmployeeSalesReport</span><span style="color: #0000FF; ">></span></div>
In the above message we have different sales information from one employee but all the global employee and report information (the ReportID and EmployeeID attributes) exists in the root node (what we’ll call the envelope of the message).
What we like to achieve is to split this envelope message into it’s different sale item so we get separate message looking something like the below where each item contains the global information from the envelope.
<div><span style="color: #0000FF; "><</span><span style="color: #800000; ">Sale </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.Sale"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ItemID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">200</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Amount </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">20</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">EmployeeID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">0012345</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">EmployeeID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ReportID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">R100</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ReportID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Sale</span><span style="color: #0000FF; ">></span></div>
There might be different needs for doing this in a pipeline but much of it comes down to choice of architecture style in your BizTalk solution. Personally I’d refuse to introduce another orchestration for splitting a message like this. I don’t believe that’s what orchestrations are for (they should deal with possible logic and workflow in my world). I’m sure other people feel different – feel free to use the comments.
Step 1 – Transforming the envelope message using XSLT
The first thing we’ll need to do is to transform the envelope message so that the information from the root node (the ReportID and the EmployeeID) get into every single Sale-node. There are a couple of ways of achieving this but I’ll use the XSLT-transformation pipeline component that ships with the BizTalk 2006 SDK.
All this component does is to let you point out a XSLT stylesheet you like to use to transform your message.
The stylesheet I’ve used is part of the solution that you can download here. I will not show the stylesheet full script here but rather the result after the message travel through the component.
<div><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">EmployeeSalesReport </span><span style="color: #FF0000; ">EmployeeID</span><span style="color: #0000FF; ">="0012345"</span><span style="color: #FF0000; "> ReportID</span><span style="color: #0000FF; ">="R100"</span><span style="color: #FF0000; "> xmlns</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.EmployeeSalesReport"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Sales </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Sale </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.Sale"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ItemID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">100</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Amount </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">10</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">EmployeeID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">0012345</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">EmployeeID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ReportID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">R100</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ReportID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Sale</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Sale </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://Example.TransformAndSplit.Sale"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ItemID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">200</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ItemID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">Amount </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">20</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Amount</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">EmployeeID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">0012345</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">EmployeeID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ReportID </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">=""</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">R100</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">ReportID</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Sale</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">Sales</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">
</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">EmployeeSalesReport</span><span style="color: #0000FF; ">></span></div>
Ok, nice. Now we have all the information we like in each of the Sale-nodes! All we have to do now is to split the message!
Step 2 – Splitting the message
We’ll use the standard XmlDisassembler component for splitting the message. All we have to do is to make sure we done the following.
-
Set the schema envelope property to “true” in the schema editor.
-
Set the Body Xpath property on the EmployeeSalesReport-node to point to the Sale-node.
-
Configure the Document Schemas and Envelope Schemas (same properties are called DocumentSpecNames and EnvelopeSpecNames if your doing the configuration after deployment in the administration console) properties of the XmlDisassember component to match the names of your schemas.
This is what the envelope schema looks like in this example.
This is what the XmlDisassembler configuration looks like.
There, we’re done! Now we can drop a test file containing two Sale-nodes and all the report/employee information on the top and have the two following separate files as a result when using a file send port.
Setting up the test solution
-
Download a zipped version of the solution.
-
You’ll have to unzip the project to C:Example.TransformAndSplit. If that isn’t possible you’ll have to change the path to the XSLT stylesheet in the XsltComponent in the pipeline as this is a fixed path.
-
When you build the XsltComponent the Output path is set to the Pipeline Components folder. This assumes that BizTalk is installed at _C:Program FilesMicrosoft BizTalk Server 2006_. If that isn’t the case make sure to change the output path of the component.
-
If you’d like to run the pipeline component in debug I’ve set this up using the pipeline.exe tool. There are however some paths in the debug setting of the XsltComponent project also that assumes that your BizTalk solutions is installed at C:Program FilesMicrosoft BizTalk Server 2006. If this isn’t the case you’ll have to change some values in the Command lines arguments property, but that only if you like to run debug.
-
Build and deploy.
-
Set up a receive port and location using the TransformAndSplitSales pipeline.
-
Set up a send port with for example a filter on the name of the Receiveport you’ve just set up.
-
Drop the example message that’s part of the solution!
Final thoughts
This example didn’t really take much more than an hour to put together. I do however realize that this is a simplified incoming message and that in the case of a more complex message we’d get a messy XSLT stylesheet to maintain. It’s also important to remember that using this method with XSLT transformation means that we will load the entire incoming Xml document into memory, so when we’re dealing with bigger Xml documents we’ll have manipulate the incoming message using other techniques.
Hope this is useful for someone!
by community-syndication | Aug 2, 2007 | BizTalk Community Blogs via Syndication
There was a question on the Microsoft newsgroup the other day where someone had to split a message into parts. However some of the information that was supposed to go in to the different parts were part of the envelope. I thought I’d give my solution to the problem a try – here it is.
Say for […]
by community-syndication | Aug 1, 2007 | BizTalk Community Blogs via Syndication
Internal email all – just in case you are looking for some links….
Customers and partners are increasingly focused on building applications and websites that take advantage of emerging technologies associated with ‘Web 2.0’. Microsoft is meeting this demand for innovation with the release of Expression Studio, a suite of products which works with the current Beta release of Silverlight and the upcoming release of Visual Studio 2008. Together they give customers and partners the capability to produce next generation applications and websites. Check out the links above for downloads, training and more information.
If you are in Australia, and deal in Public Sector, email me to find out more!
by community-syndication | Aug 1, 2007 | BizTalk Community Blogs via Syndication
The new version of my PipelineTesting library is coming along nicely. I’m mostly
done with the new API, though there are still a few changes that I’m pondering about.
However, right now this is already implemented:
-
Creating standard pipelines
-
Creating pipelines from compiled types
-
Building pipelines from scratch
-
Adding document specifications and other things to pipeline contexts for execution
-
Creating XML and Flat File Assembler and Disassembler components (only a couple of
properties are not exposed at this point)
I may still decide to rename a few methods and I’m considering providing an alternative
to the current MessageHelper class and its horrible interface. Meanwhile, here’s the
current state of the library 🙂
by community-syndication | Aug 1, 2007 | BizTalk Community Blogs via Syndication
I’ve been very busy since we shipped BizTalk Server 2006. In addition to fixing tutorial bugs for each of the documentation refreshes we’ve published, last August I relocated to Chicago with my cats and started graduate school. For the last year I’ve been working full-time from the downtown Chicago office while going to school part time, working on a master degree in design. You can check out the program I’m in at www.ID.IIT.edu. I’m in the Master of Design Methods program.
Here are some of the projects I’ve completed at work:
– Published the SWIFT Adapters for BizTalk Server 2006 documentation (http://www.microsoft.com/downloads/details.aspx?FamilyId=7A5D8E00-9F6C-4AD0-8D63-93555CD7CCDD&displaylang=en)
– Updated the documentation for the SWIFT, HL7, and RosettaNet accelerators for the BizTalk Server 2006 R2 documentation.
– Completed the SWIFT adapter end-to-end tutorials. These will publish to the Web soon.
by community-syndication | Aug 1, 2007 | BizTalk Community Blogs via Syndication
I’ve been very busy since we shipped BizTalk Server 2006. In addition to fixing tutorial bugs for each of the documentation refreshes we’ve published, last August I relocated to Chicago with my cats and started graduate school. For the last year I’ve been working full-time from the downtown Chicago office while going to school part time, working on a master degree in design. You can check out the program I’m in at www.ID.IIT.edu. I’m in the Master of Design Methods program.
Here are some of the projects I’ve completed at work:
– Published the SWIFT Adapters for BizTalk Server 2006 documentation (http://www.microsoft.com/downloads/details.aspx?FamilyId=7A5D8E00-9F6C-4AD0-8D63-93555CD7CCDD&displaylang=en)
– Updated the documentation for the SWIFT, HL7, and RosettaNet accelerators for the BizTalk Server 2006 R2 documentation.
– Completed the SWIFT adapter end-to-end tutorials. These will publish to the Web soon.