20.6 ページ・プロセスでのワークフローの使用について

ページに新しいワークフロー・プロセス・タイプ・プラグインを追加して、ワークフロー操作を公開します。

ワークフロー・プロセス・タイプ・プラグインは、アプリケーション・ページの処理セクションで使用可能な新しいプロセス・タイプです。このプラグインでは、ワークフローの特定の操作を公開します。

20.6.1 ワークフロー・インスタンスの開始

ワークフロー開始ページ・プロセスを使用してワークフロー・インスタンスを開始します。

APEXでは、タスクを作成するためにワークフロー・プロセス・タイプ・プラグインを定義して、ページ・プロセスに追加する必要があります。ページ・プロセスが実行されるときに、APEXはワークフロー定義に基づいて新しいワークフロー・インスタンスを作成します。このプロセスを使用するには、1つ以上のワークフロー定義が共有コンポーネントとしてアプリケーションに存在している必要があります。

ワークフロー・インスタンスを開始するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
  2. 「レンダリング」または「プロセス」タブで、プロセスが発生するノードを探します。右クリックして、「プロセスの作成」を選択します。
  3. 「指定」で、次の項目を指定します。
    1. 名前 - プロセスの名前を指定します。
    2. タイプ - 「ワークフロー」を選択します。
  4. 「設定」で、次の項目を指定します。
    1. タイプ - 「開始」を選択します。
    2. 定義 - ワークフロー定義を選択します。
  5. ワークフロー・パラメータを値にバインドします。
    この値は、「静的コンテンツ」、「ページ・アイテム」(オプションの書式マスク付き)、「SQL問合せ」、「式」、「ファンクション本体」、「デフォルト」および「NULL」になります。値の割当てが必要になるのは必須パラメータのみです。
  6. (オプション)「設定」で、対応するワークフロー・バージョンで指定されているソース表の主キーの値を含むページ・アイテムを選択することで、ディテール主キーを指定します。
  7. (オプション)「設定」で、ワークフローIDアイテムを指定します - 作成されるワークフロー・インスタンスのIDをページ・アイテムに返す必要がある場合は、ここでそのページ・アイテムを指定します。
  8. 残りのプロセスを構成します。
    詳細は、「ページ・プロセスの作成」を参照してください。
  9. ページ・プロセス・パラメータを設定します。
    ワークフロー定義にパラメータが指定されている場合、これらはページのプロセス・ツリーに表示されます。パラメータは、静的値またはページ・アイテムに設定できます。パラメータが不要な場合は、Nullのままにできます。パラメータがワークフロー定義で「必須」とマークされている場合は、プロセスで設定する必要があります。必須パラメータが設定されていない場合、ページの保存時にエラーが発生します。
  10. 「保存」をクリックします。

20.6.2 ワークフロー・インスタンスの終了

ワークフローの終了ページ・プロセスを使用して、実行中のワークフローを終了します。

現在のワークフローが完了するまで待つように親ワークフローが構成されている場合は、ワークフロー(別のワークフローから起動された)を終了すると、親ワークフローも終了します。

ワークフロー・インスタンスを終了するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
  2. 「レンダリング」または「プロセス」タブで、プロセスが発生するノードを探します。右クリックして、「プロセスの作成」を選択します。
  3. 「指定」で、次の項目を指定します。
    1. 名前 - プロセスの名前を指定します。
    2. タイプ - 「ワークフロー」を選択します。
  4. 「設定」で、次の項目を指定します。
    1. タイプ - 「終了」を選択します。
    2. ワークフローIDアイテム - そのワークフロー・インスタンスIDが含まれているページ・アイテムを指定します。
  5. 残りのプロセスを構成します。
    詳細は、「ページ・プロセスの作成」を参照してください。
  6. 「保存」をクリックします。

20.6.3 ワークフロー・インスタンスの一時停止

ワークフロー一時停止ページ・プロセスを使用して、実行中のワークフローを一時停止します。

ワークフロー・インスタンスを一時停止するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
  2. 「レンダリング」または「プロセス」タブで、プロセスが発生するノードを探します。右クリックして、「プロセスの作成」を選択します。
  3. 「指定」で、次の項目を指定します。
    1. 名前 - プロセスの名前を指定します。
    2. タイプ - 「ワークフロー」を選択します。
  4. 「設定」で、次の項目を指定します。
    1. タイプ - 「一時停止」を選択します。
    2. ワークフローIDアイテム - そのワークフロー・インスタンスIDが含まれているページ・アイテムを指定します。
  5. 残りのプロセスを構成します。
    詳細は、「ページ・プロセスの作成」を参照してください。
  6. 「保存」をクリックします。

20.6.4 ワークフロー・インスタンスの再開

ワークフロー再開ページ・プロセスを使用して、一時停止されたワークフローを再開します。

ワークフロー・インスタンスを再開するには:
  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
  2. 「レンダリング」または「プロセス」タブで、プロセスが発生するノードを探します。右クリックして、「プロセスの作成」を選択します。
  3. 「指定」で、次の項目を指定します。
    1. 名前 - プロセスの名前を指定します。
    2. タイプ - 「ワークフロー」を選択します。
  4. 「設定」で、次の項目を指定します。
    1. タイプ - 「再開」を選択します。
    2. ワークフローIDアイテム - そのワークフロー・インスタンスIDが含まれているページ・アイテムを指定します。
    3. (オプション)アクティビティの静的IDアイテム - そのワークフローを再開するアクティビティの静的IDを指定します。
  5. 残りのプロセスを構成します。
    詳細は、「ページ・プロセスの作成」を参照してください。
  6. 「保存」をクリックします。

20.6.4.1 任意のアクティビティでの一時停止されたワークフローの再開

一時停止されたワークフローを任意のアクティビティで再開する方法について学習します。

一時停止されたワークフローを、そのワークフロー内の任意のアクティビティで再開できます。このためには、APEX_WORKFLOW.RESUMEを使用し、そのワークフロー・インスタンスIDと、そのワークフローを再開するアクティビティの静的IDを指定します。デフォルトは現在のアクティビティであり、これは、そのワークフローが一時停止されたときのアクティビティです。

現在のアクティビティとは異なるアクティビティでワークフローが再開される場合、現在のアクティビティは終了され、指定されたアクティビティでそのワークフローが再開されます。

例20-1 ワークフロー管理コンソールでのワークフロー・アクティビティIDの公開

ワークフロー管理コンソールでワークフロー・アクティビティIDを公開するには、次のSQL問合せを使用して、ページのダイアログ・フッターに「選択リスト」タイプの新しいページ・アイテムP<X>_ACTIVITY_STATIC_IDを追加します。

select wa.name      as name,
       wa.static_id as value
  from apex_appl_workflow_activities wa,
       apex_appl_workflow_versions   wv,
       apex_workflows                wf$
 where wf$.workflow_id          = :P<X>_WORKFLOW_ID
   and wf$.workflow_version_id  = wv.version_id
   and wv.version_id            = wa.version_id
   and wv.workflow_static_id    = wa.workflow_static_id

次に、「再開」プロセス要素を変更して、アクティビティの静的IDアイテムにページ・アイテム値P<X>_ACTIVITY_STATIC_IDを取リ入れるようにします。

これにより、ビジネス管理者がドロップダウン・リストからアクティビティの静的IDを選択し、「再開」をクリックして、指定したアクティビティでワークフローを再開できるようになります。

20.6.5 ワークフロー・インスタンスの再試行

ワークフロー再試行ページ・プロセスを使用して、失敗したワークフローを再試行します。

ワークフロー・インスタンスを再試行するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
  2. 「レンダリング」または「プロセス」タブで、プロセスが発生するノードを探します。右クリックして、「プロセスの作成」を選択します。
  3. 「指定」で、次の項目を指定します。
    1. 名前 - プロセスの名前を指定します。
    2. タイプ - 「ワークフロー」を選択します。
  4. 「設定」で、次の項目を指定します。
    1. タイプ - 「再試行」を選択します。
    2. ワークフローIDアイテム - そのワークフロー・インスタンスIDが含まれているページ・アイテムを指定します。
  5. 残りのプロセスを構成します。
    詳細は、「ページ・プロセスの作成」を参照してください。
  6. 「保存」をクリックします。