Required apps
Level: INTERMEDIATE
Problem
Depending on one or more criteria one needs to decide on which way to go
Usages
- assigning an issue to a predefined user
- setting some (custom) fields
- any other behavior
Considering we have a custom field named Department with the following values:
- 'Production'
- 'Sales'
- 'HR'
... and we would like to assign an issue to the Department manager at a certain stage.
Solution
Create the decision table
1. Create a table with the department managers (for example named dept_managers):
Department | Manager |
---|---|
Production | john |
Sales | mark |
HR | marie |
Note
We use the user-names and not the manager's full name so we can assign them easily
Writing the code
2. Write the SIL code (postfunction) to assign the manager and add it to an appropriate step:
string sqlSelect; string[] sqlResult; string user; sqlSelect = "select manager from dept_managers where department = '" + Department + "'"; sqlResult = sql("myDB", sqlSelect); user = getElement(sqlResult, 0); if(isNotNull(user)) assignee= user;
What the code does is the following:
- it constructs a dynamic SQL named sqlSelect
- it runs the SQL and saves the result in the sqlResult variable which is defined as a string array
- grabs the user from the first location of the result (index 0)
- if found, assigns the issue to the user
So, in our example, if the Department custom field is set for example to 'HR', the assignee will be set to the user with the username 'marie'.