Introduction
With ScriptRunner Enhanced Search, users can utilize JQL functions and save them as filters for use in Atlassian's JQL search.
This means that you will be able to use it with TISSUE Cloud!
Background
To give a comprehensive background, users can refer to Atlassian’s example of how SQL joins works.
Example
Table 1
Key | Summary | Linked Issue |
---|---|---|
TASK-1 | To perform UAT | Subtasks-1 |
TASK-2 | To scan for bugs | Subtasks-2 |
Table 2
Key
Summary
Linked Issue
TASK-2
To scan for bugs
Subtasks-2
TASK-3
To deploy to production
TASK-4
To standby for issues
Subtasks-2
How the tables will look in TISSUE gadget and ScriptRunner’s Enhanced Search
TISSUE Gadget is configured to work like a 'Left Join,' which means that all rows from the left table (Table 1) will be displayed, even if there is no matching value in the right table (Table 2).
Any missing data from the right table will show as empty values.
It is possible to achieve this feature directly by setting the “Hide Incomplete Rows“ preference in the gadget.
For details, please refer to Release Notes for 3.5.0.
Introduction
The Tissue Gadget use the issues from the primary set of issues to join up with linked issues from the secondary set of issues.
It will display blank values when there is no linked issues. This is similar to a Left Join in database terminology.
In some cases, the users may only want to display rows which have matching linked issues.
The Inner Join will skip those issues in the primary set of issues which does not have linked issues
Example
Primary Set of Issues (Epics)
Key | Epic Name | Linked Issue |
---|---|---|
TIS-100 | TIS bug fix | CS-18 |
TIS-99 | TIS feature improvement | CS-10 |
TIS-98 | TIS UI improvement | CS-15 |
TIS-20 | TIS performance fix |
Secondary Set of Issues (Feature request to be linked to epics)
Key | Summary | Status |
---|---|---|
CS-18 | TypeError when the issue data does not contain issuelinks field | Pending Dev |
CS-15 | To allow multiple link types for each level | Pending Dev |
CS-10 | To unescape the title which contains special characters | Pending Dev |
How the different join looks like
Left Join (Default)
Key | Summary | Linked Issue | TASKStatus |
---|---|---|---|
TIS- | 1To perform UAT | Subtasks-1 | |
TASK-2 | To scan for bugs | Subtasks-2 | |
TASK-4 | To standby for issues | Subtasks-2 | TASK-3 | To deploy to production |
ScriptRunner’s Enhanced Search, using an 'Inner Join,' will only display rows where there is a match between the two tables. If there are no matching records, those rows will be excluded from the result, meaning rows with empty values won't be shown
Inner Join (Possible through the use of ScriptRunner’s Enhanced Search)100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
TIS-20 | TIS performance fix |
Inner Join
Key | Summary | Linked Issue |
---|
TASK-1
To perform UAT
Subtasks-1
TASK-2
To scan for bugs
Subtasks-2
TASK-4
To standby for issues
Subtasks-2
Status | |||
---|---|---|---|
TIS-100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
The row containing TIS-20 is omitted because no issues are linked to it
How to achieve Inner Join
The trick is use the LinkedIssuesOf JQL function (from ScriptRunner Enhanced Search) on the primary set of issues.
It is possible to apply filtering to exclude issues with no matching linked issues.
There are 2 parts
1. Create a JQL filter for the primary set of issues
Head to ScriptRunner Enhanced Search from the Apps menu
Enter your JQL
Check that the issues displayed are what you expect
Save JQL as a filter
Specify the JQL to fetch the linked issues as the parameter for the linkedIssuesOf function
E.g. Fetching linked issues with the status Awaiting Dev and Link Issue Type = is related to
Code Block issueFunction in linkedIssuesOf(status in ("Awaiting Dev"), "is related to")
It should display only those issues that have links. You may also add more conditions to do filtering on the primary set of issues.
Click Save as Filter button to save the JQL as a filter to use it in TISSUE
Update the filter options as required
Tip |
---|
You can choose another meaningful name for your Filter. |
2. Use the Filter in Tissue Gadget
Use the new created filter in TISSUE by modifying using the JQL command below
Code Block |
---|
filter = <"YourCreatedFilterName"> |
You will be able to see the same results shown in Step 3 in your TISSUE Gadget
Before using Enhanced Search
After using Enhanced Search
Now, the Tissue gadget will only display issues with linked issues