1: package body PA_TASKS_MAINT_PUB as
2: /*$Header: PATSKSPB.pls 120.5.12010000.2 2008/09/17 16:08:47 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.2 2008/09/17 16:08:47 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;
953: ((p_task_manager_person_id <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM) AND
954: (p_task_manager_person_id IS NOT NULL)) THEN
955: --Call Check API.
956:
957: /* pa_tasks_maint_utils.check_task_mgr_name_or_id(
958: p_task_mgr_name => p_task_manager_name,
959: p_task_mgr_id => p_task_manager_person_id,
960: x_task_mgr_id => l_task_manager_id,
961: x_return_status => l_return_status,
1019: --Call Lock project
1020: IF p_wbs_record_version_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM AND
1021: p_wbs_record_version_number IS NOT NULL
1022: THEN
1023: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1024: p_validate_only => p_validate_only,
1025: p_calling_module => p_calling_module,
1026: p_project_id => p_project_id,
1027: p_wbs_record_version_number => p_wbs_record_version_number,
1030: END IF;*/
1031:
1032:
1033: --Call Private API
1034: PA_TASKS_MAINT_PVT.UPDATE_TASK
1035: (
1036: p_commit => p_commit
1037: ,p_calling_module => p_calling_module
1038: ,p_validate_only => p_validate_only
1164:
1165: IF p_wbs_record_version_number <> PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM AND
1166: p_wbs_record_version_number IS NOT NULL
1167: THEN
1168: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1169: p_project_id => p_project_id,
1170: p_wbs_record_version_number => p_wbs_record_version_number,
1171: x_return_status => x_return_status );
1172: END IF;
1187: FOR i in l_task_id_tbl.first..l_task_id_tbl.last LOOP
1188: IF l_parent_task_id_tbl(i) IS NOT NULL AND l_start_date_tbl(i) is NULL THEN
1189: SELECT start_date
1190: INTO l_parent_task_date
1191: FROM pa_tasks
1192: WHERE task_id = l_parent_task_id_tbl(i);
1193:
1194: UPDATE pa_tasks
1195: SET completion_date = p_task_completion_date,
1190: INTO l_parent_task_date
1191: FROM pa_tasks
1192: WHERE task_id = l_parent_task_id_tbl(i);
1193:
1194: UPDATE pa_tasks
1195: SET completion_date = p_task_completion_date,
1196: start_date = l_parent_task_date
1197: WHERE task_id = l_task_id_tbl(i);
1198:
1196: start_date = l_parent_task_date
1197: WHERE task_id = l_task_id_tbl(i);
1198:
1199: ELSE
1200: UPDATE pa_tasks
1201: SET completion_date = p_task_completion_date
1202: WHERE task_id = l_task_id_tbl(i);
1203: END IF;
1204: END LOOP;
1202: WHERE task_id = l_task_id_tbl(i);
1203: END IF;
1204: END LOOP;
1205: --FORALL i in l_task_id_tbl.first..l_task_id_tbl.last
1206: --update pa_tasks set completion_date = p_task_completion_date where task_id = l_task_id_tbl(i)
1207: --and project_id = p_project_id;
1208: end if;
1209: -- Bug 7386335
1210: ELSIF p_task_completion_date is NULL THEN
1212: FETCH cur_get_parent_tasks BULK COLLECT INTO l_task_id_tbl;
1213: CLOSE cur_get_parent_tasks;
1214:
1215: FORALL i in l_task_id_tbl.first..l_task_id_tbl.last
1216: UPDATE pa_tasks
1217: SET completion_date = p_task_completion_date
1218: WHERE task_id = l_task_id_tbl(i) and project_id = p_project_id;
1219: end if;
1220: --End Add by rtarway for bug 4081329
1226: commit;
1227: END IF;
1228:
1229: IF (p_debug_mode = 'Y') THEN
1230: pa_debug.debug('PA_TASKS_MAINT_PUB.UPDATE_TASK END');
1231: END IF;
1232:
1233: EXCEPTION
1234: WHEN FND_API.G_EXC_ERROR THEN
1243: END IF;
1244: x_msg_count := FND_MSG_PUB.count_msg;
1245: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1246: --put message
1247: FND_MSG_PUB.ADD_EXC_MSG(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1248: p_procedure_name => 'UPDATE_TASK',
1249: p_error_text => substrb(SQLERRM,1,240));
1250: -- RAISE;
1251: END UPDATE_TASK;
1308:
1309: l_task_cnt NUMBER;
1310: l_max_seq NUMBER;
1311:
1312: --selected_seq_num PA_TASKS.DISPLAY_SEQUENCE%TYPE;
1313:
1314: CURSOR c1 IS
1315: select 'x'
1316: from PA_TASKS
1312: --selected_seq_num PA_TASKS.DISPLAY_SEQUENCE%TYPE;
1313:
1314: CURSOR c1 IS
1315: select 'x'
1316: from PA_TASKS
1317: where project_id = p_project_id
1318: for update of record_version_number NOWAIT;
1319:
1320: CURSOR c2 IS
1318: for update of record_version_number NOWAIT;
1319:
1320: CURSOR c2 IS
1321: select 'x'
1322: from PA_TASKS
1323: where project_id = p_project_id;
1324:
1325: /* CURSOR cur_selected_task
1326: IS
1324:
1325: /* CURSOR cur_selected_task
1326: IS
1327: SELECT display_sequence
1328: FROM pa_tasks
1329: WHERE project_id = p_project_id
1330: AND task_id = p_task_id;*/
1331:
1332: BEGIN
1329: WHERE project_id = p_project_id
1330: AND task_id = p_task_id;*/
1331:
1332: BEGIN
1333: pa_tasks_maint_utils.set_org_id(p_project_id);
1334:
1335:
1336: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1337:
1332: BEGIN
1333: pa_tasks_maint_utils.set_org_id(p_project_id);
1334:
1335:
1336: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1337:
1338: IF (p_debug_mode = 'Y') THEN
1339: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK begin');
1340: END IF;
1335:
1336: pa_debug.init_err_stack('PA_TASKS_MAINT_PUB.DELETE_TASK');
1337:
1338: IF (p_debug_mode = 'Y') THEN
1339: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK begin');
1340: END IF;
1341:
1342: IF (p_commit = FND_API.G_TRUE) THEN
1343: savepoint DELETE_TASK;
1369: end if;
1370:
1371: /*--Call Lock project
1372:
1373: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1374: p_validate_only => p_validate_only,
1375: p_calling_module => p_calling_module,
1376: p_project_id => p_project_id,
1377: p_wbs_record_version_number => p_wbs_record_version_number,
1382: --count tasks to be deleted
1383:
1384: select count('x')
1385: INTO l_task_cnt
1386: FROM PA_TASKS
1387: WHERE project_id = p_project_id
1388: START WITH task_id = p_task_id
1389: CONNECT BY parent_task_id = prior task_id;
1390:
1394: FETCH cur_selected_task INTO selected_seq_num;
1395: CLOSE cur_selected_task;*/
1396:
1397:
1398: PA_TASKS_MAINT_PVT.DELETE_TASK
1399: (
1400: p_commit => p_commit
1401: ,p_calling_module => p_calling_module
1402: ,p_validate_only => p_validate_only
1427: /* --This fcuntion is moved in PA_TASK_PVT1.DELETE_TASK_VERSION api.
1428: BEGIN
1429: select max(display_sequence)
1430: into l_max_seq
1431: from PA_TASKS
1432: where project_id = p_project_id;
1433:
1434: update PA_TASKS
1435: set
1430: into l_max_seq
1431: from PA_TASKS
1432: where project_id = p_project_id;
1433:
1434: update PA_TASKS
1435: set
1436: display_sequence =
1437: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, l_task_cnt, 'DELETE', 'DOWN'),
1438: record_version_number = record_version_number + 1
1433:
1434: update PA_TASKS
1435: set
1436: display_sequence =
1437: PA_TASKS_MAINT_UTILS.REARRANGE_DISPLAY_SEQ(display_sequence, l_max_seq, l_task_cnt, 'DELETE', 'DOWN'),
1438: record_version_number = record_version_number + 1
1439: where project_id = p_project_id
1440: and (display_sequence > selected_seq_num);
1441: EXCEPTION
1444: raise FND_API.G_EXC_ERROR;
1445: END;*/
1446:
1447:
1448: /*PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1449: p_project_id => p_project_id,
1450: p_wbs_record_version_number => p_wbs_record_version_number,
1451: x_return_status => x_return_status );*/
1452:
1457: commit;
1458: END IF;
1459:
1460: IF (p_debug_mode = 'Y') THEN
1461: pa_debug.debug('PA_TASKS_MAINT_PUB.DELETE_TASK END');
1462: END IF;
1463:
1464: EXCEPTION
1465: WHEN FND_API.G_EXC_ERROR THEN
1473: ROLLBACK to DELETE_TASK;
1474: END IF;
1475: x_msg_count := FND_MSG_PUB.count_msg;
1476: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1477: FND_MSG_PUB.ADD_EXC_MSG(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1478: p_procedure_name => 'DELETE_TASK',
1479: p_error_text => substrb(SQLERRM,1,240));
1480: END DELETE_TASK;
1481:
1543: l_task_id NUMBER;
1544: l_project_id NUMBER;
1545: BEGIN
1546:
1547: pa_tasks_maint_utils.set_org_id(p_project_id);
1548:
1549: -- Standard call to check for call compatibility
1550: IF (p_debug_mode = 'Y')
1551: THEN
1583: (p_project_name IS NOT NULL)) OR
1584: ((p_project_id <> FND_API.G_MISS_NUM) AND
1585: (p_project_id IS NOT NULL)) THEN
1586: --Call Check API.
1587: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1588: p_project_id => p_project_id,
1589: p_project_name => p_project_name,
1590: x_project_id => l_project_id,
1591: x_return_status => l_return_status,
1601: (p_task_name IS NOT NULL)) OR
1602: ((p_task_id <> FND_API.G_MISS_NUM) AND
1603: (p_task_id IS NOT NULL)) THEN
1604: --Call Check API.
1605: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1606: p_project_id => l_project_id,
1607: p_task_id => p_task_id,
1608: p_task_name => p_task_name,
1609: x_task_id => l_task_id,
1619: l_task_id := p_task_id;
1620: --END IF;
1621:
1622: --project and task id Required check.
1623: PA_TASKS_MAINT_UTILS.SRC_PRJ_TASK_ID_REQ_CHECK(
1624: p_project_id => l_project_id,
1625: p_task_id => l_task_id,
1626: x_return_status => l_return_status,
1627: x_error_msg_code => l_error_msg_code );
1639:
1640: --Call Lock project
1641: /* temporarily commenting for project structures
1642:
1643: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1644: p_validate_only => p_validate_only,
1645: p_calling_module => p_calling_module,
1646: p_project_id => l_project_id,
1647: p_wbs_record_version_number => p_wbs_record_version_number,
1670: THEN
1671:
1672: -- dbms_output.put_line( 'Edit Task structure. '||'Before Indent Task' );
1673:
1674: PA_TASKS_MAINT_PVT.Indent_Task(
1675: p_commit => p_commit
1676: ,p_validate_only => p_validate_only
1677: ,p_validation_level => p_validation_level
1678: ,p_calling_module => p_calling_module
1692: THEN
1693:
1694: --dbms_output.put_line( 'Edit Task structure. '||'Before Outdent Task' );
1695:
1696: PA_TASKS_MAINT_PVT.Outdent_Task(
1697: p_commit => p_commit
1698: ,p_validate_only => p_validate_only
1699: ,p_validation_level => p_validation_level
1700: ,p_calling_module => p_calling_module
1731: End if;
1732: RAISE FND_API.G_EXC_ERROR;
1733: End if;
1734:
1735: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
1736: p_project_id => p_project_id,
1737: p_wbs_record_version_number => p_wbs_record_version_number,
1738: x_return_status => x_return_status );
1739:
1748: THEN
1749: ROLLBACK TO Edit_Structure;
1750: END IF;
1751: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1752: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1753: p_procedure_name => 'Edit_Task_Structure',
1754: p_error_text => SUBSTRB(SQLERRM,1,240));
1755: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1756:
1766: THEN
1767: ROLLBACK TO Edit_Structure;
1768: END IF;
1769: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1770: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
1771: p_procedure_name => 'Edit_Task_Structure',
1772: p_error_text => SUBSTRB(SQLERRM,1,240));
1773: RAISE;
1774:
1847: l_ref_task_id NUMBER;
1848:
1849: BEGIN
1850:
1851: pa_tasks_maint_utils.set_org_id(p_project_id);
1852:
1853: -- Standard call to check for call compatibility
1854: IF (p_debug_mode = 'Y')
1855: THEN
1883: (p_project_name IS NOT NULL)) OR
1884: ((p_project_id <> FND_API.G_MISS_NUM) AND
1885: (p_project_id IS NOT NULL)) THEN
1886: --Call Check API.
1887: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1888: p_project_id => p_project_id,
1889: p_project_name => p_project_name,
1890: x_project_id => l_project_id,
1891: x_return_status => l_return_status,
1903: (p_task_name IS NOT NULL)) OR
1904: ((p_task_id <> FND_API.G_MISS_NUM) AND
1905: (p_task_id IS NOT NULL)) THEN
1906: --Call Check API.
1907: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1908: p_project_id => l_project_id,
1909: p_task_id => p_task_id,
1910: p_task_name => p_task_name,
1911: x_task_id => l_task_id,
1924: (p_reference_project_name IS NOT NULL)) OR
1925: ((p_reference_project_id <> FND_API.G_MISS_NUM) AND
1926: (p_reference_project_id IS NOT NULL)) THEN
1927: --Call Check API.
1928: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
1929: p_project_id => p_reference_project_id,
1930: p_project_name => p_reference_project_name,
1931: x_project_id => l_ref_project_id,
1932: x_return_status => l_return_status,
1944: (p_reference_task_name IS NOT NULL)) OR
1945: ((p_reference_task_id <> FND_API.G_MISS_NUM) AND
1946: (p_reference_task_id IS NOT NULL)) THEN
1947: --Call Check API.
1948: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
1949: p_project_id => l_ref_project_id,
1950: p_task_id => p_reference_task_id,
1951: p_task_name => p_reference_task_name,
1952: x_task_id => l_ref_task_id,
1972:
1973: /* temporarily commenting for project structures
1974:
1975: --Call Lock project
1976: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
1977: p_validate_only => p_validate_only,
1978: p_calling_module => p_calling_module,
1979: p_project_id => l_ref_project_id,
1980: p_wbs_record_version_number => p_wbs_record_version_number,
2019: RAISE FND_API.G_EXC_ERROR;
2020: End if;
2021:
2022:
2023: PA_TASKS_MAINT_PVT.Move_Task(
2024: p_commit => p_commit
2025: ,p_validate_only => p_validate_only
2026: ,p_validation_level => p_validation_level
2027: ,p_calling_module => p_calling_module
2059: End if;
2060: RAISE FND_API.G_EXC_ERROR;
2061: End if;
2062:
2063: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
2064: p_project_id => l_ref_project_id,
2065: p_wbs_record_version_number => p_wbs_record_version_number,
2066: x_return_status => x_return_status );
2067:
2077: THEN
2078: ROLLBACK TO Move;
2079: END IF;
2080: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2081: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2082: p_procedure_name => 'Move_Task',
2083: p_error_text => SUBSTRB(SQLERRM,1,240));
2084: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2085:
2095: THEN
2096: ROLLBACK TO Move;
2097: END IF;
2098: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2099: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2100: p_procedure_name => 'Move_Task',
2101: p_error_text => SUBSTRB(SQLERRM,1,240));
2102: RAISE;
2103:
2181: l_ref_task_id NUMBER;
2182:
2183: BEGIN
2184:
2185: pa_tasks_maint_utils.set_org_id(p_project_id);
2186: -- Standard call to check for call compatibility
2187: IF (p_debug_mode = 'Y')
2188: THEN
2189: pa_debug.debug('Copy Task PUB : Checking the api version number.');
2214: (p_project_name IS NOT NULL)) OR
2215: ((p_project_id <> FND_API.G_MISS_NUM) AND
2216: (p_project_id IS NOT NULL)) THEN
2217: --Call Check API.
2218: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
2219: p_project_id => p_project_id,
2220: p_project_name => p_project_name,
2221: p_check_id_flag => 'Y', -- Bug 2623999
2222: x_project_id => l_project_id,
2233: (p_task_name IS NOT NULL)) OR
2234: ((p_task_id <> FND_API.G_MISS_NUM) AND
2235: (p_task_id IS NOT NULL)) THEN
2236: --Call Check API.
2237: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
2238: p_project_id => l_project_id,
2239: p_task_id => p_task_id,
2240: p_check_id_flag => 'Y', -- Bug 2623999
2241: p_task_name => p_task_name,
2254: (p_reference_project_name IS NOT NULL)) OR
2255: ((p_reference_project_id <> FND_API.G_MISS_NUM) AND
2256: (p_reference_project_id IS NOT NULL)) THEN
2257: --Call Check API.
2258: pa_tasks_maint_utils.CHECK_PROJECT_NAME_OR_ID(
2259: p_project_id => p_reference_project_id,
2260: p_project_name => p_reference_project_name,
2261: x_project_id => l_ref_project_id,
2262: x_return_status => l_return_status,
2272: (p_reference_task_name IS NOT NULL)) OR
2273: ((p_reference_task_id <> FND_API.G_MISS_NUM) AND
2274: (p_reference_task_id IS NOT NULL)) THEN
2275: --Call Check API.
2276: pa_tasks_maint_utils.CHECK_TASK_NAME_OR_ID(
2277: p_project_id => l_ref_project_id,
2278: p_task_id => p_reference_task_id,
2279: p_task_name => p_reference_task_name,
2280: x_task_id => l_ref_task_id,
2293: l_ref_project_id := p_reference_project_id;
2294: l_ref_task_id := p_reference_task_id;
2295:
2296: --Ref project and task id Required check.
2297: PA_TASKS_MAINT_UTILS.REF_PRJ_TASK_ID_REQ_CHECK(
2298: p_reference_project_id => l_ref_project_id,
2299: p_reference_task_id => l_ref_task_id,
2300: x_return_status => l_return_status,
2301: x_error_msg_code => l_error_msg_code );
2312:
2313: /* temporarily commenting for project structures
2314:
2315: --Call Lock project
2316: PA_TASKS_MAINT_UTILS.LOCK_PROJECT(
2317: p_validate_only => p_validate_only,
2318: p_calling_module => p_calling_module,
2319: p_project_id => l_ref_project_id,
2320: p_wbs_record_version_number => p_wbs_record_version_number,
2330: END IF;
2331:
2332: IF p_copy_node_flag = 'P' ----copy entire project
2333: THEN
2334: PA_TASKS_MAINT_PVT.Copy_Entire_Project(
2335: p_commit => p_commit
2336: ,p_validate_only => p_validate_only
2337: ,p_validation_level => p_validation_level
2338: ,p_calling_module => p_calling_module
2347: ,x_msg_data => l_msg_data );
2348:
2349: ELSIF p_copy_node_flag = 'T' ----copy selected task and its sub tasks
2350: THEN
2351: PA_TASKS_MAINT_PVT.Copy_Entire_Task(
2352: p_commit => p_commit
2353: ,p_validate_only => p_validate_only
2354: ,p_validation_level => p_validation_level
2355: ,p_calling_module => p_calling_module
2364: ,x_msg_count => l_msg_count
2365: ,x_msg_data => l_msg_data );
2366: ELSIF p_copy_node_flag = 'S' ----copy selected node
2367: THEN
2368: PA_TASKS_MAINT_PVT.Copy_Selected_Task(
2369: p_commit => p_commit
2370: ,p_validate_only => p_validate_only
2371: ,p_validation_level => p_validation_level
2372: ,p_calling_module => p_calling_module
2404: End if;
2405: RAISE FND_API.G_EXC_ERROR;
2406: End if;
2407:
2408: PA_TASKS_MAINT_UTILS.INCREMENT_WBS_REC_VER_NUM(
2409: p_project_id => l_ref_project_id,
2410: p_wbs_record_version_number => p_wbs_record_version_number,
2411: x_return_status => x_return_status );
2412:
2421: THEN
2422: ROLLBACK TO Copy;
2423: END IF;
2424: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2425: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2426: p_procedure_name => 'Copy_Task',
2427: p_error_text => SUBSTRB(SQLERRM,1,240));
2428: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2429:
2439: THEN
2440: ROLLBACK TO Copy;
2441: END IF;
2442: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2443: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_TASKS_MAINT_PUB',
2444: p_procedure_name => 'Copy_Task',
2445: p_error_text => SUBSTRB(SQLERRM,1,240));
2446: RAISE;
2447:
2557: ) parents
2558:
2559: WHERE
2560: elem.project_id = l_project_id
2561: AND elem.object_type = 'PA_TASKS'
2562: AND elem.element_version_id = parents.object_id
2563: order by elem.display_sequence desc;
2564:
2565: --Commented by rtarway for Perf FIX : BUG 3693360
2613: AND relationship_type ='S'
2614: ) childs
2615: WHERE
2616: elem.project_id = l_project_id
2617: and elem.object_type = 'PA_TASKS'
2618: and elem.element_version_id = childs.object_id
2619: order by elem.display_sequence;
2620:
2621: --End Changes by rtarway for BUG 3693360
2634: relationship_subtype ='TASK_TO_TASK'
2635: AND
2636: OBJECT_ID_TO1 = l_object_id_to1;
2637:
2638: --This cursor gets the record version number from pa_tasks for the passed task version id
2639: CURSOR c_get_pa_record_version_number (l_task_version_id NUMBER , l_project_id NUMBER)
2640: IS
2641: SELECT
2642: allTasks.record_version_number
2641: SELECT
2642: allTasks.record_version_number
2643:
2644: FROM
2645: PA_TASKS allTasks,
2646: pa_proj_element_versions elever
2647: WHERE
2648: elever.element_version_id = l_task_version_id
2649: AND
2675: END IF;
2676:
2677: IF l_debug_mode = 'Y' THEN
2678:
2679: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Printing Input parameters';
2680:
2681: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2682: l_debug_level3);
2683: Pa_Debug.WRITE(g_pkg_name,'p_task_version_id'||':'||p_task_version_id,
2700: savepoint SET_FIN_FLAG_WRAPPER_PUBLIC;
2701: END IF;
2702:
2703: IF l_debug_mode = 'Y' THEN
2704: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Validating Input parameters';
2705: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2706: l_debug_level3);
2707: END IF;
2708:
2714: p_published_version_exists IS NULL
2715: )
2716: THEN
2717: IF l_debug_mode = 'Y' THEN
2718: 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';
2719: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2720: l_debug_level3);
2721: END IF;
2722: RAISE Invalid_Arg_Exc_WP;
2722: RAISE Invalid_Arg_Exc_WP;
2723: END IF;
2724:
2725: IF l_debug_mode = 'Y' THEN
2726: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : Calling set_unset_financial_task';
2727: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
2728: l_debug_level3);
2729: END IF;
2730: --This part of code is common whether p_checked_flag is 'Y' or 'N'
2729: END IF;
2730: --This part of code is common whether p_checked_flag is 'Y' or 'N'
2731: --Call API to set/unset financial_flag for p_task_version_id depending on p_checked_flag.
2732:
2733: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2734: (
2735: p_init_msg_list => FND_API.G_FALSE
2736: , p_commit => p_commit
2737: , p_debug_mode => l_debug_mode
2779: EXIT;
2780: ELSE
2781:
2782: --Set the financial task flag
2783: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2784: (
2785: p_init_msg_list => p_init_msg_list
2786: , p_commit => p_commit
2787: , p_debug_mode => l_debug_mode
2827: NULL;
2828: ELSE
2829:
2830: --Unset the financial task flag
2831: PA_TASKS_MAINT_PVT.SET_UNSET_FINANCIAL_TASK
2832: (
2833: p_init_msg_list => p_init_msg_list
2834: , p_commit => p_commit
2835: , p_debug_mode => l_debug_mode
2868: ELSE
2869: l_syncup_task_version_id := l_task_version_id_tbl(l_task_version_id_tbl.LAST);
2870: END IF;
2871:
2872: --Get record version number from pa_tasks table
2873: -- OPEN c_get_pa_record_version_number (l_task_version_id_tbl(l_task_version_id_tbl.LAST) , p_project_id); --Bug 3735089
2874: OPEN c_get_pa_record_version_number (l_syncup_task_version_id , p_project_id);
2875: FETCH c_get_pa_record_version_number INTO l_patask_record_version_number;
2876: CLOSE c_get_pa_record_version_number;
2881: FETCH c_get_immediate_parent INTO l_last_task_parent_id;
2882: IF (c_get_immediate_parent%NOTFOUND)
2883: THEN
2884: --if the parent is structure then then pass p_parent_task_version_id as null
2885: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2886: (
2887: p_api_version => 1.0
2888: , p_init_msg_list => FND_API.G_FALSE
2889: , p_commit => p_commit
2913:
2914: ELSE
2915:
2916: --else pass the derived parent task version id
2917: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2918: (
2919: p_debug_mode => l_debug_mode
2920: , p_commit => p_commit
2921: , p_init_msg_list => FND_API.G_FALSE
2947: THEN
2948:
2949: FOR iCounter IN REVERSE l_task_version_id_tbl.FIRST..l_task_version_id_tbl.LAST-1 LOOP
2950:
2951: PA_TASKS_MAINT_PUB.SYNC_UP_WP_TASKS_WITH_FIN
2952: (
2953: p_debug_mode => l_debug_mode
2954: , p_commit => p_commit
2955: , p_init_msg_list => FND_API.G_FALSE
3030: WHEN Invalid_Arg_Exc_WP THEN
3031:
3032: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3033: x_msg_count := 1;
3034: x_msg_data := 'PA_TASKS_MAINT_PUB : SET_FINANCIAL_FLAG_WRAPPER : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3035:
3036: IF p_commit = FND_API.G_TRUE THEN
3037: ROLLBACK TO SET_FIN_FLAG_WRAPPER_PUBLIC;
3038: END IF;
3049: IF c_get_pa_record_version_number%ISOPEN THEN
3050: CLOSE c_get_pa_record_version_number;
3051: END IF;
3052: Fnd_Msg_Pub.add_exc_msg
3053: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3054: , p_procedure_name => 'SET_FINANCIAL_FLAG_WRAPPER'
3055: , p_error_text => x_msg_data);
3056:
3057: IF l_debug_mode = 'Y' THEN
3086: CLOSE c_get_pa_record_version_number;
3087: END IF;
3088:
3089: Fnd_Msg_Pub.add_exc_msg
3090: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3091: , p_procedure_name => 'SET_FINANCIAL_FLAG_WRAPPER'
3092: , p_error_text => x_msg_data);
3093:
3094: IF l_debug_mode = 'Y' THEN
3217: , pa_object_relationships por
3218: WHERE
3219: projelem.project_id = elemver.project_id
3220: AND projelem.proj_element_id = elemver.proj_element_id
3221: AND elemver.object_type='PA_TASKS'
3222: AND projelem.object_type='PA_TASKS'
3223: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3224: AND por.object_id_to1 = elemver.element_version_id
3225: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3218: WHERE
3219: projelem.project_id = elemver.project_id
3220: AND projelem.proj_element_id = elemver.proj_element_id
3221: AND elemver.object_type='PA_TASKS'
3222: AND projelem.object_type='PA_TASKS'
3223: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3224: AND por.object_id_to1 = elemver.element_version_id
3225: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3226: AND por.relationship_type = 'S'
3219: projelem.project_id = elemver.project_id
3220: AND projelem.proj_element_id = elemver.proj_element_id
3221: AND elemver.object_type='PA_TASKS'
3222: AND projelem.object_type='PA_TASKS'
3223: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3224: AND por.object_id_to1 = elemver.element_version_id
3225: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3226: AND por.relationship_type = 'S'
3227: AND elemver.project_id = l_project_id
3221: AND elemver.object_type='PA_TASKS'
3222: AND projelem.object_type='PA_TASKS'
3223: AND por.object_type_from IN ('PA_STRUCTURES', 'PA_TASKS')
3224: AND por.object_id_to1 = elemver.element_version_id
3225: AND por.object_type_to IN ('PA_STRUCTURES', 'PA_TASKS')
3226: AND por.relationship_type = 'S'
3227: AND elemver.project_id = l_project_id
3228: AND elemver.element_version_id IN
3229: (--Get the Parents of the passed task
3258:
3259:
3260:
3261: IF l_debug_mode = 'Y' THEN
3262: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB:POPULATE_TEMP_TABLE:Printing Input parameters';
3263: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3264: l_debug_level3);
3265: Pa_Debug.WRITE(g_pkg_name,'p_structure_version_id'||':'||p_structure_version_id,
3266: l_debug_level3);
3300: savepoint POPULATE_TEMP_TBL_PUB;
3301: END IF;
3302:
3303: IF l_debug_mode = 'Y' THEN
3304: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : Validating Input parameters';
3305: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3306: l_debug_level3);
3307: END IF;
3308:
3312: ( p_project_id IS NULL )
3313: )
3314: THEN
3315: IF l_debug_mode = 'Y' THEN
3316: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : At least one of the mandatory IN parameters are passed as NULL';
3317: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3318: l_debug_level3);
3319: END IF;
3320: RAISE Invalid_Arg_Exc_WP;
3458: WHEN Invalid_Arg_Exc_WP THEN
3459:
3460: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3461: x_msg_count := 1;
3462: x_msg_data := 'PA_TASKS_MAINT_PUB : POPULATE_TEMP_TABLE : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3463:
3464: IF p_commit = FND_API.G_TRUE THEN
3465: ROLLBACK TO POPULATE_TEMP_TABLE_PUB;
3466: END IF;
3471: IF c_get_parents%ISOPEN THEN
3472: CLOSE c_get_parents;
3473: END IF;
3474: Fnd_Msg_Pub.add_exc_msg
3475: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3476: , p_procedure_name => 'POPULATE_TEMP_TABLE'
3477: , p_error_text => x_msg_data);
3478:
3479: IF l_debug_mode = 'Y' THEN
3501: CLOSE c_get_parents;
3502: END IF;
3503:
3504: Fnd_Msg_Pub.add_exc_msg
3505: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3506: , p_procedure_name => 'POPULATE_TEMP_TABLE'
3507: , p_error_text => x_msg_data);
3508:
3509: IF l_debug_mode = 'Y' THEN
3518:
3519: -- Procedure : SYNC_UP_WP_TASKS_WITH_FIN
3520: -- Type : Public Procedure
3521: -- Purpose : This API will be called from set financial tasks page in financial tab
3522: -- : This API is to Sync up the financial tasks with pa_tasks table
3523: -- Note : This API does all the validations required on parameters and calls private API
3524: -- :
3525: -- Assumptions : The financial_task_flag is already set in the database.
3526:
3531: -- p_task_version_id NUMBER NO The single task's version id. This is applicable for singular case.
3532: -- 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.
3533: -- 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.
3534: -- 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
3535: -- p_patask_record_version_number NUMBER NO This is record version number of the record in pa_tasks
3536: -- p_parent_task_version_id NUMBER NO This is parent task version id of the current task, It is needed in create_task
3537:
3538: PROCEDURE SYNC_UP_WP_TASKS_WITH_FIN
3539: (
3591: p_debug_mode => l_debug_mode );
3592: END IF;
3593:
3594: IF l_debug_mode = 'Y' THEN
3595: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Printing Input parameters';
3596: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3597: l_debug_level3);
3598: Pa_Debug.WRITE(g_pkg_name,'p_project_id '||':'||p_project_id ,
3599: l_debug_level3);
3621: savepoint SYNC_UP_WITH_FIN_PUBLIC;
3622: END IF;
3623:
3624: IF l_debug_mode = 'Y' THEN
3625: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Validating Input parameters';
3626: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3627: l_debug_level3);
3628: END IF;
3629:
3629:
3630: IF ( p_project_id IS NULL)
3631: THEN
3632: IF l_debug_mode = 'Y' THEN
3633: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Mandatory parameters are null';
3634: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3635: l_debug_level3);
3636: END IF;
3637: RAISE Invalid_Arg_Exc_WP;
3640: --Validating for p_mode, it shopuld be either SINGLE or ALL
3641: /*IF (p_mode <> 'SINGLE' OR p_mode <> 'ALL')
3642: THEN
3643: IF l_debug_mode = 'Y' THEN
3644: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : p_mode is invalid';
3645: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3646: l_debug_level3);
3647: END IF;
3648: RAISE Invalid_Arg_Exc_WP;
3655: )
3656: )
3657: THEN
3658: IF l_debug_mode = 'Y' THEN
3659: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Manadatory parameters with mode '||p_mode||'are not passed';
3660: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3661: l_debug_level3);
3662: END IF;
3663: RAISE Invalid_Arg_Exc_WP;
3666: ( p_structure_version_id IS NULL OR p_structure_version_id = FND_API.G_MISS_NUM )
3667: )
3668: THEN
3669: IF l_debug_mode = 'Y' THEN
3670: Pa_Debug.g_err_stage:= 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : Manadatory parameters with mode '||p_mode||'are not passed';
3671: Pa_Debug.WRITE(g_pkg_name,Pa_Debug.g_err_stage,
3672: l_debug_level3);
3673: END IF;
3674: RAISE Invalid_Arg_Exc_WP;
3674: RAISE Invalid_Arg_Exc_WP;
3675: END IF;
3676:
3677: -- Call Private APIs
3678: PA_TASKS_MAINT_PVT.SYNC_UP_WP_TASKS_WITH_FIN
3679: (
3680: p_init_msg_list => FND_API.G_FALSE
3681: , p_commit => p_commit
3682: , p_debug_mode => l_debug_mode
3740: WHEN Invalid_Arg_Exc_WP THEN
3741:
3742: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3743: x_msg_count := 1;
3744: x_msg_data := 'PA_TASKS_MAINT_PUB : SYNC_UP_WP_TASKS_WITH_FIN : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
3745:
3746: IF p_commit = FND_API.G_TRUE THEN
3747: ROLLBACK TO SYNC_UP_WITH_FIN_PUBLIC;
3748: END IF;
3748: END IF;
3749:
3750:
3751: Fnd_Msg_Pub.add_exc_msg
3752: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3753: , p_procedure_name => 'SYNC_UP_WP_TASKS_WITH_FIN'
3754: , p_error_text => x_msg_data);
3755: IF l_debug_mode = 'Y' THEN
3756: Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
3773:
3774:
3775:
3776: Fnd_Msg_Pub.add_exc_msg
3777: ( p_pkg_name => 'PA_TASKS_MAINT_PUB'
3778: , p_procedure_name => 'SYNC_UP_WP_TASKS_WITH_FIN'
3779: , p_error_text => x_msg_data);
3780:
3781: IF l_debug_mode = 'Y' THEN
3787: RAISE;
3788: END SYNC_UP_WP_TASKS_WITH_FIN ;
3789:
3790: --3279982 End Add rtarway for FP.M develeopment
3791: end PA_TASKS_MAINT_PUB;