DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_EQT_DEL

Source


1 Package Body per_eqt_del as
2 /* $Header: peeqtrhi.pkb 115.15 2004/03/30 18:11:30 ynegoro ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  per_eqt_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_eqt_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_eqt_shd.g_api_dml := true;  -- Set the api dml status
59   --
60   -- Delete the per_qualification_types row.
61   --
62   delete from per_qualification_types
63   where qualification_type_id = p_rec.qualification_type_id;
64   --
65   per_eqt_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_eqt_shd.g_api_dml := false;   -- Unset the api dml status
73     per_eqt_shd.constraint_error
74       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
75   When Others Then
76     per_eqt_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_eqt_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 -- mvankada
155 -- Passed Developer DF columns as arguments to the procedure after_delete
156 
157 Procedure post_delete(p_rec in per_eqt_shd.g_rec_type
158                       ) is
159 --
160   l_proc  varchar2(72) := g_package||'post_delete';
161 --
162 Begin
163   hr_utility.set_location('Entering:'||l_proc, 5);
164   --
165   -- Start of API User Hook for post_delete.
166   begin
167     per_eqt_rkd.after_delete
168      (p_qualification_type_id     => p_rec.qualification_type_id
169      ,p_object_version_number     => per_eqt_shd.g_old_rec.object_version_number
170      ,p_name_o                    => per_eqt_shd.g_old_rec.name
171      ,p_category_o                => per_eqt_shd.g_old_rec.category
172      ,p_rank_o                    => per_eqt_shd.g_old_rec.rank
173      ,p_attribute_category_o      => per_eqt_shd.g_old_rec.attribute_category
174      ,p_attribute1_o              => per_eqt_shd.g_old_rec.attribute1
175      ,p_attribute2_o              => per_eqt_shd.g_old_rec.attribute2
176      ,p_attribute3_o              => per_eqt_shd.g_old_rec.attribute3
177      ,p_attribute4_o              => per_eqt_shd.g_old_rec.attribute4
178      ,p_attribute5_o              => per_eqt_shd.g_old_rec.attribute5
179      ,p_attribute6_o              => per_eqt_shd.g_old_rec.attribute6
180      ,p_attribute7_o              => per_eqt_shd.g_old_rec.attribute7
181      ,p_attribute8_o              => per_eqt_shd.g_old_rec.attribute8
182      ,p_attribute9_o              => per_eqt_shd.g_old_rec.attribute9
183      ,p_attribute10_o             => per_eqt_shd.g_old_rec.attribute10
184      ,p_attribute11_o             => per_eqt_shd.g_old_rec.attribute11
185      ,p_attribute12_o             => per_eqt_shd.g_old_rec.attribute12
186      ,p_attribute13_o             => per_eqt_shd.g_old_rec.attribute13
187      ,p_attribute14_o             => per_eqt_shd.g_old_rec.attribute14
188      ,p_attribute15_o             => per_eqt_shd.g_old_rec.attribute15
189      ,p_attribute16_o             => per_eqt_shd.g_old_rec.attribute16
190      ,p_attribute17_o             => per_eqt_shd.g_old_rec.attribute17
191      ,p_attribute18_o             => per_eqt_shd.g_old_rec.attribute18
192      ,p_attribute19_o             => per_eqt_shd.g_old_rec.attribute19
193      ,p_attribute20_o             => per_eqt_shd.g_old_rec.attribute20
194      ,p_object_version_number_o   => per_eqt_shd.g_old_rec.object_version_number
195      ,p_information_category_o    => per_eqt_shd.g_old_rec.information_category
196      ,p_information1_o	          => per_eqt_shd.g_old_rec.information1
197      ,p_information2_o	          => per_eqt_shd.g_old_rec.information2
198      ,p_information3_o	          => per_eqt_shd.g_old_rec.information3
199      ,p_information4_o	          => per_eqt_shd.g_old_rec.information4
200      ,p_information5_o	          => per_eqt_shd.g_old_rec.information5
201      ,p_information6_o	          => per_eqt_shd.g_old_rec.information6
202      ,p_information7_o	          => per_eqt_shd.g_old_rec.information7
203      ,p_information8_o	          => per_eqt_shd.g_old_rec.information8
204      ,p_information9_o	          => per_eqt_shd.g_old_rec.information9
205      ,p_information10_o	          => per_eqt_shd.g_old_rec.information10
206      ,p_information11_o	          => per_eqt_shd.g_old_rec.information11
207      ,p_information12_o	          => per_eqt_shd.g_old_rec.information12
208      ,p_information13_o	          => per_eqt_shd.g_old_rec.information13
209      ,p_information14_o	          => per_eqt_shd.g_old_rec.information14
210      ,p_information15_o	          => per_eqt_shd.g_old_rec.information15
211      ,p_information16_o	          => per_eqt_shd.g_old_rec.information16
212      ,p_information17_o	          => per_eqt_shd.g_old_rec.information17
213      ,p_information18_o	          => per_eqt_shd.g_old_rec.information18
214      ,p_information19_o	          => per_eqt_shd.g_old_rec.information19
215      ,p_information20_o	          => per_eqt_shd.g_old_rec.information20
216      ,p_information21_o	          => per_eqt_shd.g_old_rec.information21
217      ,p_information22_o	          => per_eqt_shd.g_old_rec.information22
218      ,p_information23_o	          => per_eqt_shd.g_old_rec.information23
219      ,p_information24_o	          => per_eqt_shd.g_old_rec.information24
220      ,p_information25_o	          => per_eqt_shd.g_old_rec.information25
221      ,p_information26_o	          => per_eqt_shd.g_old_rec.information26
222      ,p_information27_o	          => per_eqt_shd.g_old_rec.information27
223      ,p_information28_o	          => per_eqt_shd.g_old_rec.information28
224      ,p_information29_o	          => per_eqt_shd.g_old_rec.information29
225      ,p_information30_o	          => per_eqt_shd.g_old_rec.information30
226      -- BUG3356369
227      ,p_qual_framework_id_o       => per_eqt_shd.g_old_rec.qual_framework_id
228      ,p_qualification_type_o      => per_eqt_shd.g_old_rec.qualification_type
229      ,p_credit_type_o             => per_eqt_shd.g_old_rec.credit_type
230      ,p_credits_o                 => per_eqt_shd.g_old_rec.credits
231      ,p_level_type_o              => per_eqt_shd.g_old_rec.level_type
232      ,p_level_number_o            => per_eqt_shd.g_old_rec.level_number
233      ,p_field_o                   => per_eqt_shd.g_old_rec.field
234      ,p_sub_field_o               => per_eqt_shd.g_old_rec.sub_field
235      ,p_provider_o                => per_eqt_shd.g_old_rec.provider
236      ,p_qa_organization_o         => per_eqt_shd.g_old_rec.qa_organization
237      );
238  exception
239     when hr_api.cannot_find_prog_unit then
240       hr_api.cannot_find_prog_unit_error
241         (p_module_name => 'PER_QUALIFICATION_TYPES'
242         ,p_hook_type   => 'AD'
243         );
244   end;
245   -- End of API User Hook for post_delete.
246   --
247   hr_utility.set_location(' Leaving:'||l_proc, 10);
248 End post_delete;
249 --
250 -- ----------------------------------------------------------------------------
251 -- |---------------------------------< del >----------------------------------|
252 -- ----------------------------------------------------------------------------
253 Procedure del
254   (
255   p_rec	      in per_eqt_shd.g_rec_type
256  ,p_validate  in boolean default false
257   ) is
258 --
259   l_proc  varchar2(72) := g_package||'del';
260 --
261 Begin
262   hr_utility.set_location('Entering:'||l_proc, 5);
263   --
264   -- Determine if the business process is to be validated.
265   --
266   If p_validate then
267     --
268     -- Issue the savepoint.
269     --
270     SAVEPOINT del_per_eqt;
271   End If;
272   --
273   -- We must lock the row which we need to delete.
274   --
275   per_eqt_shd.lck
276 	(
277 	p_rec.qualification_type_id,
278 	p_rec.object_version_number
279 	);
280   --
281   -- Call the supporting delete validate operation
282   --
283   per_eqt_bus.delete_validate(p_rec);
284   --
285   -- Call the supporting pre-delete operation
286   --
287   pre_delete(p_rec);
288   --
289   -- Delete the row.
290   --
291   delete_dml(p_rec);
292   --
293   -- Call the supporting post-delete operation
294   --
295   post_delete(p_rec);
296   --
297   -- If we are validating then raise the Validate_Enabled exception
298   --
299   If p_validate then
300     Raise HR_Api.Validate_Enabled;
301   End If;
302   --
303   hr_utility.set_location(' Leaving:'||l_proc, 10);
304 Exception
305   When HR_Api.Validate_Enabled Then
306     --
307     -- As the Validate_Enabled exception has been raised
308     -- we must rollback to the savepoint
309     --
310     ROLLBACK TO del_per_eqt;
311 End del;
312 --
313 -- ----------------------------------------------------------------------------
314 -- |---------------------------------< del >----------------------------------|
315 -- ----------------------------------------------------------------------------
316 Procedure del
317   (
318   p_qualification_type_id              in number,
319   p_object_version_number              in number,
320   p_validate                           in boolean default false
321   ) is
322 --
323   l_rec	  per_eqt_shd.g_rec_type;
324   l_proc  varchar2(72) := g_package||'del';
325 --
326 Begin
327   hr_utility.set_location('Entering:'||l_proc, 5);
328   --
329   -- As the delete procedure accepts a plsql record structure we do need to
330   -- convert the  arguments into the record structure.
331   -- We don't need to call the supplied conversion argument routine as we
332   -- only need a few attributes.
333   --
334   l_rec.qualification_type_id:= p_qualification_type_id;
335   l_rec.object_version_number := p_object_version_number;
336   --
337   -- Having converted the arguments into the per_eqt_rec
338   -- plsql record structure we must call the corresponding entity
339   -- business process
340   --
341   del(l_rec, p_validate);
342   --
343   hr_utility.set_location(' Leaving:'||l_proc, 10);
344 End del;
345 --
346 end per_eqt_del;