📄 workflowclient.java
字号:
Debug.logVerbose("Starting activity.", module); if (!activityRunning(assign.activity())) { start(assign.activity().runtimeKey()); } else { Debug.logWarning("Activity already running; not starting.", module); } } else { Debug.logVerbose("Not starting assignment.", module); } } /** * Start the activity. * @param workEffortId The WorkEffort entity ID for the activitiy. * @return GenericResultWaiter of the start job. * @throws WfException */ public void start(String workEffortId) throws WfException { if (dispatcher == null) { throw new WfException("LocalDispatcher is null; cannot create job for activity startup"); } WfActivity activity = WfFactory.getWfActivity(delegator, workEffortId); if (Debug.verboseOn()) Debug.logVerbose("Starting activity: " + activity.name(), module); if (activityRunning(activity)) throw new WfException("Activity is already running"); Job job = new StartActivityJob(activity); if (Debug.verboseOn()) Debug.logVerbose("Job: " + job, module); try { dispatcher.getJobManager().runJob(job); } catch (JobManagerException e) { throw new WfException(e.getMessage(), e); } } /** * Complete an activity assignment and follow the next transition(s). * @param workEffortId The WorkEffort entity ID for the activity. * @param partyId The assigned / to be assigned users party ID. * @param roleTypeId The assigned / to be assigned role type ID. * @param fromDate The assignment's from date. * @return GenericResultWaiter for the complete job. * @throws WfException */ public void complete(String workEffortId, String partyId, String roleTypeId, Timestamp fromDate, Map result) throws WfException { WfAssignment assign = WfFactory.getWfAssignment(delegator, workEffortId, partyId, roleTypeId, fromDate); if (result != null && result.size() > 0) assign.setResult(result); assign.complete(); } /** * Suspend an activity * @param workEffortId The WorkEffort entity key for the activity object * @throws WfException */ public void suspend(String workEffortId) throws WfException { WfActivity activity = WfFactory.getWfActivity(delegator, workEffortId); if (Debug.verboseOn()) Debug.logVerbose("Suspending activity: " + activity.name(), module); if (!activityRunning(activity)) throw new WfException("Activity is not running"); activity.suspend(); } /** * Resume an activity * @param workEffortId The WorkEffort entity key for the activity object * @throws WfException */ public void resume(String workEffortId) throws WfException { WfActivity activity = WfFactory.getWfActivity(delegator, workEffortId); if (Debug.verboseOn()) Debug.logVerbose("Resuming activity: " + activity.name(), module); if (activityRunning(activity)) throw new WfException("Activity is already running"); activity.resume(); } /** * Abort a process * @param workEffortId The workeffort entity key for the process to abort * @throws WfException */ public void abortProcess(String workEffortId) throws WfException { WfProcess process = WfFactory.getWfProcess(delegator, workEffortId); process.abort(); } /** * Append data to the execution object's process context. * @param workEffortId The WorkEffort entity key for the execution object. * @param append The data to append. * @throws WfException */ public void appendContext(String workEffortId, Map append) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj != null) { Map oCtx = obj.processContext(); oCtx.putAll(append); obj.setProcessContext(oCtx); if (Debug.verboseOn()) Debug.logVerbose("ProcessContext (" + workEffortId + ") => " + obj.processContext(), module); } } /** * Returns the process context of the execution object. * @param workEffortId The WorkEffort entity key for the execution object. * @throws WfException */ public Map getContext(String workEffortId) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj == null) throw new WfException("Invalid Execution Object (null value)"); if (Debug.verboseOn()) Debug.logVerbose("ProcessContext (" + workEffortId + ") => " + obj.processContext(), module); return obj.processContext(); } /** * Gets the state of the execution object defined by the work effort key. * @param workEffortId The WorkEffort entity key for the execution object. * @throws WfException */ public String getState(String workEffortId) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj == null) throw new WfException("Invalid Execution Object (null value)"); if (Debug.verboseOn()) Debug.logVerbose("Current State (" + workEffortId + ") => " + obj.state(), module); return obj.state(); } /** * Set the state of the execution object defined by the work effort key. * @param workEffortId The WorkEffort entity key for the execution object. * @param state The new state of the execution object. * @return Current state of the execution object as a string. * @throws WfException If state change is not allowed. */ public void setState(String workEffortId, String state) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj == null) throw new WfException("Invalid Execution Object (null value)"); obj.changeState(state); if (Debug.verboseOn()) Debug.logVerbose("Current State (" + workEffortId + ") => " + obj.state(), module); } /** * Gets the priority of the execution object defined by the work effort key. * @param workEffortId The WorkEffort entity key for the execution object. * @return Priority of the execution object as a long. * @throws WfException */ public long getPriority(String workEffortId) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj == null) throw new WfException("Invalid Execution Object (null value)"); if (Debug.verboseOn()) Debug.logVerbose("Current Priority (" + workEffortId + ") => " + obj.priority(), module); return obj.priority(); } /** * Set the priority of the execution object defined by the work effort key. * @param workEffortId The WorkEffort entity key for the execution object. * @param priority The new priority of the execution object. * @throws WfException If state change is not allowed. */ public void setPriority(String workEffortId, long priority) throws WfException { WfExecutionObject obj = getExecutionObject(workEffortId); if (obj == null) throw new WfException("Invalid Execution Object (null value)"); obj.setPriority(priority); if (Debug.verboseOn()) Debug.logVerbose("Current Priority (" + workEffortId + ") => " + obj.priority(), module); } // Get the execution object for the workeffort private WfExecutionObject getExecutionObject(String workEffortId) { WfExecutionObject obj = null; try { obj = (WfExecutionObject) WfFactory.getWfActivity(delegator, workEffortId); } catch (WfException e) {// ingore } if (obj == null) { try { obj = (WfExecutionObject) WfFactory.getWfProcess(delegator, workEffortId); } catch (WfException e) {// ignore } } return obj; } // Test an activity for running state. private boolean activityRunning(String workEffortId) throws WfException { return activityRunning(WfFactory.getWfActivity(delegator, workEffortId)); } // Test an activity for running state. private boolean activityRunning(WfActivity activity) throws WfException { if (activity.state().equals("open.running")) return true; return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -