创建和启动任务实例

本方案说明如何创建定义了人员任务的任务模板实例以及如何启动该任务实例。

本任务的步骤

  1. 可选: 列示任务模板以查找所要运行的发起任务的名称。

    如果您已知道该任务的名称,则此步骤是可选的。

    TaskTemplate[] taskTemplates = task.queryTaskTemplates
    ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN",
     "TASK_TEMPL.NAME",
      new Integer(50),
      null);

    结果将按名称排序。此查询返回一个数组,该数组包含前 50 个人员任务模板(已排序)。

  2. 创建适当类型的输入消息。
    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");
    }
  3. 创建并启动该人员任务;在本示例中未指定应答处理程序。

    本示例使用 createAndStartTask 方法来创建和启动任务。

    TKIID tkiid = task.createAndStartTask( template.getName(), 
                                           template.getNamespace(),
                                           input
                                           null);

    为该任务实例的相关人员创建了工作项。例如,潜在所有者可以声明新的任务实例。

  4. 声明任务实例。
    ClientObjectWrapper input2 = task.claim(tkiid);
    DataObject taskInput = null ;
    if ( input2.getObject()!= null && input2.getObject() instanceof DataObject )
    {
      taskInput = (DataObject)input2.getObject();
      // read the values
      ...
    }  

    声明任务实例时,将返回该任务的输入消息。


使用条款 |


(c) Copyright IBM Corporation 2005, 2006.
本信息中心基于 Eclipse 技术(http://www.eclipse.org)。