1 Package Body hr_icx_upd as
2 /* $Header: hricxrhi.pkb 115.5 2003/10/23 01:44:08 bsubrama noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_icx_upd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------------< update_dml >------------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 -- This procedure controls the actual dml update logic. The processing of
17 -- this procedure is:
18 -- 1) Increment the object_version_number by 1 if the object_version_number
19 -- is defined as an attribute for this entity.
20 -- 2) To set and unset the g_api_dml status as required (as we are about to
21 -- perform dml).
22 -- 3) To update the specified row in the schema using the primary key in
23 -- the predicates.
24 -- 4) To trap any constraint violations that may have occurred.
25 -- 5) To raise any other errors.
26 --
27 -- Prerequisites:
28 -- This is an internal private procedure which must be called from the upd
29 -- procedure.
30 --
31 -- In Parameters:
32 -- A Pl/Sql record structre.
33 --
34 -- Post Success:
35 -- The specified row will be updated in the schema.
36 --
37 -- Post Failure:
38 -- On the update dml failure it is important to note that we always reset the
39 -- g_api_dml status to false.
40 -- If a check, unique or parent integrity constraint violation is raised the
41 -- constraint_error procedure will be called.
42 -- If any other error is reported, the error will be raised after the
43 -- g_api_dml status is reset.
44 --
45 -- Developer Implementation Notes:
46 -- The update 'set' attribute list should be modified if any of your
47 -- attributes are not updateable.
48 --
49 -- Access Status:
50 -- Internal Row Handler Use Only.
51 --
52 -- {End Of Comments}
53 -- ----------------------------------------------------------------------------
54 Procedure update_dml
55 (p_rec in out nocopy hr_icx_shd.g_rec_type
56 ) is
57 --
58 l_proc varchar2(72) := g_package||'update_dml';
59 --
60 Begin
61 hr_utility.set_location('Entering:'||l_proc, 5);
62 p_rec.object_version_number := p_rec.object_version_number + 1;
63 --
64 --
65 --
66 -- Update the hr_item_contexts Row
67 --
68 update hr_item_contexts
69 set
70 item_context_id = p_rec.item_context_id
71 ,object_version_number = p_rec.object_version_number
72 ,id_flex_num = p_rec.id_flex_num
73 ,summary_flag = p_rec.summary_flag
74 ,enabled_flag = p_rec.enabled_flag
75 ,start_date_active = p_rec.start_date_active
76 ,end_date_active = p_rec.end_date_active
77 ,segment1 = p_rec.segment1
78 ,segment2 = p_rec.segment2
79 ,segment3 = p_rec.segment3
80 ,segment4 = p_rec.segment4
81 ,segment5 = p_rec.segment5
82 ,segment6 = p_rec.segment6
83 ,segment7 = p_rec.segment7
84 ,segment8 = p_rec.segment8
85 ,segment9 = p_rec.segment9
86 ,segment10 = p_rec.segment10
87 ,segment11 = p_rec.segment11
88 ,segment12 = p_rec.segment12
89 ,segment13 = p_rec.segment13
90 ,segment14 = p_rec.segment14
91 ,segment15 = p_rec.segment15
92 ,segment16 = p_rec.segment16
93 ,segment17 = p_rec.segment17
94 ,segment18 = p_rec.segment18
95 ,segment19 = p_rec.segment19
96 ,segment20 = p_rec.segment20
97 ,segment21 = p_rec.segment21
98 ,segment22 = p_rec.segment22
99 ,segment23 = p_rec.segment23
100 ,segment24 = p_rec.segment24
101 ,segment25 = p_rec.segment25
102 ,segment26 = p_rec.segment26
103 ,segment27 = p_rec.segment27
104 ,segment28 = p_rec.segment28
105 ,segment29 = p_rec.segment29
106 ,segment30 = p_rec.segment30
107 where item_context_id = p_rec.item_context_id;
108 --
109 --
110 --
111 hr_utility.set_location(' Leaving:'||l_proc, 10);
112 --
113 Exception
114 When hr_api.check_integrity_violated Then
115 -- A check constraint has been violated
116 --
117 hr_icx_shd.constraint_error
118 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
119 When hr_api.parent_integrity_violated Then
120 -- Parent integrity has been violated
121 --
122 hr_icx_shd.constraint_error
123 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
124 When hr_api.unique_integrity_violated Then
125 -- Unique integrity has been violated
126 --
127 hr_icx_shd.constraint_error
128 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
129 When Others Then
130 --
131 Raise;
132 End update_dml;
133 --
134 -- ----------------------------------------------------------------------------
135 -- |------------------------------< pre_update >------------------------------|
136 -- ----------------------------------------------------------------------------
137 -- {Start Of Comments}
138 --
139 -- Description:
140 -- This private procedure contains any processing which is required before
141 -- the update dml.
142 --
143 -- Prerequisites:
144 -- This is an internal procedure which is called from the upd procedure.
145 --
146 -- In Parameters:
147 -- A Pl/Sql record structure.
148 --
149 -- Post Success:
150 -- Processing continues.
151 --
152 -- Post Failure:
153 -- If an error has occurred, an error message and exception wil be raised
154 -- but not handled.
155 --
156 -- Developer Implementation Notes:
157 -- Any pre-processing required before the update dml is issued should be
158 -- coded within this procedure. It is important to note that any 3rd party
159 -- maintenance should be reviewed before placing in this procedure.
160 --
161 -- Access Status:
162 -- Internal Row Handler Use Only.
163 --
164 -- {End Of Comments}
165 -- ----------------------------------------------------------------------------
166 Procedure pre_update
167 (p_rec in hr_icx_shd.g_rec_type
168 ) is
169 --
170 l_proc varchar2(72) := g_package||'pre_update';
171 --
172 Begin
173 hr_utility.set_location('Entering:'||l_proc, 5);
174 --
175 hr_utility.set_location(' Leaving:'||l_proc, 10);
176 End pre_update;
177 --
178 -- ----------------------------------------------------------------------------
179 -- |-----------------------------< post_update >------------------------------|
180 -- ----------------------------------------------------------------------------
181 -- {Start Of Comments}
182 --
183 -- Description:
184 -- This private procedure contains any processing which is required after the
185 -- update dml.
186 --
187 -- Prerequisites:
188 -- This is an internal procedure which is called from the upd procedure.
189 --
190 -- In Parameters:
191 -- A Pl/Sql record structure.
192 --
193 -- Post Success:
194 -- Processing continues.
195 --
196 -- Post Failure:
197 -- If an error has occurred, an error message and exception will be raised
198 -- but not handled.
199 --
200 -- Developer Implementation Notes:
201 -- Any post-processing required after the update dml is issued should be
202 -- coded within this procedure. It is important to note that any 3rd party
203 -- maintenance should be reviewed before placing in this procedure.
204 --
205 -- Access Status:
206 -- Internal Row Handler Use Only.
207 --
208 -- {End Of Comments}
209 -- ----------------------------------------------------------------------------
210 Procedure post_update
211 (p_effective_date in date
212 ,p_rec in hr_icx_shd.g_rec_type
213 ) is
214 --
215 l_proc varchar2(72) := g_package||'post_update';
216 --
217 Begin
218 hr_utility.set_location('Entering:'||l_proc, 5);
219 begin
220 --
221 hr_icx_rku.after_update
222 (p_effective_date => p_effective_date
223 ,p_object_version_number
224 => p_rec.object_version_number
225 ,p_item_context_id
226 => p_rec.item_context_id
227 ,p_id_flex_num
228 => p_rec.id_flex_num
229 ,p_summary_flag
230 => p_rec.summary_flag
231 ,p_enabled_flag
232 => p_rec.enabled_flag
233 ,p_start_date_active
234 => p_rec.start_date_active
235 ,p_end_date_active
236 => p_rec.end_date_active
237 ,p_segment1
238 => p_rec.segment1
239 ,p_segment2
240 => p_rec.segment2
241 ,p_segment3
242 => p_rec.segment3
243 ,p_segment4
244 => p_rec.segment4
245 ,p_segment5
246 => p_rec.segment5
247 ,p_segment6
248 => p_rec.segment6
249 ,p_segment7
250 => p_rec.segment7
251 ,p_segment8
252 => p_rec.segment8
253 ,p_segment9
254 => p_rec.segment9
255 ,p_segment10
256 => p_rec.segment10
257 ,p_segment11
258 => p_rec.segment11
259 ,p_segment12
260 => p_rec.segment12
261 ,p_segment13
262 => p_rec.segment13
263 ,p_segment14
264 => p_rec.segment14
265 ,p_segment15
266 => p_rec.segment15
267 ,p_segment16
268 => p_rec.segment16
269 ,p_segment17
270 => p_rec.segment17
271 ,p_segment18
272 => p_rec.segment18
273 ,p_segment19
274 => p_rec.segment19
275 ,p_segment20
276 => p_rec.segment20
277 ,p_segment21
278 => p_rec.segment21
279 ,p_segment22
280 => p_rec.segment22
281 ,p_segment23
282 => p_rec.segment23
283 ,p_segment24
284 => p_rec.segment24
285 ,p_segment25
286 => p_rec.segment25
287 ,p_segment26
288 => p_rec.segment26
289 ,p_segment27
290 => p_rec.segment27
291 ,p_segment28
292 => p_rec.segment28
293 ,p_segment29
294 => p_rec.segment29
295 ,p_segment30
296 => p_rec.segment30
297 ,p_object_version_number_o
298 => hr_icx_shd.g_old_rec.object_version_number
299 ,p_id_flex_num_o
300 => hr_icx_shd.g_old_rec.id_flex_num
301 ,p_summary_flag_o
302 => hr_icx_shd.g_old_rec.summary_flag
303 ,p_enabled_flag_o
304 => hr_icx_shd.g_old_rec.enabled_flag
305 ,p_start_date_active_o
306 => hr_icx_shd.g_old_rec.start_date_active
307 ,p_end_date_active_o
308 => hr_icx_shd.g_old_rec.end_date_active
309 ,p_segment1_o
310 => hr_icx_shd.g_old_rec.segment1
311 ,p_segment2_o
312 => hr_icx_shd.g_old_rec.segment2
313 ,p_segment3_o
314 => hr_icx_shd.g_old_rec.segment3
315 ,p_segment4_o
316 => hr_icx_shd.g_old_rec.segment4
317 ,p_segment5_o
318 => hr_icx_shd.g_old_rec.segment5
319 ,p_segment6_o
320 => hr_icx_shd.g_old_rec.segment6
321 ,p_segment7_o
322 => hr_icx_shd.g_old_rec.segment7
323 ,p_segment8_o
324 => hr_icx_shd.g_old_rec.segment8
325 ,p_segment9_o
326 => hr_icx_shd.g_old_rec.segment9
327 ,p_segment10_o
328 => hr_icx_shd.g_old_rec.segment10
329 ,p_segment11_o
330 => hr_icx_shd.g_old_rec.segment11
331 ,p_segment12_o
332 => hr_icx_shd.g_old_rec.segment12
333 ,p_segment13_o
334 => hr_icx_shd.g_old_rec.segment13
335 ,p_segment14_o
336 => hr_icx_shd.g_old_rec.segment14
337 ,p_segment15_o
338 => hr_icx_shd.g_old_rec.segment15
339 ,p_segment16_o
340 => hr_icx_shd.g_old_rec.segment16
341 ,p_segment17_o
342 => hr_icx_shd.g_old_rec.segment17
343 ,p_segment18_o
344 => hr_icx_shd.g_old_rec.segment18
345 ,p_segment19_o
346 => hr_icx_shd.g_old_rec.segment19
347 ,p_segment20_o
348 => hr_icx_shd.g_old_rec.segment20
349 ,p_segment21_o
350 => hr_icx_shd.g_old_rec.segment21
351 ,p_segment22_o
352 => hr_icx_shd.g_old_rec.segment22
353 ,p_segment23_o
354 => hr_icx_shd.g_old_rec.segment23
355 ,p_segment24_o
356 => hr_icx_shd.g_old_rec.segment24
357 ,p_segment25_o
358 => hr_icx_shd.g_old_rec.segment25
359 ,p_segment26_o
360 => hr_icx_shd.g_old_rec.segment26
361 ,p_segment27_o
362 => hr_icx_shd.g_old_rec.segment27
363 ,p_segment28_o
364 => hr_icx_shd.g_old_rec.segment28
365 ,p_segment29_o
366 => hr_icx_shd.g_old_rec.segment29
367 ,p_segment30_o
368 => hr_icx_shd.g_old_rec.segment30
369 );
370 --
371 exception
372 --
373 when hr_api.cannot_find_prog_unit then
374 --
375 hr_api.cannot_find_prog_unit_error
376 (p_module_name => 'HR_ITEM_CONTEXTS'
377 ,p_hook_type => 'AU');
378 --
379 end;
380 --
381 hr_utility.set_location(' Leaving:'||l_proc, 10);
382 End post_update;
383 --
384 -- ----------------------------------------------------------------------------
385 -- |-----------------------------< convert_defs >-----------------------------|
386 -- ----------------------------------------------------------------------------
387 -- {Start Of Comments}
388 --
389 -- Description:
390 -- The Convert_Defs procedure has one very important function:
391 -- It must return the record structure for the row with all system defaulted
392 -- values converted into its corresponding parameter value for update. When
393 -- we attempt to update a row through the Upd process , certain
394 -- parameters can be defaulted which enables flexibility in the calling of
395 -- the upd process (e.g. only attributes which need to be updated need to be
396 -- specified). For the upd process to determine which attributes
397 -- have NOT been specified we need to check if the parameter has a reserved
398 -- system default value. Therefore, for all parameters which have a
399 -- corresponding reserved system default mechanism specified we need to
400 -- check if a system default is being used. If a system default is being
401 -- used then we convert the defaulted value into its corresponding attribute
402 -- value held in the g_old_rec data structure.
403 --
404 -- Prerequisites:
405 -- This private function can only be called from the upd process.
406 --
407 -- In Parameters:
408 -- A Pl/Sql record structure.
409 --
410 -- Post Success:
411 -- The record structure will be returned with all system defaulted parameter
412 -- values converted into its current row attribute value.
413 --
414 -- Post Failure:
415 -- No direct error handling is required within this function. Any possible
416 -- errors within this procedure will be a PL/SQL value error due to
420 -- None.
417 -- conversion of datatypes or data lengths.
418 --
419 -- Developer Implementation Notes:
421 --
422 -- Access Status:
423 -- Internal Row Handler Use Only.
424 --
425 -- {End Of Comments}
426 -- ----------------------------------------------------------------------------
427 Procedure convert_defs
428 (p_rec in out nocopy hr_icx_shd.g_rec_type
429 ) is
430 --
431 Begin
432 --
433 -- We must now examine each argument value in the
434 -- p_rec plsql record structure
435 -- to see if a system default is being used. If a system default
436 -- is being used then we must set to the 'current' argument value.
437 --
438 If (p_rec.id_flex_num = hr_api.g_number) then
439 p_rec.id_flex_num :=
440 hr_icx_shd.g_old_rec.id_flex_num;
441 End If;
442 If (p_rec.summary_flag = hr_api.g_varchar2) then
443 p_rec.summary_flag :=
444 hr_icx_shd.g_old_rec.summary_flag;
445 End If;
446 If (p_rec.enabled_flag = hr_api.g_varchar2) then
447 p_rec.enabled_flag :=
448 hr_icx_shd.g_old_rec.enabled_flag;
449 End If;
450 If (p_rec.start_date_active = hr_api.g_date) then
451 p_rec.start_date_active :=
452 hr_icx_shd.g_old_rec.start_date_active;
453 End If;
454 If (p_rec.end_date_active = hr_api.g_date) then
455 p_rec.end_date_active :=
456 hr_icx_shd.g_old_rec.end_date_active;
457 End If;
458 If (p_rec.segment1 = hr_api.g_varchar2) then
459 p_rec.segment1 :=
460 hr_icx_shd.g_old_rec.segment1;
461 End If;
462 If (p_rec.segment2 = hr_api.g_varchar2) then
463 p_rec.segment2 :=
464 hr_icx_shd.g_old_rec.segment2;
465 End If;
466 If (p_rec.segment3 = hr_api.g_varchar2) then
467 p_rec.segment3 :=
468 hr_icx_shd.g_old_rec.segment3;
469 End If;
470 If (p_rec.segment4 = hr_api.g_varchar2) then
471 p_rec.segment4 :=
472 hr_icx_shd.g_old_rec.segment4;
473 End If;
474 If (p_rec.segment5 = hr_api.g_varchar2) then
475 p_rec.segment5 :=
476 hr_icx_shd.g_old_rec.segment5;
477 End If;
478 If (p_rec.segment6 = hr_api.g_varchar2) then
479 p_rec.segment6 :=
480 hr_icx_shd.g_old_rec.segment6;
481 End If;
482 If (p_rec.segment7 = hr_api.g_varchar2) then
483 p_rec.segment7 :=
484 hr_icx_shd.g_old_rec.segment7;
485 End If;
486 If (p_rec.segment8 = hr_api.g_varchar2) then
487 p_rec.segment8 :=
488 hr_icx_shd.g_old_rec.segment8;
489 End If;
490 If (p_rec.segment9 = hr_api.g_varchar2) then
491 p_rec.segment9 :=
492 hr_icx_shd.g_old_rec.segment9;
493 End If;
494 If (p_rec.segment10 = hr_api.g_varchar2) then
495 p_rec.segment10 :=
496 hr_icx_shd.g_old_rec.segment10;
497 End If;
498 If (p_rec.segment11 = hr_api.g_varchar2) then
499 p_rec.segment11 :=
500 hr_icx_shd.g_old_rec.segment11;
501 End If;
502 If (p_rec.segment12 = hr_api.g_varchar2) then
503 p_rec.segment12 :=
504 hr_icx_shd.g_old_rec.segment12;
505 End If;
506 If (p_rec.segment13 = hr_api.g_varchar2) then
507 p_rec.segment13 :=
508 hr_icx_shd.g_old_rec.segment13;
509 End If;
510 If (p_rec.segment14 = hr_api.g_varchar2) then
511 p_rec.segment14 :=
512 hr_icx_shd.g_old_rec.segment14;
513 End If;
514 If (p_rec.segment15 = hr_api.g_varchar2) then
515 p_rec.segment15 :=
516 hr_icx_shd.g_old_rec.segment15;
517 End If;
518 If (p_rec.segment16 = hr_api.g_varchar2) then
519 p_rec.segment16 :=
520 hr_icx_shd.g_old_rec.segment16;
521 End If;
522 If (p_rec.segment17 = hr_api.g_varchar2) then
523 p_rec.segment17 :=
524 hr_icx_shd.g_old_rec.segment17;
525 End If;
526 If (p_rec.segment18 = hr_api.g_varchar2) then
527 p_rec.segment18 :=
528 hr_icx_shd.g_old_rec.segment18;
529 End If;
530 If (p_rec.segment19 = hr_api.g_varchar2) then
531 p_rec.segment19 :=
532 hr_icx_shd.g_old_rec.segment19;
533 End If;
534 If (p_rec.segment20 = hr_api.g_varchar2) then
535 p_rec.segment20 :=
536 hr_icx_shd.g_old_rec.segment20;
537 End If;
538 If (p_rec.segment21 = hr_api.g_varchar2) then
539 p_rec.segment21 :=
540 hr_icx_shd.g_old_rec.segment21;
541 End If;
542 If (p_rec.segment22 = hr_api.g_varchar2) then
543 p_rec.segment22 :=
544 hr_icx_shd.g_old_rec.segment22;
545 End If;
546 If (p_rec.segment23 = hr_api.g_varchar2) then
547 p_rec.segment23 :=
548 hr_icx_shd.g_old_rec.segment23;
549 End If;
550 If (p_rec.segment24 = hr_api.g_varchar2) then
551 p_rec.segment24 :=
552 hr_icx_shd.g_old_rec.segment24;
553 End If;
554 If (p_rec.segment25 = hr_api.g_varchar2) then
555 p_rec.segment25 :=
556 hr_icx_shd.g_old_rec.segment25;
557 End If;
558 If (p_rec.segment26 = hr_api.g_varchar2) then
559 p_rec.segment26 :=
560 hr_icx_shd.g_old_rec.segment26;
561 End If;
562 If (p_rec.segment27 = hr_api.g_varchar2) then
563 p_rec.segment27 :=
564 hr_icx_shd.g_old_rec.segment27;
565 End If;
566 If (p_rec.segment28 = hr_api.g_varchar2) then
567 p_rec.segment28 :=
571 p_rec.segment29 :=
568 hr_icx_shd.g_old_rec.segment28;
569 End If;
570 If (p_rec.segment29 = hr_api.g_varchar2) then
572 hr_icx_shd.g_old_rec.segment29;
573 End If;
574 If (p_rec.segment30 = hr_api.g_varchar2) then
575 p_rec.segment30 :=
576 hr_icx_shd.g_old_rec.segment30;
577 End If;
578 --
579 End convert_defs;
580 --
581 --
582 -- ----------------------------------------------------------------------------
583 -- |-------------------------------< upd_or_sel >-----------------------------|
584 -- ----------------------------------------------------------------------------
585 --
586 procedure upd_or_sel
587 (p_segment1 in varchar2 default hr_api.g_varchar2,
588 p_segment2 in varchar2 default hr_api.g_varchar2,
589 p_segment3 in varchar2 default hr_api.g_varchar2,
590 p_segment4 in varchar2 default hr_api.g_varchar2,
591 p_segment5 in varchar2 default hr_api.g_varchar2,
592 p_segment6 in varchar2 default hr_api.g_varchar2,
593 p_segment7 in varchar2 default hr_api.g_varchar2,
594 p_segment8 in varchar2 default hr_api.g_varchar2,
595 p_segment9 in varchar2 default hr_api.g_varchar2,
596 p_segment10 in varchar2 default hr_api.g_varchar2,
597 p_segment11 in varchar2 default hr_api.g_varchar2,
598 p_segment12 in varchar2 default hr_api.g_varchar2,
599 p_segment13 in varchar2 default hr_api.g_varchar2,
600 p_segment14 in varchar2 default hr_api.g_varchar2,
601 p_segment15 in varchar2 default hr_api.g_varchar2,
602 p_segment16 in varchar2 default hr_api.g_varchar2,
603 p_segment17 in varchar2 default hr_api.g_varchar2,
604 p_segment18 in varchar2 default hr_api.g_varchar2,
605 p_segment19 in varchar2 default hr_api.g_varchar2,
606 p_segment20 in varchar2 default hr_api.g_varchar2,
607 p_segment21 in varchar2 default hr_api.g_varchar2,
608 p_segment22 in varchar2 default hr_api.g_varchar2,
609 p_segment23 in varchar2 default hr_api.g_varchar2,
610 p_segment24 in varchar2 default hr_api.g_varchar2,
611 p_segment25 in varchar2 default hr_api.g_varchar2,
612 p_segment26 in varchar2 default hr_api.g_varchar2,
613 p_segment27 in varchar2 default hr_api.g_varchar2,
614 p_segment28 in varchar2 default hr_api.g_varchar2,
615 p_segment29 in varchar2 default hr_api.g_varchar2,
616 p_segment30 in varchar2 default hr_api.g_varchar2,
617 p_context_type in varchar2 default hr_api.g_varchar2,
618 p_item_context_id in out nocopy number,
619 p_object_version_number in out nocopy number,
620 p_concatenated_segments out nocopy varchar2
621 ) is
622 --
623 CURSOR cur_id_flex
624 IS
625 SELECT id_flex_num
626 FROM fnd_id_flex_structures
627 WHERE id_flex_structure_code = p_context_type
628 AND application_id = 800
629 AND id_flex_code = 'ICX';
630
631 l_proc varchar2(72) := g_package||'upd_or_sel';
632 l_rec hr_icx_shd.g_rec_type;
633 l_concatenated_segments varchar2(2000);
634 l_segs_changed boolean;
635 l_id_flex_num number ;
636 l_context_type varchar2(30);
637 --
638 begin
639 hr_utility.set_location('Entering:'||l_proc, 5);
640
641 -- deriving id_flex_num
642 OPEN cur_id_flex;
643 FETCH cur_id_flex INTO l_id_flex_num;
644 CLOSE cur_id_flex;
645 --
646 -- Derive if any segments are changing
647 If ((l_rec.segment1 = hr_api.g_varchar2) AND
648 (l_rec.segment2 = hr_api.g_varchar2) AND
649 (l_rec.segment3 = hr_api.g_varchar2) AND
650 (l_rec.segment4 = hr_api.g_varchar2) AND
651 (l_rec.segment5 = hr_api.g_varchar2) AND
652 (l_rec.segment6 = hr_api.g_varchar2) AND
653 (l_rec.segment7 = hr_api.g_varchar2) AND
654 (l_rec.segment8 = hr_api.g_varchar2) AND
655 (l_rec.segment9 = hr_api.g_varchar2) AND
656 (l_rec.segment10 = hr_api.g_varchar2) AND
657 (l_rec.segment11 = hr_api.g_varchar2) AND
658 (l_rec.segment12 = hr_api.g_varchar2) AND
659 (l_rec.segment13 = hr_api.g_varchar2) AND
660 (l_rec.segment14 = hr_api.g_varchar2) AND
661 (l_rec.segment15 = hr_api.g_varchar2) AND
662 (l_rec.segment16 = hr_api.g_varchar2) AND
663 (l_rec.segment17 = hr_api.g_varchar2) AND
664 (l_rec.segment18 = hr_api.g_varchar2) AND
665 (l_rec.segment19 = hr_api.g_varchar2) AND
666 (l_rec.segment20 = hr_api.g_varchar2) AND
667 (l_rec.segment21 = hr_api.g_varchar2) AND
668 (l_rec.segment22 = hr_api.g_varchar2) AND
669 (l_rec.segment23 = hr_api.g_varchar2) AND
670 (l_rec.segment24 = hr_api.g_varchar2) AND
671 (l_rec.segment25 = hr_api.g_varchar2) AND
672 (l_rec.segment26 = hr_api.g_varchar2) AND
676 (l_rec.segment30 = hr_api.g_varchar2)) THEN
673 (l_rec.segment27 = hr_api.g_varchar2) AND
674 (l_rec.segment28 = hr_api.g_varchar2) AND
675 (l_rec.segment29 = hr_api.g_varchar2) AND
677 l_segs_changed := true;
678 Else
679 l_segs_changed := false;
680 End if;
681 --
682 -- Do not need to go any further if there is nothing to do.
683 If (p_context_type = hr_api.g_varchar2)
684 AND (l_segs_changed = false) THEN
685 --
686 -- nothing to do
687 p_concatenated_segments := null;
688 --
689 ELSE
690 --
691 -- convert args into record format
692 l_rec :=
693 hr_icx_shd.convert_args (
694 p_item_context_id => p_item_context_id,
695 p_object_version_number => p_object_version_number,
696 p_id_flex_num => l_id_flex_num,
697 p_summary_flag => null,
698 p_enabled_flag => null,
699 p_start_date_active => null,
700 p_end_date_active => null,
701 p_segment1 => p_segment1,
702 p_segment2 => p_segment2,
703 p_segment3 => p_segment3,
704 p_segment4 => p_segment4,
705 p_segment5 => p_segment5,
706 p_segment6 => p_segment6,
707 p_segment7 => p_segment7,
708 p_segment8 => p_segment8,
709 p_segment9 => p_segment9,
710 p_segment10 => p_segment10,
711 p_segment11 => p_segment11,
712 p_segment12 => p_segment12,
713 p_segment13 => p_segment13,
714 p_segment14 => p_segment14,
715 p_segment15 => p_segment15,
716 p_segment16 => p_segment16,
717 p_segment17 => p_segment17,
718 p_segment18 => p_segment18,
719 p_segment19 => p_segment19,
720 p_segment20 => p_segment20,
721 p_segment21 => p_segment21,
722 p_segment22 => p_segment22,
723 p_segment23 => p_segment23,
724 p_segment24 => p_segment24,
725 p_segment25 => p_segment25,
726 p_segment26 => p_segment26,
727 p_segment27 => p_segment27,
728 p_segment28 => p_segment28,
729 p_segment29 => p_segment29,
730 p_segment30 => p_segment30
731 );
732 --
733 -- check to see if we are updating a row
734 --
735 if hr_icx_shd.api_updating
736 (p_item_context_id => l_rec.item_context_id
737 ,p_object_version_number => l_rec.object_version_number
738 ) then
739 --
740 hr_utility.set_location(l_proc, 10);
741 --
742 -- the current row exists and we have populated the g_old_rec
743 -- we must now build up the new record by converting the
744 -- arguments into a record structure and converting any of the
745 -- system default values
746 --
747 convert_defs(l_rec);
748 else
749 --
750 -- as we are actually doing an insert we need to reset the
751 -- arguments if they are using a system default value
752 -- to null otherwise the segments will have the system default
753 -- values when being inserted
754 --
755 if (l_rec.segment1 = hr_api.g_varchar2) then
756 l_rec.segment1 := null;
757 end if;
758 if (l_rec.segment2 = hr_api.g_varchar2) then
759 l_rec.segment2 := null;
760 end if;
761 if (l_rec.segment3 = hr_api.g_varchar2) then
762 l_rec.segment3 := null;
763 end if;
764 if (l_rec.segment4 = hr_api.g_varchar2) then
765 l_rec.segment4 := null;
766 end if;
767 if (l_rec.segment5 = hr_api.g_varchar2) then
768 l_rec.segment5 := null;
769 end if;
770 if (l_rec.segment6 = hr_api.g_varchar2) then
771 l_rec.segment6 := null;
772 end if;
773 if (l_rec.segment7 = hr_api.g_varchar2) then
774 l_rec.segment7 := null;
775 end if;
776 if (l_rec.segment8 = hr_api.g_varchar2) then
777 l_rec.segment8 := null;
778 end if;
779 if (l_rec.segment9 = hr_api.g_varchar2) then
780 l_rec.segment9 := null;
781 end if;
782 if (l_rec.segment10 = hr_api.g_varchar2) then
783 l_rec.segment10 := null;
784 end if;
785 if (l_rec.segment11 = hr_api.g_varchar2) then
786 l_rec.segment11 := null;
787 end if;
788 if (l_rec.segment12 = hr_api.g_varchar2) then
789 l_rec.segment12 := null;
790 end if;
791 if (l_rec.segment13 = hr_api.g_varchar2) then
792 l_rec.segment13 := null;
793 end if;
794 if (l_rec.segment14 = hr_api.g_varchar2) then
795 l_rec.segment14 := null;
796 end if;
797 if (l_rec.segment15 = hr_api.g_varchar2) then
798 l_rec.segment15 := null;
799 end if;
800 if (l_rec.segment16 = hr_api.g_varchar2) then
801 l_rec.segment16 := null;
802 end if;
803 if (l_rec.segment17 = hr_api.g_varchar2) then
804 l_rec.segment17 := null;
805 end if;
809 if (l_rec.segment19 = hr_api.g_varchar2) then
806 if (l_rec.segment18 = hr_api.g_varchar2) then
807 l_rec.segment18 := null;
808 end if;
810 l_rec.segment19 := null;
811 end if;
812 if (l_rec.segment20 = hr_api.g_varchar2) then
813 l_rec.segment20 := null;
814 end if;
815 if (l_rec.segment21 = hr_api.g_varchar2) then
816 l_rec.segment21 := null;
817 end if;
818 if (l_rec.segment22 = hr_api.g_varchar2) then
819 l_rec.segment22 := null;
820 end if;
821 if (l_rec.segment23 = hr_api.g_varchar2) then
822 l_rec.segment23 := null;
823 end if;
824 if (l_rec.segment24 = hr_api.g_varchar2) then
825 l_rec.segment24 := null;
826 end if;
827 if (l_rec.segment25 = hr_api.g_varchar2) then
828 l_rec.segment25 := null;
829 end if;
830 if (l_rec.segment26 = hr_api.g_varchar2) then
831 l_rec.segment26 := null;
832 end if;
833 if (l_rec.segment27 = hr_api.g_varchar2) then
834 l_rec.segment27 := null;
835 end if;
836 if (l_rec.segment28 = hr_api.g_varchar2) then
837 l_rec.segment28 := null;
838 end if;
839 if (l_rec.segment29 = hr_api.g_varchar2) then
840 l_rec.segment29 := null;
841 end if;
842 if (l_rec.segment30 = hr_api.g_varchar2) then
843 l_rec.segment30 := null;
844 end if;
845 if (p_context_type = hr_api.g_varchar2) then
846 l_context_type := null;
847 else
848 l_context_type := p_context_type;
849 end if;
850 end if;
851 --
852 hr_utility.set_location(l_proc, 15);
853 --
854 -- call the ins_or_sel process
855 --
856 hr_icx_ins.ins_or_sel
857 (p_segment1 => l_rec.segment1,
858 p_segment2 => l_rec.segment2,
859 p_segment3 => l_rec.segment3,
860 p_segment4 => l_rec.segment4,
861 p_segment5 => l_rec.segment5,
862 p_segment6 => l_rec.segment6,
863 p_segment7 => l_rec.segment7,
864 p_segment8 => l_rec.segment8,
865 p_segment9 => l_rec.segment9,
866 p_segment10 => l_rec.segment10,
867 p_segment11 => l_rec.segment11,
868 p_segment12 => l_rec.segment12,
869 p_segment13 => l_rec.segment13,
870 p_segment14 => l_rec.segment14,
871 p_segment15 => l_rec.segment15,
872 p_segment16 => l_rec.segment16,
873 p_segment17 => l_rec.segment17,
874 p_segment18 => l_rec.segment18,
875 p_segment19 => l_rec.segment19,
876 p_segment20 => l_rec.segment20,
877 p_segment21 => l_rec.segment21,
878 p_segment22 => l_rec.segment22,
879 p_segment23 => l_rec.segment23,
880 p_segment24 => l_rec.segment24,
881 p_segment25 => l_rec.segment25,
882 p_segment26 => l_rec.segment26,
883 p_segment27 => l_rec.segment27,
884 p_segment28 => l_rec.segment28,
885 p_segment29 => l_rec.segment29,
886 p_segment30 => l_rec.segment30,
887 p_context_type => l_context_type,
888 p_item_context_id => l_rec.item_context_id,
889 p_concatenated_segments => l_concatenated_segments
890 );
891 --
892 -- set the out arguments
893 --
894 -- p_id_flex_num := l_rec.id_flex_num;
895 p_concatenated_segments := l_concatenated_segments;
896 hr_utility.set_location(' Leaving:'||l_proc, 20);
897 END IF;
898 --
899 end upd_or_sel;
900 --
901 -- ----------------------------------------------------------------------------
902 -- |---------------------------------< upd >----------------------------------|
903 -- ----------------------------------------------------------------------------
904 Procedure upd
905 (p_effective_date in date
906 ,p_rec in out nocopy hr_icx_shd.g_rec_type
907 ) is
908 --
909 l_proc varchar2(72) := g_package||'upd';
910 --
911 Begin
912 hr_utility.set_location('Entering:'||l_proc, 5);
913 --
914 -- We must lock the row which we need to update.
915 --
916 hr_icx_shd.lck
917 (p_rec.item_context_id,
918 p_rec.object_version_number
919 );
920 --
921 -- 1. During an update system defaults are used to determine if
922 -- arguments have been defaulted or not. We must therefore
923 -- derive the full record structure values to be updated.
924 --
925 -- 2. Call the supporting update validate operations.
926 --
927 convert_defs(p_rec);
928 hr_icx_bus.update_validate
929 (p_effective_date
930 ,p_rec
931 );
932 --
933 -- Call the supporting pre-update operation
934 --
935 hr_icx_upd.pre_update(p_rec);
936 --
937 -- Update the row.
938 --
939 hr_icx_upd.update_dml(p_rec);
940 --
941 -- Call the supporting post-update operation
942 --
943 hr_icx_upd.post_update
944 (p_effective_date
945 ,p_rec
946 );
947 End upd;
948 --
949 -- ----------------------------------------------------------------------------
950 -- |---------------------------------< upd >----------------------------------|
954 ,p_object_version_number in out nocopy number
951 -- ----------------------------------------------------------------------------
952 Procedure upd
953 (p_effective_date in date
955 ,p_item_context_id in number
956 ,p_id_flex_num in number default hr_api.g_number
957 ,p_summary_flag in varchar2 default hr_api.g_varchar2
958 ,p_enabled_flag in varchar2 default hr_api.g_varchar2
959 ,p_start_date_active in date default hr_api.g_date
960 ,p_end_date_active in date default hr_api.g_date
961 ,p_segment1 in varchar2 default hr_api.g_varchar2
962 ,p_segment2 in varchar2 default hr_api.g_varchar2
963 ,p_segment3 in varchar2 default hr_api.g_varchar2
964 ,p_segment4 in varchar2 default hr_api.g_varchar2
965 ,p_segment5 in varchar2 default hr_api.g_varchar2
966 ,p_segment6 in varchar2 default hr_api.g_varchar2
967 ,p_segment7 in varchar2 default hr_api.g_varchar2
968 ,p_segment8 in varchar2 default hr_api.g_varchar2
969 ,p_segment9 in varchar2 default hr_api.g_varchar2
970 ,p_segment10 in varchar2 default hr_api.g_varchar2
971 ,p_segment11 in varchar2 default hr_api.g_varchar2
972 ,p_segment12 in varchar2 default hr_api.g_varchar2
973 ,p_segment13 in varchar2 default hr_api.g_varchar2
974 ,p_segment14 in varchar2 default hr_api.g_varchar2
975 ,p_segment15 in varchar2 default hr_api.g_varchar2
976 ,p_segment16 in varchar2 default hr_api.g_varchar2
977 ,p_segment17 in varchar2 default hr_api.g_varchar2
978 ,p_segment18 in varchar2 default hr_api.g_varchar2
979 ,p_segment19 in varchar2 default hr_api.g_varchar2
980 ,p_segment20 in varchar2 default hr_api.g_varchar2
981 ,p_segment21 in varchar2 default hr_api.g_varchar2
982 ,p_segment22 in varchar2 default hr_api.g_varchar2
983 ,p_segment23 in varchar2 default hr_api.g_varchar2
984 ,p_segment24 in varchar2 default hr_api.g_varchar2
985 ,p_segment25 in varchar2 default hr_api.g_varchar2
989 ,p_segment29 in varchar2 default hr_api.g_varchar2
986 ,p_segment26 in varchar2 default hr_api.g_varchar2
987 ,p_segment27 in varchar2 default hr_api.g_varchar2
988 ,p_segment28 in varchar2 default hr_api.g_varchar2
990 ,p_segment30 in varchar2 default hr_api.g_varchar2
991 ) is
992 --
993 l_rec hr_icx_shd.g_rec_type;
994 l_proc varchar2(72) := g_package||'upd';
995 --
996 Begin
997 hr_utility.set_location('Entering:'||l_proc, 5);
998 --
999 -- Call conversion function to turn arguments into the
1000 -- l_rec structure.
1001 --
1002 l_rec :=
1003 hr_icx_shd.convert_args
1004 (p_item_context_id
1005 ,p_object_version_number
1006 ,p_id_flex_num
1007 ,p_summary_flag
1008 ,p_enabled_flag
1009 ,p_start_date_active
1010 ,p_end_date_active
1011 ,p_segment1
1012 ,p_segment2
1013 ,p_segment3
1014 ,p_segment4
1015 ,p_segment5
1016 ,p_segment6
1017 ,p_segment7
1018 ,p_segment8
1019 ,p_segment9
1020 ,p_segment10
1021 ,p_segment11
1022 ,p_segment12
1023 ,p_segment13
1024 ,p_segment14
1025 ,p_segment15
1026 ,p_segment16
1027 ,p_segment17
1028 ,p_segment18
1029 ,p_segment19
1030 ,p_segment20
1031 ,p_segment21
1032 ,p_segment22
1033 ,p_segment23
1034 ,p_segment24
1035 ,p_segment25
1036 ,p_segment26
1037 ,p_segment27
1038 ,p_segment28
1039 ,p_segment29
1040 ,p_segment30
1041 );
1042 --
1043 -- Having converted the arguments into the
1044 -- plsql record structure we call the corresponding record
1045 -- business process.
1046 --
1047 hr_icx_upd.upd
1048 (p_effective_date
1049 ,l_rec
1050 );
1051 p_object_version_number := l_rec.object_version_number;
1052 --
1053 hr_utility.set_location(' Leaving:'||l_proc, 10);
1054 End upd;
1055 --
1056 end hr_icx_upd;