80: l_object_version_number per_competence_outcomes.object_version_number%TYPE;
81: --
82: begin
83: --
84: hr_utility.set_location('Entering:'|| l_proc, 10);
85:
86: l_outcome_id := p_outcome_id;
87:
88: --
89: -- Issue a savepoint
90: --
91: savepoint create_outcome;
92:
93: hr_utility.set_location(l_proc, 20);
94:
95: --
96: -- Truncate the time portion from all IN date parameters
97: --
163: -- End of before hook process (create_outcome)
164: --
165: end;
166:
167: hr_utility.set_location(l_proc, 30);
168: --
169: -- Process Logic
170: --
171:
176: --
177: l_language_code := p_language_code;
178: hr_api.validate_language_code(p_language_code => l_language_code);
179:
180: hr_utility.set_location(l_proc, 40);
181:
182: --
183: -- Insert competence outcome
184: --
236: ,p_outcome_id => l_outcome_id
237: ,p_object_version_number => l_object_version_number
238: );
239:
240: hr_utility.set_location(l_proc, 50);
241:
242: --
243: -- Insert translatable rows in per_competence_outcomes_tl table
244: --
248: ,p_name => p_name
249: ,p_assessment_criteria => p_assessment_criteria
250: );
251: --
252: hr_utility.set_location(l_proc, 60);
253:
254: --
255: --
256: -- Call After Process hook for create_outcome
321: -- End of after hook process (create_outcome)
322: --
323: end;
324:
325: hr_utility.set_location(l_proc, 70);
326:
327: --
328: -- When in validation only mode raise the Validate_Enabled exception
329: --
331: then
332: raise hr_api.validate_enabled;
333: end if;
334: --
335: hr_utility.set_location(l_proc, 80);
336: --
337: -- Set OUT parameters
338: --
339: p_outcome_id := l_outcome_id;
338: --
339: p_outcome_id := l_outcome_id;
340: p_object_version_number := l_object_version_number;
341: --
342: hr_utility.set_location(' Leaving:' ||l_proc, 90);
343: --
344: exception
345: --
346: when hr_api.validate_enabled then
357: --
358: p_outcome_id := null;
359: p_object_version_number := null;
360: --
361: hr_utility.set_location(' Leaving:'||l_proc, 100);
362: --
363: when others then
364: --
365: -- A validation or unexpected error has occurred
365: -- A validation or unexpected error has occurred
366: --
367: ROLLBACK TO create_outcome;
368: --
369: hr_utility.set_location(' Leaving:'||l_proc, 110);
370: --
371: p_outcome_id := null;
372: p_object_version_number := null;
373: --
468: --
469: --
470: begin
471: --
472: hr_utility.set_location('Entering:'|| l_proc, 10);
473: --
474: lv_object_version_number := p_object_version_number;
475:
476: --
477: -- Issue a savepoint
478: --
479: savepoint update_outcome;
480:
481: hr_utility.set_location(l_proc, 20);
482:
483: --
484: -- Truncate the time portion from all IN date parameters
485: --
558: -- End of before hook process (update_outcome)
559: --
560: end;
561:
562: hr_utility.set_location(l_proc, 30);
563: --
564: -- Process Logic
565: --
566:
571: --
572: l_language_code := p_language_code;
573: hr_api.validate_language_code(p_language_code => l_language_code);
574:
575: hr_utility.set_location(l_proc, 40);
576:
577: l_object_version_number := p_object_version_number;
578:
579: --
638: -- Assign the out parameters.
639: --
640: p_object_version_number := l_object_version_number;
641:
642: hr_utility.set_location(l_proc, 50);
643:
644: --
645: -- Insert translatable rows in per_competence_outcomes_tl table
646: --
650: ,p_name => p_name
651: ,p_assessment_criteria => p_assessment_criteria
652: );
653: --
654: hr_utility.set_location(l_proc, 60);
655:
656: --
657: --
658: -- Call After Process hook for update_competence_outcome
723: -- End of after hook process (update_outcome)
724: --
725: end;
726:
727: hr_utility.set_location(l_proc, 70);
728: --
729: -- If the outcome is end dated, associated outcome achieved should
730: -- change to 'IN_PROGRESS'
731: --
729: -- If the outcome is end dated, associated outcome achieved should
730: -- change to 'IN_PROGRESS'
731: --
732: if p_date_from <> hr_api.g_date or p_date_to <> hr_api.g_date then
733: hr_utility.set_location(l_proc, 71);
734: hr_utility.trace('p_competence_id : ' || p_competence_id);
735: if (p_competence_id = hr_api.g_number) then
736: hr_utility.set_location(l_proc, 72);
737: select competence_id into l_competence_id
730: -- change to 'IN_PROGRESS'
731: --
732: if p_date_from <> hr_api.g_date or p_date_to <> hr_api.g_date then
733: hr_utility.set_location(l_proc, 71);
734: hr_utility.trace('p_competence_id : ' || p_competence_id);
735: if (p_competence_id = hr_api.g_number) then
736: hr_utility.set_location(l_proc, 72);
737: select competence_id into l_competence_id
738: from per_competence_outcomes
732: if p_date_from <> hr_api.g_date or p_date_to <> hr_api.g_date then
733: hr_utility.set_location(l_proc, 71);
734: hr_utility.trace('p_competence_id : ' || p_competence_id);
735: if (p_competence_id = hr_api.g_number) then
736: hr_utility.set_location(l_proc, 72);
737: select competence_id into l_competence_id
738: from per_competence_outcomes
739: where outcome_id = p_outcome_id;
740: else
737: select competence_id into l_competence_id
738: from per_competence_outcomes
739: where outcome_id = p_outcome_id;
740: else
741: hr_utility.set_location(l_proc, 73);
742: l_competence_id := p_competence_id;
743: end if;
744: open csr_get_competence_element_id;
745: loop
742: l_competence_id := p_competence_id;
743: end if;
744: open csr_get_competence_element_id;
745: loop
746: hr_utility.set_location(l_proc, 74);
747: fetch csr_get_competence_element_id into l_competence_element_id
748: ,l_party_id , lo_object_version_number;
749: exit when csr_get_competence_element_id%NOTFOUND;
750: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
746: hr_utility.set_location(l_proc, 74);
747: fetch csr_get_competence_element_id into l_competence_element_id
748: ,l_party_id , lo_object_version_number;
749: exit when csr_get_competence_element_id%NOTFOUND;
750: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
751: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
752: hr_utility.trace('l_party_id : '|| l_party_id);
753: hr_utility.trace('lo_object_version_number: '|| lo_object_version_number);
754:
747: fetch csr_get_competence_element_id into l_competence_element_id
748: ,l_party_id , lo_object_version_number;
749: exit when csr_get_competence_element_id%NOTFOUND;
750: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
751: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
752: hr_utility.trace('l_party_id : '|| l_party_id);
753: hr_utility.trace('lo_object_version_number: '|| lo_object_version_number);
754:
755: l_max_date_from := per_ceo_bus.check_outcome_achieved(
748: ,l_party_id , lo_object_version_number;
749: exit when csr_get_competence_element_id%NOTFOUND;
750: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
751: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
752: hr_utility.trace('l_party_id : '|| l_party_id);
753: hr_utility.trace('lo_object_version_number: '|| lo_object_version_number);
754:
755: l_max_date_from := per_ceo_bus.check_outcome_achieved(
756: p_effective_date => l_effective_date
749: exit when csr_get_competence_element_id%NOTFOUND;
750: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
751: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
752: hr_utility.trace('l_party_id : '|| l_party_id);
753: hr_utility.trace('lo_object_version_number: '|| lo_object_version_number);
754:
755: l_max_date_from := per_ceo_bus.check_outcome_achieved(
756: p_effective_date => l_effective_date
757: ,p_competence_element_id => l_competence_element_id
757: ,p_competence_element_id => l_competence_element_id
758: ,p_competence_id => l_competence_id
759: );
760:
761: hr_utility.trace('l_max_date_from : '|| l_max_date_from);
762:
763: if l_max_date_from is not NULL then
764: hr_utility.set_location(l_proc, 75);
765: hr_competence_element_api.update_competence_element
760:
761: hr_utility.trace('l_max_date_from : '|| l_max_date_from);
762:
763: if l_max_date_from is not NULL then
764: hr_utility.set_location(l_proc, 75);
765: hr_competence_element_api.update_competence_element
766: (p_effective_date => l_effective_date
767: ,p_competence_element_id => l_competence_element_id
768: ,p_status => 'ACHIEVED'
771: ,p_object_version_number => lo_object_version_number
772: );
773: else
774: --
775: hr_utility.set_location(l_proc, 76);
776: hr_competence_element_api.update_competence_element
777: (p_effective_date => l_effective_date
778: ,p_competence_element_id => l_competence_element_id
779: ,p_status => 'IN_PROGRESS'
784: end if;
785: end loop;
786: close csr_get_competence_element_id;
787: end if;
788: hr_utility.set_location(l_proc, 77);
789: --
790: -- When in validation only mode raise the Validate_Enabled exception
791: --
792: if p_validate
793: then
794: raise hr_api.validate_enabled;
795: end if;
796: --
797: hr_utility.set_location(l_proc, 80);
798: --
799: -- Set OUT parameters
800: --
801: p_object_version_number := l_object_version_number;
799: -- Set OUT parameters
800: --
801: p_object_version_number := l_object_version_number;
802: --
803: hr_utility.set_location(' Leaving:' ||l_proc, 90);
804: --
805: exception
806: --
807: when hr_api.validate_enabled then
817: -- when validation only mode is being used.)
818: --
819: p_object_version_number := p_object_version_number;
820: --
821: hr_utility.set_location(' Leaving:'||l_proc, 100);
822: --
823: when others then
824: --
825: -- A validation or unexpected error has occurred
827: rollback to update_outcome;
828: --
829: p_object_version_number := lv_object_version_number;
830: --
831: hr_utility.set_location(' Leaving:'||l_proc, 110);
832: --
833: raise;
834: --
835: end update_outcome;
869: --
870: l_object_version_number per_competence_outcomes.object_version_number%TYPE;
871: --
872: begin
873: hr_utility.set_location('Entering:'|| l_proc, 10);
874:
875: lv_object_version_number := p_object_version_number;
876:
877: --
896: ,p_hook_type => 'BP'
897: );
898: end;
899:
900: hr_utility.set_location(l_proc, 20);
901:
902: --
903: -- Saved competence_id for calling hr_competence_element api
904: --
901:
902: --
903: -- Saved competence_id for calling hr_competence_element api
904: --
905: hr_utility.trace('p_outcome_id : '|| p_outcome_id);
906: select competence_id into l_competence_id
907: from per_competence_outcomes
908: where outcome_id = p_outcome_id;
909:
906: select competence_id into l_competence_id
907: from per_competence_outcomes
908: where outcome_id = p_outcome_id;
909:
910: hr_utility.trace('l_competence_id : '|| l_competence_id);
911:
912: --
913: -- Remove all matching translation rows in per_competence_outcomes_tl
914: --
915: per_cot_del.del_tl
916: (p_outcome_id => p_outcome_id
917: );
918:
919: hr_utility.set_location(l_proc, 30);
920:
921: --
922: -- Process Logic
923: --
926: (p_outcome_id => p_outcome_id
927: ,p_object_version_number => l_object_version_number
928: );
929:
930: hr_utility.set_location(l_proc, 40);
931:
932: --
933: -- Call After Process User Hook
934: --
944: ,p_hook_type => 'AP'
945: );
946: end;
947:
948: hr_utility.set_location(l_proc, 50);
949:
950: --
951: -- If an outcome is deleted, associated outcome achieved may be
952: -- change to 'ACHIEVED'
955: loop
956: fetch csr_get_competence_element_id into l_competence_element_id
957: ,l_party_id , lo_object_version_number;
958: exit when csr_get_competence_element_id%NOTFOUND;
959: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
960: hr_utility.trace('l_party_id : '|| l_party_id);
961:
962: l_max_date_from := per_ceo_bus.check_outcome_achieved(
963: p_effective_date => sysdate
956: fetch csr_get_competence_element_id into l_competence_element_id
957: ,l_party_id , lo_object_version_number;
958: exit when csr_get_competence_element_id%NOTFOUND;
959: hr_utility.trace('l_comptence_element_id : '|| l_competence_element_id);
960: hr_utility.trace('l_party_id : '|| l_party_id);
961:
962: l_max_date_from := per_ceo_bus.check_outcome_achieved(
963: p_effective_date => sysdate
964: ,p_competence_element_id => l_competence_element_id
964: ,p_competence_element_id => l_competence_element_id
965: ,p_competence_id => l_competence_id
966: );
967:
968: hr_utility.trace('l_max_date_from : '|| l_max_date_from);
969: if (l_max_date_from is not NULL) then
970: hr_utility.set_location(l_proc, 60);
971: hr_competence_element_api.update_competence_element
972: (p_effective_date => sysdate
966: );
967:
968: hr_utility.trace('l_max_date_from : '|| l_max_date_from);
969: if (l_max_date_from is not NULL) then
970: hr_utility.set_location(l_proc, 60);
971: hr_competence_element_api.update_competence_element
972: (p_effective_date => sysdate
973: ,p_competence_element_id => l_competence_element_id
974: ,p_status => 'ACHIEVED'
979: end if;
980: end loop;
981: close csr_get_competence_element_id;
982:
983: hr_utility.set_location(l_proc, 70);
984:
985: p_object_version_number := l_object_version_number;
986: --
987: -- When in validation only mode raise the Validate_Enabled exception
994: -- Set all output arguments (returned by some dt modes only)
995: --
996: p_object_version_number := l_object_version_number;
997:
998: hr_utility.set_location(' Leaving:'||l_proc, 80);
999: exception
1000: when hr_api.validate_enabled then
1001: hr_utility.set_location(' Leaving...:'||l_proc, 90);
1002: --
997:
998: hr_utility.set_location(' Leaving:'||l_proc, 80);
999: exception
1000: when hr_api.validate_enabled then
1001: hr_utility.set_location(' Leaving...:'||l_proc, 90);
1002: --
1003: -- As the Validate_Enabled exception has been raised
1004: -- we must rollback to the savepoint
1005: --
1011: --
1012: p_object_version_number := null;
1013: --
1014: when others then
1015: hr_utility.set_location(' Leaving...:'||l_proc, 100);
1016: --
1017: -- A validation or unexpected error has occured
1018: --
1019: rollback to delete_outcome;