by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
Hi all
I had a post about promoting
reoccurring elements in BizTalk. As we all know, this isn’t possible. BUT actually
well 🙂
Basically, you promote properties for three reasons:
-
You need it to route based on the value
-
You need it for correlation (which is basically just a specialization of routing)
-
You need to either read or set the value inside an orchestration (Don’t do that! Use
distinguished fields instead)
So, dealing with number 1, routing, I started thinking back at BizTalk 2002, which
was my first BizTalk experience (I’l bet ALL BizTalk developers/architects think of
BizTalk 2000/2002 every now and then no? 🙂 ). I seemed to recall that you could
do something fancy with routing back then, so I fired up an old BizTalk 2002 on windows
2000 Professional to test it. It turns out, that on a channel you can enter a filter
which is an XPath expression. The text field is editable, so you can change the XPath
expression all you want – it will complain if you try to leave it with an invalid
XPath expression (syntactically – not semantically).
Given this XML:
<MyRoot>
<myReoccuringRecord Myfield="42" />
<myReoccuringRecord Myfield="2" />
<MySecondRecord MySecondField="jan" />
<MyThirdRecord>
<MyThirdField>1</MyThirdField>
</MyThirdRecord>
</MyRoot>
I can have a channel with this filter:
-
/*[local-name()=’MyRoot’ and namespace-uri()=”]/*[local-name()=’myReoccuringRecord’
and namespace-uri()=”][position()=1 and @Myfield = 42]
Basically, documents will only go through this channel, if the value of the “Myfield”
attribute of the first “myReoccuringRecord” element has the value 42.
So, it isn’t promoting as such – BizTalk 2002 doesn’t have this concept, but it
allows us to route based on the value of a specific occurrence of a reoccurring
element.
On a side note; If you leave the filter like this:
-
/*[local-name()=’MyRoot’ and namespace-uri()=”]/*[local-name()=’myReoccuringRecord’
and namespace-uri()=”][@Myfield = 42]
it will accept the incoming document no matter what the position of the “myReoccuringReord”
is. Can’t make up my mind if this is a good thing or not 🙂
Now, as we all know (?), manually editing the XSD in BizTalk 2006 solution to make
sure the XPath evaluation will only return a single XmlNode doesn’t work. You either
get a compile time error:
-
The promoted property field or one of its parents has Max Occurs greater than 1. Only
nodes that are guaranteed to be unique can be promoted as property fields.
or you get a runtime error:
-
There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive,
Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Source: "XML disassembler" Receive Port: "ReceivePort3" URI: "C:\Projects\Blog
Entries\PrommotingReoccurringElementsEditXSD\Instances\In\*.xml" Reason: Unexpected
XPath format:
Anyway not that many BizTalk 2000/2002 installations till in production, I assume,
so this post is merely for informational purposes. It’s just funny discovering functionality
that is doable in earlier versions of BizTalk and not in the latest versions.
—
eliasen
by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
Hi all
Well, the time has once again come for a “If I had all the money in the world to pay
to the BizTalk development team and I could decide what to put into the next version
of BizTalk, this would be it”-list 🙂 There are a couple of items that I have stolen
from http://blog.eliasen.dk/2007/10/06/BizTalkVNextWishlist.aspx.
-
Orchestration debugging should be easier. I really hate that I have to deploy my orchestration,
throw a message through it just to get an instance in HAT that I an set breakpoints
on and then have to throw another message trough the orchestration to debug it.
-
No more pipelines. Why no let the developer have an inline pipeline designer in a
receive location and a send port? this way I don’t have to build custom pipelines
– I can just chose pipeline components right on the receive locations and send ports.
-
For development purposes, it would be really nice to be able to right click a receive
location that is disabled and choose "Execute". If for instance I have a
SQL adapter receive location that is supposed to poll every minute, then I don’t want
to have to quickly disable the receive location once it has been fired. I want to
keep it disabled, so data wont go through my system when I am not ready, and then
just execute it whenever I am ready.
-
Restart Host Instances only once. Right now, if I deploy my solution from VS.NET,
and this solution has 10 projects that are all set to "Restart Host Instances"
on deployment, then the host instances will get restarted 10 times. Would be nice
if VS.NET could figure this out and only do it once.
-
Specify the node that is body, when using enveloping and not just the parent. It makes
great sense, that I can specify a node and all child elements are then submitted as
separate messages from the receive pipeline. This is how we can receive orders, invoices,
etc. in the same XML. BUT, if I receive XML where I only need the Orders, then I would
like to point at the Orders element so that is all I get. Right now I have to use
standard enveloping, and implement logic to just delete the invoices, etc. Not really
nice, I think.
-
Better modeling tools for business processes. The last Gartners quadrant I saw on
BMPS didn’t have Microsoft mentioned at all. Would be great with some formal cooperation
with IDScheers Aris product or the like. Something like simulating your business process
with different values in rules would be just great
-
Promoting via XPath. Please let me specify the XPath for some element that I want
promoted in the disassembler components. If I know of an XPath that guarantees that
only one value is in the result set og evaluating that XPath, then let me use it instead
of forcing me to not promote anything that can occur multiple times. I am aware that
with the current limitation, BizTalk is helping developers to not make mistakes, but
hy not give us the opportunity and then suspend the message if the developer was wrong
and multiple elements are in the resulting node list after evaluating the XPath expression?
-
It would be nice if we could expose a web service without having to require a parameter.
If I want to expose an orchestration that builds an inventory XML hat customers can
request, I really don’t need a parameter to do that. Some workaround would be nice.
—
eliasen
by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
Tomorrow and Thursday I will be speaking at the Microsoft’s Connections Spring events hosted in Fort Lauderdale and Tampa respectively. The session focuses on real world ESB patterns and the Microsoft’s ESB value proposition. We are going to cover technologies…(read more)
by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
Just a quick note to let everyone know that I’ll be speaking at VSLive! Las Vegas on June 10-11 on Windows Azure and Dublin. Join me at the Venetian where I’ll be doing a general overview session on cloud computing and Windows Azure on 6/10 in the morning, followed by a breakout session on the Windows Application Server extensions code-named “Dublin”. Then on Thurs 6/11 I’ll be doing a full-day workshop on programming the Azure Services Platform including Windows Azure, .NET Services, SQL Services and Live Services. Here’s my breakdown for the show:
- Windows Azure: A New Era of Cloud Computing, 8:30 a.m.-9:45 a.m., Wednesday, June 10
- Codename “Dublin”: Windows Application Server, 10:00 a.m.-11:15 a.m., Wednesday, June 10
- Workshop: A Day of Windows Azure, 9:00 a.m.-6:00 p.m.,Thursday, June 11
SPECIAL PRICING: Any blog reader who registers using this code (S9V19) will receive the all-access Passport Package for just $1,295, a savings of $400.00 off the standard price of $1,695. Just click here to get started.
You can follow this VSLive on Twitter at http://twitter.com/VSLive.

by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
In this post I will give a brief overview of some problems that arise during deployment of BAM activity updates. In particular when partitioning is enabled for the activity the error below can occurre upon regeneration of the view that union the partitions. “All queries combined using a UNION, INTERSECT or EXCEPT operator must have […]
by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
Personally I found that BAM is one of the most useful features in Microsoft BizTalk Server 2006. It brings down the gap between business and IT. Unfortunally like most BizTalk architects/developers I struggled with deployment on my production environment. If you don’t need to keep the data for historical reasons or analysis then deployment of […]
by community-syndication | Apr 13, 2009 | BizTalk Community Blogs via Syndication
I’ve been engaged in some debate in the last few days with Jean-Jacques Dubray and Doug Purdy with regard to Oslo. See:
http://www.ebpml.org/blog/182.htm
http://www.douglaspurdy.com/2009/04/09/where-is-oslo-going-part-ii/
Jean-Jacques has questioned aspects of Microsoft’s strategy. Following some issues with posting anything but the shortest of comments on the ebPML web site, I’ll follow Doug’s lead and post a response here.
I strongly agree with Jean-Jacques’ statement that ‘M3 exists’. It seems a little strange to feel the need to state this emphatically, but the existence of M3 has sometimes been challenged. Today, ‘Oslo’ does little to call out or underline the existence of M3. ‘Oslo’ really isn’t expressed in terms of ‘classic’ metamodel architecture. I would expect this to be unnerving to some people in the MOF community, and my interest, in a previous post, has been to attempt to show that, despite appearances, there is actually an underlying and solid foundation of common ground between OMG specifications and Oslo. There is also a lot of history to this.
It seems to me that multiple metamodel layers exist regardless of technology or specification. However, the degree to which we need to express them within any given context, and the way we choose to do so, is absolutely a matter of pragmatics. I’m schooled in the old linguistic philosophy that languages (including modelling languages) are built on the ‘trinity’ of syntax, semantics and pragmatics. It is these three areas that Oslo so directly calls out and emphasises. To date, it has, if anything, overly-separated these distinct concerns and I suggest that a lot of the feedback Microsoft has received from the CTP is, in reality, asking them to look for more effective and practical interaction between these different aspects of their emerging technology. These requests are absolutely driven by pragmatic considerations. So, while I appreciate Jean-Jacques’ comments about pragmatics, I think that this is potentially the area of greatest strength in terms of what Microsoft is doing. If they get it right (and there is no guarantee of that), they will succeed in providing a set of tools that add real and significant value to their platform and support far more effective use of models in both architecture and development.
In terms of the technology, Oslo offers one language – ‘M’, founded on graph theory and expressed through MSchema and MGrammar. M is designed to be used at any level within a metamodel architecture. I’ve always found it difficult to imagine any practical need for M4 or above, but I guess you could extend this indefinitely! What Microsoft doesn’t do in the current CTP is to provide any pre-canned M3 meta-metamodels (actually, that is not entirely true – there is the beginning of some M3 support in the repository). Given that they plan to deliver fulsome support for UML, and have committed themselves publically to XMI, and given their OMG membership, it is possible that we might even see Microsoft exploit MOF. If they don’t do this, themselves, it will only be a matter of time before others do within the Oslo ecosystem. What I don’t expect to see is any attempt to promote MOF as a one-size-fits-all M3 specification in the world of Oslo. That should not be interpreted as some conspiratorial (and completely pointless) attempt to undermine well-accepted standards. It is simply the natural consequence of remaining agnostic with regard to the number of metamodel layers needed, pragmatically, within any given context.
Jean-Jacques engages is an interesting argument about ‘defining M3 properly’ for implementational purposes. There is a lot in what he is saying. MOF was originally bound to CORBA IDL, and Microsoft’s RTIM (an ancient specification that was roughly equivalent to MOF) was similarly bound to COM IDL. The first thing that happened when Microsoft put their specifications into the hands of a standards organisation was that RTIM was rejected as being too proprietary. Similarly, but more positively, the OMG has rigorously decoupled MOF 2 from CORBA. Jean-Jacques is, I think, suggesting that MOF still fails to adequately handle the kind of impedance mismatches that can occur when creating bindings to very different run-time representations. I will leave it to others to argue the finer points of MOF, but in terms of Oslo, the stated intention is to reduce the barrier between models and runtimes to the point of near-invisibility. The Oslo goal is to promote the direct consumption of models (including metamodels and meta-metamodels) within a wide variety of runtimes. No doubt, as Oslo evolves, we will see the advent of tooling and technologies that help developers to build the widest variety of model-driven run-times. I have a suspicion that XAML will end up being central to much of this effort.
To summarise, M3 is always there in some sense, but doesn’t always need to be represented explicitly within a given context. Microsoft’s historic experience of building multi-level metamodel architecture and repository technology strongly indicates that if you try to force explicit representation of M3 on your development and ISV communities, they will often ignore what you offer. Oslo does not require MOF compliance or any alternative, but is perfectly capable of supporting this as required. The ability to bind model representation at any appropriate layer of a metamodel architecture to runtime environments in a thoroughly pragmatic fashion is likely to be a core decider in terms of Oslo’s future success.
I’ll take this opportunity to share an initial attempt I made earlier this year to relate, rather broadly, the core ’M’ language artefacts to multi-level metamodel architecture and also to the ’syntax-semantics-pragmatics’ trinity. This diagram is entirely of my own making and is in no way ’official’ (I don’t work for Microsoft). One major weakness is that it suggests a highly repository-centric emphasis in regards to pragmatics. In reality, I expect that the use of the repository will only be one of many aspects of pragmatics. Consider, for example, the role of MGraph is enabling pragmatics at the M0 layer or, indeed, the use of ’Quadrant’. This diagram is very much a work in progress and I will wait until future iterations before revisiting and refining this. Another issue is that, on the left-hand side, I have suggested the existence of MSchema and MGrammar grammars. These may not necessarily be made public by Microsoft, but do appear to exist.
by community-syndication | Apr 11, 2009 | BizTalk Community Blogs via Syndication
Originally posted by Nick Heppleston at: http://www.modhul.com/2009/04/11/biztalk-2009-rtm-upgrade-gotchas-tracking-data/
I’ve started to play around with my new BizTalk 2009 installation following my upgrade fromBizTalk 2006 R2 and I’ve noticed a few quirks that you may need to watch out for, following an upgrade.
Tracking Data
The new Admin Console comes with a bunch of new queries relating to your tracking […]
by community-syndication | Apr 11, 2009 | BizTalk Community Blogs via Syndication
Originally posted by Nick Heppleston at: http://www.modhul.com/2009/04/11/a-quick-walkthrough-of-the-biztalk-2006-r2-upgrade-to-biztalk-2009-rtm/
This post is an update to my original documenting the BizTalk 2006 R2 installation to the latest BizTalk 2009 Beta release. This post looks at the RTM’d version, rather than the beta release, of BizTalk Server 2009.
Installing Splash Screen
We start with the now usual Microsoft installation splash-screen, providing options […]
by community-syndication | Apr 10, 2009 | BizTalk Community Blogs via Syndication
Well folks, hot on the heels of the MMA Contender Series….here’s another Series
which I’m sure will cause a stir.
Check out part#1 and part#2 below
>
>
>
>
>
>