/
Migrating from Jira Cloud to Jira Server


Migrating from Jira Cloud to Jira Server

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 Condition/Validator/Post Functions in your workflows.

Migration from Jira Cloud to Jira Server is not directly possible. You have to be careful as there are many validators and conditions which are built into Jira Cloud, but not in Jira Server. For that, you will need JSU. JSU Cloud's additional post functions make it more powerful with its Related Issues, Perform as a different user, and many other post functions that you can use to automate your workflows without any coding.

Looking for documentation on a Server to Cloud migration? See our Migrating from Jira Server to Jira Cloud page.

Background

Years ago, the founders of JSU donated several of JSU's modules to Atlassian. Atlassian integrated most of these workflow conditions/validators/post functions (based on JSU Server 1.4) into their native Jira Cloud environment.  Since then, JSU Server has added more functionality to make it more powerful. When JSU for Jira Cloud was released, it also added advanced forms of the post functions that were in JSU Server. If you migrate from Jira Cloud to Jira Server, the default JSU workflow conditions/validators/post functions do not exist in the default Jira Server version but they can simply be replaced with the JSU app.

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 condition/post functions(JSU)

Workflow Name

JSU Cloud Module-Key

JSU Server Module-Key

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

Post function mapping: Clear Field Value (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

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

Arg Name: JSU Cloud

Arg Name: JSU Server

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

Post function mapping: Create a Linked Issue (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Example

Post function mapping: Linked Transition (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

Example

 

Post function mapping: Update any Issue Field (JSU)

Arg Name: JSU Cloud

Arg Name: JSU Server

Arg Name: JSU Cloud

Arg Name: JSU Server

Example

 

Example


Workflow 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)