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