protected MultiInstanceActivityBehavior createMultiInstanceActivityBehavior(Activity modelActivity, MultiInstanceLoopCharacteristics loopCharacteristics, BpmnParse bpmnParse) { MultiInstanceActivityBehavior miActivityBehavior = null; AbstractBpmnActivityBehavior modelActivityBehavior = (AbstractBpmnActivityBehavior) modelActivity.getBehavior(); if (loopCharacteristics.isSequential()) { miActivityBehavior = bpmnParse.getActivityBehaviorFactory().createSequentialMultiInstanceBehavior(modelActivity, modelActivityBehavior); } else { miActivityBehavior = bpmnParse.getActivityBehaviorFactory().createParallelMultiInstanceBehavior(modelActivity, modelActivityBehavior); } return miActivityBehavior; } }
BpmnXMLUtil.writeDefaultAttribute(ATTRIBUTE_MULTIINSTANCE_SEQUENTIAL, String.valueOf(multiInstanceObject.isSequential()).toLowerCase(), xtw);
public static FlowableMultiInstanceActivityEvent createMultiInstanceActivityEvent(FlowableEngineEventType type, String activityId, String activityName, String executionId, String processInstanceId, String processDefinitionId, FlowElement flowElement) { FlowableMultiInstanceActivityEventImpl newEvent = new FlowableMultiInstanceActivityEventImpl(type); newEvent.setActivityId(activityId); newEvent.setActivityName(activityName); newEvent.setExecutionId(executionId); newEvent.setProcessDefinitionId(processDefinitionId); newEvent.setProcessInstanceId(processInstanceId); if (flowElement instanceof FlowNode) { FlowNode flowNode = (FlowNode) flowElement; newEvent.setActivityType(parseActivityType(flowNode)); Object behaviour = flowNode.getBehavior(); if (behaviour != null) { newEvent.setBehaviorClass(behaviour.getClass().getCanonicalName()); } newEvent.setSequential(((Activity) flowNode).getLoopCharacteristics().isSequential()); } return newEvent; }
public static FlowableMultiInstanceActivityCompletedEvent createMultiInstanceActivityCompletedEvent(FlowableEngineEventType type, int numberOfInstances, int numberOfActiveInstances, int numberOfCompletedInstances, String activityId, String activityName, String executionId, String processInstanceId, String processDefinitionId, FlowElement flowElement) { FlowableMultiInstanceActivityCompletedEventImpl newEvent = new FlowableMultiInstanceActivityCompletedEventImpl(type); newEvent.setNumberOfInstances(numberOfInstances); newEvent.setNumberOfActiveInstances(numberOfActiveInstances); newEvent.setNumberOfCompletedInstances(numberOfCompletedInstances); newEvent.setActivityId(activityId); newEvent.setActivityName(activityName); newEvent.setExecutionId(executionId); newEvent.setProcessDefinitionId(processDefinitionId); newEvent.setProcessInstanceId(processInstanceId); if (flowElement instanceof FlowNode) { FlowNode flowNode = (FlowNode) flowElement; newEvent.setActivityType(parseActivityType(flowNode)); Object behaviour = flowNode.getBehavior(); if (behaviour != null) { newEvent.setBehaviorClass(behaviour.getClass().getCanonicalName()); } newEvent.setSequential(((Activity) flowNode).getLoopCharacteristics().isSequential()); } return newEvent; }
if (StringUtils.isNotEmpty(loopDef.getLoopCardinality()) || StringUtils.isNotEmpty(loopDef.getInputDataItem()) || StringUtils.isNotEmpty(loopDef.getCompletionCondition())) { if (!loopDef.isSequential()) { propertiesNode.put(PROPERTY_MULTIINSTANCE_TYPE, "Parallel"); } else {
if (loopCharacteristics.isSequential()) { miActivityBehavior = bpmnParse.getActivityBehaviorFactory().createSequentialMultiInstanceBehavior( activity, (AbstractBpmnActivityBehavior) activity.getActivityBehavior()); activity.setProperty("multiInstance", loopCharacteristics.isSequential() ? "sequential" : "parallel"); activity.setActivityBehavior(miActivityBehavior);
public void setValues(MultiInstanceLoopCharacteristics otherLoopCharacteristics) { setInputDataItem(otherLoopCharacteristics.getInputDataItem()); setCollectionString(otherLoopCharacteristics.getCollectionString()); if (otherLoopCharacteristics.getHandler() != null) { setHandler(otherLoopCharacteristics.getHandler().clone()); } setLoopCardinality(otherLoopCharacteristics.getLoopCardinality()); setCompletionCondition(otherLoopCharacteristics.getCompletionCondition()); setElementVariable(otherLoopCharacteristics.getElementVariable()); setElementIndexVariable(otherLoopCharacteristics.getElementIndexVariable()); setSequential(otherLoopCharacteristics.isSequential()); } }
public void setValues(MultiInstanceLoopCharacteristics otherLoopCharacteristics) { setInputDataItem(otherLoopCharacteristics.getInputDataItem()); setCollectionString(otherLoopCharacteristics.getCollectionString()); if (otherLoopCharacteristics.getHandler() != null) { setHandler(otherLoopCharacteristics.getHandler().clone()); } setLoopCardinality(otherLoopCharacteristics.getLoopCardinality()); setCompletionCondition(otherLoopCharacteristics.getCompletionCondition()); setElementVariable(otherLoopCharacteristics.getElementVariable()); setElementIndexVariable(otherLoopCharacteristics.getElementIndexVariable()); setSequential(otherLoopCharacteristics.isSequential()); } }
if (multiInstanceLoopCharacteristics.isSequential()) { SequentialMultiInstanceBehavior miBehavior = (SequentialMultiInstanceBehavior) miActivityElement.getBehavior(); loopCounter = miBehavior.getLoopVariable(execution, miBehavior.getCollectionElementIndexVariable()); childExecution.setCurrentFlowElement(miExecution.getCurrentFlowElement()); if (multiInstanceLoopCharacteristics.isSequential()) { SequentialMultiInstanceBehavior miBehavior = (SequentialMultiInstanceBehavior) miActivityElement.getBehavior(); miBehavior.continueSequentialMultiInstance(childExecution, loopCounter, childExecution);
if (!multiInstanceLoopCharacteristics.isSequential()) { miExecution.setActive(true); miExecution.setScope(false);