Collapse
CollapsingX
  • - or -

Avoiding broken links in recipe steps


When modifying a project that has already been deployed, you might make changes which render the project incompatible with the recipes on your runtime platform. If you modify the names of steps, variables, or collection items (for example, models, measurement markers, color-samples) that are linked to by recipe-dependent steps, the recipes on your development computer will automatically be updated to reflect the new names. However you will be unable to deploy your project without overwriting the recipes on your runtime platform, because the recipes on your runtime platform now contain broken links. If this happens, you will need to manually repair the broken links before deploying. In some cases, broken links can be prevented.

Note that broken links will prevent you from redeploying your project without overwriting the recipes on your runtime platform.

Preventing broken links

If you have not yet renamed anything in your project, and you are certain that no runtime modifications will be made before your re-deploy, you might be able to prevent links from breaking. To do this, connect to your runtime platform and access the Recipes pane. Use Import all recipes button to import recipes on your runtime platform that do not exist on your development computer, and the Synchronize all recipes button to synchronize the values for existing recipes on your development computer with modifications that have been made on your runtime platform. Once your development computer has the latest recipes, make the require modifications to your project and re-deploy it with all recipes selected in the RECIPES tab of the Deploy Project dialog.

Synchronizing a recipe from your runtime platform will permanently overwrite that recipe on your development computer. The overwritten version cannot be recovered. If you need to keep both sets of values, you must use 2 recipes. Note that other persistent values will also be overwritten during import or synchronization. For more information, see the Importing and synchronizing recipes from your runtime platform subsection of the Recipes at design-time section earlier in this chapter.

How links become broken

If you rename a step, variable, or item in a collection, Matrox Design Assistant will automatically update all links to it that exist in the recipes listed under the Design-time tab of the Recipes pane. However, the existing recipes on your runtime platform cannot be updated in this way and the links in those recipes will become broken. This is true whether a recipe was deployed from your development computer, or created from the operator view at runtime.

Matrox Design Assistant will generate the following warning if you attempt to perform an action that will render your project incompatible with the recipes on the currently connected runtime platform:

The Errors pane, the Recipes pane, and the RECIPES tab of the Deploy Project dialog will present warnings if there are incompatible recipes detected on your runtime platform. You can also view a list of incompatible steps and variables from these locations (for example, by clicking on the name of an incompatible recipe in the Errors pane).

Example of breaking a link in a recipe

Consider a situation in which you have deployed a project with a recipe-dependent TextWriter step. In MainRecipe, the Text value for this step is an expression that includes a link to a StringReader step named StringReader5000. In addition, a recipe called SecondRecipe has been cloned from MainRecipe in the operator view and does not exist on your development computer. You need to modify your project to rename this StringReader step to SerialNumber.

You start by renaming the StringReader5000 to SerialNumber. If the recipes on your runtime platform were otherwise identical to the recipes on your development computer, you could now safely fix the links on your runtime platform by re-deploying all of the recipes in your project. However, the TextWriter step in SecondRecipe is still linked to StringReader5000. Since you have renamed that step, you will need to first import this recipe from the Runtime tab of the Recipes pane. You must then update the broken link in the TextWriter step in SecondRecipe before re-deploying your project.

Repairing broken links

If you need to repair links (for example, because you had to rename recipe-dependent steps or variables before connecting to one of your runtime platforms), you will need to import and synchronize the incompatible recipes to your development computer and manually change any links which have been broken.

Synchronizing a recipe from your runtime platform will permanently overwrite that recipe on your development computer. The overwritten version cannot be recovered. If you need to keep both sets of values, you must use 2 recipes. Note that other persistent values will also be overwritten during import or synchronization. For more information, see the Importing and synchronizing recipes from your runtime platform subsection of the Recipes at design-time section earlier in this chapter.

Once you have imported and synchronized all recipes from your runtime platform, use the following procedure to repair each broken link:

  1. Select the recipe containing the link using the Current recipe dropdown list in the Recipes pane.

  2. Double-click on the error associated with the link in the Errors pane. This will open the step containing the broken link in the Configuration pane.

  3. Update the name in the broken link.

  4. If you need this value to be the same in multiple recipes, use the Apply multiple dialog in the Recipes pane. Using this feature can dramatically reduce the time required to repair all links in your project.

Once you have finished modifying your project, re-deploy it with all recipes selected in the RECIPES tab of the Deploy Project dialog.