当前位置: 首页>>代码示例>>Java>>正文


Java RouteContext.getCurrentRouteContext方法代码示例

本文整理汇总了Java中org.kuali.rice.kew.engine.RouteContext.getCurrentRouteContext方法的典型用法代码示例。如果您正苦于以下问题:Java RouteContext.getCurrentRouteContext方法的具体用法?Java RouteContext.getCurrentRouteContext怎么用?Java RouteContext.getCurrentRouteContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.kuali.rice.kew.engine.RouteContext的用法示例。


在下文中一共展示了RouteContext.getCurrentRouteContext方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: saveRoutingData

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
public DocumentRouteHeaderValue saveRoutingData(String principalId, DocumentRouteHeaderValue routeHeader) {
	KEWServiceLocator.getRouteHeaderService().saveRouteHeader(routeHeader);
	
	// save routing data should invoke the post processor doActionTaken for SAVE
	 	ActionTakenValue val = new ActionTakenValue();
	 	val.setActionTaken(KewApiConstants.ACTION_TAKEN_SAVED_CD);
	 	val.setDocumentId(routeHeader.getDocumentId());
       val.setPrincipalId(principalId);
	 	PostProcessor postProcessor = routeHeader.getDocumentType().getPostProcessor();
	 	try {
	 		postProcessor.doActionTaken(new org.kuali.rice.kew.framework.postprocessor.ActionTakenEvent(routeHeader.getDocumentId(), routeHeader.getAppDocId(), ActionTakenValue.to(val)));
	 	} catch (Exception e) {
	 		if (e instanceof RuntimeException) {
	 			throw (RuntimeException)e;
	 		}
	 		throw new WorkflowRuntimeException(e);
	 	}

	 	RouteContext routeContext = RouteContext.getCurrentRouteContext();
	 	if (routeHeader.getDocumentType().hasSearchableAttributes() && !routeContext.isSearchIndexingRequestedForContext()) {
	 		routeContext.requestSearchIndexingForContext();
           DocumentAttributeIndexingQueue queue = KewApiServiceLocator.getDocumentAttributeIndexingQueue(routeHeader.getDocumentType().getApplicationId());
           queue.indexDocument(routeHeader.getDocumentId());
	}
	return finish(routeHeader);
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:27,代码来源:WorkflowDocumentServiceImpl.java

示例2: reResolveQualifiedRole

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
/**
 *
 * route level and then filters in the approriate ones.
 */
public void reResolveQualifiedRole(DocumentRouteHeaderValue routeHeader, String roleName, String qualifiedRoleNameLabel) {
    String infoString = "routeHeader="+(routeHeader == null ? null : routeHeader.getDocumentId())+", role="+roleName+", qualifiedRole="+qualifiedRoleNameLabel;
    if (routeHeader == null ||
            org.apache.commons.lang.StringUtils.isEmpty(roleName) ||
            org.apache.commons.lang.StringUtils.isEmpty(qualifiedRoleNameLabel)) {
        throw new IllegalArgumentException("Cannot pass null arguments to reResolveQualifiedRole: "+infoString);
    }
    LOG.debug("Re-resolving qualified role synchronously for "+infoString);
    List<RouteNodeInstance> nodeInstances = findNodeInstances(routeHeader, roleName);
    int requestsGenerated = 0;
    if (!nodeInstances.isEmpty()) {
        deletePendingRoleRequests(routeHeader.getDocumentId(), roleName, qualifiedRoleNameLabel);
        for (RouteNodeInstance nodeInstance : nodeInstances) {
            RuleTemplateBo ruleTemplate = nodeInstance.getRouteNode().getRuleTemplate();
            FlexRM flexRM = new FlexRM();
    		RouteContext context = RouteContext.getCurrentRouteContext();
    		context.setDocument(routeHeader);
    		context.setNodeInstance(nodeInstance);
    		try {
    			List<ActionRequestValue> actionRequests = flexRM.getActionRequests(routeHeader, nodeInstance, ruleTemplate.getName());
                for (ActionRequestValue actionRequest : actionRequests) {
    				if (roleName.equals(actionRequest.getRoleName()) && qualifiedRoleNameLabel.equals(actionRequest.getQualifiedRoleNameLabel())) {
    					actionRequest = KEWServiceLocator.getActionRequestService().initializeActionRequestGraph(actionRequest, routeHeader, nodeInstance);
    					KEWServiceLocator.getActionRequestService().saveActionRequest(actionRequest);
    					requestsGenerated++;
    				}
    			}
    		} catch (Exception e) {
    			RouteContext.clearCurrentRouteContext();
    		}

        }
    }
    LOG.debug("Generated "+requestsGenerated+" action requests after re-resolve: "+infoString);
    requeueDocument(routeHeader);
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:41,代码来源:RoleServiceImpl.java

示例3: reResolveRole

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
public void reResolveRole(DocumentRouteHeaderValue routeHeader, String roleName) {
	String infoString = "routeHeader="+(routeHeader == null ? null : routeHeader.getDocumentId())+", role="+roleName;
    if (routeHeader == null ||
            org.apache.commons.lang.StringUtils.isEmpty(roleName)) {
        throw new RiceIllegalArgumentException("Cannot pass null arguments to reResolveQualifiedRole: "+infoString);
    }
    LOG.debug("Re-resolving role synchronously for "+infoString);
    List<RouteNodeInstance> nodeInstances = findNodeInstances(routeHeader, roleName);
    int requestsGenerated = 0;
    if (!nodeInstances.isEmpty()) {
        deletePendingRoleRequests(routeHeader.getDocumentId(), roleName, null);
        for (RouteNodeInstance nodeInstance : nodeInstances) {
            RuleTemplateBo ruleTemplate = nodeInstance.getRouteNode().getRuleTemplate();
            FlexRM flexRM = new FlexRM();
    		RouteContext context = RouteContext.getCurrentRouteContext();
    		context.setDocument(routeHeader);
    		context.setNodeInstance(nodeInstance);
    		try {
    			List<ActionRequestValue> actionRequests = flexRM.getActionRequests(routeHeader, nodeInstance, ruleTemplate.getName());
                for (ActionRequestValue actionRequest : actionRequests) {
    				if (roleName.equals(actionRequest.getRoleName())) {
    					actionRequest = KEWServiceLocator.getActionRequestService().initializeActionRequestGraph(actionRequest, routeHeader, nodeInstance);
    					KEWServiceLocator.getActionRequestService().saveActionRequest(actionRequest);
    					requestsGenerated++;
    				}
    			}
    		} finally {
    			RouteContext.clearCurrentRouteContext();
    		}
        }
    }
    LOG.debug("Generated "+requestsGenerated+" action requests after re-resolve: "+infoString);
    requeueDocument(routeHeader);
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:35,代码来源:RoleServiceImpl.java

示例4: indexForSearchAfterActionIfNecessary

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
/**
 * Does a search index after a non-post processing action completes
 * @param routeHeader the route header of the document just acted upon
 */
protected void indexForSearchAfterActionIfNecessary(DocumentRouteHeaderValue routeHeader) {
	RouteContext routeContext = RouteContext.getCurrentRouteContext();
	if (routeHeader.getDocumentType().hasSearchableAttributes() && routeContext.isSearchIndexingRequestedForContext()) {
           DocumentAttributeIndexingQueue queue = KewApiServiceLocator.getDocumentAttributeIndexingQueue(routeHeader.getDocumentType().getApplicationId());
           queue.indexDocument(routeHeader.getDocumentId());
	}
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:12,代码来源:WorkflowDocumentServiceImpl.java

示例5: updateSearchableAttributesIfPossible

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
protected void updateSearchableAttributesIfPossible() {
	// queue the document up so that it can be indexed for searching if it
	// has searchable attributes
	RouteContext routeContext = RouteContext.getCurrentRouteContext();
	if (routeHeader.getDocumentType().hasSearchableAttributes() && !routeContext.isSearchIndexingRequestedForContext()) {
		routeContext.requestSearchIndexingForContext();
           DocumentAttributeIndexingQueue queue = KewApiServiceLocator.getDocumentAttributeIndexingQueue(routeHeader.getDocumentType().getApplicationId());
           queue.indexDocument(getDocumentId());
	}
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:11,代码来源:ActionTakenEvent.java

示例6: getActionRequests

import org.kuali.rice.kew.engine.RouteContext; //导入方法依赖的package包/类
/**
 * Generates action requests
 * @param routeHeader the document route header
 * @param routeNodeDef the RouteNode definition of the route node instance
 * @param nodeInstance the route node instance; this may be null!
 * @param ruleTemplateName the rule template
 * @return list of action requests
 * @throws WorkflowException
 */
public List<ActionRequestValue> getActionRequests(DocumentRouteHeaderValue routeHeader, RouteNode routeNodeDef, RouteNodeInstance nodeInstance, String ruleTemplateName) {
	RouteContext context = RouteContext.getCurrentRouteContext();
	// TODO really the route context just needs to be able to support nested create and clears
	// (i.e. a Stack model similar to transaction intercepting in Spring) and we wouldn't have to do this
	if (context.getDocument() == null) {
		context.setDocument(routeHeader);
	}
	if (context.getNodeInstance() == null) {
		context.setNodeInstance(nodeInstance);
	}

	LOG.debug("Making action requests for document " + routeHeader.getDocumentId());

	RuleSelector ruleSelector = loadRuleSelector(routeNodeDef, nodeInstance);

	List<Rule> rules = ruleSelector.selectRules(context, routeHeader, nodeInstance, ruleTemplateName, effectiveDate);

	// XXX: FIXME: this is a special case hack to expose info from the default selection implementation
	// this is used in exactly one place, RoutingReportAction, to make a distinction between no rules being
	// selected, and no rules actually matching when evaluated
	// if (numberOfRules == 0) {
	//   errors.add(new WorkflowServiceErrorImpl("There are no rules.", "routereport.noRules"));
	// } else {
	//   errors.add(new WorkflowServiceErrorImpl("There are rules, but no matches.", "routereport.noMatchingRules"));
	// }
	if (ruleSelector instanceof TemplateRuleSelector) {
		selectedRules += ((TemplateRuleSelector) ruleSelector).getNumberOfSelectedRules();
	}

	PerformanceLogger performanceLogger = new PerformanceLogger();

	ActionRequestFactory arFactory = new ActionRequestFactory(routeHeader, context.getNodeInstance());

	List<ActionRequestValue> actionRequests = new ArrayList<ActionRequestValue>();
	if (rules != null) {
		LOG.info("Total number of rules selected by RuleSelector for documentType=" + routeHeader.getDocumentType().getName() + " and ruleTemplate=" + ruleTemplateName + ": " + rules.size());
		for (Rule rule: rules) {
			RuleExpressionResult result = rule.evaluate(rule, context);
			if (result.isSuccess() && result.getResponsibilities() != null) {
				// actionRequests.addAll(makeActionRequests(context, rule, routeHeader, null, null));
                   org.kuali.rice.kew.api.rule.Rule ruleDef = org.kuali.rice.kew.api.rule.Rule.Builder.create(rule.getDefinition()).build();
				makeActionRequests(arFactory, result.getResponsibilities(), context, ruleDef, routeHeader, null, null);
			}
		}
	}
	actionRequests = new ArrayList<ActionRequestValue>(arFactory.getRequestGraphs());
	performanceLogger.log("Time to make action request for template " + ruleTemplateName);

	return actionRequests;
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:60,代码来源:FlexRM.java


注:本文中的org.kuali.rice.kew.engine.RouteContext.getCurrentRouteContext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。