Martijn's blog - E-Commerce, EAI, BizTalk and .NET

2005/05/10

Note to self: cleanup xml schemas after removing promoted properties

Ofcourse, I'm the only one having trouble with this, but I'll blog it never the less... :-)

I recently (just now :p) encountered some behaviour of the Visual Studio environment for editing xml schemas installed by BizTalk Server 2004 which might lead to trouble in testing and deployment (actually, just in running my Orchestrations in general).

As you probably know, BizTalk adds a nice annotation to your schemas upon promoting a property, like so:

<xs:annotation>
 <xs:appinfo>
  <b:properties>
   <b:property name="ns0:CorrelationToken" xpath="/*[local-name()='Order' and namespace-uri()='http://www.macaw.nl/schemas/OrderProcessing']/@*[local-name()='CorrelationToken' and namespace-uri()='http://Macaw.General.Definitions']" /> 
  </b:properties>
 </xs:appinfo>
</xs:annotation>

I would expect BizTalk to remove this information once the field you actually promoted is removed from the xml schema. However, it doesn't... This causes the BizTalk runtime to try and locate the field given it's XPath in order to promote the field value to the message context. Ofcourse, the field can no longer be located, indicated with an XLANG/s exception:

Uncaught exception terminated service MacawOrchestrations.Axapta.ContactPerson(85ce7703-cea4-61cc-67ed-86bfa9998e7c), instance 652d12a4-ed8e-4bca-aa58-9a065d65ca4d

A failure occurred while evaluating the property MacawSchemas.PropertySchema.CorrelationToken against the message part data.

Resolving this issue proves to be quite simple, just right-click on the rootnode, navigate to the promoted properties, select "Property Fields", and remove the promoted property manually.

Just a reminder...

0 Comments:

Post a Comment

<< Home