20.14.1.4 タスク定義の編集

「共有コンポーネント」ページの「ワークフローと自動化」ヘッダーでタスク定義の詳細を編集します。

20.14.1.4.1 例: タスク定義参加者の編集

「共有コンポーネント」ページの「タスク定義」にアクセスして、タスク定義参加者を編集します。

この例では、「ギャラリ」からインストールできるSample Workflows, Approvals, and Tasksアプリケーションを使用します。この例では、職務変更タスク定義の潜在的所有者の1人であるBoが、その定義のビジネス管理者になったとします。

タスク定義参加者を編集するには:

  1. Sample Workflows, Approvals, and Tasksアプリケーションを選択します。
  2. 「タスク定義」ページにナビゲートします。
    1. アプリケーションのホームページで、「共有コンポーネント」をクリックします。
    2. 「ワークフローと自動化」で、「タスク定義」を選択します。
  3. 「職務変更」をクリックします。
  4. 「参加者」で、「参加者タイプ」が「潜在的所有者」で「値」がBoの行を選択します。
  5. 「編集」をクリックします。
  6. 「参加者タイプ」を「潜在的所有者」から「ビジネス管理者」に変更します。
  7. 「変更の適用」をクリックします。
これで、Boはすべての新しい職務変更タスクのビジネス管理者になりました。すでに存在する職務変更タスクは変更されません。

20.14.1.4.2 例: 休暇ルール・プロシージャの追加

「共有コンポーネント」ページで「タスク定義」を編集して休暇ルールを追加します。

ノート:

この項では、タスク定義への休暇ルール・プロシージャの追加について説明します。アプリケーション定義に休暇ルール・プロシージャを追加することもできます。休暇ルール・プロシージャをアプリケーション定義に追加すると、休暇ルールはタスク定義のすべてのタスクに適用されます。

ヒント:

タスク定義レベルで定義された休暇ルールは、アプリケーション・レベルで定義された休暇ルールをオーバーライドします。
この例では、「ギャラリ」からインストールできるSample Workflows, Approvals, and Tasksアプリケーションを使用します。この例では、タスク参加者のJaneが休暇中であるとします。Janeが休暇中の場合、ScottがJaneの承認の責任を負います。
休暇ルール・プロシージャを追加する前に、APEXワークスペースに次のプロシージャを追加する必要があります:
procedure alternate_job_approvers(
                p_param    in apex_human_task.t_vacation_rule_input,
                p_result  out apex_human_task.t_vacation_rule_result)
    is 
        l_result            apex_human_task.t_vacation_rule_result;
        l_changes           apex_human_task.t_task_participant_changes;
        l_participants      apex_human_task.t_task_participants;
        l_new_participant   apex_human_task.t_task_participant;
        l_old_participant   apex_human_task.t_task_participant;
        l_has_changed       boolean                             := false;
        l_index             pls_integer                         := 1;
    begin
        l_participants := p_param.original_participants;
        for i in 1..l_participants.count loop
            if l_participants(i).value = 'JANE' then
                l_old_participant               :=  l_participants(i);
                l_new_participant.value         := 'SCOTT';
                l_new_participant.type          := 'POTENTIAL_OWNER';
                l_new_participant.identity      := 'USER';
                l_has_changed                   := true;
            end if;
        end loop;
        if l_has_changed then
            l_participants(l_participants.count + 1) := l_new_participant;
        
            l_changes(l_index).old_participant   := l_old_participant;
            l_changes(l_index).new_participant   := l_new_participant;
            l_changes(l_index).change_reason     := 'Jane is out on maternity leave';
        end if;
        l_result.participant_changes            := l_changes;
        l_result.has_participant_changes        := l_has_changed;
        p_result                                := l_result;
    end;
プロシージャの追加の詳細は、『Oracle APEX SQLワークショップ・ガイド』「プロシージャの作成」を参照してください。

休暇ルール・プロシージャを追加するには:

  1. Sample Workflows, Approvals, and Tasksアプリケーションを選択します。
  2. 「タスク定義」ページにナビゲートします。
    1. アプリケーションのホームページで、「共有コンポーネント」をクリックします。
    2. 「ワークフローと自動化」で、「タスク定義」を選択します。
  3. 「職務変更」をクリックします。
  4. 「参加者」で、「休暇ルール・プロシージャ」に休暇ルール・プロシージャ名を入力します。
    プロシージャ名は、[schemaName.[packageName]].procedureNameの形式にする必要があります。
  5. 「変更の適用」をクリックします。
ScottはJaneの代替参加者になりました。

20.14.1.4.3 例: タスク定義パラメータの編集

「共有コンポーネント」ページの「タスク定義」にアクセスして、タスク定義パラメータを編集します。

この例では、「ギャラリ」からインストールできるSample Workflows, Approvals, and Tasksアプリケーションを使用します。この例では、職務変更リクエストについて、「2 - タスクの詳細」に古い役職名も新しい役職名も表示するとします。

タスク定義パラメータを編集するには:

  1. Sample Workflows, Approvals, and Tasksアプリケーションを選択します。
  2. 「タスク定義」ページにナビゲートします。
    1. アプリケーションのホームページで、「共有コンポーネント」をクリックします。
    2. 「ワークフローと自動化」で、「タスク定義」を選択します。
  3. 「職務変更」をクリックします。
  4. 「パラメータ」で、「行の追加」をクリックします。
    1. 静的ID - JOB
    2. ラベル - Previous Job
    3. データ型 - String
    4. 必須 - はい
    5. 参照可能 - はい
    6. 更新可能 - Yes
  5. 「変更の適用」をクリックします。
  6. アプリケーションのホームページに戻り、ページ・デザイナで「7 - 職務変更のリクエスト」を開きます。
  7. 「プロセス」タブを開き、タスクの送信プロセスを展開します。
  8. 「パラメータ」で、「Previous Job」を選択します。
  9. 「値」で、「タイプ」を「アイテム」に設定します。
  10. アイテムをP7_JOBに設定します。
  11. 「保存」をクリックします。
    これで、「7 - 職務変更のリクエスト」を保存すると、「Previous Job」の値が格納されます。
  12. ページ・デザイナで「2 - タスクの詳細」を開き、「詳細」セクションにPARAM_LABEL列とPARAM_VALUE列があることを確認します。
    新しい「Previous Job」パラメータを含む、すべての表示可能パラメータが、タスクの詳細ページの「詳細」セクションに表示されます。パラメータが更新可能としてマークされているため、ログイン・ユーザーがタスクの実際の所有者の場合は、タスクの詳細セクションに、タスク・パラメータを編集するための「編集」ボタンがあります。
この変更をテストするには、「従業員」ページに移動して、新しい職務変更をリクエストします。「職務変更のリクエスト」ページを送信したら、「マイ・リクエスト」または「承認管理」からタスク詳細ページにアクセスします。「詳細」セクションには、新しいジョブと前のジョブの両方が表示されます。

20.14.1.4.4 例: タスク定義アクションの追加および編集

「共有コンポーネント」ページの「タスク定義」にアクセスして、タスク定義アクションを追加および編集します。

この例では、「ギャラリ」からインストールできるSample Workflows, Approvals, and Tasksアプリケーションを使用します。この例では、タスクが完了するたびにイベントをログに記録するアクションを追加するとします。
この例では、SQLワークショップのSQLコマンド・ページを介して、メトリック表をSample Workflows, Approvals, and Tasksアプリケーションに追加する必要があります。
CREATE TABLE EBA_DEMO_APPR_METRICS( 
  ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
  TASK_DEF_STATIC_ID VARCHAR2(255),
  OUTCOME_CODE VARCHAR2(32),
  APPROVER VARCHAR2(255),
  APPROVAL_DATE DATE,
  DAYS_ELAPSED NUMBER
);       

タスク定義アクションを追加および編集するには:

  1. Sample Workflows, Approvals, and Tasksアプリケーションを選択します。
  2. 「タスク定義」ページにナビゲートします。
    1. アプリケーションのホームページで、「共有コンポーネント」をクリックします。
    2. 「ワークフローと自動化」で、「タスク定義」を選択します。
  3. 「給与変更」をクリックします。
  4. 「アクション」セクションで、「アクションの追加」をクリックします。
    1. 名前 - Salary Change Metrics
    2. タイプ - Execute Code
    3. 実行順序 - デフォルト値のままにします。
    4. イベント時 - 完了
    5. 結果 - 空白のままにします。
    6. 成功メッセージ - 空白のままにします。
    7. 位置 - ローカル・データベース
    8. 言語 - PL/SQL
    9. コード - サンプルinsert文を入力します。
      insert into eba_demo_appr_metrics(task_def_static_id,outcome_code,approver,days_elapsed,approval_date)
      select task_def_static_id, outcome_code, actual_owner, sysdate - cast(created_on as date), sysdate
      from apex_tasks
      where task_id = :APEX$TASK_ID;
  5. 「エラー処理」「サーバー側の条件」および「詳細」セクションは、そのままでかまいません。
  6. 「作成」をクリックします。
  7. 「変更の適用」をクリックします。
新しいアクションにより、給与変更タスクが完了するたびにEBA_DEMO_APPR_METRICSに行が追加されます。この表に基づいて対話モード・レポートを設定し、ユーザーが承認タスクのメトリックを表示できるようにします。