Workflow Variables and Mappings

Overview

When Technical Workflows are executed, workflow variables are included in addition to the input and output messages. Workflow variables are system variables and user-defined variables. You can define variables in the Variables docking window in the workflow or in the variable mapping dialog.

Workflow variables are not designed to store or process large amounts of data. Workflow variables are copied to the RAM. Hence, an out of memory error can occur if the variables' content is too big. Therefore, it is strongly recommended to process large amounts of data using input/output messages. Additionally, it is recommended to split large messages.

As of INUBIT 7.3, checking the existence of variables results in an error message if the corresponding variable cannot be found or is not declared.

Simple and complex data types

The INUBIT software supports typed variables. You can define variables with simple or complex data types.

You define the complex data types in an XML Schema that is referenced in the workflow. To use an XML Schema in several workflows, you can store and reference the XML schema in the Repository.

Validating variable values

In the execution of a workflow, you can have the current variable values validated against the referenced XML Schema.

Validity scope of workflow variables

The system variables of the INUBIT software are valid globally, that is, also in workflows that are linked with workflow connectors.

The following applies to user-defined variables and module variables:

  • By default, user-defined variables are only valid in the workflow in which they have been defined and are not forwarded to linked workflows.

  • In each workflow, you can specify individually

    • whether and which variables are returned if the workflow is called synchronously by a workflow connector

    • whether and which variables the workflow expects when called by a workflow connector.
      Refer to Configuring the Variable Transfer for Linked Technical Workflows.

    • By default, variables that are defined at a module within a Scope are valid for the workflow containing the Scope. To restrict the range of applicability of the variable choose the name of the Scope in the Scope drop-down list instead of the (Workflow) item. Therewith, the variable is valid only within the Scope and it is not forwarded to the module that follows the Scope. Within the Scope, variables respond in exactly the same way as other variables.

      When choosing a Scope module as scope (as purview or range of applicability) for the variable, the Transfer upon workflow call tab disappears.

Defining Variables

Overview

Before you can assign values to new variables in a Technical Workflow, you must define these.

When you define a variable you specify which type of information is to be stored in it. This way you guarantee that certain operations can be executed with the current content of the variables.

Undefined variables cannot be used in subsequent modules and in workflows that are linked using workflow connectors.

Defining variables as input/output variables

When you are defining a variable, you can specify whether it is supposed to act as an input or output variable, if the current workflow is called by another workflow.

Defining and Finding Undefined Variables

Undefined variables in your workflow can be module variables that were set, for example, by a file or HTTP Connector in the current or a linked workflow, or user-defined variables originating from a linked workflow. You can quickly find and define these undefined variables with test mode.

If you do not wish to use test mode, use one of the methods for defining variables.

Refer to

Proceed as follows

  1. Test your process locally.

  2. Double-click a watch point to display the result file. After the name of non-defined variables links are shown:

    workbench user guide 642 0
  3. Click the Define variable link. → The variable is defined with the type of the current value and displayed in black type in the table.

Defining Variables with a Simple or Complex Type

Proceed as follows

  1. Depending on whether you want to define the variable in the workflow or directly in the variable mapping of a module, execute one of the following steps:

    • In the workflow:

      1. Display the diagram in a local directory.

      2. Open the Variables docking window in the sidebar. The docking window is displayed.

      3. In the toolbar, click workbench user guide 643 0.

    • At the module in the Dialog Variables mapping:

      1. Create a mapping rule, in which Variable is selected as target or source.

      2. Next to the Variable option, click workbench user guide 643 0. A dialog opens:

        workbench user guide 644 0
  2. Select the Global variable checkbox, if you want to define a global variable. Refer to Using Global Variables.

  3. Enter the name of the variable and add a comment, if necessary.

  4. Define the data type:

    • Variable with simple data type:

      Select a type from the list.
      For variables that are supposed to contain a password, use is:password. The variable value then will be stored in encrypted form. In the INUBIT Workbench, the value will be masked and you will not be able to access the plain text form of the value via mapping of variables, XPath, or XSLT anymore. But it is possible to map the variable to a password module property or another password variable.
      To learn more about access protection, refer to Notes on source and target values in section Functional Principle of the Mapping of Variables.
      For variables whose content is to be masked but accessible in plain text via mapping of variables, XPath, or XSLT, use is:maskedString.
      For variables that are supposed to contain an encrypted password value, use is:encryptedPasswordString. You can assign the encrypted value of a is:password variable or a module property to this kind of variable. Vice versa, it is possible to set the content of an is:password variable or a module property via the is:encryptedPasswordString variable. You can always access the value of an is:encryptedPasswordString variable, a decryption is not possible. For information about the mapping of is:encryptedPasswordString, refer to Notes on source and target values in section Functional Principle of the Mapping of Variables.
      For variables that are supposed to contain any XML documents, use is:anyElement.

    • Variable with complex data type based on an XML Schema:

      1. Click Extended. The dialog is extended with the display of system-wide schemas and those defined in the workflow:

      2. Choose a data type. For complex data types, the structure is displayed in the Structure preview.

  5. Click OK to save the variable. → The new variable is displayed in the Variables docking window.

Defining Module Variables

Some modules set variables when they are executed or they expect certain variables. These module variables are set in the module and must be defined before they are used in subsequent modules.

Refer to e.g.

Proceed as follows

  1. Open the Variable definition dialog as described in Defining Variables with a Simple or Complex Type:

    workbench user guide 644 0
  2. Click the workbench user guide 644 1 button. → The dialog is extended. In the Module variables area, all modules with undefined module variables that exist in the current workflow are listed automatically.

  3. Choose the module for which the module variables are supposed to be defined.

  4. With the Display list, you can also filter the displayed module variables and specify whether all, only input variables, or only output variables are supposed to be displayed.

  5. In the Name list, choose the desired module variable.

  6. Add a comment in the comment section, if necessary.

  7. Click OK to close the dialog.
    → The variable is defined and displayed in the Variables Docking Window.

Validating Variable Values

You have the following options for validating variable values in a Technical Workflow:

  • For the mapping of variables
    If the Validate contents of changed variables option is active in the Mapping of variables dialog and one variable is assigned an invalid value that does not fit the XML Schema, an error is thrown. Refer to

  • Dialog Variables mapping

  • Handling and Suppressing Errors.

  • For a validate module
    The Validate control checks selected variable values against XML Schemas or WSDL files that are referenced at the workflow.

If the validation was successful, then the process is running further. Otherwise an error is thrown and the validation result is output as part of the error message.

Refer to Validate.

Testing Mappings of Variables

You can test mappings of variables and copy the end result of the test into clipboard to reuse it in other modules.

Prerequisites

You have created at least two modules in the workspace and mapping rules for one module.

Proceed as follows

  1. Double-click the V button that is shown at the bottom left when hovering the cursor over a module.

  2. Click workbench user guide 645 1 to activate the test mode.
    → In the Source data and Target data of the Selected entry pane, you can see the result of the mapping you have just tested.

    You can change the input data for a mapping easily in the Test mode input data tab.

  3. Click the Test mode end result tab at the right-hand side of the window. → The Test mode end result panel is displayed. In the Message pane, the input message is displayed. In the Workflow variables pane, you can see all variables including the variables of other mapping rules.

Copying the Test Mode End Result of Mappings of Variables

If you wish to reuse the test mode end result, you can copy it.

Proceed as follows

  1. Click workbench user guide 645 2 in the Test mode end result panel to copy the end result to clipboard.
    → You can now reuse the content of the clipboard.

  2. Close the Variables mapping window.

  3. Right-click another module and choose Set start point.

  4. Right-click the workspace and choose Start test with clipboard content.

  5. Double-click the watch point.
    → A new window is displayed. You can see the input message and the variables of the edited module.

Searching for Variables in Diagrams

The search function enables you to find out in which module a certain variable is used, even in complex diagrams.

It searches variable mappings, XSLT Converter and Workflow Controls e.g. Wait, Receive and Validate modules.

Proceed as follows

  1. Display the diagram.

  2. Open the Variables docking window. This docking window shows all variables that are used in the diagram.

  3. Click the searched variable.

The variable name is displayed in the input field under the list, for example:

workbench user guide 646 0

The color of the variable name indicates whether the variable is used in the diagram:

  • Red: The variable is not used in the diagram.

  • Black: The variable is used.

At the same time, the first module in which the variable is used is highlighted in color. You can use arrow buttons to go to the next place where it occurs.

Editing Variables

You can edit, cut or copy the variables of a diagram and insert them into another diagram.

You can neither edit, cut, copy nor paste system variables.

Proceed as follows

  1. Display the Variables docking window in local mode.

  2. Select the variable from the list.

  3. In the toolbar click the workbench user guide 646 2 button. The dialog for editing variables opens. In the General tab, you can change the name and type of the variable.

    If you change the name of a variable that is already in use, all instances of this variable in the currently displayed workflow are changed at the following points:

    • in mapping rules of the variables mapping,

    • in XSLT style sheets

    • in XPath expressions used in mapping rules

    • in conditions that are defined in Demultiplexer and Wait modules.

      Names of instances in the XSLT stylesheets in XSLT Converters are not changed! In the workflow execution, errors can occur if you change the type of variable of which instances are already used. If you have activated Schema Validation, errors can occur!

  4. Click OK to close the dialog.

Deleting Variables

You can delete variables that are defined in a workflow.

Prerequisites

The variable to be deleted is not used in any module.

Proceed as follows

  1. Display the Variables docking window in local mode.

  2. Select the variable from the list.

  3. Open the context menu of the variable and choose Delete or, in the toolbar, click workbench user guide 646 5 .

Selecting and deleting unused Variables

You can display unused variables of your workflow and delete them, if necessary.

Proceed as follows

  1. Display the Variables docking window in local mode.

  2. Within the window, open the context menu with the right mouse button.

  3. Click on Select unused variables.

  4. Press Del on your keyboard.

  5. Confirm the following dialog with Yes if you really want to remove the selected variables.

System Variable Overview

System variables are set by the INUBIT software and cannot be deleted. You can evaluate system variables with the mapping of variables.

Always use the specified spelling for system variables. It is case-sensitive.

The INUBIT software offers the following system variables:

System variable Explanation

ISGlobalProcessId

Alphanumeric string.
The only system variable that can be overwritten. You can use ISGlobalProcessId to group different workflows that belong to a business process and monitor them using a corresponding filter in the Monitoring tab. Refer to Changing the ISGlobalProcessId.

ISCurrentTime

Current time in milliseconds

ISFileSize

String, size of a file in KByte
IsFileSize contains the size of an input message. The input message can be any file selected while execution of a workflow or any value passed in the variable mapping as an input message.
IsFileSize shows the file size at every watch point. This is the size of the message at that watch point.

ISInvokingModule

Is set for Technical Workflows that are called by a workflow connector in another Technical Workflow.
Name of the calling module in the calling Technical Workflow

ISInvokingWorkflow

(Only for Technical Workflows that are called by a Workflow Connector in another Technical Workflow)
Name of the calling Technical Workflow

ISModuleId

Unique character string within a Technical Workflow

ISModuleInput

Input message of the module

ISModuleName

Character string with the name of the module as specified in the designer

ISModuleOutput

Output message of the module so that this can later be used again and without changes.

ISNodeName

Displays the node name on which the workflow is executed. If the workflow is in waiting status, the node is shown as NotAssigned since the workflow is waiting to be executed on a node.

ISProcessId

Unique string of characters with which the execution of a workflow is marked in the INUBIT Process Engine.

ISServerName

Server hostname

ISTagName

Is set if a workflow is executed in a tag. Contains the current tag name.

ISUserName

Name of the user under whose name the workflow is executed.

ISWorkflowName

Character string with the name of the workflow as specified in the designer.

pgp.decryption.mdc.status

Status on integrity check on PGP decryption:

  • valid: Integrity check (MDC) is activated, and check passed

  • invalid: Integrity check (MDC) is activated but check failed

  • not applicable: Integrity check (MDC) is deactivated

Error system variables

Error system variables are only available if errors have occurred in the workflow execution:

Error system variable Explanation

ISErrorString

Contains the error description.

ISErrorKey

Is set if the error was generated by the INUBIT Process Engine. Contains the language- independent error key.

ISErrorModuleName

Contains the name of the module that triggered the error.

ISErrorModuleId

Contains the ID of the module that triggered the error.

Functional Principle of the Mapping of Variables

Usage

You can use the mapping of variables to dynamically change messages and workflow variables whilst these are being processed in a Technical Workflow.

To do so, you create rules for mapping the source values and target values in the individual modules in the workflow. As the source and target values you can, among other things, use the input message of the module, module properties or module variables.

Examples

  • Reading values from the input message and assigning variables
    An XML-formatted input message contains an FTP server address, the user name and the password. These values are to be transferred to an FTP Output Connector so that its output messages can be transferred to the FTP server. In the mapping of variables, a rule is created that maps the values from the input message to variables using an XPath expression. These variables are forwarded to the FTP Output Connector. The FTP Output Connector is configured so that it reads the variables and uses the values for sending the output message.

  • Writing module properties to variables
    FTP server address, user name and password of the FTP Input Connector are to be made available to the FTP Output Connector. To do so, these values are written to variables in the FTP Input Connector, forwarded to the FTP Output Connector, where they can then be accepted.

  • Making statistical values available via variables
    In a workflow that is split into several branches by a Demultiplexer, all branches end with output mail connectors. To ensure that all output mail connectors receive the same new recipient address, a receiver variable is created in a module preceding the Demultiplexer. The value of this variable is the new recipient address, and it is available in all output mail connectors.

Process order of mapping rules

Most mapping rules are processed in the order in which they are listed in the dialog (refer to Dialog Descriptions for the Mapping of Variables). The order of the mapping rules can be changed in the dialog.

Before the module is executed, the following mapping rules are processed:

  • Assign values to variables

  • Change input message

  • Change module properties that are used in the module execution

  • Delete variables

After the module execution, only the Copy output message to variable rule is processed.

Source and target values

In each module, you can define one or more mapping rules in the following form: Source value > is applied to > target value. The following table explains what you can use as source and target values:*

Source Target Explanations

Input message

Variables

  • Input message is XML-coded:
    The input message can be assigned to a variable completely or in parts by means of an XPath expression.

  • Input message is binary-coded:
    No XPath expression can be applied, the message is automatically base64-encoded for the assignment. As the target you can, for example, choose a variable of the xsd:base64binary type.

  • Input message is text:
    Specify the character set.

  • MailConnector.accessToken:
    User can pass access token details to mail connector module if provided mail connector is configured with OAuth2.

  • MailConnector.refreshToken:
    User can pass refresh token details to mail connector module if provided mail connector is configured with OAuth2 to get new access token.

Module property

The selection depends on the module properties that the module offers.

Input message

You can edit specific parts of the input message by applying an XPath to it.

Output message

Variable

  • Output message is XML-coded:
    If the output message is still supposed to be XML-coded, the variable must have a complex data type. If you do not wish to use an explicit type, use xs:anytype.
    If the output message is to be, for example, mapped to a variable of the string type, you can subsequently no longer apply XPath expressions and functions to the content!

  • Output message is binary-coded:
    No XPath expression can be applied, the content of the output message is base64-encoded for the assignment.

  • Output message is text:
    Character set must be specified

  • MailConnector.accessToken:
    Access token will be available in this output workflow variable.

  • MailConnector.refreshToken:
    Refresh token will be available in this output workflow variable.

Module property

Variable

The data types for source and target must be compatible (incl. the namespaces for complex schema types)

Module property

Input message

Variable

Variable

Module property

Input message

If the variable is of the xsd:base64Binary type, the content is automatically decoded during assignment.

Static value

Variable

The permissible types are string and XML. For the XML type, you can generate sample content for the target data type in the editor.

Module property

Input message

XPath expression

Variable

The XPath expression is listed in the context of a blank document, not in the input message. The XPath expression supports all functions that are offered in the XPath wizard.

Module property

Input message

XSLT

Variable

You can define an XSLT stylesheet and thus execute complex operations on the input message, blank documents, variables, parts of (complex) variables or XPath results.

Module property

Input message

PartnerLink

Variable

The option is only available in Technical Workflows with partner links.

Module property

Input message

The source value is an XML structure that represents the end point reference of the selected partner link. The end point reference contains address data according to the WS addressing standard, encapsulated into an sref:service-ref element.

(Delete target)

Variable

Deletes the specified target. Suitable, for example, for variables of the string type for deleting large variables contents to improve performance.

Module property

Input message

Any source that produces an sref:service-ref XML structure

PartnerLink

The option is only available in Technical Workflows with partner links.
To overwrite the (partner) end point reference of the selected partner link. The source value must be an sref:service-ref XML element and corresponds to the value that is returned for Source: partner link.
Refer to Overwriting PartnerLinks.

BPM rule

Variable

(Only available if BPM rules are licensed)
Enables access to the XPath expression or the parameters of a BPM rule.
Refer to Task, Decision and Data Rules in Variables Mapping.

Module property

Input message

Notes on source and target values

Please note:

  • The data types of source and target must be compatible.

  • The namespaces of XML Schema based data types must be compatible.

  • If an XML element is addressed as the source as well as the target, the source element replaces the target element:

Source Target

Before mapping

<source/>

<target/>

After mapping

<source/>

<source/>

Otherwise the content of the target element is overwritten.

  • If the source is an XML structure and the target is a string variable, only the element content is copied without tags.

  • If you want to map a character string as a source to an input message, you must choose the encoding with the option Encoding (if source side returns text) on the target side.

  • XML encoding is used for XML content on the source side.

  • If the mapping target is an xsd:base64Binary variable and string content has been selected as the source (that is, a string variable, an XPath that returns a string or a static value), the source string must be base64-encoded. To encode a string with base64, please use the XPath function isxp:encode().

    This function is not adapted for binary data. Therefore, use the encode module.

  • You can manually set module properties that are not available as a target. Choose Module property as the target and enter the name of the desired module property in the Module property field.

  • You can restrict access to password properties, that is, module variables of the is:password type, by means of the property RestrictedPasswordPropertyAccess in the <inubit-installdir>/server/ibis_root/conf/ibis_config.xml file.

    Note the details for Configuring via ibis_config.xml file.

    This property by default is set to true and the following applies:

    • Variables mapping
      For the variables mapping you only can map password properties (that is, module variables of the is:password type) on other password properties.

    • XPath queries/XSLT converting
      Password variables are not available for XPath queries and the XSLT converting.

    • Demultiplexer/If-Module
      In the Demultiplexer and in the If module it is still possible to compare the content of the password.

  • For the password variable is:encryptedPasswordString the following applies:

    Source Destination Explanation

    Password variable or password module property

    is:encryptedPasswordString
    variable

    The encrypted password string is assigned to the destination variable at processing time.
    You can use this is:encryptedPasswordString variable arbitrarily, for example, put the value into a database.

    is:encryptedPasswordString
    variable

    Password variable or password module property

    The decrypted password string is assigned to the destination variable at processing time.

Creating Mapping Rules for the Mapping of Variables

Overview

You define the mapping rules for the mapping of variables in the workflow in the individual modules. In server mode, you can display the mapping rules; you can only create and edit them in local mode.

You can recognize modules for which a mapping of variables is defined by the continuously visible V button, e.g.:

workbench user guide 653 1

For modules for which no mapping of variables is defined, the V button is only display if you point the cursor to the module.

Proceed as follows

  1. Display the Technical Workflow in local mode.

  2. Point the cursor to the module to which you want to apply the mapping of variables. At the bottom left of the module, a V button is shown.

  3. Double-click the V button. The dialog opens (refer to Dialog Descriptions for the Mapping of Variables).

  4. To create a new mapping rule, click the workbench user guide 653 2 button in the toolbar.

  5. Choose the source first, and then the target.
    Click the M button in the toolbar to show the module properties that are currently available. The module properties are highlighted in color.

  6. To save your mapping rule, click OK. → The dialog closes, the mapping rule is saved.

Creating a Mapping Rule for Source=XSLT and Target=Variable

In a mapping rule, you can define an XSLT stylesheet and execute operations on variables of the types simpleType or complexType. You can assign the result to a variable, a module property or the input message.

Proceed as follows

  1. Display the Mapping of variables dialog.

  2. Create a mapping rule.

  3. As the source, choose the value XSLT.

    If the target is a variable of the type complexType, enter this target variable now and then define the style sheet. It is only then that the structure of the desired target variable is displayed directly in the Edit XSLT dialog in the Target structure tab.

  4. Optional:
    Use the XSLT processor option to specify the functional scope of the XSLT style sheet by choosing another processor.

  5. For Execute on choose the value Variable content.

    If the variable on which the XSLT style sheet is supposed to be executed has a complex data type, you can also choose the XPath option and specify and XPath that refers to the structure of the variable, e.g. $var1/properties/property[1].

  6. For Variable choose the variable on which the XSLT style sheet is supposed to be executed.

  7. To define the style sheet, click Edit next to the Stylesheet option. The Edit XSLT dialog is displayed.

    In this dialog, you can use drag & drop to create the XSLT stylesheet:

    1. Load an example file with the structure to created in the XML target file area.

    2. Drag the root element or any other elements into the XML target area to the xsl:template element.

    3. From the Variables tab, drag the selected variables into the XML source to assign the variable value to an element in the target structure.

  8. After completing your style sheet, click OK. The dialog closes.

  9. If you have not done so yet: Specify to which target the result of the stylesheet is to be mapped.

For information about using the XSLT dialog refer to Creating a Technical Workflow 2: Converting a CSV File to CSV-XML.

Creating Mapping Rules for Source=XPath

In a mapping rule, you can use an XPath expression as a source. You can assign the result of the expression to a variable, a module property or the input message.

The XPath expression is listed in the context of a blank document, not in the input message.

The XPath wizard helps your create an XPath expression. In the wizard, you can use drag & drop to compile the expression from a list of functions and a list of all variables. In addition, the XPath wizard offers explanations of all available XPath functions.

Proceed as follows

  1. Display the Mapping of variables dialog.

  2. Create a mapping rule.

  3. As the source, choose the value XPath expression.

  4. To create the XPath expression, click the XPath assistant button. The XPath wizard is displayed.

  5. In the XPath functions docking window, first choose the XPath function that you want to use, e.g., the concat() string function. As soon as you select a function, an explanation of the function is displayed.

  6. Use the mouse to drag the XPath function into the XPath input field.

  7. To assign the function an argument, select a variable in the Workflow variables area and use the mouse to drag it to the empty space in the function in which an argument is expected.

  8. Click OK to close the dialog.
    → The XPath expression is displayed.

Overwriting List Module Properties

Some module properties such as process roles are saved in list form in the XML structure.

To overwrite list module properties, you have to know the XML structure and fill it correctly.

In general, you have to execute the following steps:

  1. Make the new value of the list module property available by writing it e.g. into a variable or into the output message. This must happen before the module in which the list module property is set.

  2. Create a new variable with the structure of the list module property.

  3. Map the new value of the list module property to the new variable.

  4. Map the new variable to the list module property.

This section uses the Overwrite process role example to explain how you proceed when you overwrite list module properties.

Proceed as follows

  1. Generate a Technical Workflow.

  2. Add an Assign module.

  3. Create a task generator with the following configuration:

    • An option from the Entry in Task List area is selected.

    • A process role is selected, for example team member.

    • The Ignore input message option is checked.

      You will overwrite this process role with another in the following steps. The new process role originates from a variable that is set in the Assign module.

  4. Connect both modules:

    workbench user guide 655 0

    Creating a variable with a new process role value

  5. Open the variable mapping in the Assign module and create the following mapping rule:

    workbench user guide 655 1

    You proceed as follows:

    1. Choose Static value as the source and enter the XML structure manually.

    2. Choose Variable as the target.

    3. Create a new variable:

      1. Next to the Variables list, click workbench user guide 656 0. A dialog opens.

      2. Name the variable and choose anyElement as the type.

      3. Close the dialog.

    4. Close the variable mapping dialog.
      Mapping rule 1: Variable with expected list structure

  6. Open the variable mapping dialog in the task generator and create a new mapping rule.
    You use this mapping rule to create a variable with the same structure as the ProcessRoles list module property. Execute one of the following steps:

    • Alternative 1:

      1. In the toolbar, click the M button to display the module properties and their current values.

      2. Select the list module property ProcessRoles. The XML structure of the property is displayed in the Source area:

        workbench user guide 656 1
    • Alternative 2:

      1. Choose Static value as the source and the ProcessRoles list module property as the target.

      2. Click the workbench user guide 656 2 icon and choose Create example content for target type.

        workbench user guide 657 0

        The XML structure of the module property is displayed.

  7. In the mapping rule you just created, change the target: Choose Variable.

  8. Create a new variable of the anyElement type named var.ProcessRoles:

    workbench user guide 658 0

    The first mapping rule in the task generator looks like this:

    workbench user guide 659 0
  9. Close the dialog.
    Mapping rule 2: Map new process role to variable with list structure

  10. You use the second mapping rule to fill the var.ProcessRoles `variable with the content of the `NewProcessRoles variable. You need the XML structure and the value of the NewProcessRoles variable:

    1. In the Assign module, start test mode with the Start test without file option.

    2. After the test, open the watch point between the two modules and copy the content (result file and variable) to the clipboard.

    3. Close the dialog.

  11. Open the variable mapping of the task generator:

    1. Create a second mapping rule.

    2. Click the Test mode button to activate test mode:

      workbench user guide 659 1

      In the test mode, the variable values from the test run of the workflow are used.

    3. If necessary, open the Test mode input data docking window.

    4. If necessary, load the content of the clipboard into the Message area:

      workbench user guide 660 1

      The thus copied variable value is assigned to the NewProcessRole variable displayed in the Workflow variable area.

    5. In the second mapping rule, choose Variable=NewProcessRoles as the source.

      Make sure the test mode is activated.

    6. Next to the XPath, click workbench user guide 660 2 to open the XPath wizard.

    7. In the Workflow variables area, next to the NewProcessRoles variable, click the Value column to display the XML structure of the value.

    8. Drag the team leader text node into the XPath input field. The XPath is displayed:

      workbench user guide 661 1

      The XPath is tested immediately. You see the team leader result in the Result area.

    9. Click OK to close the dialog.

  12. Choose Variable=var.ProcessRoles as the target.

    Make sure the test mode is activated.

  13. Next to the XPath field, click workbench user guide 660 2 to open the XPath wizard.

  14. Drag the name attribute of a property element into the XPath input field:

    workbench user guide 661 1
  15. Click OK to close the dialog.
    The second mapping rule now looks like this:

    workbench user guide 662 0

    Mapping rule 3: value of the list module property

  16. Create the following third mapping rule:

    workbench user guide 662 1

    The new value of the ProcessRoles module property is displayed in the Value field.

  17. Click OK to save the rules.
    → You have thus overwritten the process role initially defined in the task generator.

Changing the ISGlobalProcessId

This section describes how you set the value of the ISGlobalProcessId `variable to identify all workflows that belong to the same business transaction. In the Queue Manager, if you sort the table by the `ISGlobalProcessId, you can quickly get an overview of the status of the corresponding business transaction.

Proceed as follows

  1. Open the first Technical Workflow of the business transaction for editing.

  2. Open the context menu of the first module and choose Edit mapping of variables.

  3. Create the following mapping rule:

    workbench user guide 663 0

    Enter the desired ID as a static value.

  4. Click OK.

Execute this action for all Technical Workflows that belong to the same business transaction.

Dialog Descriptions for the Mapping of Variables

Dialog Variables mapping

Call

  • Edit

    1. Display the diagram in which the mapping of variables of a module is to be edited in local mode.

    2. Select the module and choose Edit mapping of variables from the context menu.

  • Display

    1. Display the diagram in which the mapping of variables of a module is to be displayed in server mode.

    2. Select the module and choose Show mapping of variables from the context menu.

In the Mapping of variables dialog, you can display, create, test, edit, and delete mapping rules.

Mapping rules are usually executed in the order in which they are displayed. You can change the order of the mapping rules in the dialog.

Toolbar

The buttons in the toolbar enable you to use the following functions:

  • workbench user guide 663 2 : Add mapping rule

  • workbench user guide 663 3 : Cut mapping rule

  • workbench user guide 663 4 : Copy mapping rule

  • workbench user guide 663 5 : Insert mapping rule

  • workbench user guide 663 6 : Move up mapping rule

  • workbench user guide 663 7 : Move down mapping rule

  • workbench user guide 663 8 : Delete mapping rule

  • workbench user guide 663 9 : Show/hide activate test mode

  • workbench user guide 663 1 : Show/hide module properties

The functions are also available via the context menus of the mapping rules.

Table of mapping rules

The table shows all already existing mapping rules in the processing order.

Skipping variables mapping

This Skip option is available for all assignments in variable mapping even for global variables.

When having activated the checkbox for a variables mapping in the Skip column, this variables mapping will be struck through and it will not be executed. A workflow input variable or a global variable is not mapped, but it will be available in workflow variables section of a watchpoint file.

The Skip checkbox is applicable for all assignments in variable mapping but only on the Local side.

At a Workflow Connector, the Skip checkbox is disabled for input variables, output variables, and global variables.

Selected entry

As soon as a mapping rule is available and selected, additional options are displayed, including:

  • Delete variable after assignment
    If this is active, the value of the selected variable is deleted after the execution of the mapping.

  • Ignore blank source content
    The source content can be blank, e.g. because the XPath execution on a variable content produced an empty result.

    • The option is activated: No error is thrown, the mapping rule is ignored.

    • The option is not activated: A bpel:selectionFailure is output.

  • Ignore non-initialized source variable
    A variable is not initialized if it was not assigned a value in the workflow execution.

    • If the option is activated: In case of a non-initialized source variable, no error is thrown and the mapping rule is ignored.

    • If the option is not activated: In case of a non-initialized source variable, a bpel:uninitializedVariable error is thrown.

  • Validate content of modified variables
    If this option is activated and a variable is assigned an invalid value that does not suit the schema type, an error is thrown. The error is called bpel:invalidVariables.

Variables Docking Window

workbench user guide 665 0

The docking window shows all variables that are defined in the currently displayed Technical Workflow. You can create new variables or edit user-defined variables and module variables.

Symbols on variables

The INUBIT software has the following variable types, which you can identify by the symbols:

  • workbench user guide 666 1 System variable

    System variables are set by the INUBIT software and cannot be deleted.

  • workbench user guide 666 2 User-defined variables

    • workbench user guide 666 3 : Workflow input variable

    • workbench user guide 666 4 : Workflow output variable

    • workbench user guide 666 5 : Workflow input/output variable

      You can define any variables yourself and specify whether these act as input and/or output variables in linked workflows.

      Refer to Defining Variables.

  • workbench user guide 666 6 Module variable Some modules set variables when they are executed or they expect variables.
    Refer to, for example:

    • Module Variables of the AS2 Connector

    • Module Variables of the File Connector

    • HTTP Connector: Defining and Displaying HTTP Connector Parameters.

  • workbench user guide 666 7 Global variable

For jump into this workflow

For encapsulating the workflow.

  • If this option is selected and the current workflow process is linked to another, the current workflow process only forwards variables that are explicitly marked as input/output variables. If this option is selected, there must be a mapping of input and output variables in all workflow connectors that refer to this workflow.

  • If this option is not selected, the transfer and copying of all variables can be configured in the workflow connector.

Usage in the workflow

Searching for modules in which a variable is used.

Using Global Variables

Global variables can be used after defining (refer to Defining Variables with a Simple or Complex Type) and saving for all users/groups on the Process Engine.

workbench user guide Using Global Variables

Add a comment when creating or modifying a variable to tell other users how to use the variable.

Global Variable Settings

Selecting the Constant value option preserves the variable value during the transfer in the variable mapping. Accordingly, the variable cannot be selected in the target.

workbench user guide 667 2

If the Constant value option has been selected and the constant is in use, the option can no longer be deselected.

With the options Workflow input variable and Workflow output variable, the variables can be defined as input and output variables, refer to Configuring the Variable Transfer for Linked Technical Workflows.

If the Constant value option is selected, the variable cannot be defined as input or output variable.

Editing and Deleting

Global variables can be edited or deleted locally by any user of the Process Engine with appropriate rights, as long as the variable is not used by a workflow or as a property in an XML Converter module.

Creating, deleting, and renaming global variables takes effect immediately for the entire system, even without prior publishing of a workflow.

Values of global variables and constants can be changed by editing the start point of the unit test.