A Transition Caller custom field type returns the user who first/last executed a specific workflow transition and is displayed as a String representing the display name of the user. It is a read-only field. |
To add a Transition Caller custom field type to your instance:
Issues - > Custom fields.
Add custom field
.Advanced
in the left panel.Transition Caller Field
and select it.Next
.Create.
Configure
and specify the transition(s) and the execution of the transition to look for (explained below).If you have upgraded from JMCF |
When creating a Transition Caller custom field type, you can configure the Search template as User Picker & Group searcher
to be able to search issues for a user in that custom field. If you select “None” for the searcher, then you won’t see any reference to this field in the Issue Navigator search fields. Note that changing a custom field searcher requires a re-index.
To specify the transition(s) to look for:
Configure
Edit Transition(s) to look for.
Specify transition names or IDs: You can either manually provide the name
or id
of the transition or use the Transition Callers custom field type#Transition picker, and optionally specifying the workflow name.
By specifying the workflow name you can use the same calculated field to capture the caller of different transitions with the same meaning across different workflows. For example: Imagine you want to capture the caller who triggers the transitions that lead to Resolved status. You have two workflows A and B, with transitions 21 and 51 respectively that lead to the "Resolved" status. You can add the two transitions of two different workflows to the configuration as shown below. |
This is the preferred mode, as it allows differentiating between multiple transitions between the same two Statuses, and it also supports "auto-transitions" (that do not change the issue Status). However, it will not work reliably for "old" transitions that took place before major workflow changes or switching the issue to a new workflow entirely. |
From
and To
statuses.While this option doesn't allow differentiating between multiple transitions that move the issue between the same from and to statuses, and it doesn't work for "auto-transitions" (that do not change the issue Status), it will work reliably even for issues that changed workflows since the transition took place. |
Add
.Save.
To remove the transition(s) to look for a Transition Caller custom field type:
Configure
Edit Transition(s) to look for.
Remove
for the transition you wish to remove.Save
.To pick a transition using the Transition picker:
Transition picker
in the Configure Transitions
screen.Use Transition Name
- recommended if you want the post-function to search for the transition to trigger by name, which is useful when targeting multiple workflows.Use Transition ID
- if you want to differentiate between transitions that bear the same name.To specify execution of the selected transition that the field should look for;
Configure.
Latest
or Earliest
from the Transition Execution
field to capture the last or first transition execution respectively.You can define a velocity template that will return the Html representation of the calculated custom field. Leave it empty to use the default template.
To select a format for a Transition Caller custom field type value:
Configure
Edit Velocity Template
.Save.
You can use the following Velocity variables in the template:
$value
: the raw field value, the ApplicationUser object.$formattedValue
: a String representing the display name of the userFor example:
#if ($value.isActive()) <font color="green"> $formattedValue </font> #else <font color="red"> $formattedValue </font> #end |
displays the display name of the user in green if the user is active and in red if the user is inactive.
The Never show on Transition and Edit screens
option controls whether the Transition caller custom field can appear on transition and edit screens. If you select this option, the field will not be visible on any Edit or Transition screen, even if it is added to the screen.
You can access this field using any of the following getters of the Issue interface
get("Your custom field name") or get("customfield_xxxxx")
that returns a
ApplicationUser
getAsString("Your custom field name")
or
getAsString("customfield_xxxxx")
that returns a String
representing a username.