Description:
You can update information for tasks with the Open status. You can answer questions, add comments, and attach references. You can also view status, priority, owner, assignee, schedule, start and end date, instructions, supporting documents or Web links, and workflow. The workflow shows the approval chain of the task and displays the user name, access role (assignee or approver), status, and dates on which users performed their actions. If an administrator has included instructions with references for which there are links, you can link directly to the task.
DECLARE
l_return_status VARCHAR(10);
l_msg_count VARCHAR(240);
l_MSG_DATA VARCHAR(240);
l_rowid VARCHAR2(240);
task_record PA_TASKS%ROWTYPE;
task_struc_record PA_PROJ_ELEMENTS%ROWTYPE;
l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
l_last_update_date DATE;
l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
pt_task_name PA_TASKS.TASK_NAME%TYPE;
l_task_name PA_PROJ_ELEMENTS.NAME%TYPE;
l_task_name1 PA_PROJ_ELEMENTS.NAME%TYPE;
l_project_id_PREM PA_PROJECTS_ALL.PROJECT_ID%TYPE;
l_task_id PA_TASKS.TASK_ID%TYPE;
l_task_manager_person_id PA_TASKS.TASK_MANAGER_PERSON_ID%TYPE;
l_output VARCHAR2 (2000);
l_msg_dummy VARCHAR2 (2000);
n NUMBER := 0;
—
BEGIN
l_project_id_PREM :=3631;
l_task_id :=6691;
l_task_manager_person_id :=14337;
BEGIN
SELECT *
INTO task_record
FROM pa_tasks
WHERE project_id = l_project_id_PREM
AND task_id =l_task_id;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT *
INTO task_struc_record
FROM pa_proj_elements
WHERE PROJECT_ID = l_project_id_PREM
AND PROJ_ELEMENT_ID = l_task_id;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT ROWID
INTO l_rowid
FROM pa_tasks
WHERE project_id = l_project_id_PREM
AND task_id = l_task_id;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT SYSDATE
INTO l_last_update_date
FROM DUAL;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT task_name
INTO pt_task_name
FROM pa_tasks
WHERE task_id = l_task_id;
SELECT name
INTO l_task_name
FROM pa_proj_elements
WHERE proj_element_id = l_task_id;
IF pt_task_name = l_task_name THEN
l_task_name1 :=l_task_name;
ELSE
l_task_name1 := pt_task_name;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
PA_TASKS_PKG.UPDATE_ROW(
X_ROWID =>l_rowid,
X_TASK_ID =>task_record.task_id,
X_PROJECT_ID =>task_record.project_id,
X_TASK_NUMBER =>task_record.task_number,
X_LAST_UPDATE_DATE =>l_last_update_date,
X_LAST_UPDATED_BY =>l_last_updated_by,
X_LAST_UPDATE_LOGIN =>l_last_update_login,
X_Task_Name =>task_record.task_name,
X_Long_Task_Name =>task_record.long_task_name,
X_TOP_TASK_ID =>task_record.top_task_id,
X_WBS_LEVEL =>task_record.wbs_level,
X_READY_TO_BILL_FLAG =>task_record.ready_to_bill_flag,
X_READY_TO_DISTRIBUTE_FLAG =>task_record.ready_to_distribute_flag,
X_PARENT_TASK_ID =>task_record.parent_task_id,
X_DESCRIPTION =>task_record.description,
X_CARRYING_OUT_ORGANIZATION_ID =>task_record.carrying_out_organization_id,
X_SERVICE_TYPE_CODE =>task_record.service_type_code,
X_TASK_MANAGER_PERSON_ID =>l_task_manager_person_id,
X_CHARGEABLE_FLAG =>task_record.chargeable_flag,
X_BILLABLE_FLAG =>task_record.billable_flag,
X_LIMIT_TO_TXN_CONTROLS_FLAG =>task_record.limit_to_txn_controls_flag,
X_START_DATE =>task_record.start_date,
X_COMPLETION_DATE =>task_record.completion_date,
X_ADDRESS_ID =>task_record.address_id,
X_LABOR_BILL_RATE_ORG_ID =>task_record.labor_bill_rate_org_id,
X_LABOR_STD_BILL_RATE_SCHDL =>task_record.labor_std_bill_rate_schdl,
X_LABOR_SCHEDULE_FIXED_DATE =>task_record.labor_schedule_fixed_date,
X_LABOR_SCHEDULE_DISCOUNT =>task_record.labor_schedule_discount,
X_NON_LABOR_BILL_RATE_ORG_ID =>task_record.non_labor_bill_rate_org_id,
X_NL_STD_BILL_RATE_SCHDL =>task_record.non_labor_std_bill_rate_schdl,
X_NL_SCHEDULE_FIXED_DATE =>task_record.non_labor_schedule_fixed_date,
X_NON_LABOR_SCHEDULE_DISCOUNT =>task_record.non_labor_schedule_discount,
X_LABOR_COST_MULTIPLIER_NAME =>task_record.labor_cost_multiplier_name,
X_ATTRIBUTE_CATEGORY =>task_record.attribute_category,
X_ATTRIBUTE1 =>task_record.attribute1,
X_ATTRIBUTE2 =>task_record.attribute2,
X_ATTRIBUTE3 =>task_record.attribute3,
X_ATTRIBUTE4 =>task_record.attribute4,
X_ATTRIBUTE5 =>task_record.attribute5,
X_ATTRIBUTE6 =>task_record.attribute6,
X_ATTRIBUTE7 =>task_record.attribute7,
X_ATTRIBUTE8 =>task_record.attribute8,
X_ATTRIBUTE9 =>task_record.attribute9,
X_ATTRIBUTE10 =>task_record.attribute10,
X_COST_IND_RATE_SCH_ID =>task_record.cost_ind_rate_sch_id,
X_REV_IND_RATE_SCH_ID =>task_record.rev_ind_rate_sch_id,
X_INV_IND_RATE_SCH_ID =>task_record.inv_ind_rate_sch_id,
X_COST_IND_SCH_FIXED_DATE =>task_record.cost_ind_sch_fixed_date,
X_REV_IND_SCH_FIXED_DATE =>task_record.rev_ind_sch_fixed_date,
X_INV_IND_SCH_FIXED_DATE =>task_record.inv_ind_sch_fixed_date,
X_LABOR_SCH_TYPE =>task_record.labor_sch_type,
X_NON_LABOR_SCH_TYPE =>task_record.non_labor_sch_type,
X_ALLOW_CROSS_CHARGE_FLAG =>task_record.allow_cross_charge_flag,
X_PROJECT_RATE_DATE =>task_record.project_rate_date,
X_PROJECT_RATE_TYPE =>task_record.project_rate_type,
X_CC_PROCESS_LABOR_FLAG =>task_record.cc_process_labor_flag,
X_LABOR_TP_SCHEDULE_ID =>task_record.labor_tp_schedule_id,
X_LABOR_TP_FIXED_DATE =>task_record.labor_tp_fixed_date,
X_CC_PROCESS_NL_FLAG =>task_record.cc_process_nl_flag,
X_NL_TP_SCHEDULE_ID =>task_record.nl_tp_schedule_id,
X_NL_TP_FIXED_DATE =>task_record.nl_tp_fixed_date,
X_RECEIVE_PROJECT_INVOICE_FLAG =>task_record.receive_project_invoice_flag,
X_WORK_TYPE_ID =>task_record.work_type_id,
X_JOB_BILL_RATE_SCHEDULE_ID =>task_record.job_bill_rate_schedule_id,
X_emp_bill_rate_schedule_id =>task_record.emp_bill_rate_schedule_id,
X_taskfunc_cost_rate_type =>task_record.taskfunc_cost_rate_type,
X_taskfunc_cost_rate_date =>task_record.taskfunc_cost_rate_date,
X_non_lab_std_bill_rt_sch_id =>task_record.non_lab_std_bill_rt_sch_id,
X_labor_disc_reason_code =>task_record.labor_disc_reason_code,
X_non_labor_disc_reason_code =>task_record.non_labor_disc_reason_code,
x_retirement_cost_flag =>task_record.retirement_cost_flag,
x_cint_eligible_flag =>task_record.cint_eligible_flag,
X_CINT_STOP_DATE =>task_record.cint_stop_date,
X_GEN_ETC_SRC_CODE =>task_record.gen_etc_source_code
);
PA_PROJ_TASK_STRUC_PUB.UPDATE_TASK_STRUCTURE2(
p_calling_module =>’FORMS’,
p_task_id =>task_record.task_id,
p_task_number =>task_record.task_number,
p_task_name =>l_task_name1,
P_TASK_DESCRIPTION =>TASK_RECORD.DESCRIPTION,
p_task_manager_id =>l_task_manager_person_id,
p_carrying_out_organization_id =>task_record.carrying_out_organization_id,
p_pm_product_code =>task_record.pm_product_code,
p_pm_task_reference =>task_record.pm_task_reference,
p_location_id =>task_struc_record.location_id,
p_ref_task_id =>NULL,
p_project_id =>task_struc_record.project_id,
x_msg_count =>l_msg_count,
x_msg_data =>l_msg_data,
x_return_status =>l_return_status
);
COMMIT;
IF l_return_status <> ‘S’
THEN
FOR n IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get (n, fnd_api.g_false, l_msg_data, l_msg_dummy);
l_output := (TO_CHAR (n) || ‘: ‘ || l_msg_data);
DBMS_OUTPUT.put_line( ‘Error: API Error while updating the Task: ‘|| l_output);
COMMIT;
END LOOP;
ELSE
DBMS_OUTPUT.put_line (‘Sucessfully Update the task’);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE (‘Other Error in Project: ‘ || SQLERRM);
END;
Summary:
Tasks break projects down into individual processes and can help your firm streamline its workflow by providing up-to-date information and notifications when subsequent tasks are ready to be worked on.
Queries? |
Do drop a note by writing us at doyen.ebiz@gmail.comor use the comment section below to ask your questions. |