List currentSteps = store.findCurrentSteps(wfid); SimpleStep currentStep = null; WorkflowEntry newEntry = store.createEntry(newWorkflow.getName()); store.setEntryState(newEntry.getId(), WorkflowEntry.ACTIVATED); store.setEntryState(wfid, WorkflowEntry.KILLED); store.createCurrentStep(newEntry.getId(), stepInNewWorkflow.getId(), currentStep.getOwner(), currentStep.getStartDate(), currentStep.getDueDate(), currentStep.getStatus(), null); store.moveToHistory(currentStep); store.createCurrentStep(newEntry.getId(), stepInNewWorkflow.getId(), null, startDate, null, newStatus.getString("id"), null);
private String findPreviousStatus(Step currentStep, WorkflowEntry entry, WorkflowStore workflowStore, WorkflowDescriptor workflowDescriptor) { if (currentStep.getPreviousStepIds().length == 0) { return ""; } final long previousStepId = currentStep.getPreviousStepIds()[0]; try { final List<Step> historySteps = workflowStore.findHistorySteps(entry.getId()); final Step previousStep = Iterables.find(historySteps, new Predicate<Step>() { @Override public boolean apply(Step step) { return step.getId() == previousStepId; } }, null); if (previousStep == null) { LOG.error("Transition from cannot be found. It seems that workflow data is inconsistent."); return ""; } return workflowDescriptor.getStep(previousStep.getStepId()).getName(); } catch (StoreException e) { return ""; } }
try currentSteps = store.findCurrentSteps(entry.getId());
private void createStep(final boolean correct, final Long workflowEntryId, final int stepInWorkflowId, final GenericValue issue, final List<CheckAmendment> results) throws StoreException { final String message; if (correct) { final WorkflowStore store = workflowManager.getStore(); store.createCurrentStep(workflowEntryId, stepInWorkflowId, null, issue.getTimestamp("created"), null, issue.getString("status"), null); // Record the message message = getI18NBean().getText("admin.integrity.check.workflow.current.step.correct.message", issue.getString("key"), workflowEntryId.toString()); results.add(new CheckAmendment(Amendment.ERROR, message, "JRA-4539")); } else { // Record the message message = getI18NBean().getText("admin.integrity.check.workflow.current.step.correct.preview", issue.getString("key"), workflowEntryId.toString()); results.add(new CheckAmendment(Amendment.ERROR, message, "JRA-4539")); } }
public void execute(Map transientVars, Map args, PropertySet ps) throws StoreException { MutableIssue issue = (MutableIssue) transientVars.get("issue"); WorkflowEntry entry = (WorkflowEntry) transientVars.get("entry"); SimpleStep step = (SimpleStep) ((WorkflowStore) transientVars.get("store")).findCurrentSteps(entry.getId()).get(0); WorkflowDescriptor descriptor = (WorkflowDescriptor) transientVars.get("descriptor"); StepDescriptor stepDescriptor = descriptor.getStep(step.getStepId()); Status oldStatus = issue.getStatus(); Status newStatus = ComponentAccessor.getConstantsManager().getStatus((String) stepDescriptor.getMetaAttributes().get("jira.status.id")); // Update issue issue.setStatusId(newStatus.getId()); // Generate status change item List changeItems = (List) transientVars.get("changeItems"); if (changeItems == null) { changeItems = new LinkedList(); } String from = null; String fromString = null; if (oldStatus != null) { from = oldStatus.getId(); fromString = oldStatus.getName(); } String to = newStatus.getId(); String toString = newStatus.getName(); changeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, IssueFieldConstants.STATUS, from, fromString, to, toString)); transientVars.put("changeItems", changeItems); }
Step step = (Step) ((WorkflowStore) transientVars.get("store")).findCurrentSteps(entry.getId()).get(0); WorkflowDescriptor descriptor = (WorkflowDescriptor) transientVars.get("descriptor"); StepDescriptor stepDescriptor = descriptor.getStep(step.getStepId());
final Collection workflowSteps = store.findCurrentSteps(originalWfIdString.longValue());