public SLoopActivityInstanceBuilder createLoopActivityInstance(final long processDefinitionId, final long rootContainerId, final long parentContainerId, final long rootProcessInstanceId, final long parentProcessInstanceId, final SActivityDefinition activityDefinition) { return BuilderFactory.get(SLoopActivityInstanceBuilderFactory.class).createNewOuterTaskInstance( activityDefinition.getName(), activityDefinition.getId(), rootContainerId, parentContainerId, processDefinitionId, rootProcessInstanceId, parentProcessInstanceId); }
public SLoopActivityInstanceBuilder createLoopActivityInstance(final long processDefinitionId, final long rootContainerId, final long parentContainerId, final long rootProcessInstanceId, final long parentProcessInstanceId, final SActivityDefinition activityDefinition) { return BuilderFactory.get(SLoopActivityInstanceBuilderFactory.class).createNewOuterTaskInstance( activityDefinition.getName(), activityDefinition.getId(), rootContainerId, parentContainerId, processDefinitionId, rootProcessInstanceId, parentProcessInstanceId); }
final Set<SActivityDefinition> activityDefList = processContainer.getActivities(); for (final SActivityDefinition sActivityDefinition : activityDefList) { if (activityName.equals(sActivityDefinition.getName())) { sdataDefinitionList = sActivityDefinition.getSDataDefinitions(); activityFound = true;
final Set<SActivityDefinition> activityDefList = processContainer.getActivities(); for (final SActivityDefinition sActivityDefinition : activityDefList) { if (activityName.equals(sActivityDefinition.getName())) { sdataDefinitionList = sActivityDefinition.getSDataDefinitions(); activityFound = true;
private void reevaluateTransientData(final String name, final long containerId, final String containerType) throws SProcessDefinitionNotFoundException, SBonitaReadException, SFlowNodeNotFoundException, SFlowNodeReadException, SDataInstanceException, SExpressionException { SFlowNodeInstance flowNodeInstance = flowNodeInstanceService.getFlowNodeInstance(containerId); final long flowNodeDefinitionId = flowNodeInstance.getFlowNodeDefinitionId(); final long processDefinitionId = flowNodeInstance.getProcessDefinitionId(); final SProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(processDefinitionId); final SActivityDefinition flowNode = (SActivityDefinition) processDefinition.getProcessContainer() .getFlowNode(flowNodeDefinitionId); SDataDefinition dataDefinition = getTransientData(containerId).stream() .filter(data -> Objects.equals(name, data.getName())) .findFirst() .orElseThrow(() -> new SDataInstanceNotFoundException( "Transient data was not found and we were unable to reevaluate it because it was not found in the definition, name=<" + name + "> process definition=<" + processDefinition.getName() + "," + processDefinition.getVersion() + "> flow node=<" + flowNode.getName() + ">")); createDataInstance(dataDefinition, containerId, DataInstanceContainer.ACTIVITY_INSTANCE, new SExpressionContext(containerId, containerType, processDefinitionId)); }
private void reevaluateTransientData(final String name, final long containerId, final String containerType) throws SProcessDefinitionNotFoundException, SBonitaReadException, SFlowNodeNotFoundException, SFlowNodeReadException, SDataInstanceException, SExpressionException { SFlowNodeInstance flowNodeInstance = flowNodeInstanceService.getFlowNodeInstance(containerId); final long flowNodeDefinitionId = flowNodeInstance.getFlowNodeDefinitionId(); final long processDefinitionId = flowNodeInstance.getProcessDefinitionId(); final SProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(processDefinitionId); final SActivityDefinition flowNode = (SActivityDefinition) processDefinition.getProcessContainer() .getFlowNode(flowNodeDefinitionId); SDataDefinition dataDefinition = getTransientData(containerId).stream() .filter(data -> Objects.equals(name, data.getName())) .findFirst() .orElseThrow(() -> new SDataInstanceNotFoundException( "Transient data was not found and we were unable to reevaluate it because it was not found in the definition, name=<" + name + "> process definition=<" + processDefinition.getName() + "," + processDefinition.getVersion() + "> flow node=<" + flowNode.getName() + ">")); createDataInstance(dataDefinition, containerId, DataInstanceContainer.ACTIVITY_INSTANCE, new SExpressionContext(containerId, containerType, processDefinitionId)); }
@Override public int getNumberOfActivityDataDefinitions(final long processDefinitionId, final String activityName) throws ProcessDefinitionNotFoundException, ActivityDefinitionNotFoundException { List<SDataDefinition> sdataDefinitionList = Collections.emptyList(); final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final ProcessDefinitionService processDefinitionService = tenantAccessor.getProcessDefinitionService(); try { final SProcessDefinition sProcessDefinition = processDefinitionService.getProcessDefinition(processDefinitionId); boolean found = false; final SFlowElementContainerDefinition processContainer = sProcessDefinition.getProcessContainer(); final Set<SActivityDefinition> activityDefList = processContainer.getActivities(); for (final SActivityDefinition sActivityDefinition : activityDefList) { if (activityName.equals(sActivityDefinition.getName())) { sdataDefinitionList = sActivityDefinition.getSDataDefinitions(); found = true; break; } } if (!found) { throw new ActivityDefinitionNotFoundException(activityName); } return sdataDefinitionList.size(); } catch (final SProcessDefinitionNotFoundException e) { throw new ProcessDefinitionNotFoundException(e); } catch (final SBonitaException e) { throw new RetrieveException(e); } }
@Override public int getNumberOfActivityDataDefinitions(final long processDefinitionId, final String activityName) throws ProcessDefinitionNotFoundException, ActivityDefinitionNotFoundException { List<SDataDefinition> sdataDefinitionList = Collections.emptyList(); final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final ProcessDefinitionService processDefinitionService = tenantAccessor.getProcessDefinitionService(); try { final SProcessDefinition sProcessDefinition = processDefinitionService.getProcessDefinition(processDefinitionId); boolean found = false; final SFlowElementContainerDefinition processContainer = sProcessDefinition.getProcessContainer(); final Set<SActivityDefinition> activityDefList = processContainer.getActivities(); for (final SActivityDefinition sActivityDefinition : activityDefList) { if (activityName.equals(sActivityDefinition.getName())) { sdataDefinitionList = sActivityDefinition.getSDataDefinitions(); found = true; break; } } if (!found) { throw new ActivityDefinitionNotFoundException(activityName); } return sdataDefinitionList.size(); } catch (final SProcessDefinitionNotFoundException e) { throw new ProcessDefinitionNotFoundException(e); } catch (final SBonitaException e) { throw new RetrieveException(e); } }
private SMultiInstanceActivityInstanceBuilder createMultiInstanceActivityInstance(final long processDefinitionId, final long rootContainerId, final long parentContainerId, final long rootProcessInstanceId, final long parentProcessInstanceId, final SActivityDefinition activityDefinition, final SMultiInstanceLoopCharacteristics loopCharacteristics) { final SMultiInstanceActivityInstanceBuilder builder = BuilderFactory.get(SMultiInstanceActivityInstanceBuilderFactory.class) .createNewOuterTaskInstance( activityDefinition.getName(), activityDefinition.getId(), rootContainerId, parentContainerId, processDefinitionId, rootProcessInstanceId, parentProcessInstanceId, loopCharacteristics.isSequential()); builder.setLoopDataInputRef(loopCharacteristics.getLoopDataInputRef()); builder.setLoopDataOutputRef(loopCharacteristics.getLoopDataOutputRef()); builder.setDataInputItemRef(loopCharacteristics.getDataInputItemRef()); builder.setDataOutputItemRef(loopCharacteristics.getDataOutputItemRef()); return builder; }
private SMultiInstanceActivityInstanceBuilder createMultiInstanceActivityInstance(final long processDefinitionId, final long rootContainerId, final long parentContainerId, final long rootProcessInstanceId, final long parentProcessInstanceId, final SActivityDefinition activityDefinition, final SMultiInstanceLoopCharacteristics loopCharacteristics) { final SMultiInstanceActivityInstanceBuilder builder = BuilderFactory.get(SMultiInstanceActivityInstanceBuilderFactory.class) .createNewOuterTaskInstance( activityDefinition.getName(), activityDefinition.getId(), rootContainerId, parentContainerId, processDefinitionId, rootProcessInstanceId, parentProcessInstanceId, loopCharacteristics.isSequential()); builder.setLoopDataInputRef(loopCharacteristics.getLoopDataInputRef()); builder.setLoopDataOutputRef(loopCharacteristics.getLoopDataOutputRef()); builder.setDataInputItemRef(loopCharacteristics.getDataInputItemRef()); builder.setDataOutputItemRef(loopCharacteristics.getDataOutputItemRef()); return builder; }