本文整理汇总了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);
}
示例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);
}
示例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);
}
示例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());
}
}
示例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());
}
}
示例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;
}