Introduction

Starting from version 2.10.32.3, ConnectALL allows you to upload a file (a JSON file) with status transition information and use the status transitions in that file. As a result, you will now be able to map out a preferred status transition flow. To achieve this, you’ll have to create a JSON file, followed by Workflow creation in the ConnectALL UI, and associate the created Workflow to a field in the field mapping section. 

Applications Supported for Mapping Status Transitions

The 'Mapping Status Transition' feature is available for the following applications:

(tick) Atlassian Jira (supported from version 2.10.32.3)

(tick) MicroFocus ALM Octane (supported from version 2.10.33.2)

(tick) Jama (supported from version 2.10.33.2)

JSON File Preparation

As the first step, the JSON file with the status transition information has to be prepared manually. To do that, you will need the statuses in a workflow and their respective IDs. In Jira, a typical project will have a workflow as illustrated in the image. Let's assume that each of those statuses in the image has the below-listed IDs:

  • ToDo (10000)
  • Approved (10704)
  • Closed (6)
  • Done (10805)
  • Fixed (10500)
  • InProgress (3)
  • Reopen (10403)
  • Review (10901)

With the above information, a JSON file can be prepared. 

Sample JSON File

We have provided a sample JSON file here

Things to Remember While Creating JSON File

  • The status IDs should be defined as JSON objects (as provided below).

“10805”: {

             }


  • Within the JSON object, a 'title' has to be provided. It is the readable name of the status ID. If both the ID and the name are the same, you need not provide a 'title' value.

“10805”: {

                               “title” : “Done”

                }


  • The 'destination' JSON array needs to be provided within each JSON object. It should have the status ID where the status can be moved/transformed.
    For example, based on the above workflow,
    • From 'Approved', a record can be moved to the 'InProgress' state
    • From 'InProgress', a record can be moved to the 'Fixed' state
    • From 'Done', a record can be moved to the 'Closed' state

            So, inside the JSON object, 'Done', you can provide the destination id for the 'Closed' state. As it is possible to move to multiple statuses from one state, the 'destination' state is defined as an array.

“10805”: {

                               “title” : “Done”
                               “destination” : [   

                                                                        {

                                                                        “id” : “6”

                                                                         }

                                                         ]

                  }

In case, there is more than one status to which a particular status can be moved/transformed, then, the 'destination' array can be defined like below:

“10805”:  {

                                    “title” : “Done”,

                                    “destination” : [

                                                                        {

                                                                        “id” : “6”

                                                                        },

                                                                        {

                                                                        “id” : “10901”

                                                                        }

                                                             ]

                      }

  • “isEntryStatus” — Set the boolean value as true if the specific status ID is the entry point for 'create record'. For example, when you create a record in Jira, if the status starts from 'ToDo', then, in the JSON file, against the 'ToDo' status, the JSON object has to define the “isEntryStatus” as 'true'.
  • When changing or transforming from one status to another, if some fields have to be updated, then define the same under the 'transitionalFields'. For example, if the 'resolution' field has to be updated when moving the status from 'Done' to 'Closed', then define the 'Done' status object like below:

“10805”: {                             

                                    “title” : “Done”,

                                    “destination” : [

                                                                        {

                                                                        “id” : “6”,

                                                                        “transitionFields” : [“resolution”]

                                                                        }

                                                            ]

                    }

  •  Note that, only the field ID has to be provided and not the field name.
  • To configure more than one transitional field, provide comma-separated values as shown below:

“10805”: {                             

                                    “title” : “Done”,

                                    “destination” : [

                                                                        {

                                                                        “id” : “6”,

                                                                        “transitionFields” : [“resolution”,”customfield_10400”]

                                                                        }

                                                            ]

                    }

  • In case, a specific status (say 'Done') can be moved to more than one status and for all the statuses, if transitional fields are required, then, define the JSON object as below:

“10805”: {                             

                                    “title” : “Done”,

                                    “destination” : [

                                                                        {

                                                                        “id” : “6”,

                                                                        “transitionFields” : [“resolution”,”customfield_10400”]

                                                                        },

                                                                        {

                                                             “id” : “10901”,

                                                             “transitionFields” : [“resolution”]                                                                         

                                                                        }

                                                                        ]

                      }

Important Information
  • ConnectALL will identify the paths to transform from one value to another only based on the destination values defined against each status ID.
  • It is always not mandatory to define the workflow JSON with all the status values in the application. If only you want ConnectALL to identify the paths and transform the values by itself during sync, then, in such a scenario, define the status ID(s) and the corresponding destination/transitionalFields/isEntryStatus. 
  • If more than one path is determined by ConnectALL based on the JSON mapping provided by you, then ConnectALL will, by default, identify the shortest path (or the shortest route) possible, and it will transform/move the status based on that shortest path.

Creating a WorkFlow

Only if you are a ConnectALL Admin or a Group Admin, you will be able to create, edit, and delete a 'Workflow'.

To upload a new Workflow,

  1. Click the cogwheel icon on the right side of the navigation bar and click Workflow. The Manage Workflow screen will be displayed. Note that if you have already uploaded any Workflows, they will be listed on this screen.
  2. Click Add Workflow. The Save Workflow screen will be displayed.
  3. In the Workflow screen,
    1. Provide a unique name for your Workflow.
    2. Click Upload and select the JSON file from your local drive.
    3. Select the Application Type.
    4. Select the Connections from the drop-down list. Note that, all the Connections that you have associated with the selected application type will be listed in the drop-down list.
  4. Click Save.

You have finished creating a Workflow. 


Editing a WorkFlow

To edit a Workflow,

  • Click on the icon against a Workflow in the Manage Workflow screen.

  • If a created Workflow is already configured in an app-link, then, you'll not be able to select a different application type when you edit the Workflow. Likewise, you cannot unselect the selected Connections in that Workflow.

Deleting a WorkFlow

To delete a Workflow, 

  • Click on the icon against a Workflow in the Manage Workflow screen. 

  • A Workflow can be deleted only when it is not associated with any app-links.

Associating Workflow to a Field

  1. Create an app link or modify an existing app-link.
  2. Go to the Field Mapping Properties section; click the cogwheel icon against the field for which you want to select a Workflow. The Field Configuration screen will be displayed.
  3. Select a workflow from the Workflow Mapping drop-down list. (Note that, all the workflows coupled with a particular connection associated with this application will be displayed.)
  4. Click Save.


Connection – WorkFlow Association
  • A connection can be associated with multiple workflows and vice-versa.

  • Say you have a Connection that is not a part of an app-link and it has an associated Workflow(s). And in turn, that Workflow is also associated only with that Connection. In that scenario, when you delete that Connection, the Workflow associated with it will also be deleted, as the Workflow is associated only with that Connection.

  • When a Workflow is associated with more than one connection, then the Workflow will not be deleted when any of the associated Connections are deleted. Instead, only the association between the Connection and the Workflow will be broken by ConnectALL.

Editing and Creating Optimal Workflow Route

Starting from version 2.10.34.1, ConnectALL allows you to edit a Workflow path and select the shortest route for Workflow transitions. To view/edit a Workflow path,

  1. Click the cogwheel icon on the right side of the navigation bar and click Workflow. The Manage Workflow screen will be displayed.



  2. Click the edit (highlighted) icon. The Workflow Path screen will be displayed. Note that the options in the ‘From’ and ‘To’ drop-down lists are the statuses configured in the JSON file of a Workflow.


    Click List All to see all the available route combinations.

               
    Note that the first route displayed in the list (above image) is the optimal path used during the synchronizations.

  3. To edit or change this path, select the desired From and To value and click Search. The shortest path which will be used during synchronizations, will be displayed first (left side image). If you want to change this path, select a workflow path of your choice (right side image), and click Save.

             


  4. A confirmation message will be displayed. Click Yes to save the changes. After saving, the selected path will be displayed as the default path, and it will be used during synchronizations.