タスク・インスタンスの作成と開始

このシナリオでは、ヒューマン・タスクを定義するタスク・テンプレートのインスタンスを作成し、タスク・インスタンスを開始する方法を示します。

このタスクのステップ

  1. オプション: タスク・テンプレートをリストして、実行する親タスクの名前を探します。

    タスクの名前が既に分かっている場合は、このステップはオプションです。

    TaskTemplate[] taskTemplates = task.queryTaskTemplates
    ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN",
     "TASK_TEMPL.NAME",
      new Integer(50),
      (TimeZone)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,
                                           (ReplyHandlerWrapper)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. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。