DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_APT_DEL

Source


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;