DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_XEL_INS

Source


1 Package Body ben_xel_ins as
2 /* $Header: bexelrhi.pkb 120.1 2005/06/08 13:15:34 tjesumic noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_xel_ins.';  -- Global package name
9 --
10 --
11 -- ----------------------------------------------------------------------------
12 -- |-----------------------< create_app_ownerships >--------------------------|
13 -- ----------------------------------------------------------------------------
14 --
15 -- Description:
16 --   This procedure inserts a row into the HR_APPLICATION_OWNERSHIPS table
17 --   when the row handler is called in the appropriate mode.
18 --
19 -- ----------------------------------------------------------------------------
20 PROCEDURE create_app_ownerships(p_pk_column  IN varchar2
21                                ,p_pk_value   IN varchar2) IS
22 --
23 CURSOR csr_definition (p_session_id NUMBER) IS
24   SELECT product_short_name
25     FROM hr_owner_definitions
26    WHERE session_id = p_session_id;
27 --
28 l_session_id NUMBER;
29 --
30 BEGIN
31   --
32   IF (hr_startup_data_api_support.return_startup_mode IN
33                                ('STARTUP','GENERIC')) THEN
34   --
35   l_session_id := nvl(hr_startup_data_api_support.g_startup_session_id
36                      ,hr_startup_data_api_support.g_session_id);
37      --
38      FOR c1 IN csr_definition(l_session_id) LOOP
39        --
40        INSERT INTO hr_application_ownerships
41          (key_name
42          ,key_value
43          ,product_name
44          )
45        VALUES
46          (p_pk_column
47          ,fnd_number.number_to_canonical(p_pk_value)
48          ,c1.product_short_name
49          );
50      END LOOP;
51   END IF;
52 END create_app_ownerships;
53 --
54 -- ----------------------------------------------------------------------------
55 -- |-----------------------< create_app_ownerships >--------------------------|
56 -- ----------------------------------------------------------------------------
57 PROCEDURE create_app_ownerships(p_pk_column IN varchar2
58                                ,p_pk_value  IN number) IS
59 --
60 BEGIN
61   create_app_ownerships(p_pk_column, to_char(p_pk_value));
62 END create_app_ownerships;
63 --
64 -- ----------------------------------------------------------------------------
65 -- |------------------------------< insert_dml >------------------------------|
66 -- ----------------------------------------------------------------------------
67 -- {Start Of Comments}
68 --
69 -- Description:
70 --   This procedure controls the actual dml insert logic. The processing of
71 --   this procedure are as follows:
72 --   1) Initialise the object_version_number to 1 if the object_version_number
73 --      is defined as an attribute for this entity.
74 --   2) To set and unset the g_api_dml status as required (as we are about to
75 --      perform dml).
76 --   3) To insert the row into the schema.
77 --   4) To trap any constraint violations that may have occurred.
78 --   5) To raise any other errors.
79 --
80 -- Prerequisites:
81 --   This is an internal private procedure which must be called from the ins
82 --   procedure and must have all mandatory attributes set (except the
83 --   object_version_number which is initialised within this procedure).
84 --
85 -- In Parameters:
86 --   A Pl/Sql record structre.
87 --
88 -- Post Success:
89 --   The specified row will be inserted into the schema.
90 --
91 -- Post Failure:
92 --   On the insert dml failure it is important to note that we always reset the
93 --   g_api_dml status to false.
94 --   If a check, unique or parent integrity constraint violation is raised the
95 --   constraint_error procedure will be called.
96 --   If any other error is reported, the error will be raised after the
97 --   g_api_dml status is reset.
98 --
99 -- Developer Implementation Notes:
100 --   None.
101 --
102 -- Access Status:
103 --   Internal Row Handler Use Only.
104 --
105 -- {End Of Comments}
106 -- ----------------------------------------------------------------------------
107 Procedure insert_dml(p_rec in out nocopy ben_xel_shd.g_rec_type) is
108 --
109   l_proc  varchar2(72) := g_package||'insert_dml';
110 --
111 Begin
112   hr_utility.set_location('Entering:'||l_proc, 5);
113   p_rec.object_version_number := 1;  -- Initialise the object version
114   --
115   ben_xel_shd.g_api_dml := true;  -- Set the api dml status
116   --
117   -- Insert the row into: ben_ext_data_elmt
118   --
119   insert into ben_ext_data_elmt
120   (	ext_data_elmt_id,
121 	name,
122 	xml_tag_name ,
123 	data_elmt_typ_cd,
124 	data_elmt_rl,
125 	frmt_mask_cd,
126 	string_val,
127 	dflt_val,
128 	max_length_num,
129 	just_cd,
130 	ttl_fnctn_cd,
131 	ttl_cond_oper_cd,
132 	ttl_cond_val,
133 	ttl_sum_ext_data_elmt_id,
134 	ttl_cond_ext_data_elmt_id,
135 	ext_fld_id,
136 	business_group_id,
137 	legislation_code,
138 	xel_attribute_category,
139 	xel_attribute1,
140 	xel_attribute2,
141 	xel_attribute3,
142 	xel_attribute4,
143 	xel_attribute5,
144 	xel_attribute6,
145 	xel_attribute7,
146 	xel_attribute8,
147 	xel_attribute9,
148 	xel_attribute10,
149 	xel_attribute11,
150 	xel_attribute12,
151 	xel_attribute13,
152 	xel_attribute14,
153 	xel_attribute15,
154 	xel_attribute16,
155 	xel_attribute17,
156 	xel_attribute18,
157 	xel_attribute19,
158 	xel_attribute20,
159 	xel_attribute21,
160 	xel_attribute22,
161 	xel_attribute23,
162 	xel_attribute24,
163 	xel_attribute25,
164 	xel_attribute26,
165 	xel_attribute27,
166 	xel_attribute28,
167 	xel_attribute29,
168 	xel_attribute30,
169 	defined_balance_id,
170         last_update_date,
171         creation_date,
172         last_updated_by,
173         last_update_login,
174         created_by,
175 	object_version_number
176   )
177   Values
178   (	p_rec.ext_data_elmt_id,
179 	p_rec.name,
180 	p_rec.xml_tag_name,
181 	p_rec.data_elmt_typ_cd,
182 	p_rec.data_elmt_rl,
183 	p_rec.frmt_mask_cd,
184 	p_rec.string_val,
185 	p_rec.dflt_val,
186 	p_rec.max_length_num,
187 	p_rec.just_cd,
188 	p_rec.ttl_fnctn_cd,
189 	p_rec.ttl_cond_oper_cd,
190 	p_rec.ttl_cond_val,
191 	p_rec.ttl_sum_ext_data_elmt_id,
192 	p_rec.ttl_cond_ext_data_elmt_id,
193 	p_rec.ext_fld_id,
194 	p_rec.business_group_id,
195 	p_rec.legislation_code,
196 	p_rec.xel_attribute_category,
197 	p_rec.xel_attribute1,
198 	p_rec.xel_attribute2,
199 	p_rec.xel_attribute3,
200 	p_rec.xel_attribute4,
201 	p_rec.xel_attribute5,
202 	p_rec.xel_attribute6,
203 	p_rec.xel_attribute7,
204 	p_rec.xel_attribute8,
205 	p_rec.xel_attribute9,
206 	p_rec.xel_attribute10,
207 	p_rec.xel_attribute11,
208 	p_rec.xel_attribute12,
209 	p_rec.xel_attribute13,
210 	p_rec.xel_attribute14,
211 	p_rec.xel_attribute15,
212 	p_rec.xel_attribute16,
213 	p_rec.xel_attribute17,
214 	p_rec.xel_attribute18,
215 	p_rec.xel_attribute19,
216 	p_rec.xel_attribute20,
217 	p_rec.xel_attribute21,
218 	p_rec.xel_attribute22,
219 	p_rec.xel_attribute23,
220 	p_rec.xel_attribute24,
221 	p_rec.xel_attribute25,
222 	p_rec.xel_attribute26,
223 	p_rec.xel_attribute27,
224 	p_rec.xel_attribute28,
225 	p_rec.xel_attribute29,
226 	p_rec.xel_attribute30,
227 	p_rec.defined_balance_id,
228         p_rec.last_update_date,
229         p_rec.creation_date,
230         p_rec.last_updated_by,
231         p_rec.last_update_login,
232         p_rec.created_by,
233 	p_rec.object_version_number
234   );
235   --
236   ben_xel_shd.g_api_dml := false;   -- Unset the api dml status
237   --
238   hr_utility.set_location(' Leaving:'||l_proc, 10);
239 Exception
240   When hr_api.check_integrity_violated Then
241     -- A check constraint has been violated
242     ben_xel_shd.g_api_dml := false;   -- Unset the api dml status
243     ben_xel_shd.constraint_error
244       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
245   When hr_api.parent_integrity_violated Then
246     -- Parent integrity has been violated
247     ben_xel_shd.g_api_dml := false;   -- Unset the api dml status
248     ben_xel_shd.constraint_error
249       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
250   When hr_api.unique_integrity_violated Then
251     -- Unique integrity has been violated
252     ben_xel_shd.g_api_dml := false;   -- Unset the api dml status
253     ben_xel_shd.constraint_error
254       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
255   When Others Then
256     ben_xel_shd.g_api_dml := false;   -- Unset the api dml status
257     Raise;
258 End insert_dml;
259 --
260 -- ----------------------------------------------------------------------------
261 -- |------------------------------< pre_insert >------------------------------|
262 -- ----------------------------------------------------------------------------
263 -- {Start Of Comments}
264 --
265 -- Description:
266 --   This private procedure contains any processing which is required before
267 --   the insert dml. Presently, if the entity has a corresponding primary
268 --   key which is maintained by an associating sequence, the primary key for
269 --   the entity will be populated with the next sequence value in
270 --   preparation for the insert dml.
271 --
272 -- Prerequisites:
273 --   This is an internal procedure which is called from the ins procedure.
274 --
275 -- In Parameters:
276 --   A Pl/Sql record structre.
277 --
278 -- Post Success:
279 --   Processing continues.
280 --
281 -- Post Failure:
282 --   If an error has occurred, an error message and exception will be raised
283 --   but not handled.
284 --
285 -- Developer Implementation Notes:
286 --   Any pre-processing required before the insert dml is issued should be
287 --   coded within this procedure. As stated above, a good example is the
288 --   generation of a primary key number via a corresponding sequence.
289 --   It is important to note that any 3rd party maintenance should be reviewed
290 --   before placing in this procedure.
291 --
292 -- Access Status:
293 --   Internal Row Handler Use Only.
294 --
295 -- {End Of Comments}
296 -- ----------------------------------------------------------------------------
297 Procedure pre_insert(p_rec  in out nocopy ben_xel_shd.g_rec_type) is
298 --
299   l_proc  varchar2(72) := g_package||'pre_insert';
300 --
301   Cursor C_Sel1 is select ben_ext_data_elmt_s.nextval from sys.dual;
302 --
303 Begin
304   hr_utility.set_location('Entering:'||l_proc, 5);
305   --
306   --
307   -- Select the next sequence number
308   --
309   Open C_Sel1;
310   Fetch C_Sel1 Into p_rec.ext_data_elmt_id;
311   Close C_Sel1;
312   --
313   hr_utility.set_location(' Leaving:'||l_proc, 10);
314 End pre_insert;
315 --
316 -- ----------------------------------------------------------------------------
317 -- |-----------------------------< post_insert >------------------------------|
318 -- ----------------------------------------------------------------------------
319 -- {Start Of Comments}
320 --
321 -- Description:
322 --   This private procedure contains any processing which is required after the
323 --   insert dml.
324 --
325 -- Prerequisites:
326 --   This is an internal procedure which is called from the ins procedure.
327 --
328 -- In Parameters:
329 --   A Pl/Sql record structre.
330 --
331 -- Post Success:
332 --   Processing continues.
333 --
334 -- Post Failure:
335 --   If an error has occurred, an error message and exception will be raised
336 --   but not handled.
337 --
338 -- Developer Implementation Notes:
339 --   Any post-processing required after the insert dml is issued should be
340 --   coded within this procedure. It is important to note that any 3rd party
341 --   maintenance should be reviewed before placing in this procedure.
342 --
343 -- Access Status:
344 --   Internal Row Handler Use Only.
345 --
346 -- {End Of Comments}
347 -- ----------------------------------------------------------------------------
348 Procedure post_insert(
349 p_effective_date in date,p_rec in ben_xel_shd.g_rec_type) is
350 --
351   l_proc  varchar2(72) := g_package||'post_insert';
352 --
353 Begin
354   hr_utility.set_location('Entering:'||l_proc, 5);
355 --
356   --
357   -- Start of API User Hook for post_insert.
358   --
359   begin
360     --
361     -- insert ownerships if applicable
362     --
363     create_app_ownerships('EXT_DATA_ELMT_ID', p_rec.ext_data_elmt_id);
364     --
365     --
366     ben_xel_rki.after_insert
367       (
368   p_ext_data_elmt_id              =>p_rec.ext_data_elmt_id
369  ,p_name                          =>p_rec.name
370  ,p_xml_tag_name                  =>p_rec.xml_tag_name
371  ,p_data_elmt_typ_cd              =>p_rec.data_elmt_typ_cd
372  ,p_data_elmt_rl                  =>p_rec.data_elmt_rl
373  ,p_frmt_mask_cd                  =>p_rec.frmt_mask_cd
374  ,p_string_val                    =>p_rec.string_val
375  ,p_dflt_val                      =>p_rec.dflt_val
376  ,p_max_length_num                =>p_rec.max_length_num
377  ,p_just_cd                       =>p_rec.just_cd
378 	,p_ttl_fnctn_cd =>p_rec.ttl_fnctn_cd
379 	,p_ttl_cond_oper_cd=>p_rec.ttl_cond_oper_cd
380 	,p_ttl_cond_val => p_rec.ttl_cond_val
381 	,p_ttl_sum_ext_data_elmt_id =>p_rec.ttl_sum_ext_data_elmt_id
382 	,p_ttl_cond_ext_data_elmt_id => p_rec.ttl_cond_ext_data_elmt_id
383  ,p_ext_fld_id                    =>p_rec.ext_fld_id
384  ,p_business_group_id             =>p_rec.business_group_id
385  ,p_legislation_code              =>p_rec.legislation_code
386  ,p_xel_attribute_category        =>p_rec.xel_attribute_category
387  ,p_xel_attribute1                =>p_rec.xel_attribute1
388  ,p_xel_attribute2                =>p_rec.xel_attribute2
389  ,p_xel_attribute3                =>p_rec.xel_attribute3
390  ,p_xel_attribute4                =>p_rec.xel_attribute4
391  ,p_xel_attribute5                =>p_rec.xel_attribute5
392  ,p_xel_attribute6                =>p_rec.xel_attribute6
393  ,p_xel_attribute7                =>p_rec.xel_attribute7
394  ,p_xel_attribute8                =>p_rec.xel_attribute8
395  ,p_xel_attribute9                =>p_rec.xel_attribute9
396  ,p_xel_attribute10               =>p_rec.xel_attribute10
397  ,p_xel_attribute11               =>p_rec.xel_attribute11
398  ,p_xel_attribute12               =>p_rec.xel_attribute12
399  ,p_xel_attribute13               =>p_rec.xel_attribute13
400  ,p_xel_attribute14               =>p_rec.xel_attribute14
401  ,p_xel_attribute15               =>p_rec.xel_attribute15
402  ,p_xel_attribute16               =>p_rec.xel_attribute16
403  ,p_xel_attribute17               =>p_rec.xel_attribute17
404  ,p_xel_attribute18               =>p_rec.xel_attribute18
405  ,p_xel_attribute19               =>p_rec.xel_attribute19
406  ,p_xel_attribute20               =>p_rec.xel_attribute20
407  ,p_xel_attribute21               =>p_rec.xel_attribute21
408  ,p_xel_attribute22               =>p_rec.xel_attribute22
409  ,p_xel_attribute23               =>p_rec.xel_attribute23
410  ,p_xel_attribute24               =>p_rec.xel_attribute24
411  ,p_xel_attribute25               =>p_rec.xel_attribute25
412  ,p_xel_attribute26               =>p_rec.xel_attribute26
413  ,p_xel_attribute27               =>p_rec.xel_attribute27
414  ,p_xel_attribute28               =>p_rec.xel_attribute28
415  ,p_xel_attribute29               =>p_rec.xel_attribute29
416  ,p_xel_attribute30               =>p_rec.xel_attribute30
417  ,p_defined_balance_id            =>p_rec.defined_balance_id
418  ,p_object_version_number         =>p_rec.object_version_number
419  ,p_effective_date                =>p_effective_date
420       );
421     --
422   exception
423     --
424     when hr_api.cannot_find_prog_unit then
425       --
426       hr_api.cannot_find_prog_unit_error
427         (p_module_name => 'ben_ext_data_elmt'
428         ,p_hook_type   => 'AI');
429       --
430   end;
431   --
432   -- End of API User Hook for post_insert.
433   --
434   --
435   hr_utility.set_location(' Leaving:'||l_proc, 10);
436 End post_insert;
437 --
438 -- ----------------------------------------------------------------------------
439 -- |---------------------------------< ins >----------------------------------|
440 -- ----------------------------------------------------------------------------
441 Procedure ins
442   (
443   p_effective_date in date,
444   p_rec        in out nocopy ben_xel_shd.g_rec_type
445   ) is
446 --
447   l_proc  varchar2(72) := g_package||'ins';
448 --
449 Begin
450   hr_utility.set_location('Entering:'||l_proc, 5);
451   --
452   -- Call the supporting insert validate operations
453   --
454   ben_xel_bus.insert_validate(p_rec
455   ,p_effective_date);
456   --
457   ben_xel_bus.chk_xml_name_format
458           ( p_xml_tag_name    => p_rec.xml_tag_name
459           ) ;
460 
461   -- Call the supporting pre-insert operation
462   --
463   pre_insert(p_rec);
464   --
465   -- Insert the row
466   --
467   insert_dml(p_rec);
468   --
469   -- Call the supporting post-insert operation
470   --
471   post_insert(
472 p_effective_date,p_rec);
473 end ins;
474 --
475 -- ----------------------------------------------------------------------------
476 -- |---------------------------------< ins >----------------------------------|
477 -- ----------------------------------------------------------------------------
478 Procedure ins
479   (
480   p_effective_date in date,
481   p_ext_data_elmt_id             out nocopy number,
482   p_name                         in varchar2         default null,
483   p_xml_tag_name                 in varchar2         default null,
484   p_data_elmt_typ_cd             in varchar2         default null,
485   p_data_elmt_rl                 in number           default null,
486   p_frmt_mask_cd                 in varchar2         default null,
487   p_string_val                   in varchar2         default null,
488   p_dflt_val                     in varchar2         default null,
489   p_max_length_num               in number           default null,
490   p_just_cd                     in varchar2         default null,
491 	p_ttl_fnctn_cd in varchar2         default null
492 	,p_ttl_cond_oper_cd    in varchar2         default null
493 	,p_ttl_cond_val        in varchar2         default null
494 	,p_ttl_sum_ext_data_elmt_id in number           default null
495 	,p_ttl_cond_ext_data_elmt_id  in number           default null
496   ,p_ext_fld_id                   in number           default null,
497   p_business_group_id            in number,
498   p_legislation_code             in varchar2         default null,
499   p_xel_attribute_category       in varchar2         default null,
500   p_xel_attribute1               in varchar2         default null,
501   p_xel_attribute2               in varchar2         default null,
502   p_xel_attribute3               in varchar2         default null,
503   p_xel_attribute4               in varchar2         default null,
504   p_xel_attribute5               in varchar2         default null,
505   p_xel_attribute6               in varchar2         default null,
506   p_xel_attribute7               in varchar2         default null,
507   p_xel_attribute8               in varchar2         default null,
508   p_xel_attribute9               in varchar2         default null,
509   p_xel_attribute10              in varchar2         default null,
510   p_xel_attribute11              in varchar2         default null,
511   p_xel_attribute12              in varchar2         default null,
512   p_xel_attribute13              in varchar2         default null,
513   p_xel_attribute14              in varchar2         default null,
514   p_xel_attribute15              in varchar2         default null,
515   p_xel_attribute16              in varchar2         default null,
516   p_xel_attribute17              in varchar2         default null,
517   p_xel_attribute18              in varchar2         default null,
518   p_xel_attribute19              in varchar2         default null,
519   p_xel_attribute20              in varchar2         default null,
520   p_xel_attribute21              in varchar2         default null,
521   p_xel_attribute22              in varchar2         default null,
522   p_xel_attribute23              in varchar2         default null,
523   p_xel_attribute24              in varchar2         default null,
524   p_xel_attribute25              in varchar2         default null,
525   p_xel_attribute26              in varchar2         default null,
526   p_xel_attribute27              in varchar2         default null,
527   p_xel_attribute28              in varchar2         default null,
528   p_xel_attribute29              in varchar2         default null,
529   p_xel_attribute30              in varchar2         default null,
530   p_defined_balance_id           in number           default null,
531   p_last_update_date             in date             default null,
532   p_creation_date                in date             default null,
533   p_last_updated_by              in number           default null,
534   p_last_update_login            in number           default null,
535   p_created_by                   in number           default null,
536 
537   p_object_version_number        out nocopy number
538   ) is
539 --
540   l_rec	  ben_xel_shd.g_rec_type;
541   l_proc  varchar2(72) := g_package||'ins';
542 --
543 Begin
544   hr_utility.set_location('Entering:'||l_proc, 5);
545   --
546   -- Call conversion function to turn arguments into the
547   -- p_rec structure.
548   --
549   l_rec :=
550   ben_xel_shd.convert_args
551   (
552   null,
553   p_name,
554   p_xml_tag_name,
555   p_data_elmt_typ_cd,
556   p_data_elmt_rl,
557   p_frmt_mask_cd,
558   p_string_val,
559   p_dflt_val,
560   p_max_length_num,
561   p_just_cd,
562 	p_ttl_fnctn_cd,
563 	p_ttl_cond_oper_cd,
564 	p_ttl_cond_val,
565 	p_ttl_sum_ext_data_elmt_id,
566 	p_ttl_cond_ext_data_elmt_id,
567   p_ext_fld_id,
568   p_business_group_id,
569   p_legislation_code,
570   p_xel_attribute_category,
571   p_xel_attribute1,
572   p_xel_attribute2,
573   p_xel_attribute3,
574   p_xel_attribute4,
575   p_xel_attribute5,
576   p_xel_attribute6,
577   p_xel_attribute7,
578   p_xel_attribute8,
579   p_xel_attribute9,
580   p_xel_attribute10,
581   p_xel_attribute11,
582   p_xel_attribute12,
583   p_xel_attribute13,
584   p_xel_attribute14,
585   p_xel_attribute15,
586   p_xel_attribute16,
587   p_xel_attribute17,
588   p_xel_attribute18,
589   p_xel_attribute19,
590   p_xel_attribute20,
591   p_xel_attribute21,
592   p_xel_attribute22,
593   p_xel_attribute23,
594   p_xel_attribute24,
595   p_xel_attribute25,
596   p_xel_attribute26,
597   p_xel_attribute27,
598   p_xel_attribute28,
599   p_xel_attribute29,
600   p_xel_attribute30,
601   p_defined_balance_id,
602   p_last_update_date,
603   p_creation_date   ,
604   p_last_updated_by ,
605   p_last_update_login,
606   p_created_by       ,
607   null
608   );
609   --
610   -- Having converted the arguments into the ben_xel_rec
611   -- plsql record structure we call the corresponding record business process.
612   --
613   ins(
614     p_effective_date,l_rec);
615   --
616   -- As the primary key argument(s)
617   -- are specified as an OUT's we must set these values.
618   --
619   p_ext_data_elmt_id := l_rec.ext_data_elmt_id;
620   p_object_version_number := l_rec.object_version_number;
621   --
622   hr_utility.set_location(' Leaving:'||l_proc, 10);
623 End ins;
624 --
625 end ben_xel_ins;