This page describes the required steps when migrating from a Jira Cloud instance to a Jira Server instance when you are using some of the default/JSU Workflow Condition/Validator/Post-Functions in your Workflow.
Migration from JIRA Cloud to JIRA Server is directly not possible, you have to be very careful as there are many validators and conditions which are built-in in JIRA cloud native but not in JIRA Server. For that you will need JSU.
JSU Cloud's additional post-functions to JIRA makes it more powerful with its Related Issues, Perform as a different user and many other functionalities in the Post-functions. Using JSU's additional post-functions, you can automate your workflows without any coding.
Background
Atlassian integrated most of the JSU Workflow Condition/Validator/Post-Functions (based on JSU Server 1.5) into their native Jira Cloud Environment which were still a very basic modules. Since than JSU Server has added many other functionalities to make it more powerful. When JSU on Cloud was released, it also had additional advanced form of the Post-functions as of JSU Server. If you perform a migration from Jira Cloud to Jira Server, those default/JSU Workflow Condition/Validator/Post-Functions do not exist in the default Jira Server Version but can be simply replaced with the JSU App.
Workflow Condition/Post-Functions(JSU)
JSU Cloud post-functions are more powerful with its Related Issues, Perform as a different user and many other functionalities.
Workflow Name | JSU Cloud Module-Key | JSU Server Module-Key |
---|---|---|
Conditions | ||
com.atlassian.plugins.atlassian-connect-plugin:com.googlecode. jira-suite-utilities__userisinanyusers-condition | com.googlecode.jsu.workflow.condition.userisinanyusers-condition | |
Post-Functions | ||
Clear Field Value | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__clearFieldValue-function | com.googlecode.jira-suite-utilitiesclearFieldValue-function |
Copy Value From Other Field | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copyValueFromOtherField-function | com.googlecode.jira-suite-utilitiescopyValueFromOtherField-function |
Copy or Move Attachments | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copymoveattachments-function | com.googlecode.jira-suite-utilitiescopymoveattachments-function |
Create a Linked Issue | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__createlinkedissue-function | com.googlecode.jira-suite-utilitiescreatelinkedissue-function |
Follow Up Transition | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__followuptransition-function | com.googlecode.jira-suite-utilitiesfollowuptransition-function |
Linked Transition | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__linkedtransition-function | com.googlecode.jira-suite-utilitieslinkedtransition-function |
Update any Issue Field | com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__updateanyissuefield-function | com.googlecode.jira-suite-utilitiesupdateIssueCustomField-function |
Mapping between JSU Cloud TO JSU Server
The following description describes all the attributes which need to be mapped between the JSU Cloud and JSU Server Workflow functionality.
Post-Function Mapping: Clear Field Value (JSU)
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.plugin.connect.jira.workflow.RemoteWorkflowPostFunctionProvider</arg> <arg name="full.module.key">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__clearFieldValue-function</arg> <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions":[], "preconditionAwareFunctionMode-textValue":"TRUE", "field":"assignee", "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "scopeType":"SAME", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"ISSUE_IN_TRANSITION", "runAsUser-user":"qm:c14a3779-f1ba-496f-a5ef-dbb4ab1928f4:e5e9400a-0c77-440a-aa18-fbb585fbd6e8"}</arg> <arg name="remoteWorkflowPostFunctionUUID">9dfcbdb2-7738-429c-9af4-e0a4b9490f9a</arg> </function> | Example <function type="class"> <arg name="scopeSource-linkEnd"></arg> <arg name="maxAllowed-integerValue"></arg> <arg name="runAsUser-user">admin</arg> <arg name="field">assignee</arg> <arg name="scopeType">SAME</arg> <arg name="destination-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiesclearFieldValue-function</arg> <arg name="scopeDestination-linkEnd"></arg> <arg name="preconditionAwareFunctionMode-textValue">ALWAYS</arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="source-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="scopeDestination-jql"></arg> <arg name="class.name">com.googlecode.jsu.workflow.function.ClearFieldValuePostFunction</arg> <arg name="scopeSource-jql"></arg> </function> |
Post-Function Mapping: Copy Value From Other Field
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.plugin.connect.jira.workflow.RemoteWorkflowPostFunctionProvider</arg> <arg name="full.module.key">com.atlassian.plugins.atlassian-connect- plugincom.googlecode.jira-suite-utilities__copyValueFromOtherField-function</arg> <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions": [], "preconditionAwareFunctionMode-textValue":"TRUE", "field.copyFieldSource1":"assignee", "field.copyFieldDestination1":"customfield_10003", "field.copyFieldMode1":"OVERWRITE", "field.copyFieldSeparator1":"", "field.createTargetValue1":false, "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "scopeType":"SAME", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"ISSUE_IN_TRANSITION", "runAsUser-user":""} </arg> <arg name="remoteWorkflowPostFunctionUUID">0e286a2f-b587-4432-8806-be35175e92a1</arg> </function> | Example <function type="class"> <arg name="field.copyFieldSource2"></arg> <arg name="field.copyFieldSource1">assignee</arg> <arg name="scopeSource-linkEnd"></arg> <arg name="maxAllowed-integerValue"></arg> <arg name="field.createTargetValue1"></arg> <arg name="runAsUser-user"></arg> <arg name="field.copyFieldMode1">OVERWRITE</arg> <arg name="field.copyFieldDestination1">customfield_11100</arg> <arg name="field.copyFieldSeparator1"></arg> <arg name="scopeType">SAME</arg> <arg name="destination-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiescopyValueFromOtherField-function</arg> <arg name="scopeDestination-linkEnd"></arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="preconditionAwareFunctionMode-textValue">ALWAYS</arg> <arg name="source-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="scopeDestination-jql"></arg> <arg name="class.name">com.googlecode.jsu.workflow.function.CopyValueFromOtherFieldPostFunction</arg> <arg name="scopeSource-jql"></arg> </function> |
Post-Function Mapping: Create a Linked Issue
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.plugin.connect.jira.workflow.RemoteWorkflowPostFunctionProvider</arg> <arg name="full.module.key">com.atlassian.plugins.atlassian-connect- plugincom.googlecode.jira-suite-utilities__createlinkedissue-function</arg> <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions":[], "preconditionAwareFunctionMode-textValue":"TRUE", "currentProjectType":"SAME", "currentProjectId":"-2", "currentIssueTypeId":"10006", "runAsUser-user":"", "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "subFunctions":[], "scopeType":"NONE", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"ISSUE_IN_TRANSITION", "field.attachmentEnablingCustomFieldId":"ALWAYS", "field.existingAttachmentEnablingCustomFieldId":"ALWAYS", "transitionAttachmentsOperation":"copy"} </arg> <arg name="remoteWorkflowPostFunctionUUID">a27f8e4f-f1a0-4e01-9199-057d34df07ee</arg> </function> | Example <function type="class"> <arg name="field.existingAttachmentEnablingCustomFieldId"></arg> <arg name="scopeSource-linkEnd"></arg> <arg name="targetIssueTypeDefinedByCfSelection"></arg> <arg name="issueTypeId">1</arg> <arg name="scopeType">NONE</arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="source-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="field.attachmentEnablingCustomFieldId"></arg> <arg name="targetIssueType">SELECTED_ISSUE_TYPE</arg> <arg name="scopeSource-jql"></arg> <arg name="createIssueAsUser-user"></arg> <arg name="field.copyTransitionComment">false</arg> <arg name="targetProjectType">SAME</arg> <arg name="maxAllowed-integerValue"></arg> <arg name="transitionAttachmentsOperation">copy</arg> <arg name="field.issueAssignTo">ASSIGN_TO_ASSIGNEE</arg> <arg name="targetProjectSelectedCustomField"></arg> <arg name="destination-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiescreatelinkedissue-function</arg> <arg name="scopeDestination-linkEnd"></arg> <arg name="field.enablingCustomFieldId"></arg> <arg name="preconditionAwareFunctionMode-textValue">ALWAYS</arg> <arg name="scopeDestination-jql"></arg> <arg name="subFunctions">[]</arg> <arg name="class.name">ch.beecom.jira.jsu.workflow.function.createlinkedissue.CreateLinkedIssueFunction</arg> <arg name="projectId">10500</arg> </function> |
Post-Function Mapping: Linked Transition
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.plugin.connect.jira.workflow.RemoteWorkflowPostFunctionProvider</arg> <arg name="full.module.key">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__linkedtransition-function</arg> <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions":[], "preconditionAwareFunctionMode-textValue":"TRUE", "runAsUser-user":"", "status":"", "statusName":"", "workflowName-textValue":"classic default workflow", "integerValue":"2", "textValue":"-1", "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "scopeType":"ISSUE_LINKING", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"LINK_END", "scopeSource-linkEnd":"", "scopeDestination-linkEnd":""} </arg> <arg name="remoteWorkflowPostFunctionUUID">45bd3003-b5e2-42b8-ada2-032d3b2b8f83</arg> </function> | Example <function type="class"> <arg name="field.copyFieldSource1"></arg> <arg name="textValue">-1</arg> <arg name="scopeSource-linkEnd"></arg> <arg name="maxAllowed-integerValue"></arg> <arg name="workflowName-textValue">AP: Task Management Workflow</arg> <arg name="performTransitionAsUser-user"></arg> <arg name="scopeType">ISSUE_LINKING</arg> <arg name="destination-scopeTarget">LINK_END</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitieslinkedtransition-function</arg> <arg name="scopeDestination-linkEnd">ANY:ANY</arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="preconditionAwareFunctionMode-textValue">ALWAYS</arg> <arg name="source-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="integerValue">21</arg> <arg name="scopeDestination-jql"></arg> <arg name="class.name">ch.beecom.jira.jsu.workflow.function.linkedtransition.LinkedTransitionFunction</arg> <arg name="scopeSource-jql"></arg> <arg name="status"></arg> </function> |
Post-Function Mapping: Update any Issue Field
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.plugin.connect.jira.workflow.RemoteWorkflowPostFunctionProvider</arg> <arg name="full.module.key">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__updateanyissuefield-function</arg> <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions":[], "preconditionAwareFunctionMode-textValue":"TRUE", "runAsUser-user":"", "field.name":"summary", "field.value":"test summary", "append.value":false, "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "scopeType":"SAME", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"ISSUE_IN_TRANSITION"} </arg> <arg name="remoteWorkflowPostFunctionUUID">e6518c27-cd5e-40b4-a190-14b1c32c1e8e</arg> </function> | Example <function type="class"> <arg name="scopeSource-linkEnd"></arg> <arg name="append.value"></arg> <arg name="maxAllowed-integerValue"></arg> <arg name="runAsUser-user"></arg> <arg name="field.value">test summary</arg> <arg name="field.name">summary</arg> <arg name="scopeType">SAME</arg> <arg name="destination-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiesupdateIssueCustomField-function</arg> <arg name="scopeDestination-linkEnd"></arg> <arg name="preconditionAwareFunctionMode-textValue">ALWAYS</arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="source-scopeTarget">ISSUE_IN_TRANSITION</arg> <arg name="scopeDestination-jql"></arg> <arg name="class.name">com.googlecode.jsu.workflow.function.UpdateIssueCustomFieldPostFunction</arg> <arg name="scopeSource-jql"></arg> </function> |
Workflow Pre-Functions(JSU)
Preconditions in JSU Cloud are built-in as a part of the post-function. One can add as many pre-conditions before executing a post-function. But in JSU Server pre-conditions are implemented as a separate post-function which acts as pre-condition. All the pre-conditions from JSU Cloud are available in JSU Server.
Preconditions |
Date Compare (JSU) |
Date Expression Compare (JSU) |
Date Window (JSU) |
Fields Required (JSU) |
JQL (JSU) |
Linked Status (JSU) |
Regular Expression Check (JSU) |
User Is In Any Groups (JSU) |
User Is In Any Roles (JSU) |
User Is In Custom Field (JSU) |
Value Field (JSU) |
Arg Name: JSU Cloud | Arg Name: JSU Server |
---|---|
Example <arg name="remoteWorkflowPostFunctionConfiguration"> {"preconditions": [{"type":"valueField-precondition-function", "enabled":true, "config":{ "preconditionMode-textValue":"AND", "preconditionNegateResult-booleanValue":false, "conditionList":1, "fieldValue":"2.0", "fieldsList":"fixVersions"}}], "preconditionAwareFunctionMode-textValue":"TRUE", "runAsUser-user":"", "field.name":"summary", "field.value":"test summary", "append.value":false, "jsuCloudWorkflowParamsVersion-textValue":"2.8.0", "scopeType":"SAME", "source-scopeTarget":"ISSUE_IN_TRANSITION", "destination-scopeTarget":"ISSUE_IN_TRANSITION"} </arg> | Example <function type="class"> <arg name="conditionList">1</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiesvalueField-precondition-function</arg> <arg name="jsuWorkflowParamsVersion-textValue">2.23.3-SNAPSHOT</arg> <arg name="comparisonType">1</arg> <arg name="precondition">true</arg> <arg name="class.name">ch.beecom.jira.jsu.workflow.function.valuefield.ValueFieldPreconditionFunction</arg> <arg name="preconditionNegateResult-booleanValue"></arg> <arg name="fieldValue">2.0</arg> <arg name="preconditionMode-textValue">DISCARD</arg> <arg name="fieldsList">fixVersions</arg> </function> |
Workflow Condition/Validator/Post-Functions(Jira)
The following List of Workflow Condition/Validator/Post-Functions which are built into the Jira Cloud Environment can be replaces with JSU extensions. See below all attribute mappings between Jira Cloud and Jira Server.
Workflow Name | Jira Cloud Class-Name | JSU Class-Name (Jira Server) |
---|---|---|
Conditions | ||
User Is In Any Group | com.atlassian.jira.workflow.condition.UserInAnyGroupCondition | com.googlecode.jsu.workflow.condition.UserIsInAnyGroupsCondition |
com.atlassian.jira.workflow.condition.InAnyProjectRoleCondition | com.googlecode.jsu.workflow.condition.UserIsInAnyRolesCondition | |
User Is In Custom Field | com.atlassian.jira.workflow.condition.UserIsInCustomFieldCondition | com.googlecode.jsu.workflow.condition.UserIsInCustomFieldCondition |
Value Field | com.atlassian.jira.workflow.condition.ValueFieldCondition | com.googlecode.jsu.workflow.condition.ValueFieldCondition |
Validators | ||
Date Compare Validator | com.atlassian.jira.workflow.validator.DateFieldValidator | com.googlecode.jsu.workflow.validator.DateCompareValidator & com.googlecode.jsu.workflow.validator.DateExpressionCompareValidator |
Date Window Validator | com.atlassian.jira.workflow.validator.WindowsDateValidator | com.googlecode.jsu.workflow.validator.WindowsDateValidator |
Field Required Validator | com.atlassian.jira.workflow.validator.FieldRequiredValidator | com.googlecode.jsu.workflow.validator.FieldsRequiredValidator |
Regular Expression Check | com.atlassian.jira.workflow.validator.RegexpFieldValidator | com.googlecode.jsu.workflow.validator.RegexpFieldValidator |
Post-Functions | ||
Clear Field Value | com.atlassian.jira.workflow.function.issue.ClearFieldValuePostFunction | com.googlecode.jsu.workflow.function.ClearFieldValuePostFunction |
Copy Value From Other Field | com.atlassian.jira.workflow.function.issue.CopyValueFromOtherFieldPostFunction | com.googlecode.jsu.workflow.function.CopyValueFromOtherFieldPostFunction |
Update Issue Custom Field | com.atlassian.jira.workflow.function.issue.UpdateIssueCustomFieldPostFunction | com.googlecode.jsu.workflow.function.UpdateIssueCustomFieldPostFunction |
Mapping between Jira Cloud Modules TO JSU Server
The following description describes all the attributes which need to be mapped between the Jira Cloud and Jira Server Workflow functionality.
Condition Mapping: User Is In Any Group
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
group | hidGroupsList (each group is separated by @@ and requires a @@ at the end) |
Example <condition type="class"> <arg name="class.name">com.atlassian.jira.workflow.condition.UserInAnyGroupCondition</arg> <arg name="group">administrators@@</arg> </condition> | Example <condition type="class"> <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInAnyGroupsCondition</arg> <arg name="hidGroupsList">jira-developers@@</arg> </condition> |
Condition Mapping:
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
projectRoleIds | hidRolesList (each group is separated by @@ and requires a @@ at the end and groups required to be mapped between id to group name) |
Example <condition type="class"> <arg name="class.name">com.atlassian.jira.workflow.condition.InAnyProjectRoleCondition</arg> <arg name="projectRoleIds">10101@@</arg> </condition> | Example <condition type="class"> <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInAnyRolesCondition</arg> <arg name="hidRolesList">Developers@@</arg> </condition> |
Condition Mapping: User Is In Custom Field
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <condition type="class"> <arg name="class.name">com.atlassian.jira.workflow.condition.UserIsInCustomFieldCondition</arg> <arg name="fieldsList">customfield_10018</arg> <arg name="allowUserInField">true</arg> </condition> | Example <condition type="class"> <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInCustomFieldCondition</arg> <arg name="fieldsList">customfield_10609</arg> <arg name="allowUserInField">true</arg> </condition> |
Condition Mapping: Value Field
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <condition type="class"> <arg name="class.name">com.atlassian.jira.workflow.condition.ValueFieldCondition</arg> <arg name="comparisonType">1</arg> <arg name="conditionList">3</arg> <arg name="fieldsList">assignee</arg> <arg name="fieldValue">John</arg> </condition> | Example <condition type="class"> <arg name="class.name">com.googlecode.jsu.workflow.condition.ValueFieldCondition</arg> <arg name="comparisonType">1</arg> <arg name="conditionList">3</arg> <arg name="fieldsList">assignee</arg> <arg name="fieldValue">John</arg> </condition> |
Validator Mapping: Date Compare Validator
The Jira Cloud 'Date Compare Validator' combines 2 JSU Date Compare Validators which are:
- Date Compare Validator (compareTypeField = true)
- Date Expression Compare Validator (compareTypeField = false)
which of the 2 Validators to use is defined by the Jira Cloud argument name 'compareTypeField'
Date Compare Validator
All argument names are the same between Jira Cloud and Jira Server. Argument
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <validator name="" type="class"> <arg name="class.name">com.atlassian.jira.workflow.validator.DateFieldValidator</arg> <arg name="compareTypeField">true</arg> <arg name="conditionSelected">3</arg> <arg name="includeTimeSelected">true</arg> <arg name="date1Selected">customfield_10017</arg> <arg name="date2Selected">customfield_10022</arg> </validator> | Example <validator name="" type="class"> <arg name="class.name">com.googlecode.jsu.workflow.validator.DateCompareValidator</arg> <arg name="conditionSelected">1</arg> <arg name="includeTimeSelected">2</arg> <arg name="date1Selected">created</arg> <arg name="date2Selected">created</arg> </validator> |
Date Expression Compare Validator
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
compareTypeField (must be false to map to the 'Date Expression Compare Validator') | not required for Jira Server. |
conditionSelected | conditionSelected |
includeTimeSelected | includeTimeSelected |
date1Selected | date1Selected |
expression | expressionSelected |
Example <validator name="" type="class"> <arg name="class.name">com.atlassian.jira.workflow.validator.DateFieldValidator</arg> <arg name="compareTypeField">false</arg> <arg name="conditionSelected">1</arg> <arg name="includeTimeSelected">false</arg> <arg name="date1Selected">customfield_10017</arg> <arg name="expression">\d</arg> </validator> | Example <validator name="" type="class"> <arg name="class.name">com.googlecode.jsu.workflow.validator.DateExpressionCompareValidator</arg> <arg name="conditionSelected">1</arg> <arg name="includeTimeSelected">2</arg> <arg name="dateFieldSelected">created</arg> <arg name="expressionSelected">\d</arg> </validator> |
Validator Mapping: Date Window Validator
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <validator name="" type="class"> <arg name="class.name">com.atlassian.jira.workflow.validator.WindowsDateValidator</arg> <arg name="date1Selected">customfield_10017</arg> <arg name="date2Selected">customfield_10017</arg> <arg name="windowsDays">5</arg> </validator> | Example <validator name="" type="class"> <arg name="class.name">com.googlecode.jsu.workflow.validator.WindowsDateValidator</arg> <arg name="date1Selected">customfield_10017</arg> <arg name="date2Selected">customfield_10017</arg> <arg name="windowsDays">5</arg> </validator> |
Validator Mapping: Field Required Validator
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
hidFieldsList | hidFieldsList |
contextHandling | contextHandling |
errorMessage | customErrorMessage-textValue |
Example <validator name="" type="class"> <arg name="class.name">com.atlassian.jira.workflow.validator.FieldRequiredValidator</arg> <arg name="hidFieldsList">assignee@@</arg> <arg name="contextHandling">ignore</arg> <arg name="errorMessage">Custom Error Message<arg> </validator> | Example <validator name="" type="class"> <arg name="class.name">com.googlecode.jsu.workflow.validator.FieldsRequiredValidator</arg> <arg name="hidFieldsList">assignee@@</arg> <arg name="contextHandling">ignore</arg> <arg name="customErrorMessage-textValue">Custom Error Message</arg> </validator> |
Validator Mapping: Regular Expression Check
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <validator name="" type="class"> <arg name="class.name">com.atlassian.jira.workflow.validator.RegexpFieldValidator</arg> <arg name="fieldSelected">description</arg> <arg name="expressionSelected">\d</arg> </validator> | Example <validator name="" type="class"> <arg name="class.name">com.googlecode.jsu.workflow.validator.RegexpFieldValidator</arg> <arg name="fieldSelected">versions</arg> <arg name="expressionSelected">\d</arg> </validator> |
Post-Function Mapping: Clear Field Value
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.jira.workflow.function.issue.ClearFieldValuePostFunction</arg> <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowclearFieldValue-function</arg> <arg name="field">assignee</arg> </function> | Example <function type="class"> <arg name="class.name">com.googlecode.jsu.workflow.function.ClearFieldValuePostFunction</arg> <arg name="full.module.key">com.googlecode.jira-suite-utilitiesclearFieldValue-function</arg> <arg name="field">comment</arg> </function> |
Post-Function Mapping: Copy Value From Other Field
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.jira.workflow.function.issue.CopyValueFromOtherFieldPostFunction</arg> <arg name="sourceField">assignee</arg> <arg name="destinationField">assignee</arg> <arg name="copyType">same</arg> </function> | Example <function type="class"> <arg name="sourceField">assignee</arg> <arg name="class.name">com.googlecode.jsu.workflow.function.CopyValueFromOtherFieldPostFunction</arg> <arg name="destinationField">customfield_10101</arg> </function> |
Post-Function Mapping: Update Issue Custom Field
All argument names are the same between Jira Cloud and Jira Server.
Arg Name: Jira Cloud | Arg Name: Jira Server |
---|---|
Example <function type="class"> <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueCustomFieldPostFunction</arg> <arg name="field.name">customfield_10000</arg> <arg name="field.value">%%CURRENT_USER%%</arg> <arg name="append.value">true</arg> </function> | Example <function type="class"> <arg name="class.name">com.googlecode.jsu.workflow.function.UpdateIssueCustomFieldPostFunction</arg> <arg name="field.name">versions</arg> <arg name="field.value">%%CURRENT_USER%%</arg> <arg name="append.value">true</arg> </function> |