private UserFilterImplementationDescriptor getDescriptor(final long processDefinitionId, final SUserFilterDefinition sUserFilterDefinition) throws SCacheException { return (UserFilterImplementationDescriptor) cacheService.get(FILTER_CACHE_NAME, getUserFilterImplementationIdInCache(processDefinitionId, sUserFilterDefinition.getUserFilterId(), sUserFilterDefinition.getVersion())); }
descriptor = getDescriptor(processDefinitionId, sUserFilterDefinition); if (descriptor == null) { throw new SUserFilterExecutionException("unable to load descriptor for filter " + sUserFilterDefinition.getUserFilterId()); sUserFilterDefinition.getName() + ">, user filter id: <" + sUserFilterDefinition.getUserFilterId() + ">, version: <" + sUserFilterDefinition.getVersion() + ">] on flow node instance with id: <" + expressionContext.getContainerId() +
void mapUsingUserFilters(final SFlowNodeInstance flowNodeInstance, final SHumanTaskDefinition humanTaskDefinition, final String actorName, final long processDefinitionId, final SUserFilterDefinition sUserFilterDefinition) throws SClassLoaderException, SUserFilterExecutionException, SActivityStateExecutionException, SActivityCreationException, SFlowNodeNotFoundException, SFlowNodeReadException, SActivityModificationException { final ClassLoader processClassloader = classLoaderService.getLocalClassLoader(ScopeType.PROCESS.name(), processDefinitionId); final SExpressionContext expressionContext = new SExpressionContext(flowNodeInstance.getId(), DataInstanceContainer.ACTIVITY_INSTANCE.name(), flowNodeInstance.getLogicalGroup(0)); final FilterResult result = userFilterService.executeFilter(processDefinitionId, sUserFilterDefinition, sUserFilterDefinition.getInputs(), processClassloader, expressionContext, actorName); final List<Long> userIds = result.getResult(); if (userIds == null || userIds.isEmpty() || userIds.contains(0L) || userIds.contains(-1L)) { throw new SActivityStateExecutionException("no user id returned by the user filter " + sUserFilterDefinition + " on activity " + humanTaskDefinition.getName()); } for (final Long userId : new TreeSet<>(userIds)) { final SPendingActivityMapping mapping = BuilderFactory.get(SPendingActivityMappingBuilderFactory.class) .createNewInstanceForUser(flowNodeInstance.getId(), userId).done(); activityInstanceService.addPendingActivityMappings(mapping); } if (userIds.size() == 1 && result.shouldAutoAssignTaskIfSingleResult()) { final Long userId = userIds.get(0); activityInstanceService.assignHumanTask(flowNodeInstance.getId(), userId); //system comment is added after the evaluation of the display name } }
descriptor = getDescriptor(processDefinitionId, sUserFilterDefinition); if (descriptor == null) { throw new SUserFilterExecutionException("unable to load descriptor for filter " + sUserFilterDefinition.getUserFilterId()); sUserFilterDefinition.getName() + ">, user filter id: <" + sUserFilterDefinition.getUserFilterId() + ">, version: <" + sUserFilterDefinition.getVersion() + ">] on flow node instance with id: <" + expressionContext.getContainerId() +
void mapUsingUserFilters(final SFlowNodeInstance flowNodeInstance, final SHumanTaskDefinition humanTaskDefinition, final String actorName, final long processDefinitionId, final SUserFilterDefinition sUserFilterDefinition) throws SClassLoaderException, SUserFilterExecutionException, SActivityStateExecutionException, SActivityCreationException, SFlowNodeNotFoundException, SFlowNodeReadException, SActivityModificationException { final ClassLoader processClassloader = classLoaderService.getLocalClassLoader(ScopeType.PROCESS.name(), processDefinitionId); final SExpressionContext expressionContext = new SExpressionContext(flowNodeInstance.getId(), DataInstanceContainer.ACTIVITY_INSTANCE.name(), flowNodeInstance.getLogicalGroup(0)); final FilterResult result = userFilterService.executeFilter(processDefinitionId, sUserFilterDefinition, sUserFilterDefinition.getInputs(), processClassloader, expressionContext, actorName); final List<Long> userIds = result.getResult(); if (userIds == null || userIds.isEmpty() || userIds.contains(0L) || userIds.contains(-1L)) { throw new SActivityStateExecutionException("no user id returned by the user filter " + sUserFilterDefinition + " on activity " + humanTaskDefinition.getName()); } for (final Long userId : new TreeSet<>(userIds)) { final SPendingActivityMapping mapping = BuilderFactory.get(SPendingActivityMappingBuilderFactory.class) .createNewInstanceForUser(flowNodeInstance.getId(), userId).done(); activityInstanceService.addPendingActivityMappings(mapping); } if (userIds.size() == 1 && result.shouldAutoAssignTaskIfSingleResult()) { final Long userId = userIds.get(0); activityInstanceService.assignHumanTask(flowNodeInstance.getId(), userId); //system comment is added after the evaluation of the display name } }
private UserFilterImplementationDescriptor getDescriptor(final long processDefinitionId, final SUserFilterDefinition sUserFilterDefinition) throws SCacheException { return (UserFilterImplementationDescriptor) cacheService.get(FILTER_CACHE_NAME, getUserFilterImplementationIdInCache(processDefinitionId, sUserFilterDefinition.getUserFilterId(), sUserFilterDefinition.getVersion())); }
private FilterResult executeFilter(final long processDefinitionId, final long humanTaskInstanceId, final String actorName, final SUserFilterDefinition sUserFilterDefinition) throws SUserFilterExecutionException, SClassLoaderException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final ClassLoaderService classLoaderService = tenantAccessor.getClassLoaderService(); final UserFilterService userFilterService = tenantAccessor.getUserFilterService(); final ClassLoader processClassloader = classLoaderService.getLocalClassLoader(ScopeType.PROCESS.name(), processDefinitionId); final SExpressionContext expressionContext = new SExpressionContext(humanTaskInstanceId, DataInstanceContainer.ACTIVITY_INSTANCE.name(), processDefinitionId); return userFilterService.executeFilter(processDefinitionId, sUserFilterDefinition, sUserFilterDefinition.getInputs(), processClassloader, expressionContext, actorName); }
private FilterResult executeFilter(final long processDefinitionId, final long humanTaskInstanceId, final String actorName, final SUserFilterDefinition sUserFilterDefinition) throws SUserFilterExecutionException, SClassLoaderException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final ClassLoaderService classLoaderService = tenantAccessor.getClassLoaderService(); final UserFilterService userFilterService = tenantAccessor.getUserFilterService(); final ClassLoader processClassloader = classLoaderService.getLocalClassLoader(ScopeType.PROCESS.name(), processDefinitionId); final SExpressionContext expressionContext = new SExpressionContext(humanTaskInstanceId, DataInstanceContainer.ACTIVITY_INSTANCE.name(), processDefinitionId); return userFilterService.executeFilter(processDefinitionId, sUserFilterDefinition, sUserFilterDefinition.getInputs(), processClassloader, expressionContext, actorName); }