I want to create a workflow, a workflowscheme and associate it to a project programatically.
Any code examples to help get me started?
JIRA saves a workflow as XML. If you already have your workflow in the correct XML format, then creating the workflow is quite easy:
WorkflowDescriptor myWorkflowDescriptor = WorkflowUtil.convertXMLtoWorkflowDescriptor(myWorkflowAsXml)); JiraWorkflow myWorkflow = new ConfigurableJiraWorkflow(myWorkflowName, myWorkflowDescriptor, workflowManager); workflowManager.createWorkflow(anAdminUser, myWorkflow);
Otherwise, creating the Workflow could be cumbersome. It depends how complex you Workflow is.
Creating a WorkflowScheme:
Scheme scheme = workflowSchemeManager.createSchemeObject(myWorkflowSchemeName, myWorkflowSchemeDescription); AssignableWorkflowScheme myWorkflowScheme = workflowSchemeManager.getWorkflowSchemeObj(scheme.getName()); // necessary intermediate step AssignableWorkflowScheme.Builder myWorkflowSchemeBuilder = myWorkflowScheme.builder();
Assigning Workflows to the Scheme:
// default (all IssueTypes) myWorkflowSchemeBuilder.setDefaultWorkflow(myWorkflow.getName()); // ... or only for a specific IssueType myWorkflowSchemeBuilder.setMapping(issueType.getId(), myWorkflow.getName()); workflowSchemeManager.updateWorkflowScheme(myWorkflowSchemeBuilder.build());
Associate Scheme to Project:
workflowSchemeManager.addSchemeToProject(project, workflowSchemeManager.getSchemeObject(myWorkflowScheme.getId()));
Does this help?
I got it working but having some minor issues:
1. I create the workflow scheme
2. for every custom issue type of mine:
2a. i create the workflow for that issue type
2b. using myWorkflowSchemeBuilder.setMapping I associate the issuetype with the workflow
2c. I update the scheme: workflowSchemeManager.updateWorkflowScheme
3. outside of my for loop - I associate it to the project
The issue is that on the workflow page, my newly created workflows are listed as INACTIVE; however my workflow scheme is listed as ACTIVE and the association between the issue type and the newly created workflow looks right. What am i missing?
John,
Will you be able to share the code of what you achieved?
I'm looking for creating custom workflow along with screen transistions.
Thanks in advance
hello John , could you please share your code?
It looks like you're new here. Sign in or register to get started.