DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_CEL_DEL

Source


1 Package Body per_cel_del as
2 /* $Header: pecelrhi.pkb 120.3 2006/03/28 05:27:21 arumukhe noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  per_cel_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 set and unset the g_api_dml status as required (as we are about to
19 --      perform dml).
20 --   2) To delete the specified row from the schema using the primary key in
21 --      the predicates.
22 --   3) To trap any constraint violations that may have occurred.
23 --   4) To raise any other errors.
24 --
25 -- Pre Conditions:
26 --   This is an internal private procedure which must be called from the del
27 --   procedure.
28 --
29 -- In Parameters:
30 --   A Pl/Sql record structre.
31 --
32 -- Post Success:
33 --   The specified row will be delete from the schema.
34 --
35 -- Post Failure:
36 --   On the delete dml failure it is important to note that we always reset the
37 --   g_api_dml status to false.
38 --   If a child integrity constraint violation is raised the
39 --   constraint_error procedure will be called.
40 --   If any other error is reported, the error will be raised after the
41 --   g_api_dml status is reset.
42 --
43 -- Developer Implementation Notes:
44 --   None.
45 --
46 -- Access Status:
47 --   Internal Table Handler Use Only.
48 --
49 -- {End Of Comments}
50 -- ----------------------------------------------------------------------------
51 Procedure delete_dml(p_rec in per_cel_shd.g_rec_type) is
52 --
53   l_proc  varchar2(72) := g_package||'delete_dml';
54 --
55 Begin
56   hr_utility.set_location('Entering:'||l_proc, 5);
57   --
58   per_cel_shd.g_api_dml := true;  -- Set the api dml status
59   --
60   -- Delete the per_competence_elements row.
61   --
62   delete from per_competence_elements
63   where competence_element_id = p_rec.competence_element_id;
64   --
65   per_cel_shd.g_api_dml := false;   -- Unset the api dml status
66   --
67   hr_utility.set_location(' Leaving:'||l_proc, 10);
68 --
69 Exception
70   When hr_api.child_integrity_violated then
71     -- Child integrity has been violated
72     per_cel_shd.g_api_dml := false;   -- Unset the api dml status
73     per_cel_shd.constraint_error
74       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
75   When Others Then
76     per_cel_shd.g_api_dml := false;   -- Unset the api dml status
77     Raise;
78 End delete_dml;
79 --
80 -- ----------------------------------------------------------------------------
81 -- |------------------------------< pre_delete >------------------------------|
82 -- ----------------------------------------------------------------------------
83 -- {Start Of Comments}
84 --
85 -- Description:
86 --   This private procedure contains any processing which is required before
87 --   the delete dml.
88 --
89 -- Pre Conditions:
90 --   This is an internal procedure which is called from the del procedure.
91 --
92 -- In Parameters:
93 --   A Pl/Sql record structre.
94 --
95 -- Post Success:
96 --   Processing continues.
97 --
98 -- Post Failure:
99 --   If an error has occurred, an error message and exception will be raised
100 --   but not handled.
101 --
102 -- Developer Implementation Notes:
103 --   Any pre-processing required before the delete dml is issued should be
104 --   coded within this procedure. It is important to note that any 3rd party
105 --   maintenance should be reviewed before placing in this procedure.
106 --
107 -- Access Status:
108 --   Internal Table Handler Use Only.
109 --
110 -- {End Of Comments}
111 -- ----------------------------------------------------------------------------
112 Procedure pre_delete(p_rec in per_cel_shd.g_rec_type) is
113 --
114   l_proc  varchar2(72) := g_package||'pre_delete';
115 --
116 Begin
117   hr_utility.set_location('Entering:'||l_proc, 5);
118   --
119   hr_utility.set_location(' Leaving:'||l_proc, 10);
120 End pre_delete;
121 --
122 -- ----------------------------------------------------------------------------
123 -- |-----------------------------< post_delete >------------------------------|
124 -- ----------------------------------------------------------------------------
125 -- {Start Of Comments}
126 --
127 -- Description:
128 --   This private procedure contains any processing which is required after the
129 --   delete dml.
130 --
131 -- Pre Conditions:
132 --   This is an internal procedure which is called from the del procedure.
133 --
134 -- In Parameters:
135 --   A Pl/Sql record structre.
136 --
137 -- Post Success:
138 --   Processing continues.
139 --
140 -- Post Failure:
141 --   If an error has occurred, an error message and exception will be raised
142 --   but not handled.
143 --
144 -- Developer Implementation Notes:
145 --   Any post-processing required after the delete dml is issued should be
146 --   coded within this procedure. It is important to note that any 3rd party
147 --   maintenance should be reviewed before placing in this procedure.
148 --
149 -- Access Status:
150 --   Internal table Handler Use Only.
151 --
152 -- {End Of Comments}
153 -- ----------------------------------------------------------------------------
154 Procedure post_delete(p_rec in per_cel_shd.g_rec_type) is
155 --
156   l_proc  varchar2(72) := g_package||'post_delete';
157 --
158 Begin
159   hr_utility.set_location('Entering:'||l_proc, 5);
160   --
161   -- This is a hook point and the user hook for post_delete is called here.
162   --
163   begin
164      per_cel_rkd.after_delete	(
165       p_competence_element_id   => p_rec.competence_element_id                ,
166       p_business_group_id_o     => per_cel_shd.g_old_rec.business_group_id    ,
167       p_object_version_number_o => per_cel_shd.g_old_rec.object_version_number,
168       p_type_o                  => per_cel_shd.g_old_rec.type                 ,
169       p_competence_id_o         => per_cel_shd.g_old_rec.competence_id        ,
170 --      p_member_competence_set_id_o   =>
171 --                          per_cel_shd.g_old_rec.member_competence_set_id      ,
172       p_proficiency_level_id_o  => per_cel_shd.g_old_rec.proficiency_level_id ,
173       p_high_proficiency_level_id_o  =>
174                           per_cel_shd.g_old_rec.high_proficiency_level_id     ,
175       p_weighting_level_id_o    => per_cel_shd.g_old_rec.weighting_level_id   ,
176       p_rating_level_id_o       => per_cel_shd.g_old_rec.rating_level_id      ,
177       p_person_id_o             => per_cel_shd.g_old_rec.person_id            ,
178       p_enterprise_id_o         => per_cel_shd.g_old_rec.enterprise_id        ,
179       p_job_id_o                => per_cel_shd.g_old_rec.job_id               ,
180       p_valid_grade_id_o        => per_cel_shd.g_old_rec.valid_grade_id       ,
181       p_position_id_o           => per_cel_shd.g_old_rec.position_id          ,
182       p_organization_id_o       => per_cel_shd.g_old_rec.organization_id      ,
183 --      p_work_item_id_o          => per_cel_shd.g_old_rec.work_item_id         ,
184 --      p_competence_set_id_o     => per_cel_shd.g_old_rec.competence_set_id    ,
185       p_parent_competence_element_o  =>
186                           per_cel_shd.g_old_rec.parent_competence_element_id  ,
187       p_activity_version_id_o   => per_cel_shd.g_old_rec.activity_version_id  ,
188       p_assessment_id_o         => per_cel_shd.g_old_rec.assessment_id        ,
189       p_assessment_type_id_o    => per_cel_shd.g_old_rec.assessment_type_id   ,
190       p_mandatory_o             => per_cel_shd.g_old_rec.mandatory            ,
191       p_effective_date_from_o   => per_cel_shd.g_old_rec.effective_date_from  ,
192       p_effective_date_to_o     => per_cel_shd.g_old_rec.effective_date_to    ,
193       p_group_competence_type_o => per_cel_shd.g_old_rec.group_competence_type,
194       p_competence_type_o       => per_cel_shd.g_old_rec.competence_type      ,
195       p_sequence_number_o       => per_cel_shd.g_old_rec.sequence_number      ,
196       p_normal_elapse_duration_o     =>
197                           per_cel_shd.g_old_rec.normal_elapse_duration        ,
198       p_normal_elapse_duration_uni_o =>
199                           per_cel_shd.g_old_rec.normal_elapse_duration_unit   ,
200       p_source_of_proficiency_leve_o =>
201                           per_cel_shd.g_old_rec.source_of_proficiency_level   ,
202       p_line_score_o            => per_cel_shd.g_old_rec.line_score           ,
203       p_certification_date_o    => per_cel_shd.g_old_rec.certification_date   ,
204       p_certification_method_o  => per_cel_shd.g_old_rec.certification_method ,
205       p_next_certification_date_o    =>
206                           per_cel_shd.g_old_rec.next_certification_date       ,
207       p_comments_o              => per_cel_shd.g_old_rec.comments             ,
208       p_attribute_category_o    => per_cel_shd.g_old_rec.attribute_category   ,
209       p_attribute1_o            => per_cel_shd.g_old_rec.attribute1   ,
210       p_attribute2_o            => per_cel_shd.g_old_rec.attribute2   ,
211       p_attribute3_o            => per_cel_shd.g_old_rec.attribute3   ,
212       p_attribute4_o            => per_cel_shd.g_old_rec.attribute4   ,
213       p_attribute5_o            => per_cel_shd.g_old_rec.attribute5   ,
214       p_attribute6_o            => per_cel_shd.g_old_rec.attribute6   ,
215       p_attribute7_o            => per_cel_shd.g_old_rec.attribute7   ,
216       p_attribute8_o            => per_cel_shd.g_old_rec.attribute8   ,
217       p_attribute9_o            => per_cel_shd.g_old_rec.attribute9   ,
218       p_attribute10_o           => per_cel_shd.g_old_rec.attribute10  ,
219       p_attribute11_o           => per_cel_shd.g_old_rec.attribute11  ,
220       p_attribute12_o           => per_cel_shd.g_old_rec.attribute12  ,
221       p_attribute13_o           => per_cel_shd.g_old_rec.attribute13  ,
222       p_attribute14_o           => per_cel_shd.g_old_rec.attribute14  ,
223       p_attribute15_o           => per_cel_shd.g_old_rec.attribute15  ,
224       p_attribute16_o           => per_cel_shd.g_old_rec.attribute16  ,
225       p_attribute17_o           => per_cel_shd.g_old_rec.attribute17  ,
226       p_attribute18_o           => per_cel_shd.g_old_rec.attribute18  ,
227       p_attribute19_o           => per_cel_shd.g_old_rec.attribute19  ,
228       p_attribute20_o           => per_cel_shd.g_old_rec.attribute20  ,
229       p_object_id_o             => per_cel_shd.g_old_rec.object_id    ,
230       p_object_name_o           => per_cel_shd.g_old_rec.object_name  ,
231       p_party_id_o              => per_cel_shd.g_old_rec.party_id, -- HR/TCA merge
232      -- BUG3356369
233       p_qualification_type_id_o => per_cel_shd.g_old_rec.qualification_type_id,
234       p_unit_standard_type_o    => per_cel_shd.g_old_rec.unit_standard_type,
235       p_status_o                => per_cel_shd.g_old_rec.status,
236       p_information_category_o  => per_cel_shd.g_old_rec.information_category   ,
237       p_information1_o          => per_cel_shd.g_old_rec.information1 ,
238       p_information2_o          => per_cel_shd.g_old_rec.information2 ,
239       p_information3_o          => per_cel_shd.g_old_rec.information3 ,
240       p_information4_o          => per_cel_shd.g_old_rec.information4 ,
241       p_information5_o          => per_cel_shd.g_old_rec.information5 ,
242       p_information6_o          => per_cel_shd.g_old_rec.information6 ,
243       p_information7_o          => per_cel_shd.g_old_rec.information7 ,
244       p_information8_o          => per_cel_shd.g_old_rec.information8 ,
245       p_information9_o          => per_cel_shd.g_old_rec.information9 ,
246       p_information10_o         => per_cel_shd.g_old_rec.information10,
247       p_information11_o         => per_cel_shd.g_old_rec.information11,
248       p_information12_o         => per_cel_shd.g_old_rec.information12,
249       p_information13_o         => per_cel_shd.g_old_rec.information13,
250       p_information14_o         => per_cel_shd.g_old_rec.information14,
251       p_information15_o         => per_cel_shd.g_old_rec.information15,
252       p_information16_o         => per_cel_shd.g_old_rec.information16,
253       p_information17_o         => per_cel_shd.g_old_rec.information17,
254       p_information18_o         => per_cel_shd.g_old_rec.information18,
255       p_information19_o         => per_cel_shd.g_old_rec.information19,
256       p_information20_o         => per_cel_shd.g_old_rec.information20,
257       p_achieved_date_o         => per_cel_shd.g_old_rec.achieved_date,
258       p_appr_line_score_o       => per_cel_shd.g_old_rec.appr_line_score
259      );
260      exception
261         when hr_api.cannot_find_prog_unit then
262              hr_api.cannot_find_prog_unit_error
263 		 (	p_module_name => 'PER_COMPETENCE_ELEMENTS'
264 		 	,p_hook_type  => 'AD'
265 	        );
266   end;
267   -- End of API User Hook for post_delete.
268   --
269   hr_utility.set_location(' Leaving:'||l_proc, 10);
270 End post_delete;
271 --
272 -- ----------------------------------------------------------------------------
273 -- |---------------------------------< del >----------------------------------|
274 -- ----------------------------------------------------------------------------
275 Procedure del
276   (
277   p_rec	      in per_cel_shd.g_rec_type,
278   p_validate  in boolean default false
279   ) is
280 --
281   l_proc  varchar2(72) := g_package||'del';
282 --
283 Begin
284   hr_utility.set_location('Entering:'||l_proc, 5);
285   --
286   -- Determine if the business process is to be validated.
287   --
288   If p_validate then
289     --
290     -- Issue the savepoint.
291     --
292     SAVEPOINT del_per_cel;
293   End If;
294   --
295   -- We must lock the row which we need to delete.
296   --
297   per_cel_shd.lck
298 	(
299 	p_rec.competence_element_id,
300 	p_rec.object_version_number
301 	);
302   --
303   -- Call the supporting delete validate operation
304   --
305   per_cel_bus.delete_validate(p_rec);
306   --
307   -- Call to raise any errors on multi-message list
308   hr_multi_message.end_validation_set;
309   --
310   -- Call the supporting pre-delete operation
311   --
312   pre_delete(p_rec);
313   --
314   -- Delete the row.
315   --
316   delete_dml(p_rec);
317   --
318   -- Call the supporting post-delete operation
319   --
320   post_delete(p_rec);
321   --
322   -- Call to raise any errors on multi-message list
323   hr_multi_message.end_validation_set;
324   --
325   -- If we are validating then raise the Validate_Enabled exception
326   --
327   If p_validate then
328     Raise HR_Api.Validate_Enabled;
329   End If;
330   --
331   hr_utility.set_location(' Leaving:'||l_proc, 10);
332 Exception
333   When HR_Api.Validate_Enabled Then
334     --
335     -- As the Validate_Enabled exception has been raised
336     -- we must rollback to the savepoint
337     --
338     ROLLBACK TO del_per_cel;
339 End del;
340 --
341 -- ----------------------------------------------------------------------------
342 -- |---------------------------------< del >----------------------------------|
343 -- ----------------------------------------------------------------------------
344 Procedure del
345   (
346   p_competence_element_id              in number,
347   p_object_version_number              in number,
348   p_validate                           in boolean default false
349   ) is
350 --
351   l_rec	  per_cel_shd.g_rec_type;
352   l_proc  varchar2(72) := g_package||'del';
353 --
354 Begin
355   hr_utility.set_location('Entering:'||l_proc, 5);
356   --
357   -- As the delete procedure accepts a plsql record structure we do need to
358   -- convert the  arguments into the record structure.
359   -- We don't need to call the supplied conversion argument routine as we
360   -- only need a few attributes.
361   --
362   l_rec.competence_element_id:= p_competence_element_id;
363   l_rec.object_version_number := p_object_version_number;
364   --
365   -- Having converted the arguments into the per_cel_rec
366   -- plsql record structure we must call the corresponding entity
367   -- business process
368   --
369   del(p_rec		=> l_rec
370       ,p_validate	=> p_validate);
371   --
372   hr_utility.set_location(' Leaving:'||l_proc, 10);
373 End del;
374 --
375 end per_cel_del;