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

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

長期実行プロセスは、複数の開始 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),
        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.initiate(activity.getServiceTemplateID(),
                                 activity.getActivityTemplateID(),
                                 null,
                                 input);

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

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

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

ご利用条件 |


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