Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page describes the required steps when migrating from a Jira Cloud instance to a Jira Server/Data Center instance when you are using some of the default/JSU Workflow Conditionworkflow conditions/Validator/Post-Functions validators/post functions in your Workflowworkflow.

Migration from Jira Cloud to Jira Server is directly not is not directly possible, ; you have to be very careful as there are many several validators and conditions which are built-in in Jira cloud-native that are native to Jira Cloud but not in Jira Server. For that, you will need JSU.

JSU Cloud's additional post functions in Jira make it more powerful with its Related Issuesrelated issues, Perform as a different userAs User feature, and many other functionalities in the post functions. 

Background

Years ago, Beecom donated some the founders of JSU donated several of JSU's modules to Atlassian’s Jira Cloud. Atlassian integrated most of these JSU Workflow Condition/Validator/Post-Functions workflow conditions/validators/post functions (based on JSU Server 1.4) into their native Jira Cloud Environment which were still very basic modulesenvironment.  Since then, JSU Server has added many other functionalities more functionality to make it more powerful. When JSU on for Jira Cloud was released, it also had additional added advanced forms of the post functions as from that were in JSU Server. If you migrate from Jira Cloud to Jira Server, those the default JSU Workflow Conditionworkflow conditions/Validatorvalidators/Post Functions post functions do not exist in the default Jira Server Version version but they can simply be simply replaced with the JSU app.

Info

If you are looking for documentation on Server to Cloud migration, see our latest Server to Cloud migration documentation.

On this page:

Table of Contents
minLevel2
maxLevel2

How to fix the workflows

You can do one of the following to fix your migrated workflows:

  • Reconfigure the affected workflow modules with the ones from JSU, then remove the broken ones.
    This is the safest way to do it but can be tedious.

  • Export XML workflows, modify, and import again.

  • Modify the workflows directly in the database - if you have the required knowledge. 
    It's efficient but with more risk.

Workflow

Conditions

conditions/

Post Functions

post functions(JSU)

Workflow Name

JSU Cloud Module-Key

JSU Server Module-Key

Conditions



User Is In Any Users (JSU)

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 (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__clearFieldValue-function

com.googlecode.jira-suite-utilitiesclearFieldValue-function

Copy Value From Other Field (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copyValueFromOtherField-function

com.googlecode.jira-suite-utilitiescopyValueFromOtherField-function

Copy or Move Attachments (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copymoveattachments-function

com.googlecode.jira-suite-utilitiescopymoveattachments-function

Create a Linked Issue (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__createlinkedissue-function

com.googlecode.jira-suite-utilitiescreatelinkedissue-function

Follow Up Transition (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__followuptransition-function

com.googlecode.jira-suite-utilitiesfollowuptransition-function

Linked Transition (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__linkedtransition-function

com.googlecode.jira-suite-utilitieslinkedtransition-function

Update any Issue Field (JSU)

com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__updateanyissuefield-function

com.googlecode.jira-suite-utilitiesupdateIssueCustomField-function

Mapping between JSU Cloud and JSU Server

The following table contains all the attributes which need to be mapped between the JSU Cloud and JSU Server Workflow workflow functionality.

Post

Function

function mapping: Clear Field Value (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
 <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

Code Block
 <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

function mapping: Copy Value From Other Field (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
 <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

Code Block
 <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

function mapping: Create a Linked Issue (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
 <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

Code Block
<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

function mapping: Linked Transition (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
<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

Code Block
 <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

function mapping: Update Any Issue Field (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
 <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

Code Block
 <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

Preconditions

preconditions(JSU)

Preconditions in JSU Cloud are built-in as a part of the post function. You can add as many preconditions as you want inside a post function. In JSU Server, preconditions are implemented as a separate post function that acts as preconditions. All the preconditions from JSU Cloud are available in JSU Server as well, but require a different configuration.

Preconditions in JSU Server/Cloud

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)

Precondition mapping: Value Field (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Code Block
<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

Code Block
  <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>

All other preconditions follow a similar pattern as above.

Info

As preconditions in JSU Cloud are built-in, you have to reconfigure all the preconditions manually in JSU Server.

Workflow

Condition

conditions/

Validator

validators/

Post Functions

post functions(Jira)

The following list of Workflow Conditionworkflow conditions/Validatorvalidators/Post Functions post functions built into the Jira Cloud Environment environment can be replaced with JSU extensions. See below, all the 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

User Is In Any Project Role

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

modules and JSU Server

The following description describes all the attributes which need to be mapped between the Jira Cloud and Jira Server Workflow 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

Code Block
<condition type="class">
  <arg name="class.name">com.atlassian.jira.workflow.condition.UserInAnyGroupCondition</arg>
  <arg name="group">administrators@@</arg>
</condition>

Example

Code Block
<condition type="class">
  <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInAnyGroupsCondition</arg>
  <arg name="hidGroupsList">jira-developers@@</arg>
</condition>

Condition mapping: User Is In Any Project Role

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

Code Block
<condition type="class">
  <arg name="class.name">com.atlassian.jira.workflow.condition.InAnyProjectRoleCondition</arg>
  <arg name="projectRoleIds">10101@@</arg>
</condition>


Example

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

validator

The Jira Cloud 'Date Compare Validator' combines two JSU Date Compare Validators:

  • Date Compare Validator (compareTypeField = true)

  • Date Expression Compare Validator (compareTypeField = false)

Which of the two Validators validators to use is defined by the Jira Cloud argument name 'compareTypeField'

Date Compare Validatorvalidator

All argument names are the same between Jira Cloud and Jira Server.

Arg Name: Jira Cloud

Arg Name: Jira Server

Example

Code Block
<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

Code Block
<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 Validatorvalidator

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

Code Block
<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

Code Block
<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

validator

All argument names are the same between Jira Cloud and Jira Server.

Arg Name: Jira Cloud

Arg Name: Jira Server

Example

Code Block
<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

Code Block
<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

validator

Arg Name: Jira Cloud

Arg Name: Jira Server

hidFieldsList

hidFieldsList

contextHandling

contextHandling

errorMessage

customErrorMessage-textValue

Example

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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

Code Block
<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>