同期インターフェースを起動する親タスクの開始

このタスクを実行する理由と時期

同期インターフェースを起動する親タスクには、microflow 内のインライン親タスク、microflow 内のスタンドアロン親タスク、および単純 Java クラスなどを開始する親タスクが含まれます。

このシナリオでは、タスク・テンプレートのインスタンスが作成され、一部の顧客データが渡されます。両方向操作が戻るまで、タスクは実行状態のままです。タスクの結果である OrderNo が呼び出し元に戻されます。

このタスクのステップ

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

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

    TaskTemplate[] taskTemplates = task.queryTaskTemplates
    ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_ORIGINATING",
     "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. タスクを作成して、タスクを同期実行します。

    タスクを同期実行するには、両方向の操作であることが必要です。例では、createAndCallTask メソッドを使用してタスクを作成および実行します。

    ClientObjectWrapper output = task.createAndCallTask( template.getName(),
                                                         template.getNamespace(),
                                                         input);
  4. タスクの結果を分析します。
    DataObject myOutput = null;
    if ( output.getObject() != null && output.getObject() instanceof DataObject )
    {
      myOutput  = (DataObject)output.getObject();
      int order = myOutput.getInt("OrderNo");
    }
関連概念
ビジネス・プロセスおよびタスク関連オブジェクトに対する照会

ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)