...
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.
InfoIf you are looking for documentation on Server to Cloud migration, please follow this link .
Background Years ago beecom donated some of JSU's modules to Jira Cloud. Atlassian integrated most of these JSU Workflow Condition/Validator/Post-Functions (based on JSU Server 1.4) into their native Jira Cloud Environment which were still a very basic modules . Since then 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.
...
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
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 TO JSU Server ...
Post-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>
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 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 Mapping: Create a Linked Issue (JSU) Arg Name: JSU Cloud Arg Name: JSU Server 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 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 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(JSU) Preconditions in JSU Cloud are built-in as a part of the post-function. You can add as many preconditions inside a post-function. But in JSU Server preconditions are implemented as a separate post-function which acts as preconditions. All the preconditions from JSU Cloud are available in JSU Server as well, but it needs 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 the similar pattern as above. As preconditions in JSU Cloud are built-in, you have reconfigure all the preconditions manually in JSU Server.
...
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 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 TO JSU Server ...