Setting up Multi-Source Kanban Board for BMC Helix ITSM


Introduction

This topic contains details on how to configure a multi-source Kanban Board. The multi-source Kanban Board is designed to use more than one record definition. The configuration of a multi-source Kanban Board is very similar to a single-source Kanban Board.

For a better understanding of how to configure multi-source Kanban Boards, please refer to the topic for Single-source Kanban Board first.

The below example describes the configuration of a  Kanban Board for BMC Helix ITSM-Incident and Workorder. 


To configure a Kanban board to show multiple sources

  1. To enable the Kanban Board to display several entities at the same time, the Data Source must be set to "Multi-Source" in the "General" section of the property pane. You can ignore the "MS-Config Identifier" field for now. The rest of the fields can be filled according to your needs.

    image2021-7-8_11-51-23.png


  2. Go to the group configuration section in the configuration menu. Fill in all the fields according to your requirements.
    image2021-7-19_21-57-53.png

  3. Go to the Records tab from the Extension Toolbox library and select “Kanban Multisource Config” Record Definition and click on Edit Data.

    image2021-7-8_11-53-13.png


  4. Create a new record instance.
  • Created By: This field is automatically configured and should be left untouched.
  • Identifier:  In this field, a unique string is supposed to be entered that relates to your use case. Whatever value you will specify here, needs to enter into the "MS-Config Identifier" field in the "General" section of the Kanban Board's property pane.
  • JSONConfig: In this field JSON code is supposed to be written which is explained below.

image2021-7-8_11-59-28.png

5. Let`s understand the code blocks

NOTE: Code is separated into multiple blocks for user understanding, when configuring in the JSONConfig field, all the code blocks need to be combined.

Code

Short Description with respect to the line numbers

{
 "laneDefinitions": [
   {
     "name": "Backlog",
     "id": 0,
     "contains": {
       "com.fusiongbs.visual:ITSM -Incident": [
         1,
         0,
         3
        ],
       "com.fusiongbs.visual:ITSM- Workorder": [
         0,
         1,
         2
        ]
     }
   },
   {
     "name": "In Progress",
     "id": 1,
     "contains": {
       "com.fusiongbs.visual:ITSM - Incident": [
         2
        ],
       "com.fusiongbs.visual:ITSM- Workorder": [
         4,
         3
        ]
     }
   },
   {
     "name": "Done",
     "id": 2,
     "contains": {
       "com.fusiongbs.visual:ITSM -Incident": [
         4
        ],
       "com.fusiongbs.visual:ITSM- Workorder": [
         5
        ]
     }
   },
   {
     "name":"Cancelled/Rejected",
     "id": 3,
     "contains": {
       "com.fusiongbs.visual:ITSM -Incident": [
         6
        ],
       "com.fusiongbs.visual:ITSM- Workorder": [
         6,
         7
        ]
     }
   }
  ],

Lane Definition Section - Line (1 - 57)

  1. The lanes are specified here. The name is freely definable. The IDs should be incrementing numbers.

  2. In addition, you define here which Incident or Workorder with the respective status should be displayed in the lane.

Line Numbers

Description

4

Name of the lane is specified here.

5

Integer value that acts as an ID of this lane

6

"Application/Library ID:Record Definition Name":[ Status values ]

This is the format that is used to specify which status values in which record definition in which Application / Library is used

19

The configuration of a second lane starts here following the same pattern. You can add as many lanes as required.

57

Config for all the lanes end here.

 "entryDefinitions": [
   {
 "recordDefinitionName":"com.fusiongbs.visual:ITSM - Incident",
     "recordName":"Incident",
     "itemDescription": 536870921,
     "itemDisplayedId": 536870931,
     "personId": 536870932,
     "personIdType": "loginId",
     "groupId": 536870926,
     "groupIdType":"dataSourceIdMapping",
     "groupMapping": {
       "recordDefinitionName":"com.fusiongbs.visual:ITSM - Support Groups",
       "groupId": 1,
       "dataSourceId": 379
     },
     "itemModifiedDate": 536870930,
     "laneField": 536870914,
     "initialEntryFilter": [],  
"link":"https://CUSTOMER_SPECIFIC_BASE_URL.com/smartit/app/#/incident/",


 "cardShadowField": 536870916,
     "cardShadowColors": [
       {
         "id": "0",
         "color":"#ff0404"
       },
       {
         "id": "1",
         "color":"#f98700"       
},
       {
         "id": "2",
         "color":"#fdf01d"
       },
       {
         "id": "3",
         "color":"#89c341"
       }
      ],
     "itemDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Incident - Change Lane",
     "userDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Incident - Assign Person",
     "groupDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Incident - Assign Group",
     "laneChangeDialogOn": [
       0,
       1,
       2,
       3
      ],
"laneChangeBlade": {
       "viewDefinitionName": "com.fusiongbs.visual:Kanban - ITSM - Incident - Lane Change Dialog - Multi Source",
       "title": "Incident - Lane Change Dialog",
       "size": "rx-md",
       "presentationType": "dockedRightModal"
     },
     "customBlade": {
       "viewDefinitionName":"com.fusiongbs.visual:Kanban - ITSM - Incident - Custom Blade",
       "title": "Incident - Quick Edit",
       "size": "rx-md",
       "presentationType":"dockedRightModal"
     }
   },

Entry Definition Section

  1. These lines are known from the "Entry" section of the Single Source.

  2. Here the BMC Helix Innovation Studio IDs of the fields of record are mapped.


Line Number

Description

3

Application/Library ID:Record Definition Name

This is the format that is used to specify which status values in which record definition in which Application / Library is used

4

Here the name of the record is mapped

5

ID of the field where 'Description' of an Item is stored

6

ID of the field where 'Display ID' of an Item is stored

7

ID of the field where Id of the 'Assigned Person' of an item is stored

8

There are 2 possible values to this field:

  • loginId : f the login Id of assigned person is stored then choose this value
  • Id : If the Id of assigned person is stored then choose this value

9

ID of the field where Id of the 'Assigned Group' of an item is stored

10

This field can be left empty("") or 'dataSourceIdMapping' can be filled.

dataSourceIdMapping value is configured when an external record is used

11 - 14

If 'groupIdType' is 'dataSourceIdMapping', then only group mapping is done, else it can be left empty

16

ID of the field where Id of the 'Modified Date' of an item is stored

17

ID of the selection field which you want to use in kanban board.

For Ex: Status can be used here, and all items are sorted into different lanes according to their statuses

18

If you want to place some filters on the Items, then you can configure this field.

Example can be found on configuration of single source kanban board

19

It is used to point the user on the edit page of an item. Suitable link can be configured here.

ID of the item is automatically appended when clicked on Item - pop-up button.

21

Here you need fill the id of the selection field that you want to use as cardShadowField.

For Ex: Priority, Items will have a shadow of different colors according to the priority.

22 - 39

Card Shadow Colors are configured. Any colors can be chosen according to requirements.

41

Here you need to specify the process which will define the behavior of item when it is shifted from one lane to another.

This process is triggered when user changes the lane of an item.

42

Here you need to specify the process which will define the behavior of item when a user is dropped on an item.

This process is triggered when user drops users drags a Person from chip bar and drops it on an item.

43

Here you need to specify the process which will define the behavior of item when a group is dropped on an item.

This process is triggered when user drops users drags a Group from chip bar and drops it on an item.

44 - 48

Here you will specify on which status values, lane change dialog will open.

50 - 54

Lane change dialog view and presentation of the view is decided

51

Here you specify the name of the view which you want to open as Lane Change dialog

53

Here the size of the blade is specified, possible values are 'rx-sm', 'rx-md', 'rx-lg', 'rx-xl' .

54

Here the presentation type is specified, possible values are "dockedRightModal", "dockedLeftModal", "centeredModal"


  • Same steps from entry configuration is repeated for Workorder
  • If there are more sources then all of the sources can be configured in a similar way.

    {
     "recordDefinitionName": "com.fusiongbs.visual:ITSM - Workorder",
     "recordName":"Workorder",
     "itemDescription": 536870925,
     "itemDisplayedId": 1,
     "personId": 536870919,
     "personIdType": "loginId",
     "groupId": 536870932,
     "groupIdType": "dataSourceIdMapping",
     "groupMapping": {
       "recordDefinitionName":"com.fusiongbs.visual:ITSM - Support Groups",
       "groupId": 1,
       "dataSourceId": 379
     },
     "itemModifiedDate": 536870913,
     "laneField": 536870914,
     "initialEntryFilter": [
       {
         "fieldId": 536870920,
         "resourceType":"com.bmc.arsys.rx.standardlib.record.SelectionFieldDefinition",
         "values": [
           {
             "id": "2"
           },
           {
             "id": "3"
           }
          ]
       }
      ],
     "link":"https://vipcon-dsom-itsm.trybmc.com/smartit/app/#/workorder/",
     "cardShadowField": 536870920,
     "cardShadowColors": [
       {
         "id": "0",
         "color":"#ff0404"
       },
       {
         "id": "1",
         "color":"#f98700"
       },
       {
         "id": "2",
         "color":"#fdf01d"
       },
       {
         "id": "3",
         "color":"#89c341"
       }
      ],
     "itemDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Workorder - Change Lane",
     "userDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Workorder - Assign Person",
     "groupDropProcess":"com.fusiongbs.visual:Kanban - ITSM - Workorder - Assign Group",
     "laneChangeDialogOn":[
       0,
       1,
       2,
       3
      ],
     "laneChangeBlade": {
       "viewDefinitionName":"com.fusiongbs.visual:Kanban - ITSM - Workorder - Lane Change Dialog",
       "title": "Workorder - Lane Change Dialog",
       "size": "rx-md",
       "presentationType": "dockedRightModal"
     },
     "customBlade": {
       "viewDefinitionName":"com.fusiongbs.visual:Kanban - ITSM - Workorder - Custom Blade",
       "title": "Workorder -Quick Edit",
       "size": "rx-md",
       "presentationType": "dockedRightModal"
     }
   }
  ]
}
 

Once you have pasted all the code into JSONConfig field, multi-source Kanban Board is ready to be used. 



 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*