9.9 CREATE_TASKファンクション

注意:

このAPIは非推奨であり、将来のリリースで削除される予定です。

かわりにAPEX_HUMAN_TASKを使用してください。

このファンクションは、新しいタスクを作成します。新しいタスク(インスタンス)が作成されます。タスク定義参加者の設定に応じて、タスクは状態UnassignedまたはAssignedに設定されます。

タスク定義の潜在的所有者が単一の場合、タスクはAssignedに設定されます。

タスクの潜在的所有者が複数の場合、タスクはUnassignedに設定され、潜在的所有者のいずれかによって要求できます。このプロシージャは、対応するタスク定義に潜在的所有者が見つからない場合、例外をスローします。

構文

APEX_APPROVAL.CREATE_TASK (
    p_application_id         IN NUMBER                   DEFAULT apex_application.g_flow_id,
    p_task_def_static_id     IN VARCHAR2,
    p_subject                IN VARCHAR2                 DEFAULT NULL,
    p_parameters             IN t_task_parameters        DEFAULT c_empty_task_parameters,
    p_priority               IN INTEGER                  DEFAULT NULL,
    p_initiator              IN VARCHAR2                 DEFAULT NULL,
    p_initiator_can_complete IN BOOLEAN                  DEFAULT NULL,
    p_detail_pk              IN VARCHAR2                 DEFAULT NULL,
    p_due_date               IN TIMESTAMP WITH TIME ZONE DEFAULT NULL )
RETURN NUMBER;

パラメータ

パラメータ 説明
p_application_id タスクを作成するアプリケーションID。
p_task_def_static_id タスク定義の静的ID。
p_subject 件名(タスクの式)。
p_parameters タスクのパラメータ。
p_priority (オプション)タスクの優先度。デフォルトはNULLです。優先度が指定されていない場合は、対応するタスク定義に設定されている優先度を使用します。
p_initiator (オプション) TRUEの場合、タスク・インスタンスのイニシエータはこのタスクを承認または却下できます。値が指定されていない場合は、対応するタスク定義の設定が使用されます。
p_initiator_can_complete (オプション)タスクの開始者がタスクを完了できるようにします(デフォルトはNULL)。このパラメータを指定しない場合、対応するタスク定義の値が使用されます。
p_detail_pk (オプション)タスク詳細の主キー値。
p_due_date (オプション)タスクの期日を表すページ・アイテム。この値を指定すると、このタスクが基づいているタスク定義に指定されている期日が上書きされます。

戻り値

新しく作成されたタスクのリソースIDを戻します。

次の例では、データベース内のレコードのシステムに購買依頼品目を作成した後、ユーザーが承認した購買依頼品目を取得するために新しいヒューマン・タスクを作成します。

DECLARE
   l_req_id     number;
   l_req_item   varchar2(100) := 'Some requisition item requiring approval';
   l_req_amount number := 2499.42;
   l_task_id    number;
BEGIN
    insert into requisitions(created_by, creator_emailid, item, item_amount, item_category)
    values (:emp_uid, :emp_email, l_req_item, l_req_amount, 'Equipment')
    returning id into l_req_id;
    commit;

    l_task_id := apex_approval.create_task(
        p_application_id => 110,
        p_task_def_static_id => 'REQAPPROVALS',
        p_subject => 'Requisition ' || l_req_id || ': ' || l_req_item || ' for ' || l_req_amount,
        p_initiator => :emp_uid,
        p_initiator_can_complete => true,
        p_parameters => apex_approval.t_task_parameters(
            1 => apex_approval.t_task_parameter(static_id => 'REQ_DATE', string_value => sysdate),
            3 => apex_approval.t_task_parameter(static_id => 'REQ_AMOUNT', string_value => l_req_amount),
            4 => apex_approval.t_task_parameter(static_id => 'REQ_ITEM', string_value => l_req_item),
            5 => apex_approval.t_task_parameter(static_id => 'REQ_ID', string_value => l_req_id)
        ),
        p_detail_pk => l_req_id
    );
END;