本方案说明如何创建定义了人员任务的任务模板实例以及如何启动该任务实例。
如果您已知道该任务的名称,则此步骤是可选的。
TaskTemplate[] taskTemplates = task.queryTaskTemplates ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN", "TASK_TEMPL.NAME", new Integer(50), null);
结果将按名称排序。此查询返回一个数组,该数组包含前 50 个人员任务模板(已排序)。
TaskTemplate template = taskTemplates[0]; // create a message for the selected task ClientObjectWrapper input = task.createInputMessage( template.getID()); DataObject myMessage = null ; if ( input.getObject()!= null && input.getObject() instanceof DataObject ) { myMessage = (DataObject)input.getObject(); //set the parts in the message, for example, a customer name myMessage.setString("CustomerName", "Smith"); }
本示例使用 createAndStartTask 方法来创建和启动任务。
TKIID tkiid = task.createAndStartTask( template.getName(), template.getNamespace(), input null);
为该任务实例的相关人员创建了工作项。例如,潜在所有者可以声明新的任务实例。
ClientObjectWrapper input2 = task.claim(tkiid); DataObject taskInput = null ; if ( input2.getObject()!= null && input2.getObject() instanceof DataObject ) { taskInput = (DataObject)input2.getObject(); // read the values ... }
声明任务实例时,将返回该任务的输入消息。