1 Package Body per_apt_del as
2 /* $Header: peaptrhi.pkb 120.4.12010000.3 2008/08/06 08:57:55 ubhat ship $ */
3
4 -- ---------------------------------------------------------------------------+
5 -- | Private Global Definitions |
6 -- ---------------------------------------------------------------------------+
7
8 g_package varchar2(33) := ' per_apt_del.'; -- Global package name
9
10 -- ---------------------------------------------------------------------------+
11 -- |------------------------------< delete_dml >------------------------------|
12 -- ---------------------------------------------------------------------------+
13 -- {Start Of Comments}
14
15 -- Description:
16 -- This procedure controls the actual dml delete logic. The functions of
17 -- this procedure are as follows:
18 -- 1) To delete the specified row from the schema using the primary key in
19 -- the predicates.
20 -- 2) To trap any constraint violations that may have occurred.
21 -- 3) To raise any other errors.
22
23 -- Pre Conditions:
24 -- This is an internal private procedure which must be called from the del
25 -- procedure.
26
27 -- In Parameters:
28 -- A Pl/Sql record structre.
29
30 -- Post Success:
31 -- The specified row will be delete from the schema.
32
33 -- Post Failure:
34 -- If a child integrity constraint violation is raised the
35 -- constraint_error procedure will be called.
36
37 -- Developer Implementation Notes:
38 -- None.
39
40 -- Access Status:
41 -- Internal Table Handler Use Only.
42
43 -- {End Of Comments}
44 -- ---------------------------------------------------------------------------+
45 Procedure delete_dml(p_rec in per_apt_shd.g_rec_type) is
46
47 l_proc varchar2(72) := g_package||'delete_dml';
48
49 Begin
50 hr_utility.set_location('Entering:'||l_proc, 5);
51
52 -- Delete the per_appraisal_templates row.
53
54 delete from per_appraisal_templates
55 where appraisal_template_id = p_rec.appraisal_template_id;
56
57 hr_utility.set_location(' Leaving:'||l_proc, 10);
58
59 Exception
60 When hr_api.child_integrity_violated then
61 -- Child integrity has been violated
62 per_apt_shd.constraint_error
63 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
64 When Others Then
65 Raise;
66 End delete_dml;
67
68 -- ---------------------------------------------------------------------------+
69 -- |------------------------------< pre_delete >------------------------------|
70 -- ---------------------------------------------------------------------------+
71 -- {Start Of Comments}
72
73 -- Description:
74 -- This private procedure contains any processing which is required before
75 -- the delete dml.
76
77 -- Pre Conditions:
78 -- This is an internal procedure which is called from the del procedure.
79
80 -- In Parameters:
81 -- A Pl/Sql record structre.
82
83 -- Post Success:
84 -- Processing continues.
85
86 -- Post Failure:
87 -- If an error has occurred, an error message and exception will be raised
88 -- but not handled.
89
90 -- Developer Implementation Notes:
91 -- Any pre-processing required before the delete dml is issued should be
92 -- coded within this procedure. It is important to note that any 3rd party
93 -- maintenance should be reviewed before placing in this procedure.
94
95 -- Access Status:
96 -- Internal Table Handler Use Only.
97
98 -- {End Of Comments}
99 -- ---------------------------------------------------------------------------+
100 Procedure pre_delete(p_rec in per_apt_shd.g_rec_type) is
101
102 l_proc varchar2(72) := g_package||'pre_delete';
103
104 Begin
105 hr_utility.set_location('Entering:'||l_proc, 5);
106
107 hr_utility.set_location(' Leaving:'||l_proc, 10);
108 End pre_delete;
109
110 -- ---------------------------------------------------------------------------+
111 -- |-----------------------------< post_delete >------------------------------|
112 -- ---------------------------------------------------------------------------+
113 -- {Start Of Comments}
114
115 -- Description:
116 -- This private procedure contains any processing which is required after the
117 -- delete dml.
118
119 -- Pre Conditions:
120 -- This is an internal procedure which is called from the del procedure.
121
122 -- In Parameters:
123 -- A Pl/Sql record structre.
124
125 -- Post Success:
126 -- Processing continues.
127
128 -- Post Failure:
129 -- If an error has occurred, an error message and exception will be raised
130 -- but not handled.
131
132 -- Developer Implementation Notes:
133 -- Any post-processing required after the delete dml is issued should be
134 -- coded within this procedure. It is important to note that any 3rd party
135 -- maintenance should be reviewed before placing in this procedure.
136
137 -- Access Status:
138 -- Internal table Handler Use Only.
139
140 -- {End Of Comments}
141 -- ---------------------------------------------------------------------------+
142 Procedure post_delete(p_rec in per_apt_shd.g_rec_type) is
143
144 l_proc varchar2(72) := g_package||'post_delete';
145
146 Begin
147 hr_utility.set_location('Entering:'||l_proc, 5);
148
149 -- This is a hook point and the user hook for post_delete is called here.
150
151 begin
152 per_apt_rkd.after_delete (
153 p_appraisal_template_id => p_rec.appraisal_template_id ,
154 p_business_group_id_o => per_apt_shd.g_old_rec.business_group_id ,
155 p_object_version_number_o => per_apt_shd.g_old_rec.object_version_number ,
156 p_name_o => per_apt_shd.g_old_rec.name ,
157 p_description_o => per_apt_shd.g_old_rec.description ,
158 p_instructions_o => per_apt_shd.g_old_rec.instructions ,
159 p_date_from_o => per_apt_shd.g_old_rec.date_from ,
160 p_date_to_o => per_apt_shd.g_old_rec.date_to ,
161 p_assessment_type_id_o => per_apt_shd.g_old_rec.assessment_type_id ,
162 p_rating_scale_id_o => per_apt_shd.g_old_rec.rating_scale_id ,
163 p_questionnaire_template_id_o => per_apt_shd.g_old_rec.questionnaire_template_id ,
164 p_attribute_category_o => per_apt_shd.g_old_rec.attribute_category ,
165 p_attribute1_o => per_apt_shd.g_old_rec.attribute1 ,
166 p_attribute2_o => per_apt_shd.g_old_rec.attribute2 ,
167 p_attribute3_o => per_apt_shd.g_old_rec.attribute3 ,
168 p_attribute4_o => per_apt_shd.g_old_rec.attribute4 ,
169 p_attribute5_o => per_apt_shd.g_old_rec.attribute5 ,
170 p_attribute6_o => per_apt_shd.g_old_rec.attribute6 ,
171 p_attribute7_o => per_apt_shd.g_old_rec.attribute7 ,
172 p_attribute8_o => per_apt_shd.g_old_rec.attribute8 ,
173 p_attribute9_o => per_apt_shd.g_old_rec.attribute9 ,
174 p_attribute10_o => per_apt_shd.g_old_rec.attribute10 ,
175 p_attribute11_o => per_apt_shd.g_old_rec.attribute11 ,
176 p_attribute12_o => per_apt_shd.g_old_rec.attribute12 ,
177 p_attribute13_o => per_apt_shd.g_old_rec.attribute13 ,
178 p_attribute14_o => per_apt_shd.g_old_rec.attribute14 ,
179 p_attribute15_o => per_apt_shd.g_old_rec.attribute15 ,
180 p_attribute16_o => per_apt_shd.g_old_rec.attribute16 ,
181 p_attribute17_o => per_apt_shd.g_old_rec.attribute17 ,
182 p_attribute18_o => per_apt_shd.g_old_rec.attribute18 ,
183 p_attribute19_o => per_apt_shd.g_old_rec.attribute19 ,
184 p_attribute20_o => per_apt_shd.g_old_rec.attribute20 ,
185 p_objective_asmnt_type_id_o => per_apt_shd.g_old_rec.objective_asmnt_type_id,
186 p_ma_quest_template_id_o => per_apt_shd.g_old_rec.ma_quest_template_id,
187 p_link_appr_to_learning_path_o => per_apt_shd.g_old_rec.link_appr_to_learning_path,
188 p_final_score_formula_id_o => per_apt_shd.g_old_rec.final_score_formula_id,
189 p_update_personal_comp_profi_o => per_apt_shd.g_old_rec.update_personal_comp_profile,
190 p_comp_profile_source_type_o => per_apt_shd.g_old_rec.comp_profile_source_type,
191 p_show_competency_ratings_o => per_apt_shd.g_old_rec.show_competency_ratings,
192 p_show_objective_ratings_o => per_apt_shd.g_old_rec.show_objective_ratings,
193 p_show_overall_ratings_o => per_apt_shd.g_old_rec.show_overall_ratings,
194 p_show_overall_comments_o => per_apt_shd.g_old_rec.show_overall_comments,
195 p_provide_overall_feedback_o => per_apt_shd.g_old_rec.provide_overall_feedback,
196 p_show_participant_details_o => per_apt_shd.g_old_rec.show_participant_details,
197 p_allow_add_participant_o => per_apt_shd.g_old_rec.allow_add_participant,
198 p_show_additional_details_o => per_apt_shd.g_old_rec.show_additional_details,
199 p_show_participant_names_o => per_apt_shd.g_old_rec.show_participant_names,
200 p_show_participant_ratings_o => per_apt_shd.g_old_rec.show_participant_ratings,
201 p_available_flag_o => per_apt_shd.g_old_rec.available_flag,
202 p_show_questionnaire_info_o => per_apt_shd.g_old_rec.show_questionnaire_info
203 );
204 exception
205 when hr_api.cannot_find_prog_unit then
206 hr_api.cannot_find_prog_unit_error
207 ( p_module_name => 'PER_APPRAISAL_TEMPLATES'
208 ,p_hook_type => 'AD'
209 );
210 end;
211 -- End of API User Hook for post_delete.
212
213 hr_utility.set_location(' Leaving:'||l_proc, 10);
214 End post_delete;
215
216 -- ---------------------------------------------------------------------------+
217 -- |---------------------------------< del >----------------------------------|
218 -- ---------------------------------------------------------------------------+
219 Procedure del
220 (
221 p_rec in per_apt_shd.g_rec_type,
222 p_validate in boolean default false
223 ) is
224
225 l_proc varchar2(72) := g_package||'del';
226
227 Begin
228 hr_utility.set_location('Entering:'||l_proc, 5);
229
230 -- Determine if the business process is to be validated.
231
232 If p_validate then
233
234 -- Issue the savepoint.
235
236 SAVEPOINT del_per_apt;
237 End If;
238
239 -- We must lock the row which we need to delete.
240
241 per_apt_shd.lck
242 (
243 p_rec.appraisal_template_id,
244 p_rec.object_version_number
245 );
246
247 -- Call the supporting delete validate operation
248
249 per_apt_bus.delete_validate(p_rec);
250
251 -- Call the supporting pre-delete operation
252
253 pre_delete(p_rec);
254
255 -- Delete the row.
256
257 delete_dml(p_rec);
258
259 -- Call the supporting post-delete operation
260
261 post_delete(p_rec);
262
263 -- If we are validating then raise the Validate_Enabled exception
264
265 If p_validate then
266 Raise HR_Api.Validate_Enabled;
267 End If;
268
269 hr_utility.set_location(' Leaving:'||l_proc, 10);
270 Exception
271 When HR_Api.Validate_Enabled Then
272
273 -- As the Validate_Enabled exception has been raised
274 -- we must rollback to the savepoint
275
276 ROLLBACK TO del_per_apt;
277 End del;
278
279 -- ---------------------------------------------------------------------------+
280 -- |---------------------------------< del >----------------------------------|
281 -- ---------------------------------------------------------------------------+
282 Procedure del
283 (
284 p_appraisal_template_id in number,
285 p_object_version_number in number,
286 p_validate in boolean default false
287 ) is
288
289 l_rec per_apt_shd.g_rec_type;
290 l_proc varchar2(72) := g_package||'del';
291
292 Begin
293 hr_utility.set_location('Entering:'||l_proc, 5);
294
295 -- As the delete procedure accepts a plsql record structure we do need to
296 -- convert the arguments into the record structure.
297 -- We don't need to call the supplied conversion argument routine as we
298 -- only need a few attributes.
299
300 l_rec.appraisal_template_id:= p_appraisal_template_id;
301 l_rec.object_version_number := p_object_version_number;
302
303 -- Having converted the arguments into the per_apt_rec
304 -- plsql record structure we must call the corresponding entity
305 -- business process
306
307 del(l_rec, p_validate);
308
309 hr_utility.set_location(' Leaving:'||l_proc, 10);
310 End del;
311
312 end per_apt_del;