[Index]

Model: data/ProvisioningWorkflow

Provisioning Workflows

Provisioning Workflows are a combination of one or more: operations on entities, scripts and other workflows in a sequence according to a condition.

Entity operations can be add, delete or update that take place if a specified condition holds. A Configuration Template can also be associated with this operation on the entity. This association with a template can for example provide default values or calculated values (by macros) to the entity during the Provisioning Workflow execution. For delete and update operations, the operation can be refined by specifying Advanced find options for the selected entity, so that the operation can be applied to a specific instance of the entity.

Each step in a workflow can have one or more context variables. These variables can be referenced from for example a Configuration Template, using the namespace in a macro as {{pwf.VARIABLENAME}. The value of the variable remains set for the entire workflow until it is set again in another step. For example, if a variable TIMESTAMP is set to a macro {{fn.now}} in step 1 and then set to the same macro in step 2, the value of {{pwf.TIMESTAMP}} that is available at each step will have a different value.

Scripts can be executed as part of a workflow and applied to a device.

Finally, other Provisioning Workflows can be included in Provisioning Workflow as a step in the workflow sequence.

More than one of entity, script or workflow can be added. In such a case, the order steps in which the components are executed is the order in which they are in the Provisioning Workflow.

After Provisioning Workflows have been created, they can be added to another Provisioning Workflow or to a Domain Model where it is associated with a particular operation in the Domain Model. The selected operation overrides the equivalent Domain Model operation.

Create a Provisioning Workflow

  1. Choose the hierarchy level for the Provisioning Workflow.

  2. Choose Template Tools > Provisioning Workflows to open the Provisioning Workflows list view.

  3. Click Add on the button bar to open the Provisioning Workflows input form.

  4. On the Base tab, enter the workflow Name and optionally a Description.

  5. On the Conditions section, Click Add adjacent to Conditions as required, and specify one or more Condition on the Conditions form. The format is a test or macro that resolves to True or False. If more than one Condition is added. The logical AND of all the conditions is evaluated.

    1. From the Action to perform on failure drop-down list, choose the required option, namely: Error or Skip.
    2. In the Error Message text box, enter the error message to display (if applicable).
  6. On the Workflow section, click Add adjacent to Workflow to expand the workflow details. Add one or more workflows on the Workflow input form.

  7. From the Operation drop-down list, choose the workflow operation to carry out:

    If a Foreach List Macro is also entered for the operation, then this condition is evaluated with each loop.

    If a Set operation is selected, only the following options apply: Conditions, Context Hierarchy and Set Context Variables. This operation makes it possible to set variables within the context of the workflow. The variables can for example be accessed in other steps of the workflow.

  8. From the Step Type drop-down list, choose the Step Type of the operation:

  9. From the Entity or Workflow drop-down list, choose the model or workflow that applies to the workflow step.

  10. Enter the required Context Hierarchy from which to carry out the workflow.

  11. If a macro is defined in a workflow that returns a value such that a Configuration Template is not required its use as payload for an operation in a workflow step, then the Assigned Variable used for this macro value can be used as Map Data in a workflow step.

    For example, if in a For List Macro the Macro List Lookup was {# input.Phone #}, with Assigned Variable set as PhoneX, then Map Data can be {{input.PhoneX}}. The value of this variable with each loop can then be a payload for an Add workflow step for say device/cucm/Phone.

  12. Enter a description of the workflow step if required.

  13. Select the Execute Asynchronously checkbox to specify if the workflow step can run asynchronously from other workflow steps. Asynchronous steps run at a low priority. By default workflows run synchronously.

    A workflow that contains an asynchronous step may show as a successful transaction even if the asynchronous step fails. In other words, step failures do not affect the parent workflow. If rollback is disabled on a parent workflow, this will also disable rollback on the step.

    It is recommended to use identifiable custom messages for workflows that contain asynchronous steps, so that the workflow transactions can be properly inspected in the transaction log.

  14. In the Ignored Errors section, check the required check boxes to ignore errors, namely Duplicate Resource Found, Resource Not Found, and All Errors. If the All Errors check box is checked, operation errors such as add, remove or update relating to this workflow step will be ignored. Note that errors due to the workflow step's conditions will not be ignored.

  15. In the Configuration Templates section, if the selected entity is a model, one or more Configuration Templates can be added to apply to the model when the workflow operation is carried out. Click Add adjacent to Configuration Templates to expand the template details.

    In a Provisioning Workflow, each Configuration Template can be associated with:

  16. Enter the Context Hierarchy from which the workflow should be carried out. Specifying a value here makes it possible to override the context hierarchy to which the provisioning workflow belongs when it is created and used in a domain model.

    The Context Hierarchy is also used to indicate the target hierarchy if the Operation is Move.

  17. If required, set any required variables for the step by adding variables to the Set Context Variables group.

  18. To add more than one workflow, click Add as required. To change the order in which the workflows should be carried out, use the up-and down arrows.

  19. On the Parameters tab, enter a value for Parallel.

  20. On the Parameters tab, enter a numeric value for Maximum Workers. The default value is 1. Other values are not currently implemented.

  21. Click Save on the button bar to save the Provisioning Workflow.

The Provisioning Workflow is available for editing from data/ProvisioningWorkflow/{provisioning workflow name}, and for use in a Domain Model from the Provisioning Workflow drop-down list on the Workflows form.

Provisioning Workflows are a combination of one or more operations on entities, scripts and other workflows in a sequence according to a condition. Entity operations can be to add, delete or update if a specified condition holds. A Configuration Template can also be associated with this operation on the entity. This association with a template can for example provide default values or calculated values (from macros) to the entity during the Provisioning Workflow execution. An operation can also specify the inclusion of another workflow under a specified condition. For delete and update operations, the operation can be refined by specifying Advanced find options for the selected entity so that the operation can be applied to a specific instance of the entity. Scripts can also be executed on a device as part of a workflow. Provisioning Workflow operations can also loop through List Macros, assigning list items to an Assigned Variable for reference in other macros or Configuration Templates. List Macros in Provisioning Workflows enable batch operations and nested looping. Refer to the Macro Syntax section in the General Help.

Model Details: data/ProvisioningWorkflow

Title Description Details
Name * The name that is given to the Provisioning Workflow.
  • Field Name: name
  • Type: String
  • Pattern: ^((?!\.).)*$
Description A description for the Provisioning Workflow instance.
  • Field Name: description
  • Type: String
Parameters Additional execution parameters that are applied to the Provisioning Workflow.
  • Field Name: parameters
  • Type: Object
Parallel * An indication if the operation can run in parallel. Default: false
  • Field Name: parameters.parallel
  • Type: String
  • Default: false
Maximum Workers * A specification of the maximum number of workflow workers allowed for the operation. Default: 1
  • Field Name: parameters.max_workers
  • Type: String
  • Default: 1
Conditions The list of conditions that should resolve to True in order for the selected operation to be carried out.
  • Field Name: condition.[n]
  • Type: Array
Condition * A condition in Macro language that should resolve to True for the operation to be carried out. If the condition resolves to False, the operation is not carried out and will be excluded from the list of operations of the workflow.
  • Field Name: condition.[n].condition
  • Type: String
Action to perform on failure. Action to perform on failure. Default: skip
  • Field Name: condition.[n].action
  • Type: String
  • Default: skip
  • Choices: ["Skip", "Error"]
Error Message The custom message that would be displayed
  • Field Name: condition.[n].error_message
  • Type: String
Disable Rollback on Error If selected and the toplevel transaction, the Provisioning Workflow will not rollback any of the nested transaction(s) on failure.
  • Field Name: rollback_disabled
  • Type: Boolean
Workflow The list of individual workflow operations that are part of the Provisioning Workflow.
  • Field Name: workflow.[n]
  • Type: Array
  • Cardinality: [1..n]
Operation * A list of operation types in the workflow. The type can be Add, Update, Remove, Execute and Include Workflow.
  • Field Name: workflow.[n].method
  • Type: String
  • Choices: ["Add", "Update", "Remove", "Bulk Update", "Bulk Delete", "Move", "Refresh", "Sync", "Purge", "Set", "Execute", "Include Workflow", "Exit Local", "Exit Global"]
Step Type A selection to indicate whether the workflow step applies to an Entity such as a model or includes another Provisioning Workflow. Default: model
  • Field Name: workflow.[n].entity_type
  • Type: String
  • Default: model
  • Choices: ["Model", "Provisioning Workflow"]
Entity or Workflow * The selected model or workflow that applies to the workflow step.
  • Field Name: workflow.[n].entity
  • Type: String
  • Choices: [""]
Input Data Identifier DESCRIPTION
  • Field Name: workflow.[n].data_id
  • Type: String
Context Hierarchy The Context Hierarchy from which the workflow should be carried out. Specifying a value here makes it possible to override the context hierarchy to which the provisioning workflow belongs when it is created and used in a domain model.
  • Field Name: workflow.[n].hierarchy
  • Type: String
Map Data Specify a macro to map data from a Relation/Wizard to the work flow step.
  • Field Name: workflow.[n].map_data
  • Type: String
Description Description for this workflow step
  • Field Name: workflow.[n].description
  • Type: String
Execute Asynchronously If selected the step will be executed asynchronously, otherwise it will be executed synchronously(default). Workflows do not wait for asynchronous steps to complete before proceeding with the next step nor do they account for any failures occuring as part of the execution of such steps.
  • Field Name: workflow.[n].asynchronous
  • Type: Boolean
Execution Behavior Detached Rollback will roll back this and nested transaction separately from the parent transaction.
  • Field Name: workflow.[n].execution_behavior
  • Type: String
  • Choices: ["Default", "Detached Rollback"]
Network Device Filter
  • Field Name: network_device_filter
  • Type: Object
Device type The type of the device, for example CallManager, CUC
  • Field Name: workflow.[n].network_device_filter.device_type
  • Type: String
  • Choices: ["CTX", "CUCM", "CUC", "LDAP", "Lync", "ServiceNow", "TMS", "IOS", "PGW", "WebEx", "CUCCE", "CUCCX", "HCMF"]
Device Instance Network Device instance for search limitations
  • Field Name: workflow.[n].network_device_filter.device_instance
  • Type: String
  • Choices: [" "]
Ignored Errors The workflow will continue if this steps encounters the following error codes
  • Field Name: ignored_error_codes.[n]
  • Type: Array
Configuration Templates The Configuration Template to apply if the Entity of the operation is a model.
  • Field Name: templates.[n]
  • Type: Array
Template * Configuration Template
  • Field Name: workflow.[n].templates.[n].template
  • Type: String
  • Target: data/ConfigurationTemplate
  • Target attr: name
  • Format: uri
conditions
  • Field Name: conditions.[n]
  • Type: Array
  • Format: uri
Condition * A condition in Macro language that should resolve to True for the operation to be carried out. If the condition resolves to False, the operation is not carried out and will be excluded from the list of operations of the workflow.
  • Field Name: workflow.[n].templates.[n].conditions.[n].condition
  • Type: String
Foreach List Macro A list of values in Macro List Lookup can be obtained and stored in an Assigned Variable that will be looped through. If one or more of Condition is specified for the operation, then the evaluated condition is tested before each loop of the Foreach List Macro.
  • Field Name: foreach.[n]
  • Type: Array
Macro List Lookup * The macro to return a list. For the macro syntax to return a list, see the General Help.
  • Field Name: workflow.[n].foreach.[n].macro_list
  • Type: String
Assigned Variable * The variable used to store the list returned by the macro.
  • Field Name: workflow.[n].foreach.[n].context_var
  • Type: String
Set Context Variables A list of variables that enriches the context. Macros can be used to obtain objects and enrich the workflow context.
  • Field Name: set_list.[n]
  • Type: Array
Variable Name * The name of the variable. This can be a macro or static name.
  • Field Name: workflow.[n].set_list.[n].set_var_name
  • Type: String
Value * The value of the variable. This can be a macro or static value.
  • Field Name: workflow.[n].set_list.[n].set_var_value
  • Type: String
Conditions The list of conditions that should resolve to True in order for the selected operation to be carried out.
  • Field Name: condition.[n]
  • Type: Array
Condition * A condition in Macro language that should resolve to True for the operation to be carried out. If the condition resolves to False, the operation is not carried out and will be excluded from the list of operations of the workflow.
  • Field Name: workflow.[n].condition.[n].condition
  • Type: String
Action to perform on failure Action to perform on failure. Default: skip
  • Field Name: workflow.[n].condition.[n].action
  • Type: String
  • Default: skip
  • Choices: ["Skip", "Error"]
Error Message The custom message that would be displayed
  • Field Name: workflow.[n].condition.[n].error_message
  • Type: String
Advanced find options The specification to find a specific value of an attribute of a model for the workflow operation to be carried out.
  • Field Name: advanced_find_options.[n]
  • Type: Array
Model attribute The selected of the attribute of the model.
  • Field Name: workflow.[n].advanced_find_options.[n].model_attribute
  • Type: String
  • Choices: [""]
Mapped Value The specified value of the attribute. Macros can be evaluated here to provide the value.
  • Field Name: workflow.[n].advanced_find_options.[n].mapped_value
  • Type: String
Advanced Find Search Direction Specifies which direction to search along the hierarchy tree. Default: full_tree
  • Field Name: workflow.[n].advanced_find_search_direction
  • Type: String
  • Default: full_tree
  • Choices: ["Full Tree", "Up", "Down", "Local"]