1: PACKAGE BODY oki_load_okv_pvt AS
2: /* $Header: OKIROKVB.pls 115.25 2003/11/24 08:24:54 kbajaj ship $ */
3:
4: --------------------------------------------------------------------------------
5: -- Modification History
155: , p_authoring_org_name
156: , p_kpi_code
157: , p_kpi_value
158: , p_scs_code
159: , oki_load_okv_pvt.g_request_id
160: , oki_load_okv_pvt.g_program_application_id
161: , oki_load_okv_pvt.g_program_id
162: , oki_load_okv_pvt.g_program_update_date ) ;
163:
156: , p_kpi_code
157: , p_kpi_value
158: , p_scs_code
159: , oki_load_okv_pvt.g_request_id
160: , oki_load_okv_pvt.g_program_application_id
161: , oki_load_okv_pvt.g_program_id
162: , oki_load_okv_pvt.g_program_update_date ) ;
163:
164: EXCEPTION
157: , p_kpi_value
158: , p_scs_code
159: , oki_load_okv_pvt.g_request_id
160: , oki_load_okv_pvt.g_program_application_id
161: , oki_load_okv_pvt.g_program_id
162: , oki_load_okv_pvt.g_program_update_date ) ;
163:
164: EXCEPTION
165: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
158: , p_scs_code
159: , oki_load_okv_pvt.g_request_id
160: , oki_load_okv_pvt.g_program_application_id
161: , oki_load_okv_pvt.g_program_id
162: , oki_load_okv_pvt.g_program_update_date ) ;
163:
164: EXCEPTION
165: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
166: l_sqlcode := SQLCODE ;
161: , oki_load_okv_pvt.g_program_id
162: , oki_load_okv_pvt.g_program_update_date ) ;
163:
164: EXCEPTION
165: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
166: l_sqlcode := SQLCODE ;
167: l_sqlerrm := SQLERRM ;
168:
169: -- Set return code to error
226: x_retcode := '0';
227:
228: UPDATE oki_perf_measures SET
229: kpi_value = p_kpi_value
230: , request_id = oki_load_okv_pvt.g_request_id
231: , program_application_id = oki_load_okv_pvt.g_program_application_id
232: , program_id = oki_load_okv_pvt.g_program_id
233: , program_update_date = oki_load_okv_pvt.g_program_update_date
234: WHERE ROWID = p_okv_rowid ;
227:
228: UPDATE oki_perf_measures SET
229: kpi_value = p_kpi_value
230: , request_id = oki_load_okv_pvt.g_request_id
231: , program_application_id = oki_load_okv_pvt.g_program_application_id
232: , program_id = oki_load_okv_pvt.g_program_id
233: , program_update_date = oki_load_okv_pvt.g_program_update_date
234: WHERE ROWID = p_okv_rowid ;
235:
228: UPDATE oki_perf_measures SET
229: kpi_value = p_kpi_value
230: , request_id = oki_load_okv_pvt.g_request_id
231: , program_application_id = oki_load_okv_pvt.g_program_application_id
232: , program_id = oki_load_okv_pvt.g_program_id
233: , program_update_date = oki_load_okv_pvt.g_program_update_date
234: WHERE ROWID = p_okv_rowid ;
235:
236: EXCEPTION
229: kpi_value = p_kpi_value
230: , request_id = oki_load_okv_pvt.g_request_id
231: , program_application_id = oki_load_okv_pvt.g_program_application_id
232: , program_id = oki_load_okv_pvt.g_program_id
233: , program_update_date = oki_load_okv_pvt.g_program_update_date
234: WHERE ROWID = p_okv_rowid ;
235:
236: EXCEPTION
237: WHEN OTHERS THEN
244: fnd_message.set_name( application => 'OKI'
245: , name => 'OKI_UNEXPECTED_FAILURE');
246:
247: fnd_message.set_token( token => 'OBJECT_NAME'
248: , value => 'OKI_LOAD_OKV_PVT.OKI_UPD_PERF_MEAS');
249:
250: fnd_file.put_line( which => fnd_file.log
251: , buff => fnd_message.get);
252:
405: -- and convert the currency in base
406: WHERE
407: /*11510 changes comment out the following joins
408: shd.chr_id = cle.dnz_chr_id
409: AND odr.to_currency = oki_load_okv_pvt.g_base_currency
410: AND odr.from_currency = nvl(cle.currency_code, shd.currency_code) */
411: -- Get all consolidated contracts
412: cop.opn_code = 'REN_CON'
413: AND ole.process_flag = 'P'
432: l_retcode := '0';
433:
434: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
435: -- Validate the days renewal outstanding code
436: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
437: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
438: -- If there was not a valid DRO code then exit ;
439: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
440: RAISE g_excp_exit_immediate ;
433:
434: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
435: -- Validate the days renewal outstanding code
436: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
437: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
438: -- If there was not a valid DRO code then exit ;
439: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
440: RAISE g_excp_exit_immediate ;
441: END IF ;
435: -- Validate the days renewal outstanding code
436: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
437: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
438: -- If there was not a valid DRO code then exit ;
439: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
440: RAISE g_excp_exit_immediate ;
441: END IF ;
442: l_dro_code := rec_g_lkup_csr.lookup_code ;
443: CLOSE oki_load_okv_pvt.g_lkup_csr ;
439: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
440: RAISE g_excp_exit_immediate ;
441: END IF ;
442: l_dro_code := rec_g_lkup_csr.lookup_code ;
443: CLOSE oki_load_okv_pvt.g_lkup_csr ;
444:
445: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
446: -- Validate the forecast achievement %
447: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
443: CLOSE oki_load_okv_pvt.g_lkup_csr ;
444:
445: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
446: -- Validate the forecast achievement %
447: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
448: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
449: -- If there was not a valid FCACP code then exit ;
450: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
451: RAISE g_excp_exit_immediate ;
444:
445: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
446: -- Validate the forecast achievement %
447: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
448: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
449: -- If there was not a valid FCACP code then exit ;
450: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
451: RAISE g_excp_exit_immediate ;
452: END IF ;
446: -- Validate the forecast achievement %
447: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
448: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
449: -- If there was not a valid FCACP code then exit ;
450: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
451: RAISE g_excp_exit_immediate ;
452: END IF ;
453: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
454: CLOSE oki_load_okv_pvt.g_lkup_csr ;
450: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
451: RAISE g_excp_exit_immediate ;
452: END IF ;
453: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
454: CLOSE oki_load_okv_pvt.g_lkup_csr ;
455:
456: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
457: -- Validate the contracts consolidate code
458: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
454: CLOSE oki_load_okv_pvt.g_lkup_csr ;
455:
456: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
457: -- Validate the contracts consolidate code
458: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
459: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
460: -- If there was not a valid CNCS code then exit ;
461: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
462: RAISE g_excp_exit_immediate ;
455:
456: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
457: -- Validate the contracts consolidate code
458: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
459: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
460: -- If there was not a valid CNCS code then exit ;
461: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
462: RAISE g_excp_exit_immediate ;
463: END IF ;
457: -- Validate the contracts consolidate code
458: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
459: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
460: -- If there was not a valid CNCS code then exit ;
461: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
462: RAISE g_excp_exit_immediate ;
463: END IF ;
464: l_cncs_code := rec_g_lkup_csr.lookup_code ;
465: CLOSE oki_load_okv_pvt.g_lkup_csr ;
461: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
462: RAISE g_excp_exit_immediate ;
463: END IF ;
464: l_cncs_code := rec_g_lkup_csr.lookup_code ;
465: CLOSE oki_load_okv_pvt.g_lkup_csr ;
466:
467:
468: l_loc := 'Looping through valid organizations.' ;
469: << l_org_id_csr_loop >>
494: l_dro_value := rec_l_dro_csr.dro_value ;
495:
496: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
497: -- Determine if the DRO record is a new one or an existing one
498: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
499: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_dro_code,
500: rec_l_org_id_csr.scs_code ) ;
501: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
502: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
497: -- Determine if the DRO record is a new one or an existing one
498: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
499: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_dro_code,
500: rec_l_org_id_csr.scs_code ) ;
501: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
502: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
503: l_loc := 'Insert the new record.' ;
504: l_loc := 'Update the existing record.' ;
505: -- Insert the current period data for the period
498: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
499: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_dro_code,
500: rec_l_org_id_csr.scs_code ) ;
501: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
502: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
503: l_loc := 'Insert the new record.' ;
504: l_loc := 'Update the existing record.' ;
505: -- Insert the current period data for the period
506: oki_load_okv_pvt.ins_perf_meas(
502: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
503: l_loc := 'Insert the new record.' ;
504: l_loc := 'Update the existing record.' ;
505: -- Insert the current period data for the period
506: oki_load_okv_pvt.ins_perf_meas(
507: p_period_name => rec_g_glpr_csr.period_name
508: , p_period_set_name => rec_g_glpr_csr.period_set_name
509: , p_period_type => rec_g_glpr_csr.period_type
510: , p_authoring_org_id => rec_l_org_id_csr.org_id
515: , x_retcode => l_retcode ) ;
516:
517: IF l_retcode = '2' THEN
518: -- Load failed, exit immediately.
519: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
520: END IF ;
521:
522: ELSE
523: l_loc := 'Update the existing record.' ;
521:
522: ELSE
523: l_loc := 'Update the existing record.' ;
524: -- Record already exists, so perform an update
525: oki_load_okv_pvt.upd_perf_meas(
526: p_kpi_value => l_dro_value
527: , p_okv_rowid => rec_g_okv_csr.rowid
528: , x_retcode => l_retcode ) ;
529:
528: , x_retcode => l_retcode ) ;
529:
530: IF l_retcode = '2' THEN
531: -- Load failed, exit immediately.
532: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
533: END IF ;
534:
535: END IF ;
536: CLOSE oki_load_okv_pvt.g_okv_csr ;
532: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
533: END IF ;
534:
535: END IF ;
536: CLOSE oki_load_okv_pvt.g_okv_csr ;
537: END LOOP l_dro_csr_loop ;
538:
539:
540: l_loc := 'Opening cursor to determine the contract amount of FA %.' ;
569: END IF ;
570:
571: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
572: -- Determine if the FCACP record is a new one or an existing one
573: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
574: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_fcacp_code,
575: rec_l_org_id_csr.scs_code ) ;
576: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
577: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
572: -- Determine if the FCACP record is a new one or an existing one
573: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
574: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_fcacp_code,
575: rec_l_org_id_csr.scs_code ) ;
576: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
577: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
578: l_loc := 'Insert the new record.' ;
579: -- Insert the current period data for the period
580: oki_load_okv_pvt.ins_perf_meas(
573: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
574: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_fcacp_code,
575: rec_l_org_id_csr.scs_code ) ;
576: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
577: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
578: l_loc := 'Insert the new record.' ;
579: -- Insert the current period data for the period
580: oki_load_okv_pvt.ins_perf_meas(
581: p_period_name => rec_g_glpr_csr.period_name
576: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
577: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
578: l_loc := 'Insert the new record.' ;
579: -- Insert the current period data for the period
580: oki_load_okv_pvt.ins_perf_meas(
581: p_period_name => rec_g_glpr_csr.period_name
582: , p_period_set_name => rec_g_glpr_csr.period_set_name
583: , p_period_type => rec_g_glpr_csr.period_type
584: , p_authoring_org_id => rec_l_org_id_csr.org_id
588: , p_scs_code => rec_l_org_id_csr.scs_code
589: , x_retcode => l_retcode ) ;
590: IF l_retcode = '2' THEN
591: -- Load failed, exit immediately.
592: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
593: END IF ;
594: ELSE
595: l_loc := 'Update the existing record.' ;
596: -- Record already exists, so perform an update
593: END IF ;
594: ELSE
595: l_loc := 'Update the existing record.' ;
596: -- Record already exists, so perform an update
597: oki_load_okv_pvt.upd_perf_meas(
598: p_kpi_value => l_achv_pct
599: , p_okv_rowid => rec_g_okv_csr.rowid
600: , x_retcode => l_retcode ) ;
601:
600: , x_retcode => l_retcode ) ;
601:
602: IF l_retcode = '2' THEN
603: -- Load failed, exit immediately.
604: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
605: END IF ;
606:
607: END IF ;
608: CLOSE oki_load_okv_pvt.g_okv_csr ;
604: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
605: END IF ;
606:
607: END IF ;
608: CLOSE oki_load_okv_pvt.g_okv_csr ;
609: END LOOP l_achv_cntr_csr_loop ;
610:
611:
612: l_loc := 'Opening cursor to determine the contracts consilodated value.' ;
620: rec_l_cntr_cnsl_csr.base_price_negotiated ;
621:
622: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
623: -- Determine if the CNCS record is a new one or an existing one
624: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
625: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_cncs_code,
626: rec_l_org_id_csr.scs_code ) ;
627: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
628: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
623: -- Determine if the CNCS record is a new one or an existing one
624: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
625: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_cncs_code,
626: rec_l_org_id_csr.scs_code ) ;
627: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
628: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
629: l_loc := 'Insert the new record.' ;
630: -- Insert the current period data for the period
631: oki_load_okv_pvt.ins_perf_meas(
624: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
625: rec_g_glpr_csr.period_name, rec_l_org_id_csr.org_id, l_cncs_code,
626: rec_l_org_id_csr.scs_code ) ;
627: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
628: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
629: l_loc := 'Insert the new record.' ;
630: -- Insert the current period data for the period
631: oki_load_okv_pvt.ins_perf_meas(
632: p_period_name => rec_g_glpr_csr.period_name
627: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
628: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
629: l_loc := 'Insert the new record.' ;
630: -- Insert the current period data for the period
631: oki_load_okv_pvt.ins_perf_meas(
632: p_period_name => rec_g_glpr_csr.period_name
633: , p_period_set_name => rec_g_glpr_csr.period_set_name
634: , p_period_type => rec_g_glpr_csr.period_type
635: , p_authoring_org_id => rec_l_org_id_csr.org_id
640: , x_retcode => l_retcode ) ;
641:
642: IF l_retcode = '2' THEN
643: -- Load failed, exit immediately.
644: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
645: END IF ;
646:
647: ELSE
648: l_loc := 'Update the existing record.' ;
646:
647: ELSE
648: l_loc := 'Update the existing record.' ;
649: -- Record already exists, so perform an update
650: oki_load_okv_pvt.upd_perf_meas(
651: p_kpi_value => l_base_consolidated_amount
652: , p_okv_rowid => rec_g_okv_csr.rowid
653: , x_retcode => l_retcode ) ;
654:
653: , x_retcode => l_retcode ) ;
654:
655: IF l_retcode = '2' THEN
656: -- Load failed, exit immediately.
657: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
658: END IF ;
659:
660: END IF ;
661: CLOSE oki_load_okv_pvt.g_okv_csr ;
657: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
658: END IF ;
659:
660: END IF ;
661: CLOSE oki_load_okv_pvt.g_okv_csr ;
662: END LOOP l_cntr_cnsl_csr_loop ;
663: END LOOP g_glpr_csr_loop ;
664: END LOOP l_org_id_csr_loop ;
665:
664: END LOOP l_org_id_csr_loop ;
665:
666: EXCEPTION
667:
668: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
669: -- Do not log an error ; It has already been logged.
670: -- Set return code to error
671: x_retcode := '2' ;
672:
680: fnd_message.set_name( application => 'OKI'
681: , name => 'OKI_UNEXPECTED_FAILURE');
682:
683: fnd_message.set_token( token => 'OBJECT_NAME'
684: , value => 'OKI_LOAD_OKV_PVT.CALC_OKV_DTL1');
685:
686: fnd_file.put_line( which => fnd_file.log
687: , buff => fnd_message.get);
688:
842: -- and convert the currency in base
843: WHERE
844: /*11510 changes removed the following joins
845: shd.chr_id = cle.dnz_chr_id
846: AND odr.to_currency = oki_load_okv_pvt.g_base_currency
847: AND odr.from_currency = nvl(cle.currency_code, shd.currency_code) */
848: -- Get all consolidated contracts
849: cop.opn_code = 'REN_CON'
850: AND ole.process_flag = 'P'
865: l_retcode := '0';
866:
867: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
868: -- Validate the days renewal outstanding code
869: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
870: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
871: -- If there was not a valid DRO code then exit ;
872: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
873: RAISE g_excp_exit_immediate ;
866:
867: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
868: -- Validate the days renewal outstanding code
869: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
870: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
871: -- If there was not a valid DRO code then exit ;
872: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
873: RAISE g_excp_exit_immediate ;
874: END IF ;
868: -- Validate the days renewal outstanding code
869: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
870: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
871: -- If there was not a valid DRO code then exit ;
872: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
873: RAISE g_excp_exit_immediate ;
874: END IF ;
875: l_dro_code := rec_g_lkup_csr.lookup_code ;
876: CLOSE oki_load_okv_pvt.g_lkup_csr ;
872: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
873: RAISE g_excp_exit_immediate ;
874: END IF ;
875: l_dro_code := rec_g_lkup_csr.lookup_code ;
876: CLOSE oki_load_okv_pvt.g_lkup_csr ;
877:
878: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
879: -- Validate the forecast achievement %
880: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
876: CLOSE oki_load_okv_pvt.g_lkup_csr ;
877:
878: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
879: -- Validate the forecast achievement %
880: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
881: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
882: -- If there was not a valid FCACP code then exit ;
883: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
884: RAISE g_excp_exit_immediate ;
877:
878: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
879: -- Validate the forecast achievement %
880: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
881: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
882: -- If there was not a valid FCACP code then exit ;
883: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
884: RAISE g_excp_exit_immediate ;
885: END IF ;
879: -- Validate the forecast achievement %
880: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
881: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
882: -- If there was not a valid FCACP code then exit ;
883: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
884: RAISE g_excp_exit_immediate ;
885: END IF ;
886: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
887: CLOSE oki_load_okv_pvt.g_lkup_csr ;
883: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
884: RAISE g_excp_exit_immediate ;
885: END IF ;
886: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
887: CLOSE oki_load_okv_pvt.g_lkup_csr ;
888:
889: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
890: -- Validate the contracts consolidate code
891: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
887: CLOSE oki_load_okv_pvt.g_lkup_csr ;
888:
889: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
890: -- Validate the contracts consolidate code
891: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
892: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
893: -- If there was not a valid CNCS code then exit ;
894: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
895: RAISE g_excp_exit_immediate ;
888:
889: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
890: -- Validate the contracts consolidate code
891: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
892: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
893: -- If there was not a valid CNCS code then exit ;
894: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
895: RAISE g_excp_exit_immediate ;
896: END IF ;
890: -- Validate the contracts consolidate code
891: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
892: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
893: -- If there was not a valid CNCS code then exit ;
894: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
895: RAISE g_excp_exit_immediate ;
896: END IF ;
897: l_cncs_code := rec_g_lkup_csr.lookup_code ;
898: CLOSE oki_load_okv_pvt.g_lkup_csr ;
894: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
895: RAISE g_excp_exit_immediate ;
896: END IF ;
897: l_cncs_code := rec_g_lkup_csr.lookup_code ;
898: CLOSE oki_load_okv_pvt.g_lkup_csr ;
899:
900: l_loc := 'Looping through valid organizations.' ;
901: << l_org_id_csr_loop >>
902: -- Loop through all the organizations to calcuate the
927: l_dro_value := rec_l_dro_csr.dro_value ;
928:
929: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
930: -- Determine if the DRO record is a new one or an existing one
931: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
932: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
933: l_dro_code, rec_l_scs_csr.scs_code ) ;
934: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
935: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
928:
929: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
930: -- Determine if the DRO record is a new one or an existing one
931: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
932: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
933: l_dro_code, rec_l_scs_csr.scs_code ) ;
934: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
935: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
936: l_loc := 'Insert the new record.' ;
930: -- Determine if the DRO record is a new one or an existing one
931: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
932: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
933: l_dro_code, rec_l_scs_csr.scs_code ) ;
934: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
935: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
936: l_loc := 'Insert the new record.' ;
937: l_loc := 'Update the existing record.' ;
938: -- Insert the current period data for the period
931: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
932: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
933: l_dro_code, rec_l_scs_csr.scs_code ) ;
934: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
935: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
936: l_loc := 'Insert the new record.' ;
937: l_loc := 'Update the existing record.' ;
938: -- Insert the current period data for the period
939: oki_load_okv_pvt.ins_perf_meas(
935: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
936: l_loc := 'Insert the new record.' ;
937: l_loc := 'Update the existing record.' ;
938: -- Insert the current period data for the period
939: oki_load_okv_pvt.ins_perf_meas(
940: p_period_name => rec_g_glpr_csr.period_name
941: , p_period_set_name => rec_g_glpr_csr.period_set_name
942: , p_period_type => rec_g_glpr_csr.period_type
943: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
939: oki_load_okv_pvt.ins_perf_meas(
940: p_period_name => rec_g_glpr_csr.period_name
941: , p_period_set_name => rec_g_glpr_csr.period_set_name
942: , p_period_type => rec_g_glpr_csr.period_type
943: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
944: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
945: , p_kpi_code => l_dro_code
946: , p_kpi_value => l_dro_value
947: , p_scs_code => rec_l_scs_csr.scs_code
940: p_period_name => rec_g_glpr_csr.period_name
941: , p_period_set_name => rec_g_glpr_csr.period_set_name
942: , p_period_type => rec_g_glpr_csr.period_type
943: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
944: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
945: , p_kpi_code => l_dro_code
946: , p_kpi_value => l_dro_value
947: , p_scs_code => rec_l_scs_csr.scs_code
948: , x_retcode => l_retcode ) ;
948: , x_retcode => l_retcode ) ;
949:
950: IF l_retcode = '2' THEN
951: -- Load failed, exit immediately.
952: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
953: END IF ;
954:
955: ELSE
956: l_loc := 'Update the existing record.' ;
954:
955: ELSE
956: l_loc := 'Update the existing record.' ;
957: -- Record already exists, so perform an update
958: oki_load_okv_pvt.upd_perf_meas(
959: p_kpi_value => l_dro_value
960: , p_okv_rowid => rec_g_okv_csr.rowid
961: , x_retcode => l_retcode ) ;
962:
961: , x_retcode => l_retcode ) ;
962:
963: IF l_retcode = '2' THEN
964: -- Load failed, exit immediately.
965: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
966: END IF ;
967:
968: END IF ;
969: CLOSE oki_load_okv_pvt.g_okv_csr ;
965: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
966: END IF ;
967:
968: END IF ;
969: CLOSE oki_load_okv_pvt.g_okv_csr ;
970: END LOOP l_dro_csr_loop ;
971:
972:
973: l_loc := 'Opening cursor to determine the contract amount of FA %.' ;
1001: END IF ;
1002:
1003: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1004: -- Determine if the FCACP record is a new one or an existing one
1005: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1006: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1007: l_fcacp_code, rec_l_scs_csr.scs_code ) ;
1008: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1009: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1002:
1003: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1004: -- Determine if the FCACP record is a new one or an existing one
1005: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1006: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1007: l_fcacp_code, rec_l_scs_csr.scs_code ) ;
1008: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1009: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1010: l_loc := 'Insert the new record.' ;
1004: -- Determine if the FCACP record is a new one or an existing one
1005: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1006: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1007: l_fcacp_code, rec_l_scs_csr.scs_code ) ;
1008: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1009: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1010: l_loc := 'Insert the new record.' ;
1011: -- Insert the current period data for the period
1012: oki_load_okv_pvt.ins_perf_meas(
1005: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1006: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1007: l_fcacp_code, rec_l_scs_csr.scs_code ) ;
1008: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1009: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1010: l_loc := 'Insert the new record.' ;
1011: -- Insert the current period data for the period
1012: oki_load_okv_pvt.ins_perf_meas(
1013: p_period_name => rec_g_glpr_csr.period_name
1008: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1009: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1010: l_loc := 'Insert the new record.' ;
1011: -- Insert the current period data for the period
1012: oki_load_okv_pvt.ins_perf_meas(
1013: p_period_name => rec_g_glpr_csr.period_name
1014: , p_period_set_name => rec_g_glpr_csr.period_set_name
1015: , p_period_type => rec_g_glpr_csr.period_type
1016: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1012: oki_load_okv_pvt.ins_perf_meas(
1013: p_period_name => rec_g_glpr_csr.period_name
1014: , p_period_set_name => rec_g_glpr_csr.period_set_name
1015: , p_period_type => rec_g_glpr_csr.period_type
1016: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1017: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1018: , p_kpi_code => l_fcacp_code
1019: , p_kpi_value => l_achv_pct
1020: , p_scs_code => rec_l_scs_csr.scs_code
1013: p_period_name => rec_g_glpr_csr.period_name
1014: , p_period_set_name => rec_g_glpr_csr.period_set_name
1015: , p_period_type => rec_g_glpr_csr.period_type
1016: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1017: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1018: , p_kpi_code => l_fcacp_code
1019: , p_kpi_value => l_achv_pct
1020: , p_scs_code => rec_l_scs_csr.scs_code
1021: , x_retcode => l_retcode ) ;
1020: , p_scs_code => rec_l_scs_csr.scs_code
1021: , x_retcode => l_retcode ) ;
1022: IF l_retcode = '2' THEN
1023: -- Load failed, exit immediately.
1024: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1025: END IF ;
1026: ELSE
1027: l_loc := 'Update the existing record.' ;
1028: -- Record already exists, so perform an update
1025: END IF ;
1026: ELSE
1027: l_loc := 'Update the existing record.' ;
1028: -- Record already exists, so perform an update
1029: oki_load_okv_pvt.upd_perf_meas(
1030: p_kpi_value => l_achv_pct
1031: , p_okv_rowid => rec_g_okv_csr.rowid
1032: , x_retcode => l_retcode ) ;
1033:
1032: , x_retcode => l_retcode ) ;
1033:
1034: IF l_retcode = '2' THEN
1035: -- Load failed, exit immediately.
1036: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1037: END IF ;
1038:
1039: END IF ;
1040: CLOSE oki_load_okv_pvt.g_okv_csr ;
1036: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1037: END IF ;
1038:
1039: END IF ;
1040: CLOSE oki_load_okv_pvt.g_okv_csr ;
1041: END LOOP l_achv_cntr_csr_loop ;
1042:
1043:
1044: l_loc := 'Opening cursor to determine the contracts consilodated value.' ;
1051: rec_l_cntr_cnsl_csr.base_price_negotiated ;
1052:
1053: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1054: -- Determine if the CNCS record is a new one or an existing one
1055: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1056: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1057: l_cncs_code, rec_l_scs_csr.scs_code ) ;
1058: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1059: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1052:
1053: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1054: -- Determine if the CNCS record is a new one or an existing one
1055: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1056: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1057: l_cncs_code, rec_l_scs_csr.scs_code ) ;
1058: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1059: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1060: l_loc := 'Insert the new record.' ;
1054: -- Determine if the CNCS record is a new one or an existing one
1055: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1056: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1057: l_cncs_code, rec_l_scs_csr.scs_code ) ;
1058: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1059: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1060: l_loc := 'Insert the new record.' ;
1061: -- Insert the current period data for the period
1062: oki_load_okv_pvt.ins_perf_meas(
1055: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1056: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1057: l_cncs_code, rec_l_scs_csr.scs_code ) ;
1058: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1059: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1060: l_loc := 'Insert the new record.' ;
1061: -- Insert the current period data for the period
1062: oki_load_okv_pvt.ins_perf_meas(
1063: p_period_name => rec_g_glpr_csr.period_name
1058: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1059: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1060: l_loc := 'Insert the new record.' ;
1061: -- Insert the current period data for the period
1062: oki_load_okv_pvt.ins_perf_meas(
1063: p_period_name => rec_g_glpr_csr.period_name
1064: , p_period_set_name => rec_g_glpr_csr.period_set_name
1065: , p_period_type => rec_g_glpr_csr.period_type
1066: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1062: oki_load_okv_pvt.ins_perf_meas(
1063: p_period_name => rec_g_glpr_csr.period_name
1064: , p_period_set_name => rec_g_glpr_csr.period_set_name
1065: , p_period_type => rec_g_glpr_csr.period_type
1066: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1067: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1068: , p_kpi_code => l_cncs_code
1069: , p_kpi_value => l_base_consolidated_amount
1070: , p_scs_code => rec_l_scs_csr.scs_code
1063: p_period_name => rec_g_glpr_csr.period_name
1064: , p_period_set_name => rec_g_glpr_csr.period_set_name
1065: , p_period_type => rec_g_glpr_csr.period_type
1066: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1067: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1068: , p_kpi_code => l_cncs_code
1069: , p_kpi_value => l_base_consolidated_amount
1070: , p_scs_code => rec_l_scs_csr.scs_code
1071: , x_retcode => l_retcode ) ;
1071: , x_retcode => l_retcode ) ;
1072:
1073: IF l_retcode = '2' THEN
1074: -- Load failed, exit immediately.
1075: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1076: END IF ;
1077:
1078: ELSE
1079: l_loc := 'Update the existing record.' ;
1077:
1078: ELSE
1079: l_loc := 'Update the existing record.' ;
1080: -- Record already exists, so perform an update
1081: oki_load_okv_pvt.upd_perf_meas(
1082: p_kpi_value => l_base_consolidated_amount
1083: , p_okv_rowid => rec_g_okv_csr.rowid
1084: , x_retcode => l_retcode ) ;
1085:
1084: , x_retcode => l_retcode ) ;
1085:
1086: IF l_retcode = '2' THEN
1087: -- Load failed, exit immediately.
1088: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1089: END IF ;
1090:
1091: END IF ;
1092: CLOSE oki_load_okv_pvt.g_okv_csr ;
1088: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1089: END IF ;
1090:
1091: END IF ;
1092: CLOSE oki_load_okv_pvt.g_okv_csr ;
1093: END LOOP l_cntr_cnsl_csr_loop ;
1094: END LOOP g_glpr_csr_loop ;
1095: END LOOP l_org_id_csr_loop ;
1096: EXCEPTION
1094: END LOOP g_glpr_csr_loop ;
1095: END LOOP l_org_id_csr_loop ;
1096: EXCEPTION
1097:
1098: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
1099: -- Do not log an error ; It has already been logged.
1100: -- Set return code to error
1101: x_retcode := '2' ;
1102:
1110: fnd_message.set_name( application => 'OKI'
1111: , name => 'OKI_UNEXPECTED_FAILURE');
1112:
1113: fnd_message.set_token( token => 'OBJECT_NAME'
1114: , value => 'OKI_LOAD_OKV_PVT.CALC_OKV_DTL2');
1115:
1116: fnd_file.put_line( which => fnd_file.log
1117: , buff => fnd_message.get);
1118:
1259: /*11510 changes removed oki_daily_rates odr */
1260: WHERE
1261: /*11510 changes removed the following joins
1262: shd.chr_id = cle.dnz_chr_id
1263: AND odr.to_currency = oki_load_okv_pvt.g_base_currency
1264: AND odr.from_currency = nvl(cle.currency_code, shd.currency_code) */
1265: -- Get all consolidated contracts
1266: cop.opn_code = 'REN_CON'
1267: AND ole.process_flag = 'P'
1282: l_retcode := '0';
1283:
1284: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
1285: -- Validate the days renewal outstanding code
1286: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
1287: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1288: -- If there was not a valid DRO code then exit ;
1289: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1290: RAISE g_excp_exit_immediate ;
1283:
1284: l_loc := 'Opening cursor to determine days renewal outstanding code.' ;
1285: -- Validate the days renewal outstanding code
1286: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
1287: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1288: -- If there was not a valid DRO code then exit ;
1289: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1290: RAISE g_excp_exit_immediate ;
1291: END IF ;
1285: -- Validate the days renewal outstanding code
1286: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_dro_code ) ;
1287: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1288: -- If there was not a valid DRO code then exit ;
1289: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1290: RAISE g_excp_exit_immediate ;
1291: END IF ;
1292: l_dro_code := rec_g_lkup_csr.lookup_code ;
1293: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1289: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1290: RAISE g_excp_exit_immediate ;
1291: END IF ;
1292: l_dro_code := rec_g_lkup_csr.lookup_code ;
1293: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1294:
1295: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
1296: -- Validate the forecast achievement %
1297: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
1293: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1294:
1295: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
1296: -- Validate the forecast achievement %
1297: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
1298: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1299: -- If there was not a valid FCACP code then exit ;
1300: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1301: RAISE g_excp_exit_immediate ;
1294:
1295: l_loc := 'Opening cursor to determine forecast achievement % code.' ;
1296: -- Validate the forecast achievement %
1297: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
1298: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1299: -- If there was not a valid FCACP code then exit ;
1300: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1301: RAISE g_excp_exit_immediate ;
1302: END IF ;
1296: -- Validate the forecast achievement %
1297: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_fcacp_code ) ;
1298: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1299: -- If there was not a valid FCACP code then exit ;
1300: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1301: RAISE g_excp_exit_immediate ;
1302: END IF ;
1303: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
1304: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1300: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1301: RAISE g_excp_exit_immediate ;
1302: END IF ;
1303: l_fcacp_code := rec_g_lkup_csr.lookup_code ;
1304: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1305:
1306: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
1307: -- Validate the contracts consolidate code
1308: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
1304: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1305:
1306: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
1307: -- Validate the contracts consolidate code
1308: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
1309: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1310: -- If there was not a valid CNCS code then exit ;
1311: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1312: RAISE g_excp_exit_immediate ;
1305:
1306: l_loc := 'Opening cursor to determine contracts consolidated code.' ;
1307: -- Validate the contracts consolidate code
1308: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
1309: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1310: -- If there was not a valid CNCS code then exit ;
1311: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1312: RAISE g_excp_exit_immediate ;
1313: END IF ;
1307: -- Validate the contracts consolidate code
1308: OPEN oki_load_okv_pvt.g_lkup_csr( l_lkup_type, l_hardcoded_cncs_code ) ;
1309: FETCH oki_load_okv_pvt.g_lkup_csr INTO rec_g_lkup_csr ;
1310: -- If there was not a valid CNCS code then exit ;
1311: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1312: RAISE g_excp_exit_immediate ;
1313: END IF ;
1314: l_cncs_code := rec_g_lkup_csr.lookup_code ;
1315: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1311: IF oki_load_okv_pvt.g_lkup_csr%NOTFOUND THEN
1312: RAISE g_excp_exit_immediate ;
1313: END IF ;
1314: l_cncs_code := rec_g_lkup_csr.lookup_code ;
1315: CLOSE oki_load_okv_pvt.g_lkup_csr ;
1316:
1317: l_loc := 'Looping through valid periods.' ;
1318: -- Loop through all the periods
1319: FOR rec_g_glpr_csr IN oki_utl_pvt.g_glpr_csr(
1334: CLOSE l_dro_csr ;
1335:
1336: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1337: -- Determine if the DRO record is a new one or an existing one
1338: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1339: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1340: l_dro_code, oki_load_okv_pvt.g_all_scs_code ) ;
1341: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1335:
1336: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1337: -- Determine if the DRO record is a new one or an existing one
1338: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1339: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1340: l_dro_code, oki_load_okv_pvt.g_all_scs_code ) ;
1341: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1343: l_loc := 'Insert the new record.' ;
1336: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1337: -- Determine if the DRO record is a new one or an existing one
1338: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1339: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1340: l_dro_code, oki_load_okv_pvt.g_all_scs_code ) ;
1341: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1343: l_loc := 'Insert the new record.' ;
1344: l_loc := 'Update the existing record.' ;
1337: -- Determine if the DRO record is a new one or an existing one
1338: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1339: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1340: l_dro_code, oki_load_okv_pvt.g_all_scs_code ) ;
1341: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1343: l_loc := 'Insert the new record.' ;
1344: l_loc := 'Update the existing record.' ;
1345: -- Insert the current period data for the period
1338: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1339: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1340: l_dro_code, oki_load_okv_pvt.g_all_scs_code ) ;
1341: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1343: l_loc := 'Insert the new record.' ;
1344: l_loc := 'Update the existing record.' ;
1345: -- Insert the current period data for the period
1346: oki_load_okv_pvt.ins_perf_meas(
1342: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1343: l_loc := 'Insert the new record.' ;
1344: l_loc := 'Update the existing record.' ;
1345: -- Insert the current period data for the period
1346: oki_load_okv_pvt.ins_perf_meas(
1347: p_period_name => rec_g_glpr_csr.period_name
1348: , p_period_set_name => rec_g_glpr_csr.period_set_name
1349: , p_period_type => rec_g_glpr_csr.period_type
1350: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1346: oki_load_okv_pvt.ins_perf_meas(
1347: p_period_name => rec_g_glpr_csr.period_name
1348: , p_period_set_name => rec_g_glpr_csr.period_set_name
1349: , p_period_type => rec_g_glpr_csr.period_type
1350: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1351: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1352: , p_kpi_code => l_dro_code
1353: , p_kpi_value => l_dro_value
1354: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1347: p_period_name => rec_g_glpr_csr.period_name
1348: , p_period_set_name => rec_g_glpr_csr.period_set_name
1349: , p_period_type => rec_g_glpr_csr.period_type
1350: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1351: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1352: , p_kpi_code => l_dro_code
1353: , p_kpi_value => l_dro_value
1354: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1355: , x_retcode => l_retcode ) ;
1350: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1351: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1352: , p_kpi_code => l_dro_code
1353: , p_kpi_value => l_dro_value
1354: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1355: , x_retcode => l_retcode ) ;
1356:
1357: IF l_retcode = '2' THEN
1358: -- Load failed, exit immediately.
1355: , x_retcode => l_retcode ) ;
1356:
1357: IF l_retcode = '2' THEN
1358: -- Load failed, exit immediately.
1359: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1360: END IF ;
1361:
1362: ELSE
1363: l_loc := 'Update the existing record.' ;
1361:
1362: ELSE
1363: l_loc := 'Update the existing record.' ;
1364: -- Record already exists, so perform an update
1365: oki_load_okv_pvt.upd_perf_meas(
1366: p_kpi_value => l_dro_value
1367: , p_okv_rowid => rec_g_okv_csr.rowid
1368: , x_retcode => l_retcode ) ;
1369:
1368: , x_retcode => l_retcode ) ;
1369:
1370: IF l_retcode = '2' THEN
1371: -- Load failed, exit immediately.
1372: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1373: END IF ;
1374:
1375: END IF ;
1376: CLOSE oki_load_okv_pvt.g_okv_csr ;
1372: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1373: END IF ;
1374:
1375: END IF ;
1376: CLOSE oki_load_okv_pvt.g_okv_csr ;
1377:
1378:
1379: l_loc := 'Opening cursor to determine the contract amount of FA %.' ;
1380: -- Calculate the contract amount portion of the
1410: END IF ;
1411:
1412: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1413: -- Determine if the FCACP record is a new one or an existing one
1414: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1415: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1416: l_fcacp_code, oki_load_okv_pvt.g_all_scs_code ) ;
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1411:
1412: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1413: -- Determine if the FCACP record is a new one or an existing one
1414: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1415: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1416: l_fcacp_code, oki_load_okv_pvt.g_all_scs_code ) ;
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1419: l_loc := 'Insert the new record.' ;
1412: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1413: -- Determine if the FCACP record is a new one or an existing one
1414: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1415: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1416: l_fcacp_code, oki_load_okv_pvt.g_all_scs_code ) ;
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1419: l_loc := 'Insert the new record.' ;
1420: -- Insert the current period data for the period
1413: -- Determine if the FCACP record is a new one or an existing one
1414: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1415: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1416: l_fcacp_code, oki_load_okv_pvt.g_all_scs_code ) ;
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1419: l_loc := 'Insert the new record.' ;
1420: -- Insert the current period data for the period
1421: oki_load_okv_pvt.ins_perf_meas(
1414: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1415: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1416: l_fcacp_code, oki_load_okv_pvt.g_all_scs_code ) ;
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1419: l_loc := 'Insert the new record.' ;
1420: -- Insert the current period data for the period
1421: oki_load_okv_pvt.ins_perf_meas(
1422: p_period_name => rec_g_glpr_csr.period_name
1417: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1418: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1419: l_loc := 'Insert the new record.' ;
1420: -- Insert the current period data for the period
1421: oki_load_okv_pvt.ins_perf_meas(
1422: p_period_name => rec_g_glpr_csr.period_name
1423: , p_period_set_name => rec_g_glpr_csr.period_set_name
1424: , p_period_type => rec_g_glpr_csr.period_type
1425: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1421: oki_load_okv_pvt.ins_perf_meas(
1422: p_period_name => rec_g_glpr_csr.period_name
1423: , p_period_set_name => rec_g_glpr_csr.period_set_name
1424: , p_period_type => rec_g_glpr_csr.period_type
1425: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1426: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1427: , p_kpi_code => l_fcacp_code
1428: , p_kpi_value => l_achv_pct
1429: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1422: p_period_name => rec_g_glpr_csr.period_name
1423: , p_period_set_name => rec_g_glpr_csr.period_set_name
1424: , p_period_type => rec_g_glpr_csr.period_type
1425: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1426: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1427: , p_kpi_code => l_fcacp_code
1428: , p_kpi_value => l_achv_pct
1429: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1430: , x_retcode => l_retcode ) ;
1425: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1426: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1427: , p_kpi_code => l_fcacp_code
1428: , p_kpi_value => l_achv_pct
1429: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1430: , x_retcode => l_retcode ) ;
1431:
1432: IF l_retcode = '2' THEN
1433: -- Load failed, exit immediately.
1430: , x_retcode => l_retcode ) ;
1431:
1432: IF l_retcode = '2' THEN
1433: -- Load failed, exit immediately.
1434: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1435: END IF ;
1436:
1437: ELSE
1438: l_loc := 'Update the existing record.' ;
1436:
1437: ELSE
1438: l_loc := 'Update the existing record.' ;
1439: -- Record already exists, so perform an update
1440: oki_load_okv_pvt.upd_perf_meas(
1441: p_kpi_value => l_achv_pct
1442: , p_okv_rowid => rec_g_okv_csr.rowid
1443: , x_retcode => l_retcode ) ;
1444:
1443: , x_retcode => l_retcode ) ;
1444:
1445: IF l_retcode = '2' THEN
1446: -- Load failed, exit immediately.
1447: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1448: END IF ;
1449:
1450: END IF ;
1451: CLOSE oki_load_okv_pvt.g_okv_csr ;
1447: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1448: END IF ;
1449:
1450: END IF ;
1451: CLOSE oki_load_okv_pvt.g_okv_csr ;
1452:
1453: l_loc := 'Opening cursor to determine the contracts consilodated value.' ;
1454: -- Calculate the contracts consolidated amount
1455: OPEN l_cntr_cnsl_csr( rec_g_glpr_csr.start_date,
1462: CLOSE l_cntr_cnsl_csr ;
1463:
1464: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1465: -- Determine if the CNCS record is a new one or an existing one
1466: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1467: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1468: l_cncs_code, oki_load_okv_pvt.g_all_scs_code ) ;
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1463:
1464: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1465: -- Determine if the CNCS record is a new one or an existing one
1466: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1467: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1468: l_cncs_code, oki_load_okv_pvt.g_all_scs_code ) ;
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1471: l_loc := 'Insert the new record.' ;
1464: l_loc := 'Opening cursor to determine if insert or update should occur.' ;
1465: -- Determine if the CNCS record is a new one or an existing one
1466: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1467: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1468: l_cncs_code, oki_load_okv_pvt.g_all_scs_code ) ;
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1471: l_loc := 'Insert the new record.' ;
1472: -- Insert the current period data for the period
1465: -- Determine if the CNCS record is a new one or an existing one
1466: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1467: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1468: l_cncs_code, oki_load_okv_pvt.g_all_scs_code ) ;
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1471: l_loc := 'Insert the new record.' ;
1472: -- Insert the current period data for the period
1473: oki_load_okv_pvt.ins_perf_meas(
1466: OPEN oki_load_okv_pvt.g_okv_csr( rec_g_glpr_csr.period_set_name,
1467: rec_g_glpr_csr.period_name, oki_load_okv_pvt.g_all_org_id,
1468: l_cncs_code, oki_load_okv_pvt.g_all_scs_code ) ;
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1471: l_loc := 'Insert the new record.' ;
1472: -- Insert the current period data for the period
1473: oki_load_okv_pvt.ins_perf_meas(
1474: p_period_name => rec_g_glpr_csr.period_name
1469: FETCH oki_load_okv_pvt.g_okv_csr INTO rec_g_okv_csr ;
1470: IF oki_load_okv_pvt.g_okv_csr%NOTFOUND THEN
1471: l_loc := 'Insert the new record.' ;
1472: -- Insert the current period data for the period
1473: oki_load_okv_pvt.ins_perf_meas(
1474: p_period_name => rec_g_glpr_csr.period_name
1475: , p_period_set_name => rec_g_glpr_csr.period_set_name
1476: , p_period_type => rec_g_glpr_csr.period_type
1477: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1473: oki_load_okv_pvt.ins_perf_meas(
1474: p_period_name => rec_g_glpr_csr.period_name
1475: , p_period_set_name => rec_g_glpr_csr.period_set_name
1476: , p_period_type => rec_g_glpr_csr.period_type
1477: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1478: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1479: , p_kpi_code => l_cncs_code
1480: , p_kpi_value => l_base_consolidated_amount
1481: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1474: p_period_name => rec_g_glpr_csr.period_name
1475: , p_period_set_name => rec_g_glpr_csr.period_set_name
1476: , p_period_type => rec_g_glpr_csr.period_type
1477: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1478: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1479: , p_kpi_code => l_cncs_code
1480: , p_kpi_value => l_base_consolidated_amount
1481: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1482: , x_retcode => l_retcode ) ;
1477: , p_authoring_org_id => oki_load_okv_pvt.g_all_org_id
1478: , p_authoring_org_name => oki_load_okv_pvt.g_all_org_name
1479: , p_kpi_code => l_cncs_code
1480: , p_kpi_value => l_base_consolidated_amount
1481: , p_scs_code => oki_load_okv_pvt.g_all_scs_code
1482: , x_retcode => l_retcode ) ;
1483:
1484: IF l_retcode = '2' THEN
1485: -- Load failed, exit immediately.
1482: , x_retcode => l_retcode ) ;
1483:
1484: IF l_retcode = '2' THEN
1485: -- Load failed, exit immediately.
1486: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1487: END IF ;
1488:
1489: ELSE
1490: l_loc := 'Update the existing record.' ;
1488:
1489: ELSE
1490: l_loc := 'Update the existing record.' ;
1491: -- Record already exists, so perform an update
1492: oki_load_okv_pvt.upd_perf_meas(
1493: p_kpi_value => l_base_consolidated_amount
1494: , p_okv_rowid => rec_g_okv_csr.rowid
1495: , x_retcode => l_retcode ) ;
1496:
1495: , x_retcode => l_retcode ) ;
1496:
1497: IF l_retcode = '2' THEN
1498: -- Load failed, exit immediately.
1499: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1500: END IF ;
1501:
1502: END IF ;
1503: CLOSE oki_load_okv_pvt.g_okv_csr ;
1499: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1500: END IF ;
1501:
1502: END IF ;
1503: CLOSE oki_load_okv_pvt.g_okv_csr ;
1504:
1505: END LOOP ;
1506: EXCEPTION
1507:
1504:
1505: END LOOP ;
1506: EXCEPTION
1507:
1508: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
1509: -- Do not log an error ; It has already been logged.
1510: -- Set return code to error
1511: x_retcode := '2' ;
1512:
1520: fnd_message.set_name( application => 'OKI'
1521: , name => 'OKI_UNEXPECTED_FAILURE');
1522:
1523: fnd_message.set_token( token => 'OBJECT_NAME'
1524: , value => 'OKI_LOAD_OKV_PVT.CALC_OKV_SUM');
1525:
1526: fnd_file.put_line( which => fnd_file.log
1527: , buff => fnd_message.get);
1528:
1579:
1580:
1581: BEGIN
1582:
1583: SAVEPOINT oki_load_okv_pvt_crt_perf_meas ;
1584:
1585: -- initialize return code TO success
1586: l_retcode := '0' ;
1587: x_retcode := '0' ;
1586: l_retcode := '0' ;
1587: x_retcode := '0' ;
1588:
1589: -- calculate the peformance measures for each dimension
1590: oki_load_okv_pvt.calc_okv_dtl1(
1591: p_period_set_name => p_period_set_name
1592: , p_period_type => p_period_type
1593: , p_summary_build_date => p_summary_build_date
1594: , x_retcode => l_retcode ) ;
1594: , x_retcode => l_retcode ) ;
1595:
1596: IF l_retcode = '2' THEN
1597: -- Load failed, exit immediately.
1598: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1599: END IF ;
1600:
1601: -- calculate the peformance measures across organizations
1602: oki_load_okv_pvt.calc_okv_dtl2(
1598: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1599: END IF ;
1600:
1601: -- calculate the peformance measures across organizations
1602: oki_load_okv_pvt.calc_okv_dtl2(
1603: p_period_set_name => p_period_set_name
1604: , p_period_type => p_period_type
1605: , p_summary_build_date => p_summary_build_date
1606: , x_retcode => l_retcode ) ;
1606: , x_retcode => l_retcode ) ;
1607:
1608: IF l_retcode = '2' THEN
1609: -- Load failed, exit immediately.
1610: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1611: END IF ;
1612:
1613: -- calculate the peformance measures across organizations
1614: -- and subclasses
1611: END IF ;
1612:
1613: -- calculate the peformance measures across organizations
1614: -- and subclasses
1615: oki_load_okv_pvt.calc_okv_sum(
1616: p_period_set_name => p_period_set_name
1617: , p_period_type => p_period_type
1618: , p_summary_build_date => p_summary_build_date
1619: , x_retcode => l_retcode ) ;
1619: , x_retcode => l_retcode ) ;
1620:
1621: IF l_retcode = '2' THEN
1622: -- Load failed, exit immediately.
1623: RAISE oki_load_okv_pvt.g_excp_exit_immediate ;
1624: END IF ;
1625:
1626: COMMIT ;
1627:
1624: END IF ;
1625:
1626: COMMIT ;
1627:
1628: SAVEPOINT oki_load_okv_pvt_upd_refresh ;
1629:
1630: -- Table loaded successfully. Log message in concurrent manager
1631: -- log indicating successful load.
1632: fnd_message.set_name( application => 'OKI'
1653: -- Do not log error; It has already been logged by the refreshs
1654: -- program
1655: x_retcode := l_retcode ;
1656:
1657: ROLLBACK to oki_load_okv_pvt_upd_refresh ;
1658:
1659: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
1660: -- Do not log an error ; It has already been logged.
1661: -- Set return code to error
1655: x_retcode := l_retcode ;
1656:
1657: ROLLBACK to oki_load_okv_pvt_upd_refresh ;
1658:
1659: WHEN oki_load_okv_pvt.g_excp_exit_immediate THEN
1660: -- Do not log an error ; It has already been logged.
1661: -- Set return code to error
1662: x_retcode := '2' ;
1663:
1660: -- Do not log an error ; It has already been logged.
1661: -- Set return code to error
1662: x_retcode := '2' ;
1663:
1664: ROLLBACK TO oki_load_okv_pvt_crt_perf_meas ;
1665:
1666: WHEN OTHERS THEN
1667: l_sqlcode := SQLCODE ;
1668: l_sqlerrm := SQLERRM ;
1670: -- Set return code to error
1671: x_retcode := '2' ;
1672:
1673: -- ROLLBACK all transactions
1674: ROLLBACK TO oki_load_okv_pvt_crt_perf_meas ;
1675:
1676:
1677: fnd_message.set_name( application => 'OKI'
1678: , name => 'OKI_UNEXPECTED_FAILURE');
1677: fnd_message.set_name( application => 'OKI'
1678: , name => 'OKI_UNEXPECTED_FAILURE');
1679:
1680: fnd_message.set_token( token => 'OBJECT_NAME'
1681: , value => 'OKI_LOAD_OKV_PVT.CREATE_PERF_MEASURES');
1682:
1683: fnd_file.put_line( which => fnd_file.log
1684: , buff => fnd_message.get);
1685:
1696: g_program_application_id := fnd_global.prog_appl_id ;
1697: g_program_id := fnd_global.conc_program_id ;
1698: g_program_update_date := SYSDATE ;
1699:
1700: END oki_load_okv_pvt ;