---
title: "Migrating from Jira Cloud to Jira Data Center"
canonical: "https://support.appfire.com/space/JSU/12682033/Migrating%20from%20Jira%20Cloud%20to%20Jira%20Data%20Center"
format: markdown
---
> Macro (aura-html)

## <span style="color: #000000">How to fix the workflows</span>

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.*

## <span style="color: #000000">Workflow conditions/post functions(JSU)</span>

| <span style="color: #000000">Workflow Name</span> | <span style="color: #000000">JSU Cloud Module-Key</span> | <span style="color: #000000">JSU Data Center Module-Key</span> |
| --- | --- | --- |
| <span style="color: #000000">***Conditions***</span> |  |  |
| <span style="color: #000000">User Is In Any Users (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugin:com.googlecode.</span><br><span style="color: #000000">jira-suite-utilities__userisinanyusers-condition</span> | <span style="color: #000000">com.googlecode.jsu.workflow.condition.userisinanyusers-condition</span> |
| <span style="color: #000000">***Post Functions***</span> |  |  |
| <span style="color: #000000">Clear Field Value (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__clearFieldValue-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiesclearFieldValue-function</span> |
| <span style="color: #000000">Copy Value From Other Field (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copyValueFromOtherField-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiescopyValueFromOtherField-function</span> |
| <span style="color: #000000">Copy or Move Attachments (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__copymoveattachments-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiescopymoveattachments-function</span> |
| <span style="color: #000000">Create a Linked Issue (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__createlinkedissue-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiescreatelinkedissue-function</span> |
| <span style="color: #000000">Follow Up Transition (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__followuptransition-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiesfollowuptransition-function</span> |
| <span style="color: #000000">Linked Transition (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__linkedtransition-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitieslinkedtransition-function</span> |
| <span style="color: #000000">Update any Issue Field (JSU)</span> | <span style="color: #000000">com.atlassian.plugins.atlassian-connect-plugincom.googlecode.jira-suite-utilities__updateanyissuefield-function</span> | <span style="color: #000000">com.googlecode.jira-suite-utilitiesupdateIssueCustomField-function</span> |

## <span style="color: #000000">Mapping between JSU Cloud and JSU Data Center</span>

<span style="color: #000000">The following table contains all the attributes that need to be mapped between the JSU Cloud and JSU Data Center workflow functionality.</span>

### <span style="color: #000000">Post function mapping: Clear Field Value (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
 <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>
``` | <span style="color: #000000">Example</span><br>```
 <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>
``` |

### <span style="color: #000000">Post function mapping: Copy Value From Other Field (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
 <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>
``` | <span style="color: #000000">Example</span><br>```
 <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>
``` |

### <span style="color: #000000">Post function mapping: Create a Linked Issue (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
 <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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Post function mapping: Linked Transition (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
 <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>
``` |

### <span style="color: #000000">Post function mapping: Update Any Issue Field (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
 <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>
``` | <span style="color: #000000">Example</span><br>```
 <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>
``` |

## <span style="color: #000000">Workflow preconditions(JSU)</span>

<span style="color: #000000">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 Data Center, preconditions are implemented as a separate post function that acts as preconditions. All the preconditions from JSU Cloud are available in JSU Center as well, but require a different configuration.</span>

|  |
| --- |
| <span style="color: #000000">***Preconditions in JSU Data Center/Cloud***</span> |
| <span style="color: #000000">Date Compare (JSU)</span> |
| <span style="color: #000000">Date Expression Compare (JSU)</span> |
| <span style="color: #000000">Date Window (JSU)</span> |
| <span style="color: #000000">Fields Required (JSU)</span> |
| <span style="color: #000000">JQL (JSU)</span> |
| Linked Status<span style="color: #000000"> (JSU)</span> |
| <span style="color: #000000">Regular Expression Check (JSU)</span> |
| <span style="color: #000000">User Is In Any Groups (JSU)</span> |
| <span style="color: #000000">User Is In Any Roles (JSU)</span> |
| <span style="color: #000000">User Is In Custom Field (JSU)</span> |
| <span style="color: #000000">Value Field (JSU)</span> |

### <span style="color: #000000">Precondition mapping: Value Field (JSU)</span>

| <span style="color: #000000">Arg Name: JSU Cloud</span> | <span style="color: #000000">Arg Name: JSU Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
  <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>
``` |

<span style="color: #000000">All other preconditions follow a similar pattern as above. </span>

> ℹ️ <span style="color: #000000">As preconditions in JSU Cloud are built-in, you have to reconfigure all the preconditions manually in JSU Data Center.</span>

## <span style="color: #000000">Workflow conditions/validators/post functions(Jira)</span>

<span style="color: #000000">The following list of workflow conditions/validators/post functions built into the Jira Cloud environment can be replaced with JSU extensions. See below, all the attribute mappings between Jira Cloud and Jira Data Center.</span>

| <span style="color: #000000">Workflow Name</span> | <span style="color: #000000">Jira Cloud Class-Name</span> | <span style="color: #000000">JSU Class-Name (Jira Data Center)</span> |
| --- | --- | --- |
| <span style="color: #000000">***Conditions***</span> |  |  |
| <span style="color: #000000">User Is In Any Group</span> | <span style="color: #000000">com.atlassian.jira.workflow.condition.UserInAnyGroupCondition</span> | <span style="color: #000000">com.googlecode.jsu.workflow.condition.UserIsInAnyGroupsCondition</span> |
| <span style="color: #000000">User Is In Any Project Role</span> | <span style="color: #000000">com.atlassian.jira.workflow.condition.InAnyProjectRoleCondition</span> | <span style="color: #000000">com.googlecode.jsu.workflow.condition.UserIsInAnyRolesCondition</span> |
| <span style="color: #000000">User Is In Custom Field</span> | <span style="color: #000000">com.atlassian.jira.workflow.condition.UserIsInCustomFieldCondition</span> | <span style="color: #000000">com.googlecode.jsu.workflow.condition.UserIsInCustomFieldCondition</span> |
| <span style="color: #000000">Value Field</span> | <span style="color: #000000">com.atlassian.jira.workflow.condition.ValueFieldCondition</span> | <span style="color: #000000">com.googlecode.jsu.workflow.condition.ValueFieldCondition</span> |
| <span style="color: #000000">***Validators***</span> |  |  |
| <span style="color: #000000">Date Compare Validator</span> | <span style="color: #000000">com.atlassian.jira.workflow.validator.DateFieldValidator</span> | <span style="color: #000000">com.googlecode.jsu.workflow.validator.DateCompareValidator & com.googlecode.jsu.workflow.validator.DateExpressionCompareValidator</span> |
| <span style="color: #000000">Date Window Validator</span> | <span style="color: #000000">com.atlassian.jira.workflow.validator.WindowsDateValidator</span> | <span style="color: #000000">com.googlecode.jsu.workflow.validator.WindowsDateValidator</span> |
| <span style="color: #000000">Field Required Validator</span> | <span style="color: #000000">com.atlassian.jira.workflow.validator.FieldRequiredValidator</span> | <span style="color: #000000">com.googlecode.jsu.workflow.validator.FieldsRequiredValidator</span> |
| <span style="color: #000000">Regular Expression Check</span> | <span style="color: #000000">com.atlassian.jira.workflow.validator.RegexpFieldValidator</span> | <span style="color: #000000">com.googlecode.jsu.workflow.validator.RegexpFieldValidator</span> |
| <span style="color: #000000">***Post Functions***</span> |  |  |
| <span style="color: #000000">Clear Field Value</span> | <span style="color: #000000">com.atlassian.jira.workflow.function.issue.ClearFieldValuePostFunction</span> | <span style="color: #000000">com.googlecode.jsu.workflow.function.ClearFieldValuePostFunction</span> |
| <span style="color: #000000">Copy Value From Other Field</span> | <span style="color: #000000">com.atlassian.jira.workflow.function.issue.CopyValueFromOtherFieldPostFunction</span> | <span style="color: #000000">com.googlecode.jsu.workflow.function.CopyValueFromOtherFieldPostFunction</span> |
| <span style="color: #000000">Update Issue Custom Field</span> | <span style="color: #000000">com.atlassian.jira.workflow.function.issue.UpdateIssueCustomFieldPostFunction</span> | <span style="color: #000000">com.googlecode.jsu.workflow.function.UpdateIssueCustomFieldPostFunction</span> |

## <span style="color: #000000">Mapping between Jira Cloud modules and JSU Data Center</span>

<span style="color: #000000">The following describes all the attributes that need to be mapped between the Jira Cloud and Jira Data Center workflow functionality.</span>

### <span style="color: #000000">Condition mapping: User Is In Any Group</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Data Center</span> |
| --- | --- |
| <span style="color: #000000">group</span> | <span style="color: #000000">hidGroupsList (each group is separated by @@ and requires a @@ at the end)</span> |
| <span style="color: #000000">Example</span><br>```
<condition type="class">
  <arg name="class.name">com.atlassian.jira.workflow.condition.UserInAnyGroupCondition</arg>
  <arg name="group">administrators@@</arg>
</condition>
``` | <span style="color: #000000">Example</span><br>```
<condition type="class">
  <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInAnyGroupsCondition</arg>
  <arg name="hidGroupsList">jira-developers@@</arg>
</condition>
``` |

### <span style="color: #000000">Condition mapping: User Is In Any Project Role</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Data Center</span> |
| --- | --- |
| <span style="color: #000000">projectRoleIds</span> | <span style="color: #000000">hidRolesList (each group is separated by @@ and requires a @@ at the end and groups required to be mapped between id to group name)</span> |
| <span style="color: #000000">Example</span><br>```
<condition type="class">
  <arg name="class.name">com.atlassian.jira.workflow.condition.InAnyProjectRoleCondition</arg>
  <arg name="projectRoleIds">10101@@</arg>
</condition>



``` | <span style="color: #000000">Example</span><br>```
<condition type="class">
  <arg name="class.name">com.googlecode.jsu.workflow.condition.UserIsInAnyRolesCondition</arg>
  <arg name="hidRolesList">Developers@@</arg>
</condition>



``` |

### <span style="color: #000000">Condition mapping: User Is In Custom Field</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Data Center.</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Condition mapping: Value Field</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Data Center.</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Data Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Validator mapping: Date Compare validator</span>

<span style="color: #000000">The Jira Cloud 'Date Compare Validator' combines two JSU Date Compare Validators:</span>

- <span style="color: #000000">Date Compare Validator (compareTypeField = true)</span>
- <span style="color: #000000">Date Expression Compare Validator (compareTypeField = false)</span>

<span style="color: #000000">Which of the two validators to use is defined by the Jira Cloud argument name 'compareTypeField'</span>

<span style="color: #000000">**Date Compare validator**</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Data Center. </span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

<span style="color: #000000">**Date Expression Compare validator**</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">compareTypeField  (must be false to map to the 'Date Expression Compare Validator')</span> | <span style="color: #000000">not required for Jira Center</span> |
| <span style="color: #000000">conditionSelected</span> | <span style="color: #000000">conditionSelected</span> |
| <span style="color: #000000">includeTimeSelected</span> | <span style="color: #000000">includeTimeSelected</span> |
| <span style="color: #000000">date1Selected</span> | <span style="color: #000000">date1Selected</span> |
| <span style="color: #000000">expression</span> | <span style="color: #000000">expressionSelected</span> |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Validator mapping: Date Window validator</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Center</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Validator mapping: Field Required validator</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">hidFieldsList</span> | <span style="color: #000000">hidFieldsList</span> |
| <span style="color: #000000">contextHandling</span> | <span style="color: #000000">contextHandling</span> |
| <span style="color: #000000">errorMessage</span> | <span style="color: #000000">customErrorMessage-textValue</span> |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Validator mapping: Regular Expression Check</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Center</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Post Function mapping: Clear Field Value</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Data Center</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Post Function mapping: Copy Value From Other Field</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |

### <span style="color: #000000">Post Function mapping: Update Issue Custom Field</span>

<span style="color: #000000">All argument names are the same between Jira Cloud and Jira Center.</span>

| <span style="color: #000000">Arg Name: Jira Cloud</span> | <span style="color: #000000">Arg Name: Jira Center</span> |
| --- | --- |
| <span style="color: #000000">Example</span><br>```
<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>
``` | <span style="color: #000000">Example</span><br>```
<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>
``` |