Thursday, March 31, 2005

Choosing between Distinguished vs. Promoted Properties

In Biztalk you can promote a property as either distinguished or promoted properties. Choosing what to use is tricky

Distinguished fields

In general use Distinguished fields if you want to just use them in Orchestration

Summary

- No restriction on field length

- No participation in Routing

- No seperate property Schema

- Not accesible by std pipeline components
( workaround exists in cutom pipeline components “http://schemas.microsoft.com/BizTalk/2003/btsDistinguishedFields” namespace using XPath on their name

Promoted Properties

These are generally used with Routing

Summary

- Used in publish and subscribe in the Msgbox

- Field Restictions ( 255)

- Seperate Property schema

- Restricted in the XSD types support compared to distinguished properties

ThumbRule

Use Distinguish properties as they are lightweight unless you need them for any special stuff like Routing ,Tracking ,Correlation or custom pipeline behaviour

Wednesday, March 30, 2005

Biztalk 2004 Naming Conventions

I have been looking around for a good Set of Biztalk naming conventions and I came acros this from Scott .

Biztalk 2004 Naming Conventions

Unconstructed Message even when Constucted

Ok you get this

use of unconstructed message "Message Name" .

1) This means what the error message says you are using an unconstucted message in a send shape without creating it

2) You have indeed constucted the message - Biztalk still complains . Do you have parallel actions in your orchestration . Is it possible that you are using the message whihc was consturcted in a parallel shape and being used outside it. Now Aren't you glad Biztalk complained !

Monday, March 28, 2005

BTS 2004 Flat File Issues

There are lot of inherent nittygrittys and hack that you need to know when you have Flatfiles with Records and the root node both being ended by CRLF's

I did look around quite a bit before I finally came across this link

Flat file Schema Tutorial 1

Flat file Schema Tutorial 2

and Oh ! to prevent empty nodes from not occuting you need to set Suppres Empty Nodes property to TRUE