非固有の開始サービスを含む長期実行プロセスの開始

長期実行プロセスは、複数の開始 receive アクティビティーまたは pick アクティビティーを 介して開始することができます。initiate メソッドを使用 して、プロセスを開始することができます。例えば、 プロセスが複数の receive または pick アクティビティー、または複数の onMessage 定義を持つ pick アクティビティーから 開始される場合など、開始サービスが固有のものではない 場合、呼び出されるサービスを識別する必要があります。

このタスクのステップ

  1. オプション: プロセス・テンプレートをリストして、開始するプロセスの名前を探します。

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

    ProcessTemplateData[] processTemplates = process.queryProcessTemplates
      ("PROCESS_TEMPLATE.EXECUTION_MODE =
           PROCESS_TEMPLATE.EXECUTION_MODE.EXCECUTION_MODE_LONG_RUNNING",
       "PROCESS_TEMPLATE.NAME",
        new Integer(50),
        (TimeZone)null); 
    結果は名前でソート されます。長期実行プロセスとして開始できるソート済みテンプレートのうちの最初の 50 個を収容した配列が照会から戻されます。
  2. 呼び出すべき開始サービスを判別します。
    ProcessTemplateData template = processTemplates[0];
    ActivityServiceTemplateData[] startActivities =
            process.getStartActivities(template.getID());
  3. 該当するタイプの入力メッセージを使ってプロセスを開始します。

    メッセージを作成 する場合、メッセージ・タイプ名を指定して、メッセージ 定義が含まれるようにする必要があります。プロセス・ インスタンス名を指定する場合、アンダースコアーで 開始しないようにする必要があります。プロセス・ インスタンス名が指定されていない場合、ストリング・ フォーマットのプロセス・インスタンス ID (PIID) が名前 として使用されます。

    ActivityServiceTemplateData activity = startActivities[0];
    //create a message for the service to be called
    ClientObjectWrapper input = process.createMessage
                                (activity.getServiceTemplateID(),
                                 activity.getActivityTemplateID(),
                                 activity.getInputMessageTypeName());
    DataObject myMessage = null;
    if ( input.getObject()!= null && input.getObject() instanceof DataObject )
    {
      myMessage = (DataObject)input.getObject();
      //set the strings in the message, for example, a customer name
      myMessage.setString("CustomerName", "Smith");
    }
    //start the process
    PIID piid = process.sendMessage(activity.getServiceTemplateID(),
                                 activity.getActivityTemplateID(),
                                 input);

    このアクションによって、インスタンスが作成され、一部の 顧客データが受け渡されます。プロセスが開始される と、新規プロセス・インスタンスのオブジェクト ID を呼び出し元に戻します。

    プロセス・インスタンス の開始は、要求の呼び出し元に設定され、プロセス・ インスタンスの作業項目を受信します。プロセス・ インスタンスのプロセス管理者、リーダー、および エディターが決定され、プロセス・インスタンスの 作業項目を受信します。追加のアクティビティー・ インスタンスが決定されます。これらは自動的に 開始されるか、または staff、receive、pick アクティビティーの場合、作業項目が潜在的な所有者に 対して作成されます。

関連概念
ビジネス・プロセスおよびタスク関連オブジェクトに対する照会

(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。