1 Package Body hr_ctx_upd as
2 /* $Header: hrctxrhi.pkb 120.0 2005/05/30 23:30 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_ctx_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_ctx_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 --
63 -- Increment the object version
64 p_rec.object_version_number := p_rec.object_version_number + 1;
65 --
66 --
67 --
68 -- Update the hr_ki_contexts Row
69 --
70 update hr_ki_contexts
71 set
72 context_id = p_rec.context_id
73 ,view_name = p_rec.view_name
74 ,param_1 = p_rec.param_1
75 ,param_2 = p_rec.param_2
76 ,param_3 = p_rec.param_3
77 ,param_4 = p_rec.param_4
78 ,param_5 = p_rec.param_5
79 ,param_6 = p_rec.param_6
80 ,param_7 = p_rec.param_7
81 ,param_8 = p_rec.param_8
82 ,param_9 = p_rec.param_9
83 ,param_10 = p_rec.param_10
84 ,param_11 = p_rec.param_11
85 ,param_12 = p_rec.param_12
86 ,param_13 = p_rec.param_13
87 ,param_14 = p_rec.param_14
88 ,param_15 = p_rec.param_15
89 ,param_16 = p_rec.param_16
90 ,param_17 = p_rec.param_17
91 ,param_18 = p_rec.param_18
92 ,param_19 = p_rec.param_19
93 ,param_20 = p_rec.param_20
94 ,param_21 = p_rec.param_21
95 ,param_22 = p_rec.param_22
96 ,param_23 = p_rec.param_23
97 ,param_24 = p_rec.param_24
98 ,param_25 = p_rec.param_25
99 ,param_26 = p_rec.param_26
100 ,param_27 = p_rec.param_27
101 ,param_28 = p_rec.param_28
102 ,param_29 = p_rec.param_29
103 ,param_30 = p_rec.param_30
104 ,object_version_number = p_rec.object_version_number
105 where context_id = p_rec.context_id;
106 --
107 --
108 --
109 hr_utility.set_location(' Leaving:'||l_proc, 10);
110 --
111 Exception
112 When hr_api.check_integrity_violated Then
113 -- A check constraint has been violated
114 --
115 hr_ctx_shd.constraint_error
116 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
117 When hr_api.parent_integrity_violated Then
118 -- Parent integrity has been violated
119 --
120 hr_ctx_shd.constraint_error
121 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
122 When hr_api.unique_integrity_violated Then
123 -- Unique integrity has been violated
124 --
125 hr_ctx_shd.constraint_error
126 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
127 When Others Then
128 --
129 Raise;
130 End update_dml;
131 --
132 -- ----------------------------------------------------------------------------
133 -- |------------------------------< pre_update >------------------------------|
134 -- ----------------------------------------------------------------------------
135 -- {Start Of Comments}
136 --
137 -- Description:
138 -- This private procedure contains any processing which is required before
139 -- the update dml.
140 --
141 -- Prerequisites:
142 -- This is an internal procedure which is called from the upd procedure.
143 --
144 -- In Parameters:
145 -- A Pl/Sql record structure.
146 --
147 -- Post Success:
148 -- Processing continues.
149 --
150 -- Post Failure:
151 -- If an error has occurred, an error message and exception wil be raised
152 -- but not handled.
153 --
154 -- Developer Implementation Notes:
155 -- Any pre-processing required before the update dml is issued should be
156 -- coded within this procedure. It is important to note that any 3rd party
157 -- maintenance should be reviewed before placing in this procedure.
158 --
159 -- Access Status:
160 -- Internal Row Handler Use Only.
161 --
162 -- {End Of Comments}
163 -- ----------------------------------------------------------------------------
164 Procedure pre_update
165 (p_rec in hr_ctx_shd.g_rec_type
166 ) is
167 --
168 l_proc varchar2(72) := g_package||'pre_update';
169 --
170 Begin
171 hr_utility.set_location('Entering:'||l_proc, 5);
172 --
173 hr_utility.set_location(' Leaving:'||l_proc, 10);
174 End pre_update;
175 --
176 -- ----------------------------------------------------------------------------
177 -- |-----------------------------< post_update >------------------------------|
178 -- ----------------------------------------------------------------------------
179 -- {Start Of Comments}
180 --
181 -- Description:
182 -- This private procedure contains any processing which is required after
183 -- the update dml.
184 --
185 -- Prerequisites:
186 -- This is an internal procedure which is called from the upd procedure.
187 --
188 -- In Parameters:
189 -- A Pl/Sql record structure.
190 --
191 -- Post Success:
192 -- Processing continues.
193 --
194 -- Post Failure:
195 -- If an error has occurred, an error message and exception will be raised
196 -- but not handled.
197 --
198 -- Developer Implementation Notes:
199 -- Any post-processing required after the update dml is issued should be
200 -- coded within this procedure. It is important to note that any 3rd party
201 -- maintenance should be reviewed before placing in this procedure.
202 --
203 -- Access Status:
204 -- Internal Row Handler Use Only.
205 --
206 -- {End Of Comments}
207 -- ----------------------------------------------------------------------------
208 Procedure post_update
209 (p_rec in hr_ctx_shd.g_rec_type
210 ) is
211 --
212 l_proc varchar2(72) := g_package||'post_update';
213 --
214 Begin
215 hr_utility.set_location('Entering:'||l_proc, 5);
216 begin
217 --
218 hr_ctx_rku.after_update
219 (p_context_id
220 => p_rec.context_id
221 ,p_view_name
222 => p_rec.view_name
223 ,p_param_1
224 => p_rec.param_1
225 ,p_param_2
226 => p_rec.param_2
227 ,p_param_3
228 => p_rec.param_3
229 ,p_param_4
230 => p_rec.param_4
231 ,p_param_5
232 => p_rec.param_5
233 ,p_param_6
234 => p_rec.param_6
235 ,p_param_7
236 => p_rec.param_7
237 ,p_param_8
238 => p_rec.param_8
239 ,p_param_9
240 => p_rec.param_9
241 ,p_param_10
242 => p_rec.param_10
243 ,p_param_11
244 => p_rec.param_11
245 ,p_param_12
246 => p_rec.param_12
247 ,p_param_13
248 => p_rec.param_13
249 ,p_param_14
250 => p_rec.param_14
251 ,p_param_15
252 => p_rec.param_15
253 ,p_param_16
254 => p_rec.param_16
255 ,p_param_17
256 => p_rec.param_17
257 ,p_param_18
258 => p_rec.param_18
259 ,p_param_19
260 => p_rec.param_19
261 ,p_param_20
262 => p_rec.param_20
263 ,p_param_21
264 => p_rec.param_21
265 ,p_param_22
266 => p_rec.param_22
267 ,p_param_23
268 => p_rec.param_23
269 ,p_param_24
270 => p_rec.param_24
271 ,p_param_25
272 => p_rec.param_25
273 ,p_param_26
274 => p_rec.param_26
275 ,p_param_27
276 => p_rec.param_27
277 ,p_param_28
278 => p_rec.param_28
279 ,p_param_29
280 => p_rec.param_29
281 ,p_param_30
282 => p_rec.param_30
283 ,p_object_version_number
284 => p_rec.object_version_number
285 ,p_view_name_o
286 => hr_ctx_shd.g_old_rec.view_name
287 ,p_param_1_o
288 => hr_ctx_shd.g_old_rec.param_1
289 ,p_param_2_o
290 => hr_ctx_shd.g_old_rec.param_2
291 ,p_param_3_o
292 => hr_ctx_shd.g_old_rec.param_3
293 ,p_param_4_o
294 => hr_ctx_shd.g_old_rec.param_4
295 ,p_param_5_o
296 => hr_ctx_shd.g_old_rec.param_5
297 ,p_param_6_o
298 => hr_ctx_shd.g_old_rec.param_6
299 ,p_param_7_o
300 => hr_ctx_shd.g_old_rec.param_7
301 ,p_param_8_o
302 => hr_ctx_shd.g_old_rec.param_8
303 ,p_param_9_o
304 => hr_ctx_shd.g_old_rec.param_9
305 ,p_param_10_o
306 => hr_ctx_shd.g_old_rec.param_10
307 ,p_param_11_o
308 => hr_ctx_shd.g_old_rec.param_11
309 ,p_param_12_o
310 => hr_ctx_shd.g_old_rec.param_12
311 ,p_param_13_o
312 => hr_ctx_shd.g_old_rec.param_13
313 ,p_param_14_o
314 => hr_ctx_shd.g_old_rec.param_14
315 ,p_param_15_o
316 => hr_ctx_shd.g_old_rec.param_15
317 ,p_param_16_o
318 => hr_ctx_shd.g_old_rec.param_16
319 ,p_param_17_o
320 => hr_ctx_shd.g_old_rec.param_17
321 ,p_param_18_o
322 => hr_ctx_shd.g_old_rec.param_18
323 ,p_param_19_o
324 => hr_ctx_shd.g_old_rec.param_19
325 ,p_param_20_o
326 => hr_ctx_shd.g_old_rec.param_20
327 ,p_param_21_o
328 => hr_ctx_shd.g_old_rec.param_21
329 ,p_param_22_o
330 => hr_ctx_shd.g_old_rec.param_22
331 ,p_param_23_o
332 => hr_ctx_shd.g_old_rec.param_23
333 ,p_param_24_o
334 => hr_ctx_shd.g_old_rec.param_24
335 ,p_param_25_o
336 => hr_ctx_shd.g_old_rec.param_25
337 ,p_param_26_o
338 => hr_ctx_shd.g_old_rec.param_26
339 ,p_param_27_o
340 => hr_ctx_shd.g_old_rec.param_27
341 ,p_param_28_o
342 => hr_ctx_shd.g_old_rec.param_28
343 ,p_param_29_o
344 => hr_ctx_shd.g_old_rec.param_29
345 ,p_param_30_o
346 => hr_ctx_shd.g_old_rec.param_30
347 ,p_object_version_number_o
348 => hr_ctx_shd.g_old_rec.object_version_number
349 );
350 --
351 exception
352 --
353 when hr_api.cannot_find_prog_unit then
354 --
355 hr_api.cannot_find_prog_unit_error
356 (p_module_name => 'HR_KI_CONTEXTS'
357 ,p_hook_type => 'AU');
358 --
359 end;
360 --
361 hr_utility.set_location(' Leaving:'||l_proc, 10);
362 End post_update;
363 --
364 -- ----------------------------------------------------------------------------
365 -- |-----------------------------< convert_defs >-----------------------------|
366 -- ----------------------------------------------------------------------------
367 -- {Start Of Comments}
368 --
369 -- Description:
370 -- The Convert_Defs procedure has one very important function:
371 -- It must return the record structure for the row with all system defaulted
372 -- values converted into its corresponding parameter value for update. When
373 -- we attempt to update a row through the Upd process , certain
374 -- parameters can be defaulted which enables flexibility in the calling of
375 -- the upd process (e.g. only attributes which need to be updated need to be
376 -- specified). For the upd process to determine which attributes
377 -- have NOT been specified we need to check if the parameter has a reserved
378 -- system default value. Therefore, for all parameters which have a
379 -- corresponding reserved system default mechanism specified we need to
380 -- check if a system default is being used. If a system default is being
381 -- used then we convert the defaulted value into its corresponding attribute
382 -- value held in the g_old_rec data structure.
383 --
384 -- Prerequisites:
385 -- This private function can only be called from the upd process.
386 --
387 -- In Parameters:
388 -- A Pl/Sql record structure.
389 --
390 -- Post Success:
391 -- The record structure will be returned with all system defaulted parameter
392 -- values converted into its current row attribute value.
393 --
394 -- Post Failure:
395 -- No direct error handling is required within this function. Any possible
396 -- errors within this procedure will be a PL/SQL value error due to
397 -- conversion of datatypes or data lengths.
398 --
399 -- Developer Implementation Notes:
400 -- None.
401 --
402 -- Access Status:
403 -- Internal Row Handler Use Only.
404 --
405 -- {End Of Comments}
406 -- ----------------------------------------------------------------------------
407 Procedure convert_defs
408 (p_rec in out nocopy hr_ctx_shd.g_rec_type
409 ) is
410 --
411 Begin
412 --
413 -- We must now examine each argument value in the
414 -- p_rec plsql record structure
415 -- to see if a system default is being used. If a system default
416 -- is being used then we must set to the 'current' argument value.
417 --
418 If (p_rec.view_name = hr_api.g_varchar2) then
419 p_rec.view_name :=
420 hr_ctx_shd.g_old_rec.view_name;
421 End If;
422 If (p_rec.param_1 = hr_api.g_varchar2) then
423 p_rec.param_1 :=
424 hr_ctx_shd.g_old_rec.param_1;
425 End If;
426 If (p_rec.param_2 = hr_api.g_varchar2) then
427 p_rec.param_2 :=
428 hr_ctx_shd.g_old_rec.param_2;
429 End If;
430 If (p_rec.param_3 = hr_api.g_varchar2) then
431 p_rec.param_3 :=
432 hr_ctx_shd.g_old_rec.param_3;
433 End If;
434 If (p_rec.param_4 = hr_api.g_varchar2) then
435 p_rec.param_4 :=
436 hr_ctx_shd.g_old_rec.param_4;
437 End If;
438 If (p_rec.param_5 = hr_api.g_varchar2) then
439 p_rec.param_5 :=
440 hr_ctx_shd.g_old_rec.param_5;
441 End If;
442 If (p_rec.param_6 = hr_api.g_varchar2) then
443 p_rec.param_6 :=
444 hr_ctx_shd.g_old_rec.param_6;
445 End If;
446 If (p_rec.param_7 = hr_api.g_varchar2) then
447 p_rec.param_7 :=
448 hr_ctx_shd.g_old_rec.param_7;
449 End If;
450 If (p_rec.param_8 = hr_api.g_varchar2) then
451 p_rec.param_8 :=
452 hr_ctx_shd.g_old_rec.param_8;
453 End If;
454 If (p_rec.param_9 = hr_api.g_varchar2) then
455 p_rec.param_9 :=
456 hr_ctx_shd.g_old_rec.param_9;
457 End If;
458 If (p_rec.param_10 = hr_api.g_varchar2) then
459 p_rec.param_10 :=
460 hr_ctx_shd.g_old_rec.param_10;
461 End If;
462 If (p_rec.param_11 = hr_api.g_varchar2) then
463 p_rec.param_11 :=
464 hr_ctx_shd.g_old_rec.param_11;
465 End If;
466 If (p_rec.param_12 = hr_api.g_varchar2) then
467 p_rec.param_12 :=
468 hr_ctx_shd.g_old_rec.param_12;
469 End If;
470 If (p_rec.param_13 = hr_api.g_varchar2) then
471 p_rec.param_13 :=
472 hr_ctx_shd.g_old_rec.param_13;
473 End If;
474 If (p_rec.param_14 = hr_api.g_varchar2) then
475 p_rec.param_14 :=
476 hr_ctx_shd.g_old_rec.param_14;
477 End If;
478 If (p_rec.param_15 = hr_api.g_varchar2) then
479 p_rec.param_15 :=
480 hr_ctx_shd.g_old_rec.param_15;
481 End If;
482 If (p_rec.param_16 = hr_api.g_varchar2) then
483 p_rec.param_16 :=
484 hr_ctx_shd.g_old_rec.param_16;
485 End If;
486 If (p_rec.param_17 = hr_api.g_varchar2) then
487 p_rec.param_17 :=
488 hr_ctx_shd.g_old_rec.param_17;
489 End If;
490 If (p_rec.param_18 = hr_api.g_varchar2) then
491 p_rec.param_18 :=
492 hr_ctx_shd.g_old_rec.param_18;
493 End If;
494 If (p_rec.param_19 = hr_api.g_varchar2) then
495 p_rec.param_19 :=
496 hr_ctx_shd.g_old_rec.param_19;
497 End If;
498 If (p_rec.param_20 = hr_api.g_varchar2) then
499 p_rec.param_20 :=
500 hr_ctx_shd.g_old_rec.param_20;
501 End If;
502 If (p_rec.param_21 = hr_api.g_varchar2) then
503 p_rec.param_21 :=
504 hr_ctx_shd.g_old_rec.param_21;
505 End If;
506 If (p_rec.param_22 = hr_api.g_varchar2) then
507 p_rec.param_22 :=
508 hr_ctx_shd.g_old_rec.param_22;
509 End If;
510 If (p_rec.param_23 = hr_api.g_varchar2) then
511 p_rec.param_23 :=
512 hr_ctx_shd.g_old_rec.param_23;
513 End If;
514 If (p_rec.param_24 = hr_api.g_varchar2) then
515 p_rec.param_24 :=
516 hr_ctx_shd.g_old_rec.param_24;
517 End If;
518 If (p_rec.param_25 = hr_api.g_varchar2) then
519 p_rec.param_25 :=
520 hr_ctx_shd.g_old_rec.param_25;
521 End If;
522 If (p_rec.param_26 = hr_api.g_varchar2) then
523 p_rec.param_26 :=
524 hr_ctx_shd.g_old_rec.param_26;
525 End If;
526 If (p_rec.param_27 = hr_api.g_varchar2) then
527 p_rec.param_27 :=
528 hr_ctx_shd.g_old_rec.param_27;
529 End If;
530 If (p_rec.param_28 = hr_api.g_varchar2) then
531 p_rec.param_28 :=
532 hr_ctx_shd.g_old_rec.param_28;
533 End If;
534 If (p_rec.param_29 = hr_api.g_varchar2) then
535 p_rec.param_29 :=
536 hr_ctx_shd.g_old_rec.param_29;
537 End If;
538 If (p_rec.param_30 = hr_api.g_varchar2) then
539 p_rec.param_30 :=
540 hr_ctx_shd.g_old_rec.param_30;
541 End If;
542 --
543 End convert_defs;
544 --
545 -- ----------------------------------------------------------------------------
546 -- |---------------------------------< upd >----------------------------------|
547 -- ----------------------------------------------------------------------------
548 Procedure upd
549 (p_rec in out nocopy hr_ctx_shd.g_rec_type
550 ) is
551 --
552 l_proc varchar2(72) := g_package||'upd';
553 --
554 Begin
555 hr_utility.set_location('Entering:'||l_proc, 5);
556 --
557 -- We must lock the row which we need to update.
558 --
559 hr_ctx_shd.lck
560 (p_rec.context_id
561 ,p_rec.object_version_number
562 );
563 --
564 -- 1. During an update system defaults are used to determine if
565 -- arguments have been defaulted or not. We must therefore
566 -- derive the full record structure values to be updated.
567 --
568 -- 2. Call the supporting update validate operations.
569 --
570 convert_defs(p_rec);
571 hr_ctx_bus.update_validate
572 (p_rec
573 );
574 --
575 -- Call to raise any errors on multi-message list
576 hr_multi_message.end_validation_set;
577 --
578 -- Call the supporting pre-update operation
579 --
580 hr_ctx_upd.pre_update(p_rec);
581 --
582 -- Update the row.
583 --
584 hr_ctx_upd.update_dml(p_rec);
585 --
586 -- Call the supporting post-update operation
587 --
588 hr_ctx_upd.post_update
589 (p_rec
590 );
591 --
592 -- Call to raise any errors on multi-message list
593 hr_multi_message.end_validation_set;
594 End upd;
595 --
596 -- ----------------------------------------------------------------------------
597 -- |---------------------------------< upd >----------------------------------|
598 -- ----------------------------------------------------------------------------
599 Procedure upd
600 (p_context_id in number
601 ,p_object_version_number in out nocopy number
602 ,p_view_name in varchar2 default hr_api.g_varchar2
603 ,p_param_1 in varchar2 default hr_api.g_varchar2
604 ,p_param_2 in varchar2 default hr_api.g_varchar2
605 ,p_param_3 in varchar2 default hr_api.g_varchar2
606 ,p_param_4 in varchar2 default hr_api.g_varchar2
607 ,p_param_5 in varchar2 default hr_api.g_varchar2
608 ,p_param_6 in varchar2 default hr_api.g_varchar2
609 ,p_param_7 in varchar2 default hr_api.g_varchar2
610 ,p_param_8 in varchar2 default hr_api.g_varchar2
611 ,p_param_9 in varchar2 default hr_api.g_varchar2
612 ,p_param_10 in varchar2 default hr_api.g_varchar2
613 ,p_param_11 in varchar2 default hr_api.g_varchar2
614 ,p_param_12 in varchar2 default hr_api.g_varchar2
615 ,p_param_13 in varchar2 default hr_api.g_varchar2
616 ,p_param_14 in varchar2 default hr_api.g_varchar2
617 ,p_param_15 in varchar2 default hr_api.g_varchar2
618 ,p_param_16 in varchar2 default hr_api.g_varchar2
619 ,p_param_17 in varchar2 default hr_api.g_varchar2
620 ,p_param_18 in varchar2 default hr_api.g_varchar2
621 ,p_param_19 in varchar2 default hr_api.g_varchar2
622 ,p_param_20 in varchar2 default hr_api.g_varchar2
623 ,p_param_21 in varchar2 default hr_api.g_varchar2
624 ,p_param_22 in varchar2 default hr_api.g_varchar2
625 ,p_param_23 in varchar2 default hr_api.g_varchar2
626 ,p_param_24 in varchar2 default hr_api.g_varchar2
627 ,p_param_25 in varchar2 default hr_api.g_varchar2
628 ,p_param_26 in varchar2 default hr_api.g_varchar2
629 ,p_param_27 in varchar2 default hr_api.g_varchar2
630 ,p_param_28 in varchar2 default hr_api.g_varchar2
631 ,p_param_29 in varchar2 default hr_api.g_varchar2
632 ,p_param_30 in varchar2 default hr_api.g_varchar2
633 ) is
634 --
635 l_rec hr_ctx_shd.g_rec_type;
636 l_proc varchar2(72) := g_package||'upd';
637 --
638 Begin
639 hr_utility.set_location('Entering:'||l_proc, 5);
640 --
641 -- Call conversion function to turn arguments into the
642 -- l_rec structure.
643 --
644 l_rec :=
645 hr_ctx_shd.convert_args
646 (p_context_id
647 ,p_view_name
648 ,p_param_1
649 ,p_param_2
650 ,p_param_3
651 ,p_param_4
652 ,p_param_5
653 ,p_param_6
654 ,p_param_7
655 ,p_param_8
656 ,p_param_9
657 ,p_param_10
658 ,p_param_11
659 ,p_param_12
660 ,p_param_13
661 ,p_param_14
662 ,p_param_15
663 ,p_param_16
664 ,p_param_17
665 ,p_param_18
666 ,p_param_19
667 ,p_param_20
668 ,p_param_21
669 ,p_param_22
670 ,p_param_23
671 ,p_param_24
672 ,p_param_25
673 ,p_param_26
674 ,p_param_27
675 ,p_param_28
676 ,p_param_29
677 ,p_param_30
678 ,p_object_version_number
679 );
680 --
681 -- Having converted the arguments into the
682 -- plsql record structure we call the corresponding record
683 -- business process.
684 --
685 hr_ctx_upd.upd
686 (l_rec
687 );
688 p_object_version_number := l_rec.object_version_number;
689 --
690 hr_utility.set_location(' Leaving:'||l_proc, 10);
691 End upd;
692 --
693 end hr_ctx_upd;