Export (0) Print
Expand All

Promoting Properties

Promotion of properties involves either promoting Field Element or Field Attribute nodes in a schema to be Distinguished Fields or Property Fields. You can also promote Record nodes as Property Fields if they have simple content (Content Type property of the Record node set to SimpleContent). This section provides step-by-step instructions for promoting nodes as either Distinguished Fields or as Property Fields.

To promote a Record (with simple content), Field Element, or Field Attribute node as a Property Field, you may first define a special type of schema called a property schema. Property schemas define an unstructured set of Field Element nodes into which you promote Record (with simple content), Field Element, or Field Attribute nodes. For step-by-step instructions for creating a property schema, see How to Create Property Schemas.

Alternatively, you can use the Quick Promotion feature, which will automatically create and update a single property schema whenever you promote a new Field Element, Field Attribute, or Record (with simple content) node.

noteNote
You can promote a field as both a Distinguished Field and a Property Field.

noteNote
The Quick Promotion feature modifies the property schema by inserting a new property with the name of the promoted node.

ImportantImportant
Do not move or rename a field in the schema once you have promoted it. When you move or rename a schema field, BizTalk Editor does not update the XPath defining the location of the promoted field.

XSD and CLR Data Types

In some places, such as in property promotion, XSD data types are promoted to Common Language Runtime (CLR) data types. The following table shows the XSD data types that can be promoted and the corresponding CLR data types.

 

XSD Data Type CLR Data Type

anyURI

String

Boolean

Boolean

Byte

sbyte

Date

DateTime

dateTime

DateTime

Decimal

Decimal

Double

Double

ENTITY

String

Float

Single

gDay

DateTime

gMonth

DateTime

gMonthDay

DateTime

gYear

DateTime

gYearMonth

DateTime

ID

String

IDREF

String

Int

Int32

Integer

Decimal

Language

String

Name

String

NCName

String

negativeInteger

Decimal

NMTOKEN

String

nonNegativeInteger

Decimal

nonPositiveInteger

Decimal

normalizedString

String

NOTATION

String

positiveInteger

Decimal

QName

String

Short

Int16

String

String

Time

DateTime

Token

String

unsignedByte

Byte

unsignedInt

UInt32

unsignedShort

UInt16

noteNote
XSD Data Type of base64Binary, duration, ENTITES, hexBinary, IDREFS, long, NMTOKENS, and unsignedLong are not supported for promotion.

Limitations for Promoting Properties

When promoting properties, consider the following:

  • Promoted properties are limited to 256 characters in length while written properties have no length limitation.

  • Promoted properties are used in message routing and are limited in size for reasons of efficiency in comparison and storage. While written properties have no hard limits on size, using excessively large values in the context will have an impact on performance, because those values must still be processed and passed with the message. Distinguished Fields are the examples of written properties.

  • Record nodes can never be promoted as Distinguished Fields.

  • Promoted properties are restricted to non-repeating elements/attributes.

  • Do not promote fields belonging to the same root node to the same property. Such promotions produce compilation or deployment errors.

  • Within a message context, there are some properties that are not available since they are not promoted. The BTS.ReceiveLocationName property is one such property. If you can add a new property schema or a new BizTalk Server project to your development it is possible to access this property from within an orchestration.

    Property values are identified by the property target namespace and property name. The following example shows how to access the receive location in code.

    string receiveLocationName =  pInMsg.Context.Read("ReceiveLocationName", sysNamespace);

In This Section

© 2010 Microsoft Corporation. All rights reserved.

Community Additions

ADD
Show:
© 2014 Microsoft