1 Package Body per_ors_upd as
2 /* $Header: peorsrhi.pkb 115.8 2003/06/30 09:58:15 kjagadee noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_ors_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 per_ors_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 per_ors_shd.g_api_dml := true; -- Set the api dml status
67 --
68 -- Update the per_organization_structures Row
69 --
70 update per_organization_structures
71 set
72 organization_structure_id = p_rec.organization_structure_id
73 ,business_group_id = p_rec.business_group_id
74 ,name = p_rec.name
75 ,comments = p_rec.comments
76 ,primary_structure_flag = p_rec.primary_structure_flag
77 ,request_id = p_rec.request_id
78 ,program_application_id = p_rec.program_application_id
79 ,program_id = p_rec.program_id
80 ,program_update_date = p_rec.program_update_date
81 ,attribute_category = p_rec.attribute_category
82 ,attribute1 = p_rec.attribute1
83 ,attribute2 = p_rec.attribute2
84 ,attribute3 = p_rec.attribute3
85 ,attribute4 = p_rec.attribute4
86 ,attribute5 = p_rec.attribute5
87 ,attribute6 = p_rec.attribute6
88 ,attribute7 = p_rec.attribute7
89 ,attribute8 = p_rec.attribute8
90 ,attribute9 = p_rec.attribute9
91 ,attribute10 = p_rec.attribute10
92 ,attribute11 = p_rec.attribute11
93 ,attribute12 = p_rec.attribute12
94 ,attribute13 = p_rec.attribute13
95 ,attribute14 = p_rec.attribute14
96 ,attribute15 = p_rec.attribute15
97 ,attribute16 = p_rec.attribute16
98 ,attribute17 = p_rec.attribute17
99 ,attribute18 = p_rec.attribute18
100 ,attribute19 = p_rec.attribute19
101 ,attribute20 = p_rec.attribute20
102 ,position_control_structure_flg = p_rec.position_control_structure_flg
103 ,object_version_number = p_rec.object_version_number
104 where organization_structure_id = p_rec.organization_structure_id;
105 --
106 per_ors_shd.g_api_dml := false; -- Unset the api dml status
107 --
108 hr_utility.set_location(' Leaving:'||l_proc, 10);
109 --
110 Exception
111 When hr_api.check_integrity_violated Then
112 -- A check constraint has been violated
113 per_ors_shd.g_api_dml := false; -- Unset the api dml status
114 per_ors_shd.constraint_error
115 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
116 When hr_api.parent_integrity_violated Then
117 -- Parent integrity has been violated
118 per_ors_shd.g_api_dml := false; -- Unset the api dml status
119 per_ors_shd.constraint_error
120 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
121 When hr_api.unique_integrity_violated Then
122 -- Unique integrity has been violated
123 per_ors_shd.g_api_dml := false; -- Unset the api dml status
124 per_ors_shd.constraint_error
125 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
126 When Others Then
127 per_ors_shd.g_api_dml := false; -- Unset the api dml status
128 Raise;
129 End update_dml;
130 --
131 -- ----------------------------------------------------------------------------
132 -- |------------------------------< pre_update >------------------------------|
133 -- ----------------------------------------------------------------------------
134 -- {Start Of Comments}
135 --
136 -- Description:
137 -- This private procedure contains any processing which is required before
138 -- the update dml.
139 --
140 -- Prerequisites:
141 -- This is an internal procedure which is called from the upd procedure.
142 --
143 -- In Parameters:
144 -- A Pl/Sql record structure.
145 --
146 -- Post Success:
147 -- Processing continues.
148 --
149 -- Post Failure:
150 -- If an error has occurred, an error message and exception wil be raised
151 -- but not handled.
152 --
153 -- Developer Implementation Notes:
154 -- Any pre-processing required before the update dml is issued should be
155 -- coded within this procedure. It is important to note that any 3rd party
156 -- maintenance should be reviewed before placing in this procedure.
157 --
158 -- Access Status:
159 -- Internal Row Handler Use Only.
160 --
161 -- {End Of Comments}
162 -- ----------------------------------------------------------------------------
163 Procedure pre_update
164 (p_rec in per_ors_shd.g_rec_type
165 ) is
166 --
167 l_proc varchar2(72) := g_package||'pre_update';
168 --
169 Begin
170 hr_utility.set_location('Entering:'||l_proc, 5);
171 --
172 hr_utility.set_location(' Leaving:'||l_proc, 10);
173 End pre_update;
174 --
175 -- ----------------------------------------------------------------------------
176 -- |-----------------------------< post_update >------------------------------|
177 -- ----------------------------------------------------------------------------
178 -- {Start Of Comments}
179 --
180 -- Description:
181 -- This private procedure contains any processing which is required after
182 -- the update dml.
183 --
184 -- Prerequisites:
185 -- This is an internal procedure which is called from the upd procedure.
186 --
187 -- In Parameters:
188 -- A Pl/Sql record structure.
189 --
190 -- Post Success:
191 -- Processing continues.
192 --
193 -- Post Failure:
194 -- If an error has occurred, an error message and exception will be raised
195 -- but not handled.
196 --
197 -- Developer Implementation Notes:
198 -- Any post-processing required after the update dml is issued should be
199 -- coded within this procedure. It is important to note that any 3rd party
200 -- maintenance should be reviewed before placing in this procedure.
201 --
202 -- Access Status:
203 -- Internal Row Handler Use Only.
204 --
205 -- {End Of Comments}
206 -- ----------------------------------------------------------------------------
207 Procedure post_update
208 (p_effective_date in date
209 ,p_rec in per_ors_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 per_ors_rku.after_update
219 (p_effective_date => p_effective_date
220 ,p_organization_structure_id
221 => p_rec.organization_structure_id
222 ,p_business_group_id
223 => p_rec.business_group_id
224 ,p_name
225 => p_rec.name
226 ,p_comments
227 => p_rec.comments
228 ,p_primary_structure_flag
229 => p_rec.primary_structure_flag
230 ,p_request_id
231 => p_rec.request_id
232 ,p_program_application_id
233 => p_rec.program_application_id
234 ,p_program_id
235 => p_rec.program_id
236 ,p_program_update_date
237 => p_rec.program_update_date
238 ,p_attribute_category
239 => p_rec.attribute_category
240 ,p_attribute1
241 => p_rec.attribute1
242 ,p_attribute2
243 => p_rec.attribute2
244 ,p_attribute3
245 => p_rec.attribute3
246 ,p_attribute4
247 => p_rec.attribute4
248 ,p_attribute5
249 => p_rec.attribute5
250 ,p_attribute6
251 => p_rec.attribute6
252 ,p_attribute7
253 => p_rec.attribute7
254 ,p_attribute8
255 => p_rec.attribute8
256 ,p_attribute9
257 => p_rec.attribute9
258 ,p_attribute10
259 => p_rec.attribute10
260 ,p_attribute11
261 => p_rec.attribute11
262 ,p_attribute12
263 => p_rec.attribute12
264 ,p_attribute13
265 => p_rec.attribute13
266 ,p_attribute14
267 => p_rec.attribute14
268 ,p_attribute15
269 => p_rec.attribute15
270 ,p_attribute16
271 => p_rec.attribute16
272 ,p_attribute17
273 => p_rec.attribute17
274 ,p_attribute18
275 => p_rec.attribute18
276 ,p_attribute19
277 => p_rec.attribute19
278 ,p_attribute20
279 => p_rec.attribute20
280 ,p_position_control_structure_f
281 => p_rec.position_control_structure_flg
282 ,p_object_version_number
283 => p_rec.object_version_number
284 ,p_business_group_id_o
285 => per_ors_shd.g_old_rec.business_group_id
286 ,p_name_o
287 => per_ors_shd.g_old_rec.name
288 ,p_comments_o
289 => per_ors_shd.g_old_rec.comments
290 ,p_primary_structure_flag_o
291 => per_ors_shd.g_old_rec.primary_structure_flag
292 ,p_request_id_o
293 => per_ors_shd.g_old_rec.request_id
294 ,p_program_application_id_o
295 => per_ors_shd.g_old_rec.program_application_id
296 ,p_program_id_o
297 => per_ors_shd.g_old_rec.program_id
298 ,p_program_update_date_o
299 => per_ors_shd.g_old_rec.program_update_date
300 ,p_attribute_category_o
301 => per_ors_shd.g_old_rec.attribute_category
302 ,p_attribute1_o
303 => per_ors_shd.g_old_rec.attribute1
304 ,p_attribute2_o
305 => per_ors_shd.g_old_rec.attribute2
306 ,p_attribute3_o
307 => per_ors_shd.g_old_rec.attribute3
308 ,p_attribute4_o
309 => per_ors_shd.g_old_rec.attribute4
310 ,p_attribute5_o
311 => per_ors_shd.g_old_rec.attribute5
312 ,p_attribute6_o
313 => per_ors_shd.g_old_rec.attribute6
314 ,p_attribute7_o
315 => per_ors_shd.g_old_rec.attribute7
316 ,p_attribute8_o
317 => per_ors_shd.g_old_rec.attribute8
318 ,p_attribute9_o
319 => per_ors_shd.g_old_rec.attribute9
320 ,p_attribute10_o
321 => per_ors_shd.g_old_rec.attribute10
322 ,p_attribute11_o
323 => per_ors_shd.g_old_rec.attribute11
324 ,p_attribute12_o
325 => per_ors_shd.g_old_rec.attribute12
326 ,p_attribute13_o
327 => per_ors_shd.g_old_rec.attribute13
328 ,p_attribute14_o
329 => per_ors_shd.g_old_rec.attribute14
330 ,p_attribute15_o
331 => per_ors_shd.g_old_rec.attribute15
332 ,p_attribute16_o
333 => per_ors_shd.g_old_rec.attribute16
334 ,p_attribute17_o
335 => per_ors_shd.g_old_rec.attribute17
336 ,p_attribute18_o
337 => per_ors_shd.g_old_rec.attribute18
338 ,p_attribute19_o
339 => per_ors_shd.g_old_rec.attribute19
340 ,p_attribute20_o
341 => per_ors_shd.g_old_rec.attribute20
342 ,p_position_control_structure_o
343 => per_ors_shd.g_old_rec.position_control_structure_flg
344 ,p_object_version_number_o
345 => per_ors_shd.g_old_rec.object_version_number
346 );
347 --
348 exception
349 --
350 when hr_api.cannot_find_prog_unit then
351 --
352 hr_api.cannot_find_prog_unit_error
353 (p_module_name => 'PER_ORGANIZATION_STRUCTURES'
354 ,p_hook_type => 'AU');
355 --
356 end;
357 --
358 hr_utility.set_location(' Leaving:'||l_proc, 10);
359 End post_update;
360 --
361 -- ----------------------------------------------------------------------------
362 -- |-----------------------------< convert_defs >-----------------------------|
363 -- ----------------------------------------------------------------------------
364 -- {Start Of Comments}
365 --
366 -- Description:
367 -- The Convert_Defs procedure has one very important function:
368 -- It must return the record structure for the row with all system defaulted
369 -- values converted into its corresponding parameter value for update. When
370 -- we attempt to update a row through the Upd process , certain
371 -- parameters can be defaulted which enables flexibility in the calling of
372 -- the upd process (e.g. only attributes which need to be updated need to be
373 -- specified). For the upd process to determine which attributes
374 -- have NOT been specified we need to check if the parameter has a reserved
375 -- system default value. Therefore, for all parameters which have a
376 -- corresponding reserved system default mechanism specified we need to
377 -- check if a system default is being used. If a system default is being
378 -- used then we convert the defaulted value into its corresponding attribute
379 -- value held in the g_old_rec data structure.
380 --
381 -- Prerequisites:
382 -- This private function can only be called from the upd process.
383 --
384 -- In Parameters:
385 -- A Pl/Sql record structure.
386 --
387 -- Post Success:
388 -- The record structure will be returned with all system defaulted parameter
389 -- values converted into its current row attribute value.
390 --
391 -- Post Failure:
392 -- No direct error handling is required within this function. Any possible
393 -- errors within this procedure will be a PL/SQL value error due to
394 -- conversion of datatypes or data lengths.
395 --
396 -- Developer Implementation Notes:
397 -- None.
398 --
399 -- Access Status:
400 -- Internal Row Handler Use Only.
401 --
402 -- {End Of Comments}
403 -- ----------------------------------------------------------------------------
404 Procedure convert_defs
405 (p_rec in out nocopy per_ors_shd.g_rec_type
406 ) is
407 --
408 Begin
409 --
410 -- We must now examine each argument value in the
411 -- p_rec plsql record structure
412 -- to see if a system default is being used. If a system default
413 -- is being used then we must set to the 'current' argument value.
414 --
415 If (p_rec.business_group_id = hr_api.g_number) then
416 p_rec.business_group_id :=
417 per_ors_shd.g_old_rec.business_group_id;
418 End If;
419 If (p_rec.name = hr_api.g_varchar2) then
420 p_rec.name :=
421 per_ors_shd.g_old_rec.name;
422 End If;
423 If (p_rec.comments = hr_api.g_varchar2) then
424 p_rec.comments :=
425 per_ors_shd.g_old_rec.comments;
426 End If;
427 If (p_rec.primary_structure_flag = hr_api.g_varchar2) then
428 p_rec.primary_structure_flag :=
429 per_ors_shd.g_old_rec.primary_structure_flag;
430 End If;
431 If (p_rec.request_id = hr_api.g_number) then
432 p_rec.request_id :=
433 per_ors_shd.g_old_rec.request_id;
434 End If;
435 If (p_rec.program_application_id = hr_api.g_number) then
436 p_rec.program_application_id :=
437 per_ors_shd.g_old_rec.program_application_id;
438 End If;
439 If (p_rec.program_id = hr_api.g_number) then
440 p_rec.program_id :=
441 per_ors_shd.g_old_rec.program_id;
442 End If;
443 If (p_rec.program_update_date = hr_api.g_date) then
444 p_rec.program_update_date :=
445 per_ors_shd.g_old_rec.program_update_date;
446 End If;
447 If (p_rec.attribute_category = hr_api.g_varchar2) then
448 p_rec.attribute_category :=
449 per_ors_shd.g_old_rec.attribute_category;
450 End If;
451 If (p_rec.attribute1 = hr_api.g_varchar2) then
452 p_rec.attribute1 :=
453 per_ors_shd.g_old_rec.attribute1;
454 End If;
455 If (p_rec.attribute2 = hr_api.g_varchar2) then
456 p_rec.attribute2 :=
457 per_ors_shd.g_old_rec.attribute2;
458 End If;
459 If (p_rec.attribute3 = hr_api.g_varchar2) then
460 p_rec.attribute3 :=
461 per_ors_shd.g_old_rec.attribute3;
462 End If;
463 If (p_rec.attribute4 = hr_api.g_varchar2) then
464 p_rec.attribute4 :=
465 per_ors_shd.g_old_rec.attribute4;
466 End If;
467 If (p_rec.attribute5 = hr_api.g_varchar2) then
468 p_rec.attribute5 :=
469 per_ors_shd.g_old_rec.attribute5;
470 End If;
471 If (p_rec.attribute6 = hr_api.g_varchar2) then
472 p_rec.attribute6 :=
473 per_ors_shd.g_old_rec.attribute6;
474 End If;
475 If (p_rec.attribute7 = hr_api.g_varchar2) then
476 p_rec.attribute7 :=
477 per_ors_shd.g_old_rec.attribute7;
478 End If;
479 If (p_rec.attribute8 = hr_api.g_varchar2) then
480 p_rec.attribute8 :=
481 per_ors_shd.g_old_rec.attribute8;
482 End If;
483 If (p_rec.attribute9 = hr_api.g_varchar2) then
484 p_rec.attribute9 :=
485 per_ors_shd.g_old_rec.attribute9;
486 End If;
487 If (p_rec.attribute10 = hr_api.g_varchar2) then
488 p_rec.attribute10 :=
489 per_ors_shd.g_old_rec.attribute10;
490 End If;
491 If (p_rec.attribute11 = hr_api.g_varchar2) then
492 p_rec.attribute11 :=
493 per_ors_shd.g_old_rec.attribute11;
494 End If;
495 If (p_rec.attribute12 = hr_api.g_varchar2) then
496 p_rec.attribute12 :=
497 per_ors_shd.g_old_rec.attribute12;
498 End If;
499 If (p_rec.attribute13 = hr_api.g_varchar2) then
500 p_rec.attribute13 :=
501 per_ors_shd.g_old_rec.attribute13;
502 End If;
503 If (p_rec.attribute14 = hr_api.g_varchar2) then
504 p_rec.attribute14 :=
505 per_ors_shd.g_old_rec.attribute14;
506 End If;
507 If (p_rec.attribute15 = hr_api.g_varchar2) then
508 p_rec.attribute15 :=
509 per_ors_shd.g_old_rec.attribute15;
510 End If;
511 If (p_rec.attribute16 = hr_api.g_varchar2) then
512 p_rec.attribute16 :=
513 per_ors_shd.g_old_rec.attribute16;
514 End If;
515 If (p_rec.attribute17 = hr_api.g_varchar2) then
516 p_rec.attribute17 :=
517 per_ors_shd.g_old_rec.attribute17;
518 End If;
519 If (p_rec.attribute18 = hr_api.g_varchar2) then
520 p_rec.attribute18 :=
521 per_ors_shd.g_old_rec.attribute18;
522 End If;
523 If (p_rec.attribute19 = hr_api.g_varchar2) then
524 p_rec.attribute19 :=
525 per_ors_shd.g_old_rec.attribute19;
526 End If;
527 If (p_rec.attribute20 = hr_api.g_varchar2) then
528 p_rec.attribute20 :=
529 per_ors_shd.g_old_rec.attribute20;
530 End If;
531 If (p_rec.position_control_structure_flg = hr_api.g_varchar2) then
532 p_rec.position_control_structure_flg :=
533 per_ors_shd.g_old_rec.position_control_structure_flg;
534 End If;
535 --
536 End convert_defs;
537 --
538 -- ----------------------------------------------------------------------------
539 -- |---------------------------------< upd >----------------------------------|
540 -- ----------------------------------------------------------------------------
541 Procedure upd
542 (p_effective_date in date
543 ,p_rec in out nocopy per_ors_shd.g_rec_type
544 ) is
545 --
546 l_proc varchar2(72) := g_package||'upd';
547 --
548 Begin
549 hr_utility.set_location('Entering:'||l_proc, 5);
550 --
551 -- We must lock the row which we need to update.
552 --
553 per_ors_shd.lck
554 (p_rec.organization_structure_id
555 ,p_rec.object_version_number
556 );
557 --
558 -- 1. During an update system defaults are used to determine if
559 -- arguments have been defaulted or not. We must therefore
560 -- derive the full record structure values to be updated.
561 --
562 -- 2. Call the supporting update validate operations.
563 --
564 convert_defs(p_rec);
565 per_ors_bus.update_validate
566 (p_effective_date
567 ,p_rec
568 );
569 --
570 -- Call the supporting pre-update operation
571 --
572 per_ors_upd.pre_update(p_rec);
573 --
574 -- Update the row.
575 --
576 per_ors_upd.update_dml(p_rec);
577 --
578 -- Call the supporting post-update operation
579 --
580 per_ors_upd.post_update
581 (p_effective_date
582 ,p_rec
583 );
584 End upd;
585 --
586 -- ----------------------------------------------------------------------------
587 -- |---------------------------------< upd >----------------------------------|
588 -- ----------------------------------------------------------------------------
589 Procedure upd
590 (p_effective_date in date
591 ,p_organization_structure_id in number
592 ,p_object_version_number in out nocopy number
593 ,p_name in varchar2 default hr_api.g_varchar2
594 ,p_business_group_id in number default hr_api.g_number
595 ,p_comments in varchar2 default hr_api.g_varchar2
596 ,p_primary_structure_flag in varchar2 default hr_api.g_varchar2
597 ,p_request_id in number default hr_api.g_number
598 ,p_program_application_id in number default hr_api.g_number
599 ,p_program_id in number default hr_api.g_number
600 ,p_program_update_date in date default hr_api.g_date
601 ,p_attribute_category in varchar2 default hr_api.g_varchar2
602 ,p_attribute1 in varchar2 default hr_api.g_varchar2
603 ,p_attribute2 in varchar2 default hr_api.g_varchar2
604 ,p_attribute3 in varchar2 default hr_api.g_varchar2
605 ,p_attribute4 in varchar2 default hr_api.g_varchar2
606 ,p_attribute5 in varchar2 default hr_api.g_varchar2
607 ,p_attribute6 in varchar2 default hr_api.g_varchar2
608 ,p_attribute7 in varchar2 default hr_api.g_varchar2
609 ,p_attribute8 in varchar2 default hr_api.g_varchar2
610 ,p_attribute9 in varchar2 default hr_api.g_varchar2
611 ,p_attribute10 in varchar2 default hr_api.g_varchar2
612 ,p_attribute11 in varchar2 default hr_api.g_varchar2
613 ,p_attribute12 in varchar2 default hr_api.g_varchar2
614 ,p_attribute13 in varchar2 default hr_api.g_varchar2
615 ,p_attribute14 in varchar2 default hr_api.g_varchar2
616 ,p_attribute15 in varchar2 default hr_api.g_varchar2
617 ,p_attribute16 in varchar2 default hr_api.g_varchar2
618 ,p_attribute17 in varchar2 default hr_api.g_varchar2
619 ,p_attribute18 in varchar2 default hr_api.g_varchar2
620 ,p_attribute19 in varchar2 default hr_api.g_varchar2
621 ,p_attribute20 in varchar2 default hr_api.g_varchar2
622 ,p_position_control_structure_f in varchar2 default hr_api.g_varchar2
623 ) is
624 --
625 l_rec per_ors_shd.g_rec_type;
626 l_proc varchar2(72) := g_package||'upd';
627 --
628 Begin
629 hr_utility.set_location('Entering:'||l_proc, 5);
630 --
631 -- Call conversion function to turn arguments into the
632 -- l_rec structure.
633 --
634 l_rec :=
635 per_ors_shd.convert_args
636 (p_organization_structure_id
637 ,p_business_group_id
638 ,p_name
639 ,p_comments
640 ,p_primary_structure_flag
641 ,p_request_id
642 ,p_program_application_id
643 ,p_program_id
644 ,p_program_update_date
645 ,p_attribute_category
646 ,p_attribute1
647 ,p_attribute2
648 ,p_attribute3
649 ,p_attribute4
650 ,p_attribute5
651 ,p_attribute6
652 ,p_attribute7
653 ,p_attribute8
654 ,p_attribute9
655 ,p_attribute10
656 ,p_attribute11
657 ,p_attribute12
658 ,p_attribute13
659 ,p_attribute14
660 ,p_attribute15
661 ,p_attribute16
662 ,p_attribute17
663 ,p_attribute18
664 ,p_attribute19
665 ,p_attribute20
666 ,p_position_control_structure_f
667 ,p_object_version_number
668 );
669 --
670 -- Having converted the arguments into the
671 -- plsql record structure we call the corresponding record
672 -- business process.
673 --
674 per_ors_upd.upd
675 (p_effective_date
676 ,l_rec
677 );
678 p_object_version_number := l_rec.object_version_number;
679 --
680 hr_utility.set_location(' Leaving:'||l_proc, 10);
681 End upd;
682 --
683 end per_ors_upd;