1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.kew.actions.asyncservices;
18
19 import org.kuali.rice.kew.actions.MoveDocumentAction;
20 import org.kuali.rice.kew.actiontaken.ActionTakenValue;
21 import org.kuali.rice.kew.exception.WorkflowRuntimeException;
22 import org.kuali.rice.kew.routeheader.DocumentRouteHeaderValue;
23 import org.kuali.rice.kew.service.KEWServiceLocator;
24 import org.kuali.rice.kim.bo.entity.KimPrincipal;
25
26 import java.util.Set;
27
28
29
30
31
32
33
34 public class MoveDocumentProcessor implements MoveDocumentService {
35
36 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(MoveDocumentProcessor.class);
37
38 public void moveDocument(String principalId, DocumentRouteHeaderValue document, ActionTakenValue actionTaken, Set<String> nodeNames) {
39 KEWServiceLocator.getRouteHeaderService().lockRouteHeader(document.getRouteHeaderId(), true);
40 KimPrincipal principal = KEWServiceLocator.getIdentityHelperService().getPrincipal(principalId);
41 MoveDocumentAction moveAction = new MoveDocumentAction(document, principal, "", null);
42 LOG.debug("Doing move document work " + document.getRouteHeaderId());
43 try {
44 moveAction.performDeferredMoveDocumentWork(actionTaken, nodeNames);
45 } catch (Exception e) {
46 throw new WorkflowRuntimeException(e);
47 }
48 LOG.debug("Work done and document requeued, document " + document.getRouteHeaderId());
49 }
50 }