启用工作流。 如图 3 所示,通过 BPEL 流程从外部系统检索客户数据并将其显示在工作流面板中。然后,用户验证数据,输入存款额,之后单击 OK。
图 3 验证客户数据和输入存款额
工作流功能基于 BPEL 流程管理器提供的 ITask 和 IWorklistService 接口。RIA 将 IWorklistService 中的任务与完成给定任务所需的工作流屏幕相关联。当发生相应的表单验证时,用户界面对 completeTask 方法进行远程对象调用(如下所示),以将 UI 中捕获的数据发送至 BPEL 流程进行进一步的处理。
/** * This function gets the use input from workflow zone, relates it to a task * and completes the task.The function uses instance reference id for * identifying process instance. */ public String completeTask(String strInstanceReferenceID, String strActivityLabel, Document payload) { System.out.println("completeTask-" + strInstanceReferenceID + "-" + strActivityLabel); String strStatus = "OK"; try { IWorklistService worklist = getWorklist(); // get task reference ITask task = getTask(strInstanceReferenceID, strActivityLabel); // set task payload task.setAttachment(payload.getDocumentElement()); worklist.completeTask(task); } catch (Exception e){ e.printStackTrace(); strStatus = ERROR_STRING; } return strStatus; } |
以上代码将任务特定的数据置于 ITask 接口提供的任务附件中。该接口不但将相关的数据发送回 BPEL 流程,而且还将该数据置于 BPEL 流程审计线索中。
下面,我将介绍 RIA 应用程序的另一个重要方面:流程监控。