6.7 CREATE_TASKファンクション

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

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

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

構文

APEX_APPROVAL.CREATE_TASK (
    p_application_id         IN NUMBER            DEFAULT wwv_flow.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_detail_pk              IN VARCHAR2          DEFAULT NULL )
return number; )

パラメータ

表6-7 CREATE_TASKのパラメータ

パラメータ 説明
p_application_id タスクを作成するアプリケーションID。
p_task_def_static_id タスク定義の静的ID。
p_subject 件名(タスクの式)。
p_parameters タスクのパラメータ。
p_priority (オプション)タスクの優先度。デフォルトはNULLです。優先度が指定されていない場合は、対応するタスク定義に設定されている優先度を使用します。
p_initiator (オプション)タスクのイニシエータ情報。
p_detail_pk (オプション)タスク詳細の主キー値。

戻り値

新しく作成されたタスクのリソース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_parameters => apex_approval.t_task_parameters(
                 1 => apex_approval.t_task_parameter(static_id => 'REQ_DATE', string_value => sysdate),
                 2 => apex_approval.t_task_parameter(static_id => 'REQ_AMOUNT', string_value => l_req_amount),
                 3 => apex_approval.t_task_parameter(static_id => 'REQ_ITEM', string_value => l_req_item),
                 4 => apex_approval.t_task_parameter(static_id => 'REQ_ID', string_value => l_req_id)),
                 p_detail_pk => l_req_id);
END;