1: package body PA_TASKS_MAINT_PUB as
2: /*$Header: PATSKSPB.pls 120.5.12010000.3 2009/02/26 13:47:52 bifernan ship $*/
3:
4: g_pkg_name CONSTANT VARCHAR2(30):= 'PA_TASKS_MAINT_PUB';
5: --begin add by rtarwat for FP.M developement
1: package body PA_TASKS_MAINT_PUB as
2: /*$Header: PATSKSPB.pls 120.5.12010000.3 2009/02/26 13:47:52 bifernan ship $*/
3:
4: g_pkg_name CONSTANT VARCHAR2(30):= 'PA_TASKS_MAINT_PUB';
5: --begin add by rtarwat for FP.M developement
6: Invalid_Arg_Exc_WP Exception;
7: --begin add by rtarwat for FP.M developement
8: -- API Name: CREATE_TASK
267: l_carrying_out_org_name VARCHAR2(250);
268:
269: BEGIN
270:
271: pa_tasks_maint_utils.set_org_id(p_project_id);
272:
273: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.CREATE_TASK');
274:
275: IF (p_debug_mode = 'Y') THEN
269: BEGIN
270:
271: pa_tasks_maint_utils.set_org_id(p_project_id);
272:
273: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.CREATE_TASK');
274:
275: IF (p_debug_mode = 'Y') THEN
276: pa_debug.debug('PA_TASKS_MAINT_PUB.CREATE_TASK begin');
277: END IF;
272:
273: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.CREATE_TASK');
274:
275: IF (p_debug_mode = 'Y') THEN
276: pa_debug.debug('PA_TASKS_MAINT_PUB.CREATE_TASK begin');
277: END IF;
278:
279: IF p_commit = FND_API.G_TRUE THEN
280: savepoint CREATE_TASK;
299: ((p_reference_task_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) AND
300: (p_reference_task_id IS NOT NULL)) THEN
301:
302: --Call Check API.
303: /* pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
304: p_project_id => p_project_id,
305: p_task_name => p_reference_task_name,
306: p_task_id => p_reference_task_id,
307: p_check_id_flag => PA_STARTUP.G_Check_ID_Flag,
324: ((p_task_manager_person_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) AND
325: (p_task_manager_person_id IS NOT NULL)) THEN
326: --Call Check API.
327:
328: /* pa_tasks_maint_utils.check_task_mgr_name_or_id(
329: p_task_mgr_name => p_task_manager_name,
330: p_task_mgr_id => p_task_manager_person_id,
331: p_check_id_flag => PA_STARTUP.G_Check_ID_Flag,
332: x_task_mgr_id => l_task_manager_id,
406:
407: --dbms_output.put_line( 'Call Lock project ' );
408:
409: --Call Lock project
410: /* PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
411: p_validate_only => p_validate_only,
412: p_calling_module => p_calling_module,
413: p_project_id => p_project_id,
414: p_wbs_record_version_number => p_wbs_record_version_number,
418: --dbms_output.put_line( 'Call Private API ' );
419:
420:
421: --Call Private API
422: PA_TASKS_MAINT_PVT.CREATE_TASK
423: (
424: p_commit => p_commit
425: ,p_calling_module => p_calling_module
426: ,p_validate_only => p_validate_only
559: /* HY
560: -- Need to get max number
561: select max(display_sequence)
562: into l_max_seq
563: from PA_TASKS
564: where project_id = p_project_id;
565:
566: --dbms_output.put_line( 'After select max( seq no' );
567:
565:
566: --dbms_output.put_line( 'After select max( seq no' );
567:
568:
569: update PA_TASKS
570: set
571: display_sequence =
572: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, 1, 'INSERT', 'DOWN'),
573: record_version_number = record_version_number + 1
568:
569: update PA_TASKS
570: set
571: display_sequence =
572: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, 1, 'INSERT', 'DOWN'),
573: record_version_number = record_version_number + 1
574: where project_id = p_project_id
575: and (display_sequence > -(l_display_seq+1) or display_sequence < 0);
576: HY */ NULL;
581: END;
582:
583: --dbms_output.put_line( 'Before INCREMENT_WBS_REC_VER_NUM' );
584:
585: /* PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
586: p_project_id => p_project_id,
587: p_wbs_record_version_number => p_wbs_record_version_number,
588: x_return_status => x_return_status );*/
589:
597: commit;
598: END IF;
599:
600: IF (p_debug_mode = 'Y') THEN
601: pa_debug.debug('PA_TASKS_MAINT_PUB.CREATE_TASK END');
602: END IF;
603:
604: EXCEPTION
605: WHEN FND_API.G_EXC_ERROR THEN
613: ROLLBACK to CREATE_TASK;
614: END IF;
615: x_msg_count := FND_MSG_PUB.count_msg;
616: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
617: FND_MSG_PUB.ADD_EXC_MSG(p_pkg_name => 'PA_TASKS_MAINT_PUB',
618: p_procedure_name => 'CREATE_TASK',
619: p_error_text => substrb(SQLERRM,1,240));
620: RAISE;
621: END CREATE_TASK;
879: l_dummy VARCHAR2(1);
880:
881: CURSOR c1 IS
882: select 'x'
883: from PA_TASKS
884: where project_id = p_project_id
885: for update of record_version_number NOWAIT;
886:
887: CURSOR c2 IS
885: for update of record_version_number NOWAIT;
886:
887: CURSOR c2 IS
888: select 'x'
889: from PA_TASKS
890: where project_id = p_project_id;
891: -- Bug 7386335
892: --BUG 4081329, rtarway
893: cursor cur_get_child_task_dates (l_project_id NUMBER, l_task_id NUMBER)
890: where project_id = p_project_id;
891: -- Bug 7386335
892: --BUG 4081329, rtarway
893: cursor cur_get_child_task_dates (l_project_id NUMBER, l_task_id NUMBER)
894: IS select task_id, start_date, completion_date, parent_task_id from pa_tasks
895: where project_id = l_project_id
896: and completion_date is null
897: start with parent_task_id = l_task_id
898: connect by parent_task_id = prior task_id
901: -- Bug 7386335
902: CURSOR cur_get_parent_tasks (l_project_id NUMBER, l_task_id NUMBER)
903: IS
904: SELECT task_id
905: FROM pa_tasks
906: WHERE project_id = l_project_id
907: START WITH task_id = l_task_id
908: CONNECT BY PRIOR parent_task_id = task_id
909: AND project_id = l_project_id;
907: START WITH task_id = l_task_id
908: CONNECT BY PRIOR parent_task_id = task_id
909: AND project_id = l_project_id;
910:
911: type l_task_id_tbl_type is table of pa_tasks.task_id%type index by binary_integer;
912: type l_start_date_tbl_type is table of pa_tasks.start_date%type index by binary_integer;
913: type l_completion_date_tbl_type is table of pa_tasks.completion_date%type index by binary_integer;
914:
915: l_task_id_tbl l_task_id_tbl_type;
908: CONNECT BY PRIOR parent_task_id = task_id
909: AND project_id = l_project_id;
910:
911: type l_task_id_tbl_type is table of pa_tasks.task_id%type index by binary_integer;
912: type l_start_date_tbl_type is table of pa_tasks.start_date%type index by binary_integer;
913: type l_completion_date_tbl_type is table of pa_tasks.completion_date%type index by binary_integer;
914:
915: l_task_id_tbl l_task_id_tbl_type;
916: l_start_date_tbl l_start_date_tbl_type;
909: AND project_id = l_project_id;
910:
911: type l_task_id_tbl_type is table of pa_tasks.task_id%type index by binary_integer;
912: type l_start_date_tbl_type is table of pa_tasks.start_date%type index by binary_integer;
913: type l_completion_date_tbl_type is table of pa_tasks.completion_date%type index by binary_integer;
914:
915: l_task_id_tbl l_task_id_tbl_type;
916: l_start_date_tbl l_start_date_tbl_type;
917: l_completion_date_tbl l_completion_date_tbl_type;
918:
919: --BUG 4081329, rtarway
920:
921: -- Bug 7386335
922: type l_parent_task_id_tbl_type is table of pa_tasks.parent_task_id%type index by binary_integer;
923: l_parent_task_id_tbl l_parent_task_id_tbl_type;
924: l_parent_task_date DATE;
925:
926: BEGIN
923: l_parent_task_id_tbl l_parent_task_id_tbl_type;
924: l_parent_task_date DATE;
925:
926: BEGIN
927: pa_tasks_maint_utils.set_org_id(p_project_id);
928:
929: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.UPDATE_TASK');
930:
931: IF (p_debug_mode = 'Y') THEN
925:
926: BEGIN
927: pa_tasks_maint_utils.set_org_id(p_project_id);
928:
929: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.UPDATE_TASK');
930:
931: IF (p_debug_mode = 'Y') THEN
932: pa_debug.debug('PA_TASKS_MAINT_PUB.UPDATE_TASK begin');
933: END IF;
928:
929: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.UPDATE_TASK');
930:
931: IF (p_debug_mode = 'Y') THEN
932: pa_debug.debug('PA_TASKS_MAINT_PUB.UPDATE_TASK begin');
933: END IF;
934:
935: IF p_commit = FND_API.G_TRUE THEN
936: savepoint UPDATE_TASK;
956: -- ((p_task_manager_person_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) AND
957: -- (p_task_manager_person_id IS NOT NULL)) THEN
958: -- --Call Check API.
959: --
960: -- /* pa_tasks_maint_utils.check_task_mgr_name_or_id(
961: -- p_task_mgr_name => p_task_manager_name,
962: -- p_task_mgr_id => p_task_manager_person_id,
963: -- x_task_mgr_id => l_task_manager_id,
964: -- x_return_status => l_return_status,
1027: --Call Lock project
1028: IF p_wbs_record_version_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM AND
1029: p_wbs_record_version_number IS NOT NULL
1030: THEN
1031: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1032: p_validate_only => p_validate_only,
1033: p_calling_module => p_calling_module,
1034: p_project_id => p_project_id,
1035: p_wbs_record_version_number => p_wbs_record_version_number,
1038: END IF;*/
1039:
1040:
1041: --Call Private API
1042: PA_TASKS_MAINT_PVT.UPDATE_TASK
1043: (
1044: p_commit => p_commit
1045: ,p_calling_module => p_calling_module
1046: ,p_validate_only => p_validate_only
1172:
1173: IF p_wbs_record_version_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM AND
1174: p_wbs_record_version_number IS NOT NULL
1175: THEN
1176: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1177: p_project_id => p_project_id,
1178: p_wbs_record_version_number => p_wbs_record_version_number,
1179: x_return_status => x_return_status );
1180: END IF;
1195: FOR i in l_task_id_tbl.first..l_task_id_tbl.last LOOP
1196: IF l_parent_task_id_tbl(i) IS NOT NULL AND l_start_date_tbl(i) is NULL THEN
1197: SELECT start_date
1198: INTO l_parent_task_date
1199: FROM pa_tasks
1200: WHERE task_id = l_parent_task_id_tbl(i);
1201:
1202: UPDATE pa_tasks
1203: SET completion_date = p_task_completion_date,
1198: INTO l_parent_task_date
1199: FROM pa_tasks
1200: WHERE task_id = l_parent_task_id_tbl(i);
1201:
1202: UPDATE pa_tasks
1203: SET completion_date = p_task_completion_date,
1204: start_date = l_parent_task_date
1205: WHERE task_id = l_task_id_tbl(i);
1206:
1204: start_date = l_parent_task_date
1205: WHERE task_id = l_task_id_tbl(i);
1206:
1207: ELSE
1208: UPDATE pa_tasks
1209: SET completion_date = p_task_completion_date
1210: WHERE task_id = l_task_id_tbl(i);
1211: END IF;
1212: END LOOP;
1210: WHERE task_id = l_task_id_tbl(i);
1211: END IF;
1212: END LOOP;
1213: --FORALL i in l_task_id_tbl.first..l_task_id_tbl.last
1214: --update pa_tasks set completion_date = p_task_completion_date where task_id = l_task_id_tbl(i)
1215: --and project_id = p_project_id;
1216: end if;
1217: -- Bug 7386335
1218: ELSIF p_task_completion_date is NULL THEN
1220: FETCH cur_get_parent_tasks BULK COLLECT INTO l_task_id_tbl;
1221: CLOSE cur_get_parent_tasks;
1222:
1223: FORALL i in l_task_id_tbl.first..l_task_id_tbl.last
1224: UPDATE pa_tasks
1225: SET completion_date = p_task_completion_date
1226: WHERE task_id = l_task_id_tbl(i) and project_id = p_project_id;
1227: end if;
1228: --End Add by rtarway for bug 4081329
1234: commit;
1235: END IF;
1236:
1237: IF (p_debug_mode = 'Y') THEN
1238: pa_debug.debug('PA_TASKS_MAINT_PUB.UPDATE_TASK END');
1239: END IF;
1240:
1241: EXCEPTION
1242: WHEN FND_API.G_EXC_ERROR THEN
1251: END IF;
1252: x_msg_count := FND_MSG_PUB.count_msg;
1253: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1254: --put message
1255: FND_MSG_PUB.ADD_EXC_MSG(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1256: p_procedure_name => 'UPDATE_TASK',
1257: p_error_text => substrb(SQLERRM,1,240));
1258: -- RAISE;
1259: END UPDATE_TASK;
1316:
1317: l_task_cnt NUMBER;
1318: l_max_seq NUMBER;
1319:
1320: --selected_seq_num PA_TASKS.DISPLAY_SEQUENCE%TYPE;
1321:
1322: CURSOR c1 IS
1323: select 'x'
1324: from PA_TASKS
1320: --selected_seq_num PA_TASKS.DISPLAY_SEQUENCE%TYPE;
1321:
1322: CURSOR c1 IS
1323: select 'x'
1324: from PA_TASKS
1325: where project_id = p_project_id
1326: for update of record_version_number NOWAIT;
1327:
1328: CURSOR c2 IS
1326: for update of record_version_number NOWAIT;
1327:
1328: CURSOR c2 IS
1329: select 'x'
1330: from PA_TASKS
1331: where project_id = p_project_id;
1332:
1333: /* CURSOR cur_selected_task
1334: IS
1332:
1333: /* CURSOR cur_selected_task
1334: IS
1335: SELECT display_sequence
1336: FROM pa_tasks
1337: WHERE project_id = p_project_id
1338: AND task_id = p_task_id;*/
1339:
1340: BEGIN
1337: WHERE project_id = p_project_id
1338: AND task_id = p_task_id;*/
1339:
1340: BEGIN
1341: pa_tasks_maint_utils.set_org_id(p_project_id);
1342:
1343:
1344: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1345:
1340: BEGIN
1341: pa_tasks_maint_utils.set_org_id(p_project_id);
1342:
1343:
1344: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1345:
1346: IF (p_debug_mode = 'Y') THEN
1347: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK begin');
1348: END IF;
1343:
1344: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1345:
1346: IF (p_debug_mode = 'Y') THEN
1347: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK begin');
1348: END IF;
1349:
1350: IF (p_commit = FND_API.G_TRUE) THEN
1351: savepoint DELETE_TASK;
1377: end if;
1378:
1379: /*--Call Lock project
1380:
1381: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1382: p_validate_only => p_validate_only,
1383: p_calling_module => p_calling_module,
1384: p_project_id => p_project_id,
1385: p_wbs_record_version_number => p_wbs_record_version_number,
1390: --count tasks to be deleted
1391:
1392: select count('x')
1393: INTO l_task_cnt
1394: FROM PA_TASKS
1395: WHERE project_id = p_project_id
1396: START WITH task_id = p_task_id
1397: CONNECT BY parent_task_id = prior task_id;
1398:
1402: FETCH cur_selected_task INTO selected_seq_num;
1403: CLOSE cur_selected_task;*/
1404:
1405:
1406: PA_TASKS_MAINT_PVT.DELETE_TASK
1407: (
1408: p_commit => p_commit
1409: ,p_calling_module => p_calling_module
1410: ,p_validate_only => p_validate_only
1435: /* --This fcuntion is moved in PA_TASK_PVT1.DELETE_TASK_VERSION api.
1436: BEGIN
1437: select max(display_sequence)
1438: into l_max_seq
1439: from PA_TASKS
1440: where project_id = p_project_id;
1441:
1442: update PA_TASKS
1443: set
1438: into l_max_seq
1439: from PA_TASKS
1440: where project_id = p_project_id;
1441:
1442: update PA_TASKS
1443: set
1444: display_sequence =
1445: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, l_task_cnt, 'DELETE', 'DOWN'),
1446: record_version_number = record_version_number + 1
1441:
1442: update PA_TASKS
1443: set
1444: display_sequence =
1445: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, l_task_cnt, 'DELETE', 'DOWN'),
1446: record_version_number = record_version_number + 1
1447: where project_id = p_project_id
1448: and (display_sequence > selected_seq_num);
1449: EXCEPTION
1452: raise FND_API.G_EXC_ERROR;
1453: END;*/
1454:
1455:
1456: /*PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1457: p_project_id => p_project_id,
1458: p_wbs_record_version_number => p_wbs_record_version_number,
1459: x_return_status => x_return_status );*/
1460:
1465: commit;
1466: END IF;
1467:
1468: IF (p_debug_mode = 'Y') THEN
1469: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK END');
1470: END IF;
1471:
1472: EXCEPTION
1473: WHEN FND_API.G_EXC_ERROR THEN
1481: ROLLBACK to DELETE_TASK;
1482: END IF;
1483: x_msg_count := FND_MSG_PUB.count_msg;
1484: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1485: FND_MSG_PUB.ADD_EXC_MSG(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1486: p_procedure_name => 'DELETE_TASK',
1487: p_error_text => substrb(SQLERRM,1,240));
1488: END DELETE_TASK;
1489:
1551: l_task_id NUMBER;
1552: l_project_id NUMBER;
1553: BEGIN
1554:
1555: pa_tasks_maint_utils.set_org_id(p_project_id);
1556:
1557: -- Standard call to check for call compatibility
1558: IF (p_debug_mode = 'Y')
1559: THEN
1591: (p_project_name IS NOT NULL)) OR
1592: ((p_project_id <> FND_API.G_MISS_NUM) AND
1593: (p_project_id IS NOT NULL)) THEN
1594: --Call Check API.
1595: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1596: p_project_id => p_project_id,
1597: p_project_name => p_project_name,
1598: x_project_id => l_project_id,
1599: x_return_status => l_return_status,
1609: (p_task_name IS NOT NULL)) OR
1610: ((p_task_id <> FND_API.G_MISS_NUM) AND
1611: (p_task_id IS NOT NULL)) THEN
1612: --Call Check API.
1613: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1614: p_project_id => l_project_id,
1615: p_task_id => p_task_id,
1616: p_task_name => p_task_name,
1617: x_task_id => l_task_id,
1627: l_task_id := p_task_id;
1628: --END IF;
1629:
1630: --project and task id Required check.
1631: PA_TASKS_MAINT_UTILS.SRC_PRJ_TASK_ID_REQ_CHECK(
1632: p_project_id => l_project_id,
1633: p_task_id => l_task_id,
1634: x_return_status => l_return_status,
1635: x_error_msg_code => l_error_msg_code );
1647:
1648: --Call Lock project
1649: /* temporarily commenting for project structures
1650:
1651: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1652: p_validate_only => p_validate_only,
1653: p_calling_module => p_calling_module,
1654: p_project_id => l_project_id,
1655: p_wbs_record_version_number => p_wbs_record_version_number,
1678: THEN
1679:
1680: -- dbms_output.put_line( 'Edit Task structure. '||'Before Indent Task' );
1681:
1682: PA_TASKS_MAINT_PVT.Indent_Task(
1683: p_commit => p_commit
1684: ,p_validate_only => p_validate_only
1685: ,p_validation_level => p_validation_level
1686: ,p_calling_module => p_calling_module
1700: THEN
1701:
1702: --dbms_output.put_line( 'Edit Task structure. '||'Before Outdent Task' );
1703:
1704: PA_TASKS_MAINT_PVT.Outdent_Task(
1705: p_commit => p_commit
1706: ,p_validate_only => p_validate_only
1707: ,p_validation_level => p_validation_level
1708: ,p_calling_module => p_calling_module
1739: End if;
1740: RAISE FND_API.G_EXC_ERROR;
1741: End if;
1742:
1743: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1744: p_project_id => p_project_id,
1745: p_wbs_record_version_number => p_wbs_record_version_number,
1746: x_return_status => x_return_status );
1747:
1756: THEN
1757: ROLLBACK TO Edit_Structure;
1758: END IF;
1759: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1760: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1761: p_procedure_name => 'Edit_Task_Structure',
1762: p_error_text => SUBSTRB(SQLERRM,1,240));
1763: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1764:
1774: THEN
1775: ROLLBACK TO Edit_Structure;
1776: END IF;
1777: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1778: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1779: p_procedure_name => 'Edit_Task_Structure',
1780: p_error_text => SUBSTRB(SQLERRM,1,240));
1781: RAISE;
1782:
1855: l_ref_task_id NUMBER;
1856:
1857: BEGIN
1858:
1859: pa_tasks_maint_utils.set_org_id(p_project_id);
1860:
1861: -- Standard call to check for call compatibility
1862: IF (p_debug_mode = 'Y')
1863: THEN
1891: (p_project_name IS NOT NULL)) OR
1892: ((p_project_id <> FND_API.G_MISS_NUM) AND
1893: (p_project_id IS NOT NULL)) THEN
1894: --Call Check API.
1895: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1896: p_project_id => p_project_id,
1897: p_project_name => p_project_name,
1898: x_project_id => l_project_id,
1899: x_return_status => l_return_status,
1911: (p_task_name IS NOT NULL)) OR
1912: ((p_task_id <> FND_API.G_MISS_NUM) AND
1913: (p_task_id IS NOT NULL)) THEN
1914: --Call Check API.
1915: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1916: p_project_id => l_project_id,
1917: p_task_id => p_task_id,
1918: p_task_name => p_task_name,
1919: x_task_id => l_task_id,
1932: (p_reference_project_name IS NOT NULL)) OR
1933: ((p_reference_project_id <> FND_API.G_MISS_NUM) AND
1934: (p_reference_project_id IS NOT NULL)) THEN
1935: --Call Check API.
1936: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1937: p_project_id => p_reference_project_id,
1938: p_project_name => p_reference_project_name,
1939: x_project_id => l_ref_project_id,
1940: x_return_status => l_return_status,
1952: (p_reference_task_name IS NOT NULL)) OR
1953: ((p_reference_task_id <> FND_API.G_MISS_NUM) AND
1954: (p_reference_task_id IS NOT NULL)) THEN
1955: --Call Check API.
1956: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1957: p_project_id => l_ref_project_id,
1958: p_task_id => p_reference_task_id,
1959: p_task_name => p_reference_task_name,
1960: x_task_id => l_ref_task_id,
1980:
1981: /* temporarily commenting for project structures
1982:
1983: --Call Lock project
1984: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1985: p_validate_only => p_validate_only,
1986: p_calling_module => p_calling_module,
1987: p_project_id => l_ref_project_id,
1988: p_wbs_record_version_number => p_wbs_record_version_number,
2027: RAISE FND_API.G_EXC_ERROR;
2028: End if;
2029:
2030:
2031: PA_TASKS_MAINT_PVT.Move_Task(
2032: p_commit => p_commit
2033: ,p_validate_only => p_validate_only
2034: ,p_validation_level => p_validation_level
2035: ,p_calling_module => p_calling_module
2067: End if;
2068: RAISE FND_API.G_EXC_ERROR;
2069: End if;
2070:
2071: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
2072: p_project_id => l_ref_project_id,
2073: p_wbs_record_version_number => p_wbs_record_version_number,
2074: x_return_status => x_return_status );
2075:
2085: THEN
2086: ROLLBACK TO Move;
2087: END IF;
2088: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2089: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2090: p_procedure_name => 'Move_Task',
2091: p_error_text => SUBSTRB(SQLERRM,1,240));
2092: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2093:
2103: THEN
2104: ROLLBACK TO Move;
2105: END IF;
2106: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2107: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2108: p_procedure_name => 'Move_Task',
2109: p_error_text => SUBSTRB(SQLERRM,1,240));
2110: RAISE;
2111:
2189: l_ref_task_id NUMBER;
2190:
2191: BEGIN
2192:
2193: pa_tasks_maint_utils.set_org_id(p_project_id);
2194: -- Standard call to check for call compatibility
2195: IF (p_debug_mode = 'Y')
2196: THEN
2197: pa_debug.debug('Copy Task PUB : Checking the api version number.');
2222: (p_project_name IS NOT NULL)) OR
2223: ((p_project_id <> FND_API.G_MISS_NUM) AND
2224: (p_project_id IS NOT NULL)) THEN
2225: --Call Check API.
2226: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
2227: p_project_id => p_project_id,
2228: p_project_name => p_project_name,
2229: p_check_id_flag => 'Y', -- Bug 2623999
2230: x_project_id => l_project_id,
2241: (p_task_name IS NOT NULL)) OR
2242: ((p_task_id <> FND_API.G_MISS_NUM) AND
2243: (p_task_id IS NOT NULL)) THEN
2244: --Call Check API.
2245: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
2246: p_project_id => l_project_id,
2247: p_task_id => p_task_id,
2248: p_check_id_flag => 'Y', -- Bug 2623999
2249: p_task_name => p_task_name,
2262: (p_reference_project_name IS NOT NULL)) OR
2263: ((p_reference_project_id <> FND_API.G_MISS_NUM) AND
2264: (p_reference_project_id IS NOT NULL)) THEN
2265: --Call Check API.
2266: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
2267: p_project_id => p_reference_project_id,
2268: p_project_name => p_reference_project_name,
2269: x_project_id => l_ref_project_id,
2270: x_return_status => l_return_status,
2280: (p_reference_task_name IS NOT NULL)) OR
2281: ((p_reference_task_id <> FND_API.G_MISS_NUM) AND
2282: (p_reference_task_id IS NOT NULL)) THEN
2283: --Call Check API.
2284: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
2285: p_project_id => l_ref_project_id,
2286: p_task_id => p_reference_task_id,
2287: p_task_name => p_reference_task_name,
2288: x_task_id => l_ref_task_id,
2301: l_ref_project_id := p_reference_project_id;
2302: l_ref_task_id := p_reference_task_id;
2303:
2304: --Ref project and task id Required check.
2305: PA_TASKS_MAINT_UTILS.REF_PRJ_TASK_ID_REQ_CHECK(
2306: p_reference_project_id => l_ref_project_id,
2307: p_reference_task_id => l_ref_task_id,
2308: x_return_status => l_return_status,
2309: x_error_msg_code => l_error_msg_code );
2320:
2321: /* temporarily commenting for project structures
2322:
2323: --Call Lock project
2324: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
2325: p_validate_only => p_validate_only,
2326: p_calling_module => p_calling_module,
2327: p_project_id => l_ref_project_id,
2328: p_wbs_record_version_number => p_wbs_record_version_number,
2338: END IF;
2339:
2340: IF p_copy_node_flag = 'P' ----copy entire project
2341: THEN
2342: PA_TASKS_MAINT_PVT.Copy_Entire_Project(
2343: p_commit => p_commit
2344: ,p_validate_only => p_validate_only
2345: ,p_validation_level => p_validation_level
2346: ,p_calling_module => p_calling_module
2355: ,x_msg_data => l_msg_data );
2356:
2357: ELSIF p_copy_node_flag = 'T' ----copy selected task and its sub tasks
2358: THEN
2359: PA_TASKS_MAINT_PVT.Copy_Entire_Task(
2360: p_commit => p_commit
2361: ,p_validate_only => p_validate_only
2362: ,p_validation_level => p_validation_level
2363: ,p_calling_module => p_calling_module
2372: ,x_msg_count => l_msg_count
2373: ,x_msg_data => l_msg_data );
2374: ELSIF p_copy_node_flag = 'S' ----copy selected node
2375: THEN
2376: PA_TASKS_MAINT_PVT.Copy_Selected_Task(
2377: p_commit => p_commit
2378: ,p_validate_only => p_validate_only
2379: ,p_validation_level => p_validation_level
2380: ,p_calling_module => p_calling_module
2412: End if;
2413: RAISE FND_API.G_EXC_ERROR;
2414: End if;
2415:
2416: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
2417: p_project_id => l_ref_project_id,
2418: p_wbs_record_version_number => p_wbs_record_version_number,
2419: x_return_status => x_return_status );
2420:
2429: THEN
2430: ROLLBACK TO Copy;
2431: END IF;
2432: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2433: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2434: p_procedure_name => 'Copy_Task',
2435: p_error_text => SUBSTRB(SQLERRM,1,240));
2436: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2437:
2447: THEN
2448: ROLLBACK TO Copy;
2449: END IF;
2450: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2451: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2452: p_procedure_name => 'Copy_Task',
2453: p_error_text => SUBSTRB(SQLERRM,1,240));
2454: RAISE;
2455:
2565: ) parents
2566:
2567: WHERE
2568: elem.project_id = l_project_id
2569: AND elem.object_type = 'PA_TASKS'
2570: AND elem.element_version_id = parents.object_id
2571: order by elem.display_sequence desc;
2572:
2573: --Commented by rtarway for Perf FIX : BUG 3693360
2621: AND relationship_type ='S'
2622: ) childs
2623: WHERE
2624: elem.project_id = l_project_id
2625: and elem.object_type = 'PA_TASKS'
2626: and elem.element_version_id = childs.object_id
2627: order by elem.display_sequence;
2628:
2629: --End Changes by rtarway for BUG 3693360
2642: relationship_subtype ='TASK_TO_TASK'
2643: AND
2644: OBJECT_ID_TO1 = l_object_id_to1;
2645:
2646: --This cursor gets the record version number from pa_tasks for the passed task version id
2647: CURSOR c_get_pa_record_version_number (l_task_version_id NUMBER , l_project_id NUMBER)
2648: IS
2649: SELECT
2650: allTasks.record_version_number
2649: SELECT
2650: allTasks.record_version_number
2651:
2652: FROM
2653: PA_TASKS allTasks,
2654: pa_proj_element_versions elever
2655: WHERE
2656: elever.element_version_id = l_task_version_id
2657: AND
2683: END IF;
2684:
2685: IF l_debug_mode = 'Y' THEN
2686:
2687: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Printing Input parameters';
2688:
2689: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2690: l_debug_level3);
2691: Pa_Debug.WRITE(g_pkg_name,'p_task_version_id'||':'||p_task_version_id,
2708: savepoint SET_FIN_FLAG_WRAPPER_PUBLIC;
2709: END IF;
2710:
2711: IF l_debug_mode = 'Y' THEN
2712: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Validating Input parameters';
2713: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2714: l_debug_level3);
2715: END IF;
2716:
2722: p_published_version_exists IS NULL
2723: )
2724: THEN
2725: IF l_debug_mode = 'Y' THEN
2726: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : At least one of the mandatory IN parameters are passed as NULL';
2727: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2728: l_debug_level3);
2729: END IF;
2730: RAISE Invalid_Arg_Exc_WP;
2730: RAISE Invalid_Arg_Exc_WP;
2731: END IF;
2732:
2733: IF l_debug_mode = 'Y' THEN
2734: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Calling set_unset_financial_task';
2735: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2736: l_debug_level3);
2737: END IF;
2738: --This part of code is common whether p_checked_flag is 'Y' or 'N'
2737: END IF;
2738: --This part of code is common whether p_checked_flag is 'Y' or 'N'
2739: --Call API to set/unset financial_flag for p_task_version_id depending on p_checked_flag.
2740:
2741: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2742: (
2743: p_init_msg_list => FND_API.G_FALSE
2744: , p_commit => p_commit
2745: , p_debug_mode => l_debug_mode
2787: EXIT;
2788: ELSE
2789:
2790: --Set the financial task flag
2791: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2792: (
2793: p_init_msg_list => p_init_msg_list
2794: , p_commit => p_commit
2795: , p_debug_mode => l_debug_mode
2835: NULL;
2836: ELSE
2837:
2838: --Unset the financial task flag
2839: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2840: (
2841: p_init_msg_list => p_init_msg_list
2842: , p_commit => p_commit
2843: , p_debug_mode => l_debug_mode
2876: ELSE
2877: l_syncup_task_version_id := l_task_version_id_tbl(l_task_version_id_tbl.LAST);
2878: END IF;
2879:
2880: --Get record version number from pa_tasks table
2881: -- OPEN c_get_pa_record_version_number (l_task_version_id_tbl(l_task_version_id_tbl.LAST) , p_project_id); --Bug 3735089
2882: OPEN c_get_pa_record_version_number (l_syncup_task_version_id , p_project_id);
2883: FETCH c_get_pa_record_version_number INTO l_patask_record_version_number;
2884: CLOSE c_get_pa_record_version_number;
2889: FETCH c_get_immediate_parent INTO l_last_task_parent_id;
2890: IF (c_get_immediate_parent%NOTFOUND)
2891: THEN
2892: --if the parent is structure then then pass p_parent_task_version_id as null
2893: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2894: (
2895: p_api_version => 1.0
2896: , p_init_msg_list => FND_API.G_FALSE
2897: , p_commit => p_commit
2921:
2922: ELSE
2923:
2924: --else pass the derived parent task version id
2925: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2926: (
2927: p_debug_mode => l_debug_mode
2928: , p_commit => p_commit
2929: , p_init_msg_list => FND_API.G_FALSE
2955: THEN
2956:
2957: FOR iCounter IN REVERSE l_task_version_id_tbl.FIRST..l_task_version_id_tbl.LAST-1 LOOP
2958:
2959: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2960: (
2961: p_debug_mode => l_debug_mode
2962: , p_commit => p_commit
2963: , p_init_msg_list => FND_API.G_FALSE
3038: WHEN Invalid_Arg_Exc_WP THEN
3039:
3040: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3041: x_msg_count := 1;
3042: x_msg_data := 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3043:
3044: IF p_commit = FND_API.G_TRUE THEN
3045: ROLLBACK TO SET_FIN_FLAG_WRAPPER_PUBLIC;
3046: END IF;
3057: IF c_get_pa_record_version_number%ISOPEN THEN
3058: CLOSE c_get_pa_record_version_number;
3059: END IF;
3060: Fnd_Msg_Pub.add_exc_msg
3061: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3062: , p_procedure_name => 'SET_FINANCIAL_FLAG_WRAPPER'
3063: , p_error_text => x_msg_data);
3064:
3065: IF l_debug_mode = 'Y' THEN
3094: CLOSE c_get_pa_record_version_number;
3095: END IF;
3096:
3097: Fnd_Msg_Pub.add_exc_msg
3098: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3099: , p_procedure_name => 'SET_FINANCIAL_FLAG_WRAPPER'
3100: , p_error_text => x_msg_data);
3101:
3102: IF l_debug_mode = 'Y' THEN
3225: , pa_object_relationships por
3226: WHERE
3227: projelem.project_id = elemver.project_id
3228: AND projelem.proj_element_id = elemver.proj_element_id
3229: AND elemver.object_type='PA_TASKS'
3230: AND projelem.object_type='PA_TASKS'
3231: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3232: AND por.object_id_to1 = elemver.element_version_id
3233: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3226: WHERE
3227: projelem.project_id = elemver.project_id
3228: AND projelem.proj_element_id = elemver.proj_element_id
3229: AND elemver.object_type='PA_TASKS'
3230: AND projelem.object_type='PA_TASKS'
3231: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3232: AND por.object_id_to1 = elemver.element_version_id
3233: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3234: AND por.relationship_type = 'S'
3227: projelem.project_id = elemver.project_id
3228: AND projelem.proj_element_id = elemver.proj_element_id
3229: AND elemver.object_type='PA_TASKS'
3230: AND projelem.object_type='PA_TASKS'
3231: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3232: AND por.object_id_to1 = elemver.element_version_id
3233: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3234: AND por.relationship_type = 'S'
3235: AND elemver.project_id = l_project_id
3229: AND elemver.object_type='PA_TASKS'
3230: AND projelem.object_type='PA_TASKS'
3231: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3232: AND por.object_id_to1 = elemver.element_version_id
3233: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3234: AND por.relationship_type = 'S'
3235: AND elemver.project_id = l_project_id
3236: AND elemver.element_version_id IN
3237: (--Get the Parents of the passed task
3266:
3267:
3268:
3269: IF l_debug_mode = 'Y' THEN
3270: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB:POPULATE_TEMP_TABLE:Printing Input parameters';
3271: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3272: l_debug_level3);
3273: Pa_Debug.WRITE(g_pkg_name,'p_structure_version_id'||':'||p_structure_version_id,
3274: l_debug_level3);
3308: savepoint POPULATE_TEMP_TBL_PUB;
3309: END IF;
3310:
3311: IF l_debug_mode = 'Y' THEN
3312: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : Validating Input parameters';
3313: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3314: l_debug_level3);
3315: END IF;
3316:
3320: ( p_project_id IS NULL )
3321: )
3322: THEN
3323: IF l_debug_mode = 'Y' THEN
3324: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : At least one of the mandatory IN parameters are passed as NULL';
3325: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3326: l_debug_level3);
3327: END IF;
3328: RAISE Invalid_Arg_Exc_WP;
3466: WHEN Invalid_Arg_Exc_WP THEN
3467:
3468: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3469: x_msg_count := 1;
3470: x_msg_data := 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3471:
3472: IF p_commit = FND_API.G_TRUE THEN
3473: ROLLBACK TO POPULATE_TEMP_TABLE_PUB;
3474: END IF;
3479: IF c_get_parents%ISOPEN THEN
3480: CLOSE c_get_parents;
3481: END IF;
3482: Fnd_Msg_Pub.add_exc_msg
3483: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3484: , p_procedure_name => 'POPULATE_TEMP_TABLE'
3485: , p_error_text => x_msg_data);
3486:
3487: IF l_debug_mode = 'Y' THEN
3509: CLOSE c_get_parents;
3510: END IF;
3511:
3512: Fnd_Msg_Pub.add_exc_msg
3513: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3514: , p_procedure_name => 'POPULATE_TEMP_TABLE'
3515: , p_error_text => x_msg_data);
3516:
3517: IF l_debug_mode = 'Y' THEN
3526:
3527: -- Procedure : SYNC_UP_WP_TASKS_WITH_FIN
3528: -- Type : Public Procedure
3529: -- Purpose : This API will be called from set financial tasks page in financial tab
3530: -- : This API is to Sync up the financial tasks with pa_tasks table
3531: -- Note : This API does all the validations required on parameters and calls private API
3532: -- :
3533: -- Assumptions : The financial_task_flag is already set in the database.
3534:
3539: -- p_task_version_id NUMBER NO The single task's version id. This is applicable for singular case.
3540: -- p_structure_version_id NUMBER NO The structre version_id of the structre being synced up. This is applicable when we want to sync up all the tasks.
3541: -- p_checked_flag VARCHAR2 NO This flag(Y/N) will be applicable in singular case where task_version_id is being passed. This is passed so that this API again do not have to fetch financial_task_flag from the database.
3542: -- p_mode VARCHAR2 NO The mode mentioning that whether processing is to be done for All the tasks in the structure or juts for the single passed task. Possible values are SINGLE and ALL
3543: -- p_patask_record_version_number NUMBER NO This is record version number of the record in pa_tasks
3544: -- p_parent_task_version_id NUMBER NO This is parent task version id of the current task, It is needed in create_task
3545:
3546: PROCEDURE SYNC_UP_WP_TASKS_WITH_FIN
3547: (
3599: p_debug_mode => l_debug_mode );
3600: END IF;
3601:
3602: IF l_debug_mode = 'Y' THEN
3603: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Printing Input parameters';
3604: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3605: l_debug_level3);
3606: Pa_Debug.WRITE(g_pkg_name,'p_project_id '||':'||p_project_id ,
3607: l_debug_level3);
3629: savepoint SYNC_UP_WITH_FIN_PUBLIC;
3630: END IF;
3631:
3632: IF l_debug_mode = 'Y' THEN
3633: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Validating Input parameters';
3634: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3635: l_debug_level3);
3636: END IF;
3637:
3637:
3638: IF ( p_project_id IS NULL)
3639: THEN
3640: IF l_debug_mode = 'Y' THEN
3641: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Mandatory parameters are null';
3642: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3643: l_debug_level3);
3644: END IF;
3645: RAISE Invalid_Arg_Exc_WP;
3648: --Validating for p_mode, it shopuld be either SINGLE or ALL
3649: /*IF (p_mode <> 'SINGLE' OR p_mode <> 'ALL')
3650: THEN
3651: IF l_debug_mode = 'Y' THEN
3652: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : p_mode is invalid';
3653: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3654: l_debug_level3);
3655: END IF;
3656: RAISE Invalid_Arg_Exc_WP;
3663: )
3664: )
3665: THEN
3666: IF l_debug_mode = 'Y' THEN
3667: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Manadatory parameters with mode '||p_mode||'are not passed';
3668: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3669: l_debug_level3);
3670: END IF;
3671: RAISE Invalid_Arg_Exc_WP;
3674: ( p_structure_version_id IS NULL OR p_structure_version_id = FND_API.G_MISS_NUM )
3675: )
3676: THEN
3677: IF l_debug_mode = 'Y' THEN
3678: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Manadatory parameters with mode '||p_mode||'are not passed';
3679: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3680: l_debug_level3);
3681: END IF;
3682: RAISE Invalid_Arg_Exc_WP;
3682: RAISE Invalid_Arg_Exc_WP;
3683: END IF;
3684:
3685: -- Call Private APIs
3686: PA_TASKS_MAINT_PVT.SYNC_UP_WP_TASKS_WITH_FIN
3687: (
3688: p_init_msg_list => FND_API.G_FALSE
3689: , p_commit => p_commit
3690: , p_debug_mode => l_debug_mode
3748: WHEN Invalid_Arg_Exc_WP THEN
3749:
3750: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3751: x_msg_count := 1;
3752: x_msg_data := 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3753:
3754: IF p_commit = FND_API.G_TRUE THEN
3755: ROLLBACK TO SYNC_UP_WITH_FIN_PUBLIC;
3756: END IF;
3756: END IF;
3757:
3758:
3759: Fnd_Msg_Pub.add_exc_msg
3760: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3761: , p_procedure_name => 'SYNC_UP_WP_TASKS_WITH_FIN'
3762: , p_error_text => x_msg_data);
3763: IF l_debug_mode = 'Y' THEN
3764: Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
3781:
3782:
3783:
3784: Fnd_Msg_Pub.add_exc_msg
3785: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3786: , p_procedure_name => 'SYNC_UP_WP_TASKS_WITH_FIN'
3787: , p_error_text => x_msg_data);
3788:
3789: IF l_debug_mode = 'Y' THEN
3795: RAISE;
3796: END SYNC_UP_WP_TASKS_WITH_FIN ;
3797:
3798: --3279982 End Add rtarway for FP.M develeopment
3799: end PA_TASKS_MAINT_PUB;