BizTalk Orchestration Naming Conventions

BizTalk Orchestration Naming Conventions


[last update: 2013-08-24]

Special Orchestration Objects

<Message> =:
         msg_ + <MessageLogicalName>

<Variable> =:
         var_ + <Word>

<CorrelationSet> =:
         cor_ + <Word>

<OrchestrationParameter> =:
         par_ + <Word>

<RoleLink> =:
         roleLink_ + <Word>

<PortIdentifier> =:
         <prefix>_<Name>

-          where <prefix> is S or R or SR or RS
for Communication pattern: Send, Receive, Send-Receive (Solicit-Response), Receive-Send (Request- Response)

Orchestration Object Types

<PortType>                           =:
<Multi-partMessageType> =:
<CorrelationType>               =:
<RoleLinkType>                   =:
         <LogicalName>_type

Shape Names

<Receive>                             =:
<Send>                                 =:
<Constuct>                           =:
         
<MessageLogicalName>

<Transform>                         =:
<Assignment>                      =:
     
   from <MessageLogicalName>

Syntax Notes:

  • Special Orchestration objects are used in different XLang  language context and sometime they use different language syntax. Prefixes help to differentiate the objects in the XLang expressions.
  • Prefixes for the Special Orchestration objects work better than suffixes, because they are mostly used in the XLang expressions with IntelliSense. Start type with "msg", hit the Ctrl-Space and choose your message. Prefixes are really very helpful.
  • The Port objects are the only objects which can be seen outside orchestration. We see them as the Port Identifiers while bind Orchestrations with Ports. Sometimes the orchestration Ports shapes are named as Logical Ports and the Ports as the Physical Ports. Here are some considerations about this ambiguity with Port names.
  • Send-receive prefixes (S_, RS_ ...) help while binding the Orchestration with Ports. Ports with different Communication pattern are using different prefixes.
    Example: S_ OrderAck.
  • We see the orchestration object types in the Orchestration View window, in Types. They are: Port, Multi-part Message, Correlation and Role Link Types. We can use one suffix the “_type” for all different types because different types are seen only in the different lists and never mixed. For instance, we can never see the port types together with message types.
  • Suffixes for the orchestration object types work better than prefixes, because types are mostly used in the drop-down lists not in the XLang expressions.

Orchestration Workflow Shapes

Problems with orchestration shapes

  • Shapes are too small to display long names (only 12-18 characters are visible).
  • We have to hover a mouse over a shape or click shape to show Properties window to "understand" this shape, to understand what message is processed here.

Discussions

  • Shapes have names that we see on the Orchestration Editor space, but these names are not the “variable names”, not identifiers. They are descriptions (excluding the Port shapes names, which have not Name parameter but Identifier and Description parameters). Shape names are used only for description not as XLang variable identifiers. Shape names can be long and can include any symbols as spaces, dots, etcFeel free to use spaces and any other symbols inside the shape names.
  • Shape Icons give us plenty information. Do not repeat the “icon information” by words. For example, we can a name a Construction shape as “Construct OrderAck” or as “OrderAck”. Last variant give us better, clean and short definition because we see the Construction icon + name.
  • Shape names are used mainly in Orchestration Editor (excluding the Port shapes names). We don’t need the “well-sorted” names, so we don’t need to use prefixes, because the main purpose of the prefixes is creating well-sorted lists.
  • Group shape is a scalable shape. Nesting other shapes into a Group shape makes a long description visible. Group shape will display as much text as you want. Grouping of the shapes adds a lot of documentation value to the orchestration.
  • Purpose of the orchestration and the most of the shapes is in processing the messages. We can unambiguously describe the messages by the message type. A message type gives us the main information about a message. That is why in the most cases using the message type as the shape name gives us the main information about message flow, about the whole orchestration processing.

Controversial: When exception is thrown from a shape, the error description includes a name of the shape. When we use MessageType as a name of shapes, several shapes can get the same name. So, if we want to differentiate shape names for debugging we could use numbers or single letters in the end of names. Example: “OrderAck 2”.

References


See Also

Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.


Leave a Comment
  • Please add 4 and 7 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
  • Maheshkumar S Tiwari edited Revision 27. Comment: Minor formatting

  • Steef-Jan Wiggers edited Revision 19. Comment: Corrected link

  • Steef-Jan Wiggers edited Revision 18. Comment: Removed duplicate link

  • Steef-Jan Wiggers edited Revision 16. Comment: Minor edits

  • Nikolai edited Revision 8. Comment: Adding link to Richard Seroter's conventions

Page 1 of 1 (5 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
  • Good work Leonid. Nice to see on TechNet Wiki as well.

  • Nikolai edited Revision 8. Comment: Adding link to Richard Seroter's conventions

  • Awesome

  • Steef-Jan Wiggers edited Revision 16. Comment: Minor edits

  • Steef-Jan Wiggers edited Revision 18. Comment: Removed duplicate link

  • Steef-Jan Wiggers edited Revision 19. Comment: Corrected link

  • Maheshkumar S Tiwari edited Revision 26. Comment: minor edit

  • Educative Article....

  • Maheshkumar S Tiwari edited Revision 27. Comment: Minor formatting

Page 1 of 1 (9 items)