BizTalk Server Best Practices, Tips, and Tricks: #18 Orchestration Designer Shortcut Keys

BizTalk Server Best Practices, Tips, and Tricks: #18 Orchestration Designer Shortcut Keys

Welcome again to another BizTalk Server Best Practices, Tips, and Tricks blog post! In my previous blog posts, I discussed some essential tips and tricks for BizTalk Server administrators:

And for BizTalk Server Developers:

Today we are going to switch and speak about another critical Best practice, Tips, and Tricks, this time for BizTalk Server developers: Orchestration Designer Shortcut Keys

#18 Orchestration Designer Shortcut Keys

The Orchestration Designer design surface provides full accessibility using the keyboard. This accessibility begins when you open the design surface, which you can do in Visual Studio by selecting menu options starting with the New option on the File menu.

Accessibility is also supported within the design surface, where, for example, you can select different shapes and parts of shapes by pressing the Up and Down arrows. When a shape is selected on the design surface, it is highlighted on the design surface and in the Orchestration View window (if applicable). At the same time, the Properties grid also displays information about the selected shape.

Orchestration Designer supports accessibility by providing many shortcut keys. Different shortcut keys are available depending on what part of the design surface you use.

You can also use many of the existing shortcuts available in Visual Studio, for example, when you are using Microsoft IntelliSense in the BizTalk Expression Editor.

Shortcut Keys General to the Design Surface

Key Effect
TAB Moves the selection and focus to the shape with inactive selection in the next design surface area on the right (the Process Area or Port Surface). Example: Selection and focus are currently on a port in the left Port Surface. When the TAB key is pressed, selection and focus move to the shape with an inactive focus in the Process Area.
SHIFT + TAB Same as TAB, but in the opposite direction.
PAGE DOWN Scrolls the page down so that later parts of the orchestration are shown. Selection and focus do not change.
PAGE UP Same as the PAGE DOWN key, but in the opposite direction. Selection and focus do not change.
SHIFT + PAGE DOWN Horizontally scrolls the entire design surface to the left by set increments. Selection and focus do not change.
SHIFT + PAGE UP Same as SHIFT + PAGE DOWN except that the design surface scrolls to the right. Selection and focus do not change.
ENTER Performs the default action for the selection, which usually means shifting focus to the Properties grid.
SPACE Selects the shape that currently has the focus. There is no effect if the focus is on a shape connector.
CTRL + SHIFT + F1 Toggles between expansion and collapse of the Smart Tag of a selected shape. UP and DOWN ARROW can then be used to move through the items of a Smart Tag. When expanded, the Enter or Space keys execute the related action of a Smart Tag item (as well as collapsing the Smart Tag).
DELETE Deletes the current selection.

Shortcut Keys Specific to the Process Area

Key Effect
DOWN ARROW Moves the selection to the next connecting line or shape below. If the shape is connected to several branches below (as in the case of a Decide shape), the selection moves to the first shape in the leftmost branch. If selection is on the End shape for the orchestration, pressing this key has no effect because there are no more shapes below it. If selection is on the Return shape within a branch of a complex shape, the next shape is the endpoint of the complex shape.
UP ARROW Moves the selection to the next connecting line or shape above. If the shape is connected to several branches above, the selection moves to the last shape on the leftmost branch (even if the last shape of the branch is a Return shape). Pressing this key has no effect when the Start shape is selected.
LEFT ARROW If the selection is on a Send or Receive shape and the shape is connected to a port: If the shape has a port connector leading to a port in the Left Port Surface, focus and selection shift to the port connector of the shape. If the shape has a port connector leading to a port in the Right Port Surface, pressing this key has no effect. If the shape has no port connector, navigation is the same as with any other shape. For other shapes (or Send or Receive shapes not connected to a port): If the selection is in a branch, and a branch exists with shapes on it to the left of the current branch, the selection moves to the nearest shape on the branch to the left. The key has no effect anywhere else in the orchestration.
RIGHT ARROW Same as the LEFT ARROW key, but in the opposite direction.
HOME The selection changes to the connector that leads from the Start shape of the orchestration.
END The selection changes to the connector, leading to the orchestration’s End shape.
NUM LOCK + – Collapses the selected complex shape.
NUM LOCK + + Expands the selected complex shape.
NUM LOCK + * Expands the selected complex shape, plus any child complex shapes it may have.

Shortcut Keys Specific to the Port Surfaces

Key Effect
DOWN ARROW If a Role Link has the focus, it shifts to the first port inside. If no ports are inside the Role Link, the focus shifts to the next port or Role Link below it. If a port has the focus, it shifts to the next port or operation below it. If an operation has the focus, it shifts to its first operation part. For the template, the focus shifts to the next port. If an operation part has the focus, it shifts to the next operation part, operation, or port below it. There is no effect if no more objects exist below the current one.
UP ARROW Same as the DOWN key, but in the opposite direction. There is no effect if no more objects exist above the current one.
RIGHT ARROW Left Port Surface: If an operation part has the focus, it goes to the first port connector leading out of it. If there are no connections on the current operation part, pressing this key has no effect. If an operation has the focus, the focus goes to the first port connector of the operation’s first part that has a connection. If there are no connections in the operation, pressing this key has no effect. If a port connector gets the focus, whatever was selected in the Port Surface receives inactive selection. Right Port Surface: No effect.
LEFT ARROW Same as the RIGHT ARROW key, except in the opposite directions (that is, no effect for the left Port Surface, and the focus can go onto a port connector for the right Port Surface).
HOME Focus and selection shift to the first shape in the channel.
END Focus and selection shift to the last shape in the channel.

Shortcut Keys Specific to Port Connectors

Key Effect
RIGHT ARROW Port connectors leading to the Left Port Surface: Focus and selection shift to the connecting Send or Receive shape. The port connector is deselected. Port connectors leading to the Right Port Surface: Focus and selection shift to the connecting operation part. In this case, whatever has a selection in the Process Area now receives an inactive selection.
LEFT ARROW Same as the RIGHT ARROW key, except directions are reversed.
DOWN ARROW Focus and selection shift to the port connector on the next operation part. If the last connector on the last port has focus, pressing this key has no effect.
UP ARROW Same as the DOWN ARROW key, except in the opposite direction. If the first connector has focus, pressing this key has no effect.
HOME Focus shifts to the shape connector leading out of the Start shape.
END The focus shifts to the shape connector leading into the End shape.
DELETE The port connector is deleted. This clears the Port Operation property on the Send or Receive shape. Focus shifts to the affected Send or Receive shape.

I hope you enjoy this developer tip and stay tuned for the following BizTalk Server Best practices, Tips, and Tricks.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.

He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira

BizTalk Deploy operation failed… Assembly “XY” references the following assemblies that must be deployed before deploying this assembly Assembly “YZ”

BizTalk Deploy operation failed… Assembly “XY” references the following assemblies that must be deployed before deploying this assembly Assembly “YZ”

I’m back with “Errors and Warnings, Causes and Solutions” and this time targeting developers – BizTalk Deploy operation failed – that work until late and they are a bit tired… believe me, It’s never a good recipe!

Today will I was deploying a BizTalk Server Solution from Visual Studio I had a rookie problem that, because I was tired, I took 20 minutes to find out the problem:

Severity Code Description Project File Line

Error Assembly “Finance.Orchestrations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d149e7c1ed8e238f” references the following assemblies that must be deployed before deploying this assembly:

Assembly “Staging.Orchestrations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d149e7c1ed8e238f”.

Deploy operation failed…

At Microsoft.BizTalk.Deployment.BizTalkAssembly.PrivateDeploy(String server, String database, String assemblyPathname, String applicationName)…

BizTalk Deploy operation failed

… a rookie problem that if you read carefully the error message you will know the problem.

Cause

Basically, this is a dependency problem… “Finance.Orchestrations” assembly references certain “Staging.Orchestrations” artifacts, and for this reason, this last assembly (Staging.Orchestrations) must be deployed before deploying the assembly that references these artifacts (Finance.Orchestrations).

When you deploy BizTalk assembly you must ensure that any referenced assembly is deployed first. BizTalk actually, helps you out, by enforcing that “deployment rule” by not letting you applying adding resource action without deploying all its references and that is the reason why this error is happens

Although I’m almost sure that I had deployed all the resources – common schemas, maps, and orchestrations – that was being consumed in this BizTalk Solution. When I decide to check if they were actually deployed in the environment, I found out that they weren’t… again a rookie mistake.

Solution

The solution to this problem is easy, make sure that all the dependencies are deployed before you deploy your solution.

In my case, I deployed the “Staging.Orchestrations” assembly and then I was able to indeed deploy the “Finance.Orchestrations”.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

Dynamic Transforms in BizTalk 2006

This sample built for the Biztalk 2006 Design Contest shows how a per-instance custom pipeline can be used to set the map name in a message. Then, the message can be mapped dynamically using an Orchestration. This allows for a consistence approach to transformation and exceptions. Set up: Just extract to your C:\ drive and follow the instructions in the Word document.

This sample will also work with BizTalk 2006 and BizTalk 2006 R2.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/09/19/design-contest-entry-_2d00_-dynamic-transforms-in-biztalk-server-2006.aspx

Dynamic Mapping Inside an Orchestration

This sample shows how a map can be called dynamically inside an Orchestration in Biztalk. This can allow for the map to be set at run time by setting a message context property or reading the value from the SSO or database. This can greatly reduce effort if a single business process is used for many different messages that need different maps.

This sample should work with BizTalk 2004 and BizTalk 2006.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/08/28/using-dynamic-transforms-_2800_mapping_2900_-in-biztalk-2004-orchestrations.aspx

Suspended Message Routing and Error Reporting

This sample shows how to use Error Reporting to route suspended message to an Orchestration in Biztalk 2006. It includes two Orchestrations, one intended to fail on the Receive Port and one on the Send Port. Both a manual installation and MSI installation is available.

Get more information from the original blog post on this topic:https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/08/02/suspended-message-routing-and-reporting-in-biztalk-server-2006.aspx

Prepend and Append Text to SourceFileName Macro

This sample shows how use the %SourceFileName% macro to append or prepend text to the original file name of the file received by the file adapter. This sample includes a helper class with three methods to help with string manipulation of the file name.

This uses an Orchestration to set the Received File Name Message Context Property that the SourceFileName Macro uses. 

This sample will work for BizTalk 2004 and BizTalk 2006.

Get more information from the original blog post on this topic:https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/08/01/how-to-prepend-to-the-sourcefilename-in-biztalk-sample.aspx

Calling a Receive Pipeline Inside an Orchestration

This sample shows how to use a Receive Pipeline inside an Orchestration in BizTalk Server 2006. A loop shape is used to enumerate over the resulting messages and send each single message. This is based on BizTalk Server 2006 CTP Build.

This sample should work with BizTalk 2006 and BizTalk 2006 R2.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/06/16/how-to-call-a-receive-pipeline-in-an-orchestration.aspx

Debatching Into Smaller Batches Inside an Orchestration

Debatching into single messages is easy with BizTalk 2004. This sample shows how messages can be groups into batches of any size inside an Orchestration using an external .net component. The external .net component uses streams to read the message from an Orchestration. The message is passed into the component as an XLang message type.

This sample should work in BizTalk 2004 and BizTalk 2006.

Get more information from the original blog post on this topic:  https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/03/22/debatching-messages-into-smaller-batches-in-an-orchestration.aspx

NAck Processing using an Orchestration

This is a simple Orchestration to catch Nack’s. Nack’s are Negative Acknowledgements returned from failed BizTalk messages. This Orchestration can be modified to react to specific exceptions as needed.

This sample should work in BizTalk 2004 and BizTalk 2006.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/05/26/nack-message-processing-orchestration-for-biztalk-server-2004.aspx

%ufeff

Naming Output Files Inside an Orchestration

Naming output files is always tricky. This sample shows how to use message context properties to control the name of output files.

BizTalk 2004 has two ways to dynamically name your files from inside the Orchestration. The two ways to accomplish this are either to use a Dynamic Send Port or to use the %SourceFileName% macro on the Send Port.

This sample should work with both BizTalk 2004 and BizTalk 2006.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2004/11/13/how-to-name-output-files-inside-an-orchestration.aspx