186:
187: PROCEDURE initialize
188:
189: IS
190: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
191:
192: BEGIN
193:
194: x_old_stack := x_err_stack;
201:
202: -- Get the Accumulation type from PA_IMPLEMENTATIONS
203: -- whether Accumulate by PA_PERIOD or GL_PERIOD
204: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
205: Pa_Debug.debug(x_err_stack);
206: END IF;
207:
208: --- Getting the commit size--------------
209: IF Fnd_Profile.value('PA_NUM_EXP_ITEMS_PER_SET') IS NOT NULL THEN
310: Pa_Proj_Accum_Main.G_PA_Enhanced_Burdening := pa_utils2.IsEnhancedBurdeningEnabled; /*4278940 */
311:
312: IF ( P_DEBUG_MODE = 'Y' )
313: THEN
314: Pa_Debug.debug('proj_accum, Initialize: G_PA_Enhanced_Burdening - '|| Pa_Proj_Accum_Main.G_PA_Enhanced_Burdening );
315: END IF;
316:
317:
318: -- --------------------------------------------------------------------------
334:
335: PROCEDURE initialize_project (x_project_id IN NUMBER,
336: x_accum_period_type_changed OUT NOCOPY BOOLEAN) --File.Sql.39 bug 4440895
337: IS
338: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
339: l_accum_period_type_changed BOOLEAN;
340:
341:
342: BEGIN
347: x_err_stage :=
348: 'Summary Accumulation Initialization Procedure for Project_id= ' || x_project_id;
349:
350: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
351: Pa_Debug.debug('initialize_project: ' || x_err_stack);
352: END IF;
353:
354: /* Commented for performance bug 3653978
355: -- Initialize the global variables before use for each project
499: x_err_stack IN OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
500: x_err_stage IN OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
501: x_err_code IN OUT NOCOPY NUMBER) --File.Sql.39 bug 4440895
502: IS
503: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
504:
505: BEGIN
506:
507: x_old_stack := x_err_stack;
515: -- if the period did moved backward, then we will abort the process
516: -- If the period was moved forward, it is OK
517:
518: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
519: Pa_Debug.debug('check_reporting_period: ' || x_err_stack);
520: END IF;
521:
522: -- Get the information pertaining to the Current PA PERIOD
523:
792: )
793: IS
794:
795: /* Added Debug Profile Option variable initialization for bug#2674619 */
796: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
797:
798:
799:
800: x_log_summ_mode VARCHAR2(1) := 'N';
985: x_err_stage := 'Project Accumulation Process';
986: x_log_summ_mode := Fnd_Profile.value('PA_LOG_SUMM_MODE');
987:
988: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
989: Pa_Debug.debug('proj_accum: ' || x_err_stack);
990: END IF;
991:
992: -- Grants Management Integrated Commitment Processing ---------------------
993: -- added 30-MAY-2003, jwhite
995: G_GMS_Enabled := GMS_PA_API3.grants_enabled;
996:
997: IF ( P_DEBUG_MODE = 'Y' )
998: THEN
999: Pa_Debug.debug('proj_accum: G_GMS_Enabled = ' || G_GMS_Enabled);
1000: END IF;
1001:
1002:
1003: -- -------------------------------------------------------------------------
1016: AND NVL(x_budgets_flag, 'N') = 'N'
1017: AND NVL(x_commitments_flag, 'N') = 'N' THEN
1018:
1019: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1020: Pa_Debug.debug('proj_accum: ' || 'Nothing selected for accumulation');
1021: END IF;
1022: errbuf := 'Nothing selected for accumulation ';
1023: retcode := 2;
1024: RETURN;
1245:
1246: EXCEPTION
1247: WHEN NO_DATA_FOUND THEN
1248: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1249: Pa_Debug.debug('proj_accum: ' || 'No Records to be Summarized');
1250: END IF;
1251: NULL ;
1252: WHEN OTHERS THEN
1253: x_err_code := SQLCODE;
1269: Pa_Proj_Accum_Main.lock_proj_level_header_record
1270: (filter_proj.project_id);
1271:
1272: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1273: Pa_Debug.debug('proj_accum: ' || '**** PLEASE REFRESH THE PROJECT '
1274: || filter_proj.segment1 || ' ****',
1275: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1276: END IF;
1277:
1271:
1272: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1273: Pa_Debug.debug('proj_accum: ' || '**** PLEASE REFRESH THE PROJECT '
1274: || filter_proj.segment1 || ' ****',
1275: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1276: END IF;
1277:
1278: IF filter_proj.action_flag = 'PT' THEN
1279: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1276: END IF;
1277:
1278: IF filter_proj.action_flag = 'PT' THEN
1279: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1280: Pa_Debug.debug('proj_accum: ' || '***** THE ACCUMULATION PERIOD ' ||
1281: 'TYPE HAS CHANGED SINCE THE LAST TIME '||
1282: 'THE PROJECT WAS ACCUMULATED *****',
1283: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1284: END IF;
1279: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1280: Pa_Debug.debug('proj_accum: ' || '***** THE ACCUMULATION PERIOD ' ||
1281: 'TYPE HAS CHANGED SINCE THE LAST TIME '||
1282: 'THE PROJECT WAS ACCUMULATED *****',
1283: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1284: END IF;
1285: errbuf := 'Accumulation Period Type has changed' ;
1286: l_sum_exception_code := 'PA_SUM_ACCUM_PERIOD_CHANGED';
1287:
1286: l_sum_exception_code := 'PA_SUM_ACCUM_PERIOD_CHANGED';
1287:
1288: ELSIF filter_proj.action_flag = 'TR' THEN
1289: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1290: Pa_Debug.debug('proj_accum: ' || '************* TASKS ARE ' ||
1291: 'RESTRUCTURED FOR THE PROJECT *************',
1292: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1293: END IF;
1294: errbuf := 'Tasks have been Restructured' ;
1288: ELSIF filter_proj.action_flag = 'TR' THEN
1289: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1290: Pa_Debug.debug('proj_accum: ' || '************* TASKS ARE ' ||
1291: 'RESTRUCTURED FOR THE PROJECT *************',
1292: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1293: END IF;
1294: errbuf := 'Tasks have been Restructured' ;
1295: l_sum_exception_code := 'PA_SUM_TASKS_RESTRUCTURED';
1296:
1295: l_sum_exception_code := 'PA_SUM_TASKS_RESTRUCTURED';
1296:
1297: ELSIF filter_proj.action_flag = 'BK' THEN
1298: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1299: Pa_Debug.debug('proj_accum: ' || '********** REPORTING PERIOD ' ||
1300: 'WAS MOVED BACKWARDS IN TIME **********',
1301: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1302: END IF;
1303: errbuf := 'Reporting Period has moved backwards' ;
1297: ELSIF filter_proj.action_flag = 'BK' THEN
1298: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1299: Pa_Debug.debug('proj_accum: ' || '********** REPORTING PERIOD ' ||
1300: 'WAS MOVED BACKWARDS IN TIME **********',
1301: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1302: END IF;
1303: errbuf := 'Reporting Period has moved backwards' ;
1304: l_sum_exception_code := 'PA_SUM_RPT_PERIOD_BACKWARD';
1305:
1304: l_sum_exception_code := 'PA_SUM_RPT_PERIOD_BACKWARD';
1305:
1306: ELSIF filter_proj.action_flag = 'CL' THEN
1307: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1308: Pa_Debug.debug('proj_accum: ' || '****** PROJECT IS CLOSED AND ' ||
1309: 'NOT ELIGIBLE FOR ACCUMULATION *******',
1310: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1311: END IF;
1312: errbuf := 'Project is closed' ;
1306: ELSIF filter_proj.action_flag = 'CL' THEN
1307: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1308: Pa_Debug.debug('proj_accum: ' || '****** PROJECT IS CLOSED AND ' ||
1309: 'NOT ELIGIBLE FOR ACCUMULATION *******',
1310: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1311: END IF;
1312: errbuf := 'Project is closed' ;
1313: l_sum_exception_code := 'PA_SUM_PROJECT_CLOSED';
1314:
1314:
1315: END IF ;
1316: IF (x_proj_header_locked = TRUE) THEN
1317: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1318: Pa_Debug.debug('proj_accum: ' || 'Cannot update summarization exception for project'||
1319: filter_proj.segment1,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1320: END IF;
1321: ELSE
1322: UPDATE pa_project_accum_headers
1315: END IF ;
1316: IF (x_proj_header_locked = TRUE) THEN
1317: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1318: Pa_Debug.debug('proj_accum: ' || 'Cannot update summarization exception for project'||
1319: filter_proj.segment1,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1320: END IF;
1321: ELSE
1322: UPDATE pa_project_accum_headers
1323: SET sum_exception_code = l_sum_exception_code
1341: x_err_code := SQLCODE;
1342: DELETE FROM pa_projects_for_accum
1343: WHERE request_id = x_request_id ;
1344: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1345: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
1346: errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
1347: Pa_Debug.debug('proj_accum: ' || 'Skipping the accumulation for project ' ||
1348: filter_proj.segment1,
1349: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1342: DELETE FROM pa_projects_for_accum
1343: WHERE request_id = x_request_id ;
1344: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1345: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
1346: errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
1347: Pa_Debug.debug('proj_accum: ' || 'Skipping the accumulation for project ' ||
1348: filter_proj.segment1,
1349: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1350: END IF;
1343: WHERE request_id = x_request_id ;
1344: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1345: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
1346: errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
1347: Pa_Debug.debug('proj_accum: ' || 'Skipping the accumulation for project ' ||
1348: filter_proj.segment1,
1349: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1350: END IF;
1351: RAISE;
1345: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
1346: errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
1347: Pa_Debug.debug('proj_accum: ' || 'Skipping the accumulation for project ' ||
1348: filter_proj.segment1,
1349: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
1350: END IF;
1351: RAISE;
1352:
1353: END ;
1375:
1376: FOR valid_proj IN all_projs LOOP
1377:
1378: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1379: Pa_Debug.debug('proj_accum: ' || 'Processing Project Id = ' ||
1380: TO_CHAR(valid_proj.project_id));
1381: END IF;
1382: tmp_bud_type_code := x_budget_type_code;
1383: ------------Acquire lock on the project-----------
1380: TO_CHAR(valid_proj.project_id));
1381: END IF;
1382: tmp_bud_type_code := x_budget_type_code;
1383: ------------Acquire lock on the project-----------
1384: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(valid_proj.project_id)) <> 0 THEN
1385: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1386: Pa_Debug.debug('proj_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
1387: END IF;
1388: GOTO skip_project;
1382: tmp_bud_type_code := x_budget_type_code;
1383: ------------Acquire lock on the project-----------
1384: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(valid_proj.project_id)) <> 0 THEN
1385: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1386: Pa_Debug.debug('proj_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
1387: END IF;
1388: GOTO skip_project;
1389: ELSE
1390: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1387: END IF;
1388: GOTO skip_project;
1389: ELSE
1390: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1391: Pa_Debug.debug('proj_accum: ' || 'Locking the project for summarization ...');
1392: END IF;
1393: END IF;
1394: -------------------------------------------------
1395:
1416: WHERE project_accum_id=x_proj_level_accum_id;
1417:
1418:
1419: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1420: Pa_Debug.debug('proj_accum: ' || 'Refreshing new resource lists assigned '||
1421: 'to the project, If any');
1422: END IF;
1423:
1424: IF Pa_Proj_Accum_Main.action_exists
1428:
1429: FOR new_resource_list_rec IN
1430: new_resource_list(l_project_id) LOOP
1431: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1432: Pa_Debug.debug('proj_accum: ' || 'Refreshing resource list id = ' ||
1433: TO_CHAR(new_resource_list_rec.resource_list_id) );
1434: END IF;
1435:
1436: IF ( x_prev_accum_period IS NOT NULL ) THEN
1534: THEN
1535:
1536: IF ( P_DEBUG_MODE = 'Y' )
1537: THEN
1538: Pa_Debug.debug('proj_accum: Call Accum_Cdls with x_cdl_line_type = I' );
1539: END IF;
1540:
1541:
1542: Pa_Txn_Accums.accum_cdls
1649: x_actions_in => x_actions_in,
1650: x_actions_cnt => x_actions_cnt) = 'Y' THEN
1651:
1652: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
1653: Pa_Debug.debug('proj_accum: ' || 'Accumulation Period has changed'||
1654: ', since last accumulation');
1655: END IF;
1656:
1657: -- Initialize summary level numbers
2023: END IF;
2024:
2025: COMMIT WORK; -- we are done with this project now
2026:
2027: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(valid_proj.project_id)) = 0 THEN
2028: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2029: Pa_Debug.debug('proj_accum: ' || 'Releasing the lock on project ...');
2030: END IF;
2031: END IF;
2025: COMMIT WORK; -- we are done with this project now
2026:
2027: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(valid_proj.project_id)) = 0 THEN
2028: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2029: Pa_Debug.debug('proj_accum: ' || 'Releasing the lock on project ...');
2030: END IF;
2031: END IF;
2032:
2033: -- Re-Initializing start and end variables
2072:
2073: EXCEPTION
2074:
2075: WHEN OTHERS THEN
2076: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
2077: x_err_code := SQLCODE;
2078: retcode := x_err_code;
2079: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2080: ROLLBACK WORK;
2080: ROLLBACK WORK;
2081: DELETE FROM pa_projects_for_accum
2082: WHERE request_id = x_request_id ;
2083: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2084: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
2085: errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2086: END IF;
2087: COMMIT WORK;
2088: --raise;
2081: DELETE FROM pa_projects_for_accum
2082: WHERE request_id = x_request_id ;
2083: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2084: Pa_Debug.debug('proj_accum: ' || 'Exception Generated By Oracle Error: ' ||
2085: errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2086: END IF;
2087: COMMIT WORK;
2088: --raise;
2089: RETURN;
2105: IS
2106:
2107: /* Added Debug Profile Option variable initialization for bug#2674619 */
2108:
2109: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
2110: l_client_extn_mode varchar2(1); --14090312
2111:
2112:
2113: l_accum_period_type_changed BOOLEAN;
2193: x_date_through := x_end_date_through;
2194: END IF;
2195:
2196: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2197: Pa_Debug.debug('proj_refresh: ' || x_err_stack);
2198: END IF;
2199:
2200: l_client_extn_mode := pa_client_extn_proj_limit.client_extn_enabled; --14090312
2201: -- Grants Management Integrated Commitment Processing ---------------------
2204: G_GMS_Enabled := GMS_PA_API3.grants_enabled;
2205:
2206: IF ( P_DEBUG_MODE = 'Y' )
2207: THEN
2208: Pa_Debug.debug('proj_accum: G_GMS_Enabled = ' || G_GMS_Enabled);
2209: END IF;
2210:
2211:
2212: -- -------------------------------------------------------------------------
2255: -- This PL/SQL block corresponds to processing for each project
2256:
2257: l_project_id := projrec.project_id;
2258: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2259: Pa_Debug.debug('proj_refresh: ' || 'Refreshing accumulation for Project Id = '
2260: || TO_CHAR(projrec.project_id));
2261: END IF;
2262:
2263: -- Initialize the Global variable in the loop for each project
2266: Pa_Proj_Accum_Main.initialize_project(projrec.project_id,
2267: l_accum_period_type_changed);
2268:
2269: -- Try to Lock the project level record
2270: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
2271: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2272: Pa_Debug.debug('proj_refresh: ' || 'Could not acquire lock on the Project. Skipping ...');
2273: END IF;
2274: GOTO next_project;
2268:
2269: -- Try to Lock the project level record
2270: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
2271: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2272: Pa_Debug.debug('proj_refresh: ' || 'Could not acquire lock on the Project. Skipping ...');
2273: END IF;
2274: GOTO next_project;
2275: ELSE
2276: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2273: END IF;
2274: GOTO next_project;
2275: ELSE
2276: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2277: Pa_Debug.debug('proj_refresh: ' || 'Locking the project for summarization ...');
2278: END IF;
2279: END IF;
2280: -------------------------------------------------
2281:
2390: THEN
2391:
2392: IF ( P_DEBUG_MODE = 'Y' )
2393: THEN
2394: Pa_Debug.debug('proj_accum: Call Accum_Cdls with x_cdl_line_type = I' );
2395: END IF;
2396:
2397: Pa_Txn_Accums.accum_cdls
2398: (projrec.project_id, -- start_project_id
2556:
2557: -- Stop processing and exit the procedure return from the procedure
2558: -- after a rollback;
2559: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2560: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2561: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2562: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2557: -- Stop processing and exit the procedure return from the procedure
2558: -- after a rollback;
2559: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2560: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2561: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2562: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2565: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2558: -- after a rollback;
2559: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2560: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2561: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2562: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2565: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2566: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2559: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2560: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2561: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2562: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2565: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2566: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2567: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2561: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2562: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2565: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2566: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2567: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2568: END IF;
2569: END IF;
2563: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2564: END IF;
2565: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2566: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2567: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2568: END IF;
2569: END IF;
2570: errbuf := 'Reporting Period Moved Backward In Time During Process Run';
2571: retcode := 2;
2657: IF(x_reporting_period_status = 'Y') THEN
2658: -- Stop processing and exit the procedure return from the procedure
2659: -- after a rollback;
2660: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2661: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2662: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2663: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2658: -- Stop processing and exit the procedure return from the procedure
2659: -- after a rollback;
2660: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2661: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2662: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2663: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2666: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2659: -- after a rollback;
2660: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2661: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2662: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2663: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2666: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2667: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2660: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2661: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2662: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2663: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2666: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2667: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2668: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2662: Pa_Debug.debug('proj_refresh: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2663: Pa_Debug.debug('proj_refresh: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2666: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2667: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2668: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2669: END IF;
2670: END IF;
2664: Pa_Debug.debug('proj_refresh: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2665: END IF;
2666: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2667: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2668: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2669: END IF;
2670: END IF;
2671: errbuf := 'Reporting Period Moved Backward In Time During Process Run';
2672: retcode := 2;
2670: END IF;
2671: errbuf := 'Reporting Period Moved Backward In Time During Process Run';
2672: retcode := 2;
2673: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2674: Pa_Debug.debug('proj_refresh: ' || 'Here');
2675: END IF;
2676: ROLLBACK WORK;
2677: RETURN;
2678: END IF; -- IF(x_reporting_period_status = 'Y')
2733: );
2734: END IF;
2735:
2736: COMMIT WORK; -- we are done with this project now
2737: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2738: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2739: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2740: END IF;
2741: END IF;
2735:
2736: COMMIT WORK; -- we are done with this project now
2737: IF Pa_Debug.release_user_lock( 'PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2738: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2739: Pa_Debug.debug('proj_refresh: ' || 'Released lock on project ...');
2740: END IF;
2741: END IF;
2742:
2743: -- Re-initializing start and end variables
2771:
2772: EXCEPTION
2773:
2774: WHEN OTHERS THEN
2775: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
2776: x_err_code := SQLCODE;
2777: retcode := x_err_code;
2778: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2779: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2776: x_err_code := SQLCODE;
2777: retcode := x_err_code;
2778: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2779: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2780: Pa_Debug.debug('proj_refresh: ' || 'Exception Generated By Oracle Error: ' || errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
2781: Pa_Debug.debug('proj_refresh: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2782: END IF;
2783:
2784: -- Exception handling for database errors (other than 1400 and 1489)
2777: retcode := x_err_code;
2778: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2779: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2780: Pa_Debug.debug('proj_refresh: ' || 'Exception Generated By Oracle Error: ' || errbuf,Pa_Debug.DEBUG_LEVEL_EXCEPTION );
2781: Pa_Debug.debug('proj_refresh: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2782: END IF;
2783:
2784: -- Exception handling for database errors (other than 1400 and 1489)
2785: IF x_err_code*-1 BETWEEN 1400 AND 1489 THEN
2797:
2798: EXCEPTION
2799:
2800: WHEN OTHERS THEN
2801: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
2802: x_err_code := SQLCODE;
2803: retcode := x_err_code;
2804: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2805: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2802: x_err_code := SQLCODE;
2803: retcode := x_err_code;
2804: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
2805: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2806: Pa_Debug.debug('proj_refresh: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2807: END IF;
2808: ROLLBACK WORK;
2809: RETURN;
2810: END proj_refresh;
2820: x_project_num_to IN VARCHAR2,
2821: x_resource_list_id IN NUMBER
2822: )
2823: IS
2824: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
2825: l_accum_period_type_changed BOOLEAN;
2826: l_sum_exception_code pa_project_accum_headers.sum_exception_code%TYPE := NULL;
2827: l_current_start_date DATE := NULL;
2828: l_current_end_date DATE := NULL;
2857: x_err_stack := x_err_stack || '->pa_proj_accum_main.ref_rl_accum';
2858: x_err_stage := 'Refresh Resource List accumulation Process';
2859:
2860: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2861: Pa_Debug.debug('ref_rl_accum: ' || x_err_stack);
2862: END IF;
2863:
2864: -- Validate Parameters
2865: Get_Project_Num_Range( x_project_num_from,
2882: l_project_id := projrec.project_id;
2883: -- This PL/SQL block corresponds to processing for each project
2884:
2885: ------------Acquire lock on the project-----------
2886: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
2887: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2888: Pa_Debug.debug('ref_rl_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
2889: END IF;
2890: GOTO next_project;
2884:
2885: ------------Acquire lock on the project-----------
2886: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
2887: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2888: Pa_Debug.debug('ref_rl_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
2889: END IF;
2890: GOTO next_project;
2891: ELSE
2892: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2889: END IF;
2890: GOTO next_project;
2891: ELSE
2892: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2893: Pa_Debug.debug('ref_rl_accum: ' || 'Locking the project for summarization ...');
2894: END IF;
2895: END IF;
2896: -------------------------------------------------
2897:
2895: END IF;
2896: -------------------------------------------------
2897:
2898: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2899: Pa_Debug.debug('ref_rl_accum: ' || 'Refreshing resource list id = ' ||
2900: NVL(TO_CHAR(x_resource_list_id),'ALL') || ' For Project Id = '
2901: || TO_CHAR(projrec.project_id));
2902: END IF;
2903:
2918: --
2919: IF (Pa_Proj_Accum_Main.check_period_flags(projrec.project_id,x_impl_option,l_current_end_date,
2920: 'PT',projrec.closed_date,l_current_start_date)='Y') THEN
2921: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2922: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2923: Pa_Debug.debug('ref_rl_accum: ' || '*****THE ACCUMULATION PERIOD TYPE HAS CHANGED SINCE THE LAST TIME PROJECT ' || projrec.segment1 || ' WAS ACCUMULATED '|| '******',
2924: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2925: Pa_Debug.debug('ref_rl_accum: ' || '*****PLEASE REFRESH THE PROJECT ******', Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2926: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2919: IF (Pa_Proj_Accum_Main.check_period_flags(projrec.project_id,x_impl_option,l_current_end_date,
2920: 'PT',projrec.closed_date,l_current_start_date)='Y') THEN
2921: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2922: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2923: Pa_Debug.debug('ref_rl_accum: ' || '*****THE ACCUMULATION PERIOD TYPE HAS CHANGED SINCE THE LAST TIME PROJECT ' || projrec.segment1 || ' WAS ACCUMULATED '|| '******',
2924: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2925: Pa_Debug.debug('ref_rl_accum: ' || '*****PLEASE REFRESH THE PROJECT ******', Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2926: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2927: END IF;
2920: 'PT',projrec.closed_date,l_current_start_date)='Y') THEN
2921: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2922: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2923: Pa_Debug.debug('ref_rl_accum: ' || '*****THE ACCUMULATION PERIOD TYPE HAS CHANGED SINCE THE LAST TIME PROJECT ' || projrec.segment1 || ' WAS ACCUMULATED '|| '******',
2924: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2925: Pa_Debug.debug('ref_rl_accum: ' || '*****PLEASE REFRESH THE PROJECT ******', Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2926: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2927: END IF;
2928: -- Stop processing and exit the procedure return from the procedure
2921: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2922: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2923: Pa_Debug.debug('ref_rl_accum: ' || '*****THE ACCUMULATION PERIOD TYPE HAS CHANGED SINCE THE LAST TIME PROJECT ' || projrec.segment1 || ' WAS ACCUMULATED '|| '******',
2924: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2925: Pa_Debug.debug('ref_rl_accum: ' || '*****PLEASE REFRESH THE PROJECT ******', Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2926: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2927: END IF;
2928: -- Stop processing and exit the procedure return from the procedure
2929: -- after a rollback;
2922: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2923: Pa_Debug.debug('ref_rl_accum: ' || '*****THE ACCUMULATION PERIOD TYPE HAS CHANGED SINCE THE LAST TIME PROJECT ' || projrec.segment1 || ' WAS ACCUMULATED '|| '******',
2924: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2925: Pa_Debug.debug('ref_rl_accum: ' || '*****PLEASE REFRESH THE PROJECT ******', Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2926: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2927: END IF;
2928: -- Stop processing and exit the procedure return from the procedure
2929: -- after a rollback;
2930: errbuf := 'The Project ' || projrec.segment1 || 'Must Be Refreshed, Because the accumulation period type has changed since the last time the project was summarized';
2949:
2950: IF ( x_tasks_restructured_flag = 'Y') THEN
2951: -- Add a message into the Log file
2952: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2953: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2954: Pa_Debug.debug('ref_rl_accum: ' || '*****THE PROJECT ' || projrec.segment1 || ' TASKS ARE RESTRUCTURED, PLEASE REFRESH THE PROJECT ******',
2955: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2956: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2957: END IF;
2950: IF ( x_tasks_restructured_flag = 'Y') THEN
2951: -- Add a message into the Log file
2952: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2953: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2954: Pa_Debug.debug('ref_rl_accum: ' || '*****THE PROJECT ' || projrec.segment1 || ' TASKS ARE RESTRUCTURED, PLEASE REFRESH THE PROJECT ******',
2955: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2956: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2957: END IF;
2958: -- Stop processing and exit the procedure return from the procedure
2951: -- Add a message into the Log file
2952: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2953: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2954: Pa_Debug.debug('ref_rl_accum: ' || '*****THE PROJECT ' || projrec.segment1 || ' TASKS ARE RESTRUCTURED, PLEASE REFRESH THE PROJECT ******',
2955: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2956: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2957: END IF;
2958: -- Stop processing and exit the procedure return from the procedure
2959: -- after a rollback;
2952: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2953: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2954: Pa_Debug.debug('ref_rl_accum: ' || '*****THE PROJECT ' || projrec.segment1 || ' TASKS ARE RESTRUCTURED, PLEASE REFRESH THE PROJECT ******',
2955: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2956: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2957: END IF;
2958: -- Stop processing and exit the procedure return from the procedure
2959: -- after a rollback;
2960: errbuf := 'The Project ' || projrec.segment1 || 'Must Be Refreshed, Because the Tasks for this Project were Restructured';
2968: END;
2969: IF (l_sum_exception_code IS NOT NULL) THEN
2970: IF (x_proj_header_locked = TRUE) THEN
2971: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2972: Pa_Debug.debug('ref_rl_accum: ' || 'Cannot update summarization exception for project'||projrec.segment1,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
2973: END IF;
2974: ELSE
2975: UPDATE pa_project_accum_headers
2976: SET sum_exception_code = l_sum_exception_code
2978: AND task_id = 0
2979: AND resource_list_member_id = 0;
2980: COMMIT WORK;
2981: END IF;
2982: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2983: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2984: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
2985: END IF;
2986: END IF;
2980: COMMIT WORK;
2981: END IF;
2982: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
2983: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
2984: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
2985: END IF;
2986: END IF;
2987: GOTO next_project;
2988: END IF;
3096:
3097: -- Stop processing and exit the procedure return from the procedure
3098: -- after a rollback;
3099: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3100: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3101: Pa_Debug.debug('ref_rl_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3102: Pa_Debug.debug('ref_rl_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3097: -- Stop processing and exit the procedure return from the procedure
3098: -- after a rollback;
3099: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3100: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3101: Pa_Debug.debug('ref_rl_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3102: Pa_Debug.debug('ref_rl_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3105: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3098: -- after a rollback;
3099: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3100: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3101: Pa_Debug.debug('ref_rl_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3102: Pa_Debug.debug('ref_rl_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3105: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3106: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3099: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3100: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3101: Pa_Debug.debug('ref_rl_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3102: Pa_Debug.debug('ref_rl_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3105: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3106: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3107: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
3101: Pa_Debug.debug('ref_rl_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3102: Pa_Debug.debug('ref_rl_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3105: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3106: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3107: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
3108: END IF;
3109: END IF;
3103: Pa_Debug.debug('ref_rl_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3104: END IF;
3105: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3106: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3107: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
3108: END IF;
3109: END IF;
3110: errbuf := 'Reporting Period Moved Backward In Time During Process Run';
3111: retcode := 2;
3113: RETURN;
3114: END IF; -- IF(x_reporting_period_status = 'Y')
3115:
3116: COMMIT WORK; -- we are done with this project now
3117: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3118: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3119: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
3120: END IF;
3121: END IF;
3115:
3116: COMMIT WORK; -- we are done with this project now
3117: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3118: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3119: Pa_Debug.debug('ref_rl_accum: ' || 'Releasing the lock on project ...');
3120: END IF;
3121: END IF;
3122:
3123:
3123:
3124: EXCEPTION
3125:
3126: WHEN OTHERS THEN
3127: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
3128: x_err_code := SQLCODE;
3129: retcode := x_err_code;
3130: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3131: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3128: x_err_code := SQLCODE;
3129: retcode := x_err_code;
3130: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3131: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3132: Pa_Debug.debug('ref_rl_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3133: Pa_Debug.debug('ref_rl_accum: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3134: END IF;
3135:
3136: -- Exception handling for database errors (other than 1400 and 1489)
3129: retcode := x_err_code;
3130: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3131: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3132: Pa_Debug.debug('ref_rl_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3133: Pa_Debug.debug('ref_rl_accum: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3134: END IF;
3135:
3136: -- Exception handling for database errors (other than 1400 and 1489)
3137: IF x_err_code*-1 BETWEEN 1400 AND 1489 THEN
3149:
3150: EXCEPTION
3151:
3152: WHEN OTHERS THEN
3153: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
3154: x_err_code := SQLCODE;
3155: retcode := x_err_code;
3156: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3157: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3154: x_err_code := SQLCODE;
3155: retcode := x_err_code;
3156: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3157: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3158: Pa_Debug.debug('ref_rl_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3159: END IF;
3160: ROLLBACK WORK;
3161: RETURN;
3162: END ref_rl_accum;
3178: x_end_pa_period IN VARCHAR2,
3179: x_system_linkage_function IN VARCHAR2
3180: )
3181: IS
3182: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
3183: l_accum_period_type_changed BOOLEAN;
3184: -- Declare cursor for Projects
3185:
3186: l_project_num_from VARCHAR2(25);
3215:
3216: x_mode := 'F';
3217:
3218: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3219: Pa_Debug.debug('build_txn_accum: ' || x_err_stack);
3220: END IF;
3221:
3222: -- Validate Parameters
3223: Get_Project_Num_Range( x_project_num_from,
3279: BEGIN
3280:
3281: -- This PL/SQL block corresponds to processing for each project
3282: ------------Acquire lock on the project-----------
3283: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
3284: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3285: Pa_Debug.debug('build_txn_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
3286: END IF;
3287: GOTO next_project;
3281: -- This PL/SQL block corresponds to processing for each project
3282: ------------Acquire lock on the project-----------
3283: IF Pa_Debug.acquire_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) <> 0 THEN
3284: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3285: Pa_Debug.debug('build_txn_accum: ' || 'Could not acquire lock on the Project. Skipping ...');
3286: END IF;
3287: GOTO next_project;
3288: ELSE
3289: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3286: END IF;
3287: GOTO next_project;
3288: ELSE
3289: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3290: Pa_Debug.debug('build_txn_accum: ' || 'Locking the project for summarization ...');
3291: END IF;
3292: END IF;
3293: -------------------------------------------------
3294: l_project_id := projrec.project_id;
3292: END IF;
3293: -------------------------------------------------
3294: l_project_id := projrec.project_id;
3295: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3296: Pa_Debug.debug('build_txn_accum: ' || 'Refreshing Transaction Accumulation for the Project Id = '
3297: || TO_CHAR(projrec.project_id));
3298: END IF;
3299:
3300: -- Initialize the Global variable in the loop for each project
3393:
3394:
3395: IF ( P_DEBUG_MODE = 'Y' )
3396: THEN
3397: Pa_Debug.debug('build_txn_accum: Call Accum_Cdls with x_cdl_line_type = I' );
3398: END IF;
3399:
3400: Pa_Txn_Accums.accum_cdls
3401: (projrec.project_id, -- start_project_id
3495:
3496: -- Stop processing and exit the procedure return from the procedure
3497: -- after a rollback;
3498: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3499: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3500: Pa_Debug.debug('build_txn_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3501: Pa_Debug.debug('build_txn_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3496: -- Stop processing and exit the procedure return from the procedure
3497: -- after a rollback;
3498: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3499: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3500: Pa_Debug.debug('build_txn_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3501: Pa_Debug.debug('build_txn_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3504: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3497: -- after a rollback;
3498: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3499: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3500: Pa_Debug.debug('build_txn_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3501: Pa_Debug.debug('build_txn_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3504: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3505: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3498: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3499: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3500: Pa_Debug.debug('build_txn_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3501: Pa_Debug.debug('build_txn_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3504: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3505: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3506: Pa_Debug.debug('build_txn_accum: ' || 'Releasing the lock on project ...');
3500: Pa_Debug.debug('build_txn_accum: ' || '******Reporting Period Moved Backward In Time During Process Run',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3501: Pa_Debug.debug('build_txn_accum: ' || '******The Accumulation for the project '|| projrec.segment1 || ' Rolled Back',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3504: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3505: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3506: Pa_Debug.debug('build_txn_accum: ' || 'Releasing the lock on project ...');
3507: END IF;
3508: END IF;
3502: Pa_Debug.debug('build_txn_accum: ' || '*********************************************************************************',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3503: END IF;
3504: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3505: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3506: Pa_Debug.debug('build_txn_accum: ' || 'Releasing the lock on project ...');
3507: END IF;
3508: END IF;
3509: errbuf := 'Reporting Period Moved Backward In Time During Process Run';
3510: retcode := 5;
3512: RETURN;
3513: END IF; -- IF(x_reporting_period_status = 'Y')
3514:
3515: COMMIT WORK; -- we are done with this project now
3516: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3517: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3518: Pa_Debug.debug('build_txn_accum: ' || 'Releasing the lock on project ...');
3519: END IF;
3520: END IF;
3514:
3515: COMMIT WORK; -- we are done with this project now
3516: IF Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(projrec.project_id)) = 0 THEN
3517: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3518: Pa_Debug.debug('build_txn_accum: ' || 'Releasing the lock on project ...');
3519: END IF;
3520: END IF;
3521:
3522: EXCEPTION
3521:
3522: EXCEPTION
3523:
3524: WHEN OTHERS THEN
3525: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
3526: x_err_code := SQLCODE;
3527: retcode := x_err_code;
3528: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3529: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3526: x_err_code := SQLCODE;
3527: retcode := x_err_code;
3528: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3529: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3530: Pa_Debug.debug('build_txn_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3531: Pa_Debug.debug('build_txn_accum: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3532: END IF;
3533:
3534: -- Exception handling for database errors (other than 1400 and 1489)
3527: retcode := x_err_code;
3528: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3529: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3530: Pa_Debug.debug('build_txn_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3531: Pa_Debug.debug('build_txn_accum: ' || 'Skipping the accumulation for project ' || projrec.segment1 ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3532: END IF;
3533:
3534: -- Exception handling for database errors (other than 1400 and 1489)
3535: IF x_err_code*-1 BETWEEN 1400 AND 1489 THEN
3547:
3548: EXCEPTION
3549:
3550: WHEN OTHERS THEN
3551: rel_lock := Pa_Debug.release_user_lock('PA_SUMM:'||TO_CHAR(l_project_id));
3552: x_err_code := SQLCODE;
3553: retcode := x_err_code;
3554: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3555: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3552: x_err_code := SQLCODE;
3553: retcode := x_err_code;
3554: errbuf := SUBSTR(SQLERRM(SQLCODE),1,512);
3555: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3556: Pa_Debug.debug('build_txn_accum: ' || 'Exception Generated By Oracle Error: ' || errbuf ,Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3557: END IF;
3558: ROLLBACK WORK;
3559: RETURN;
3560: END build_txn_accum;
3561:
3562: PROCEDURE lock_proj_level_header_record
3563: (x_project_id IN NUMBER)
3564: IS
3565: P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N'); /* Added Debug Profile Option variable initialization for bug#2674619 */
3566: dummy_project_id NUMBER;
3567: BEGIN
3568: x_old_stack := x_err_stack;
3569: x_err_stack :=
3575: -- Try to Lock the project level header record with NOWAIT. If some
3576: -- other process is locking the record then raise an exception.
3577:
3578: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3579: Pa_Debug.debug('lock_proj_level_header_record: ' || x_err_stack);
3580: END IF;
3581:
3582: x_proj_header_locked := FALSE; -- Assume project header is not locked
3583:
3605: x_proj_header_locked := TRUE;
3606: x_err_stack := x_old_stack;
3607:
3608: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3609: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3606: x_err_stack := x_old_stack;
3607:
3608: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3609: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3614: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3607:
3608: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3609: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3614: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3615: END IF;
3608: IF P_DEBUG_MODE = 'Y' THEN /* Added Debug Profile Option Check for bug#2674619 */
3609: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3614: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3615: END IF;
3616:
3609: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3614: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3615: END IF;
3616:
3617: WHEN OTHERS THEN
3610: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3611: Pa_Debug.debug('lock_proj_level_header_record: ' || '****Unable to lock the Project Level Header Record for the Project_id '|| TO_CHAR(x_project_id) ||
3612: ' Skipping this Project for processing ****',Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3613: Pa_Debug.debug('lock_proj_level_header_record: ' || '******************************************************************************************************',
3614: Pa_Debug.DEBUG_LEVEL_EXCEPTION);
3615: END IF;
3616:
3617: WHEN OTHERS THEN
3618: x_err_code := SQLCODE;