Skip to main content
System StatusContact Support
VersionOne Community

Continuum Automate Task Development

This feature is available in Ultimate edition only.

editions-u.png

Overview

This page covers various Task development topics and assumes that you have gone through the Getting Started section and Task Overview pages.

A Task is an automation routine that performs work on 'assets' in the cloud or on the local network. Tasks can interact directly with APIs of supported virtualization platforms such as Amazon AWS, VMWare, Eucalyptus and OpenStack. Within the cloud or on the local network, Tasks can interact with virtually any software system: operating systems, databases, applications, and so on.

A Task performs this work using a fairly consistent workflow:

  • connecting to one or more 'assets' (real or virtual)

  • interacting with that asset, either gathering, pushing or manipulating data.

  • interacting with virtualization platform APIs if needed

Pages for creating and managing Tasks can be accessed from the top menu by selecting Tasks -> Manage Tasks.

Creating a New Task

To create a new Task, simply click the Create button at the top of the Manage Tasks page. A popup dialog appears requesting the following information:

  • Task Code (required) - a short code used to uniquely identify the Task. The code can be no longer than 32 characters. The code is a useful organizational mechanism.

  • Task Name (required) - a unique name for the Task. The name can be up to 256 characters long, and should be a clear and concise identifier.

  • Description (optional) - The description can be as long as necessary to fully describe the purpose of the Task.

Complete the required fields and select Create. After a few seconds the screen will refresh and your new Task will appear in editing mode.

Determine and implement a suitable best practice naming convention for your Tasks. Once you have a few hundred, things can get messy if you don't think ahead!

Adding Commands

Tasks perform their work by following a series of Commands, or 'Steps'. A complete library of Commands exists for interacting with a virtualization platform APIs, managing connections, interacting with systems, manipulating variables, controlling flow logic, logging information, and sending alerts. While there are many Command types, building a Task is an identical process regardless of the actual Command types used.

For a complete tutorial of all Command Types, see Command Reference.

The Task Editor uses drag and drop editing. Notice the main section of the page, on the right hand side. The Name and Version of the Task appears at the top of the page. Below that appears a list of Commands, or Steps. If this is a new Task, a small bordered area contains the text "No Commands have been defined in this Codeblock. Drag a Command here to add it." This is the drop zone for adding a Command.

If Commands already exist, you can drop a new Command above, below, or in between any existing Commands. When a Task runs, Commands are executed in the order that they appear, except when a looping, conditional, or Subtask type of Command affects the flow of logic.

To add a Command, select the Commands tab from the toolbox on the upper left side of the screen. The toolbox panel will change and present options.

  1. Commands are grouped into categories. A list of Categories will appear in the toolbox. There are many Categories, and more can be added via the Extensions module.

  2. Upon selection, a list of Commands in that Category will appear.

  3. Grab a Command with your mouse, and drag it over the drop zone on the right side of the page. A blank area will appear, indicating you can drop the command.

  4. Notice each Command has one or more properties to be completed. Many Commands contain required properties. An indicator will identify required fields.

Codeblocks

A Codeblock is a subset of Commands within a Task. Those familiar with procedural programming languages can think of a Codeblock as a subroutine or function.

Tasks have several Commands for controlling flow logic, such as If and Loop. In cases where this conditional or iterative logic would need to execute several Commands, a Codeblock is a perfect solution. If a sequence of commands should be executed a number of times, put those commands in a Codeblock used with a Loop. If the Commands should be executed only if a certain condition is true (or false), organize them into a Codeblock used with an If.

By default, every Task has a MAIN Codeblock. This Codeblock cannot be deleted. Additionally, if there is more than one Codeblock on a Task, the MAIN Codeblock will always be executed first.

To create a new Codeblock, hover over the Codeblock name at the top of the Editor and click the Add New button.

  • Enter a Codeblock name in the field and click the Add button.

A new Codeblock is added. Focus of the Command list is changed to the new Codeblock. Commands can now be added to the new Codeblock.

  • To remove an existing Codeblock, click the [x] icon to the right of the Codeblock name. A confirmation dialog will appear. Click Delete to remove the Codeblock. The page will refresh with focus on the MAIN Codeblock.

 Grab a Codeblock from the selector and drop it on the Step editor to create a Codeblock command!

Task Details

The Details tab in the toolbox shows the basic details of the Task, including Code, Name, and Description. These fields can be changed at any time on a Task that is still in development status.

The Task Name can be changed, but is required to be the same on all versions. Changing the name of a Task will change the name globally, on all versions. This is a normal behavior.

From the Details tab, you may also open a print friendly version of the Task. This is often useful for review purposes. The printable version is one of the few ways to see the entire body of code for a Task, including all Codeblocks and Commands.

From the Details tab, you may additionally view the Change Log for the Task. The Change Log shows a history of important changes that occurred through the development life cycle of this Task.

Task editing is dynamic, meaning all changes are saved as you work. There is no "Save" button. Additionally, there is no "Undo" functionality, so care should be taken when making complex changes.

Task Versions

The Versions tab allows the management of different versions of this Task, as well as change of status. Creating new Versions is a common method of creating checkpoints along the development cycle of a Task, as well as providing a rollback mechanism for putting new code into a production state.

To create a new Version, select the Versions tab from the toolbox.

  1. Make sure you are editing the version you wish to be copied to the new version. It will be evident in the Versions panel: The selected version is noted at the top, as well as emphasized in the list of versions.

  2. Click the New Version button. A dialog will appear.

  3. You may elect to create a new Minor or Major version. Select the appropriate option.

  4. Click the Create New Version button. The screen will refresh and you are now editing the new version.

Task Status

When first created, a Task is by default in "Development" status. While in Development status, changes to the Task are allowed.

When a Task is ready, and the approval process has been completed, the Task can be moved to the "Approved" status.

To Approve a Task, select the Versions tab from the toolbox.

  1. Make sure you are editing the version you wish to Approve. It will be evident in the Versions panel - the selected version is noted at the top, as well as emphasized in the list of versions.

  2. Click the Approve button. A confirmation dialog will appear. Be aware, this process cannot be undone. Once approved, a Task can never again be edited, or reset back into a development status. However, a new version of an approved Task can be created and subsequently modified.

  3. The page will refresh into a read-only view of the Approved Task. Changes to the code are no longer allowed.

A Task also has a property defining whether or not it is the "default" version. As a Task evolves, and many versions are created, only one can be the "default" version. This ensures that lists, search results, and relationships to other objects always reference the correct Task.

Default Versions

Several rules govern "default" versions of Tasks:

  • When a new Task is added, it will be created in the "Development" status, but will be flagged as the "default" version.

  • If a new Version of a Development Task is created, the new version will automatically become the "default".

  • When a Task is "Approved", the Approved version becomes the "default". Once Approved, a development version of a Task can never again be made the "default. This rule ensures that once a Task has been validated and approved, future Action Plans may not accidentally pick up an older or invalid version of a Task.

  • If there are more than one "Approved" versions of a Task, the "default" property can be moved between them. To change the "default" property:

    • On an Approved version, click the Versions tab.

    • Click the Set as Default button. This version will be set as default, and any Action Plans will now reference this version.

Task Parameters

Parameters are variable data that can optionally be made available to a Task, and can be changed after a Task has become approved. For example, a Task may be set to gather data and compare to a specific threshold. If that threshold is hard-coded in the Task, a code change would be required to change the threshold value. By using a Parameter, the threshold can be changed at any time.

Parameters can also be provided through the REST API. When an external process initiates a Task, Parameters can be specified.

Within the code of a Task, Parameters are referenced as any other variable, by surrounding them with the escape notation, [$parameter_name$].

To add a new Parameter to a Task, click the Parameters tab in the toolbox.

  1. Click the link labeled "+ Click to Add". A dialog will appear.

  2. Enter a Name and optional Description for the Parameter.

  3. Several options exist for a Parameter:

  • Required - Will highlight the Parameter and insist the user provide a value.

  • Prompt - If selected, the Parameter is available to the user, otherwise this is a 'hidden' parameter.

  • Encrypt - If selected, data entered will be encrypted in the database, and will not be editable later - only replaceable.

    1. A Parameter can be presented as a:

    2. Value - a single value field.

    3. List - an array of one or more values.

    4. Dropdown - a list of values, only one can be selected.

  • A Parameter should have at least one value. Click the link labeled "+ click to add another" to add a value to the Parameter. You may add as many values as needed. Note: If multiple values are added to a single Parameter, the parameter variable will be treated as an array.

  • When finished defining the Parameter, click the Add button.

To remove an existing Parameter, click the [x] icon beside the Parameter name in the list on the Parameters tab.

Finding Tasks

The primary page for dealing with Tasks is the Manage Tasks page. Access it from the top menu by selecting Tasks > Manage Tasks.

This page shows a sortable, pagable list of all the Tasks defined in the system. To quickly filter the list, or to find a specific Task, simply type some text in the box at the top of the page and click Search.

The Task list will update with Tasks matching your search criteria.

Search criteria on the Manage Tasks page will match any of the following properties of a Task: Code, Name, Description or Status.

Advanced Task Search

Tasks can also be searched for text that exists in the properties of the Commands themselves. From the top menu, select Tasks -> Search.

Enter the desired search text into the box and click Search. A list of results will identify the Task, Codeblock and Command where the match was found, as well as a snippet from the code.

Copying Tasks

Tasks can be copied from the Manage Tasks page on the top menu by selecting Tasks -> Manage Tasks.

  1. Using the check boxes on the left hand side of the Task list, select only one Task to be copied. (If you select more than one Task, only the first one selected will be copied.)

  2. Click the Copy button. A confirmation will appear showing the name of the Task being copied, and requesting information:

    • Copy From Version - select a source Version

    • New Task Code - the code for the new Task

    • New Task Name - the name for the new Task

  3. Click the Copy button. The Task will be copied and you will be returned to the Manage Tasks page.

The new Task will be created as Version 1.000, regardless of the version number of the original Task.

Deleting Tasks

Tasks can be deleted from the Manage Tasks page on the top menu by selecting Tasks -> Manage Tasks.

  1. Using the check boxes on the left hand side of the Task list, select one or more Tasks to be deleted.
  2. Click the Delete button. A confirmation will appear. Click the Delete button.
  3. The Task(s) will be deleted and you will be returned to the Manage Tasks page.

Deleting a Task will delete all versions of the Task, even though only the "default" version is selected in the Manage Tasks list. Any scheduled Action Plans will also be removed. Deleting a Task cannot be undone.

Task Activity Log

Tasks can be executed by multiple users as well as schedules. The Task Activity Log page provides visibility into the status of all Tasks, regardless of how or by whom they were started.

The Task Activity Log can be accessed from the top menu by selecting Information -> View Task Status

When a Task is run, it creates a record of that execution called a Task Instance. Every Task Instance has a numeric, ascending identifier. By default, the Activity Log is sorted with the most recent Instances at the top.

The Activity Log can be filtered and sorted, and shows helpful information such as how the Task was started, when and how long it ran, current status, and the Asset if relevant.

Click on a row in the Activity Log to view the detail Run Log for a specific Task Instance. Click the edit icon at the end of the line to jump into the editor for that Task.

Other Reading