1 Package ben_ctp_shd as
2 /* $Header: bectprhi.pkh 120.0 2005/05/28 01:26:21 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Global Record Type Specification |
6 -- ----------------------------------------------------------------------------
7 --
8 Type g_rec_type Is Record
9 (
10 ptip_id number(15),
11 effective_start_date date,
12 effective_end_date date,
13 coord_cvg_for_all_pls_flag varchar2(30),
14 dpnt_dsgn_cd varchar2(30),
15 dpnt_cvg_no_ctfn_rqd_flag varchar2(9), -- Increased length
16 dpnt_cvg_strt_dt_cd varchar2(30),
17 rt_end_dt_cd varchar2(30),
18 rt_strt_dt_cd varchar2(30),
19 enrt_cvg_end_dt_cd varchar2(30),
20 enrt_cvg_strt_dt_cd varchar2(30),
21 dpnt_cvg_strt_dt_rl number(15),
22 dpnt_cvg_end_dt_cd varchar2(30),
23 dpnt_cvg_end_dt_rl number(15),
24 dpnt_adrs_rqd_flag varchar2(30),
25 dpnt_legv_id_rqd_flag varchar2(30),
26 susp_if_dpnt_ssn_nt_prv_cd varchar2(30),
27 susp_if_dpnt_dob_nt_prv_cd varchar2(30),
28 susp_if_dpnt_adr_nt_prv_cd varchar2(30),
29 susp_if_ctfn_not_dpnt_flag varchar2(30),
30 dpnt_ctfn_determine_cd varchar2(30),
31 postelcn_edit_rl number(15),
32 rt_end_dt_rl number(15),
33 rt_strt_dt_rl number(15),
34 enrt_cvg_end_dt_rl number(15),
35 enrt_cvg_strt_dt_rl number(15),
36 rqd_perd_enrt_nenrt_rl number(15),
37 auto_enrt_mthd_rl number(15),
38 enrt_mthd_cd varchar2(30),
39 enrt_cd varchar2(30),
40 enrt_rl number(15),
41 dflt_enrt_cd varchar2(30),
42 dflt_enrt_det_rl number(15),
43 drvbl_fctr_apls_rts_flag varchar2(30),
44 drvbl_fctr_prtn_elig_flag varchar2(30),
45 elig_apls_flag varchar2(30),
46 prtn_elig_ovrid_alwd_flag varchar2(30),
47 trk_inelig_per_flag varchar2(30),
48 dpnt_dob_rqd_flag varchar2(30),
49 crs_this_pl_typ_only_flag varchar2(30),
50 ptip_stat_cd varchar2(30),
51 mx_cvg_alwd_amt number, -- (15),
52 mx_enrd_alwd_ovrid_num number(15),
53 mn_enrd_rqd_ovrid_num number(15),
54 no_mx_pl_typ_ovrid_flag varchar2(30),
55 ordr_num number(15),
56 prvds_cr_flag varchar2(30),
57 rqd_perd_enrt_nenrt_val number(15,2), --(15),
58 rqd_perd_enrt_nenrt_tm_uom varchar2(30),
59 wvbl_flag varchar2(30),
60 drvd_fctr_dpnt_cvg_flag varchar2(30),
61 no_mn_pl_typ_overid_flag varchar2(30),
62 sbj_to_sps_lf_ins_mx_flag varchar2(30),
63 sbj_to_dpnt_lf_ins_mx_flag varchar2(30),
64 use_to_sum_ee_lf_ins_flag varchar2(30),
65 per_cvrd_cd varchar2(30),
66 short_name varchar2(30),
67 short_code varchar2(30),
68 legislation_code varchar2(30),
69 legislation_subgroup varchar2(30),
70 vrfy_fmly_mmbr_cd varchar2(30),
71 vrfy_fmly_mmbr_rl number(15),
72 ivr_ident varchar2(90), -- UTF8 Change Bug 2254683
73 url_ref_name varchar2(240),
74 rqd_enrt_perd_tco_cd varchar2(30),
75 pgm_id number(15),
76 pl_typ_id number(15),
77 cmbn_ptip_id number(15),
78 cmbn_ptip_opt_id number(15),
79 acrs_ptip_cvg_id number(15),
80 business_group_id number(15),
81 ctp_attribute_category varchar2(30),
82 ctp_attribute1 varchar2(150),
83 ctp_attribute2 varchar2(150),
84 ctp_attribute3 varchar2(150),
85 ctp_attribute4 varchar2(150),
86 ctp_attribute5 varchar2(150),
87 ctp_attribute6 varchar2(150),
88 ctp_attribute7 varchar2(150),
89 ctp_attribute8 varchar2(150),
90 ctp_attribute9 varchar2(150),
91 ctp_attribute10 varchar2(150),
92 ctp_attribute11 varchar2(150),
93 ctp_attribute12 varchar2(150),
94 ctp_attribute13 varchar2(150),
95 ctp_attribute14 varchar2(150),
96 ctp_attribute15 varchar2(150),
97 ctp_attribute16 varchar2(150),
98 ctp_attribute17 varchar2(150),
99 ctp_attribute18 varchar2(150),
100 ctp_attribute19 varchar2(150),
101 ctp_attribute20 varchar2(150),
102 ctp_attribute21 varchar2(150),
103 ctp_attribute22 varchar2(150),
104 ctp_attribute23 varchar2(150),
105 ctp_attribute24 varchar2(150),
106 ctp_attribute25 varchar2(150),
107 ctp_attribute26 varchar2(150),
108 ctp_attribute27 varchar2(150),
109 ctp_attribute28 varchar2(150),
110 ctp_attribute29 varchar2(150),
111 ctp_attribute30 varchar2(150),
112 object_version_number number(9)
113 );
114 --
115 -- ----------------------------------------------------------------------------
116 -- | Global Definitions - Internal Development Use Only |
117 -- ----------------------------------------------------------------------------
118 --
119 g_old_rec g_rec_type; -- Global record definition
120 g_api_dml boolean; -- Global api dml status
121 --
122 -- ----------------------------------------------------------------------------
123 -- |------------------------< return_api_dml_status >-------------------------|
124 -- ----------------------------------------------------------------------------
125 -- {Start Of Comments}
126 --
127 -- Description:
128 -- This function will return the current g_api_dml private global
129 -- boolean status.
130 -- The g_api_dml status determines if at the time of the function
131 -- being executed if a dml statement (i.e. INSERT, UPDATE or DELETE)
132 -- is being issued from within an api.
133 -- If the status is TRUE then a dml statement is being issued from
134 -- within this entity api.
135 -- This function is primarily to support database triggers which
136 -- need to maintain the object_version_number for non-supported
137 -- dml statements (i.e. dml statement issued outside of the api layer).
138 --
139 -- Prerequisites:
140 -- None.
141 --
142 -- In Parameters:
143 -- None.
144 --
145 -- Post Success:
146 -- Processing continues.
147 -- If the function returns a TRUE value then, dml is being executed from
148 -- within this api.
149 --
150 -- Post Failure:
151 -- None.
152 --
153 -- Access Status:
154 -- Internal Row Handler Use Only.
155 --
156 -- {End Of Comments}
157 -- ----------------------------------------------------------------------------
158 Function return_api_dml_status Return Boolean;
159 --
160 -- ----------------------------------------------------------------------------
161 -- |---------------------------< constraint_error >---------------------------|
162 -- ----------------------------------------------------------------------------
163 -- {Start Of Comments}
164 --
165 -- Description:
166 -- This procedure is called when a constraint has been violated (i.e.
167 -- The exception hr_api.check_integrity_violated,
168 -- hr_api.parent_integrity_violated, hr_api.child_integrity_violated or
169 -- hr_api.unique_integrity_violated has been raised).
170 -- The exceptions can only be raised as follows:
171 -- 1) A check constraint can only be violated during an INSERT or UPDATE
172 -- dml operation.
173 -- 2) A parent integrity constraint can only be violated during an
174 -- INSERT or UPDATE dml operation.
175 -- 3) A child integrity constraint can only be violated during an
176 -- DELETE dml operation.
177 -- 4) A unique integrity constraint can only be violated during INSERT or
178 -- UPDATE dml operation.
179 --
180 -- Prerequisites:
181 -- 1) Either hr_api.check_integrity_violated,
182 -- hr_api.parent_integrity_violated, hr_api.child_integrity_violated or
183 -- hr_api.unique_integrity_violated has been raised with the subsequent
184 -- stripping of the constraint name from the generated error message
185 -- text.
186 -- 2) Standalone validation test which corresponds with a constraint error.
187 --
188 -- In Parameter:
189 -- p_constraint_name is in upper format and is just the constraint name
190 -- (e.g. not prefixed by brackets, schema owner etc).
191 --
192 -- Post Success:
193 -- Development dependant.
194 --
195 -- Post Failure:
196 -- Developement dependant.
197 --
198 -- Developer Implementation Notes:
199 -- For each constraint being checked the hr system package failure message
200 -- has been generated as a template only. These system error messages should
201 -- be modified as required (i.e. change the system failure message to a user
202 -- friendly defined error message).
203 --
204 -- Access Status:
205 -- Internal Development Use Only.
206 --
207 -- {End Of Comments}
208 -- ----------------------------------------------------------------------------
209 Procedure constraint_error
210 (p_constraint_name in all_constraints.constraint_name%TYPE);
211 --
212 -- ----------------------------------------------------------------------------
213 -- |-----------------------------< api_updating >-----------------------------|
214 -- ----------------------------------------------------------------------------
215 -- {Start Of Comments}
216 --
217 -- Description:
218 -- This function is used to populate the g_old_rec record with the current
219 -- row from the database for the specified primary key provided that the
220 -- primary key exists, and is valid, and does not already match the current
221 -- g_old_rec.
222 -- The function will always return a TRUE value if the g_old_rec is
223 -- populated with the current row. A FALSE value will be returned if all of
224 -- the primary key arguments are null.
225 --
226 -- Prerequisites:
227 -- None.
228 --
229 -- In Parameters:
230 --
231 -- Post Success:
232 -- A value of TRUE will be returned indiciating that the g_old_rec is
233 -- current.
234 -- A value of FALSE will be returned if all of the primary key arguments
235 -- have a null value (this indicates that the row has not be inserted into
236 -- the Schema), and therefore could never have a corresponding row.
237 --
238 -- Post Failure:
239 -- A failure can only occur under two circumstances:
240 -- 1) The primary key is invalid (i.e. a row does not exist for the
241 -- specified primary key values).
242 -- 2) If an object_version_number exists but is NOT the same as the current
243 -- g_old_rec value.
244 --
245 -- Developer Implementation Notes:
246 -- None.
247 --
248 -- Access Status:
249 -- Internal Development Use Only.
250 --
251 -- {End Of Comments}
252 -- ----------------------------------------------------------------------------
253 Function api_updating
254 (p_effective_date in date,
255 p_ptip_id in number,
256 p_object_version_number in number
257 ) Return Boolean;
258 --
259 -- ----------------------------------------------------------------------------
260 -- |--------------------------< find_dt_del_modes >---------------------------|
261 -- ----------------------------------------------------------------------------
262 -- {Start Of Comments}
263 --
264 -- Description:
265 -- This procedure is used to determine what datetrack delete modes are
266 -- allowed as of the effective date for this entity. The procedure will
267 -- return a corresponding Boolean value for each of the delete modes
268 -- available where TRUE indicates that the corresponding delete mode is
269 -- available.
270 --
271 -- Prerequisites:
272 -- None.
273 --
274 -- In Parameters:
275 -- p_effective_date
276 -- Specifies the date at which the datetrack modes will be operated on.
277 -- p_base_key_value
278 -- Specifies the primary key value for this datetrack entity.
279 -- (E.g. For this entity the assignment of the argument would be:
280 -- p_base_key_value = :ptip_id).
281 --
282 -- Post Success:
283 -- Processing continues.
284 --
285 -- Post Failure:
286 -- Failure might occur if for the specified effective date and primary key
287 -- value a row doesn't exist.
288 --
289 -- Developer Implementation Notes:
290 -- This procedure could require changes if this entity has any sepcific
291 -- delete restrictions.
292 -- For example, this entity might disallow the datetrack delete mode of
293 -- ZAP. To implement this you would have to set and return a Boolean value
294 -- of FALSE after the call to the dt_api.find_dt_del_modes procedure.
295 --
296 -- Access Status:
297 -- Internal Development Use Only.
298 --
299 -- {End Of Comments}
300 -- ----------------------------------------------------------------------------
301 Procedure find_dt_del_modes
302 (p_effective_date in date,
303 p_base_key_value in number,
304 p_zap out nocopy boolean,
305 p_delete out nocopy boolean,
306 p_future_change out nocopy boolean,
307 p_delete_next_change out nocopy boolean);
308 --
309 -- ----------------------------------------------------------------------------
310 -- |--------------------------< find_dt_upd_modes >---------------------------|
311 -- ----------------------------------------------------------------------------
312 -- {Start Of Comments}
313 --
314 -- Description:
315 -- This procedure is used to determine what datetrack update modes are
316 -- allowed as of the effective date for this entity. The procedure will
317 -- return a corresponding Boolean value for each of the update modes
318 -- available where TRUE indicates that the corresponding update mode
319 -- is available.
320 --
321 -- Prerequisites:
322 -- None.
323 --
324 -- In Parameters:
325 -- p_effective_date
326 -- Specifies the date at which the datetrack modes will be operated on.
327 -- p_base_key_value
328 -- Specifies the primary key value for this datetrack entity.
329 -- (E.g. For this entity the assignment of the argument would be:
330 -- p_base_key_value = :ptip_id).
331 --
332 -- Post Success:
333 -- Processing continues.
334 --
335 -- Post Failure:
336 -- Failure might occur if for the specified effective date and primary key
337 -- value a row doesn't exist.
338 --
339 -- Developer Implementation Notes:
340 -- This procedure could require changes if this entity has any sepcific
341 -- delete restrictions.
342 -- For example, this entity might disallow the datetrack update mode of
343 -- UPDATE. To implement this you would have to set and return a Boolean
344 -- value of FALSE after the call to the dt_api.find_dt_upd_modes procedure.
345 --
346 -- Access Status:
347 -- Internal Development Use Only.
348 --
349 -- {End Of Comments}
350 -- ----------------------------------------------------------------------------
351 Procedure find_dt_upd_modes
352 (p_effective_date in date,
353 p_base_key_value in number,
354 p_correction out nocopy boolean,
355 p_update out nocopy boolean,
356 p_update_override out nocopy boolean,
357 p_update_change_insert out nocopy boolean);
358 --
362 -- {Start Of Comments}
359 -- ----------------------------------------------------------------------------
360 -- |------------------------< upd_effective_end_date >------------------------|
361 -- ----------------------------------------------------------------------------
363 --
364 -- Description:
365 -- This procedure will update the specified datetrack row with the
366 -- specified new effective end date. The object version number is also
367 -- set to the next object version number. DateTrack modes which call
368 -- this procedure are: UPDATE, UPDATE_CHANGE_INSERT,
369 -- UPDATE_OVERRIDE, DELETE, FUTURE_CHANGE and DELETE_NEXT_CHANGE.
370 -- This is an internal datetrack maintenance procedure which should
371 -- not be modified in anyway.
372 --
373 -- Prerequisites:
374 -- None.
375 --
376 -- In Parameters:
377 -- p_new_effective_end_date
378 -- Specifies the new effective end date which will be set for the
379 -- row as of the effective date.
380 -- p_base_key_value
381 -- Specifies the primary key value for this datetrack entity.
382 -- (E.g. For this entity the assignment of the argument would be:
383 -- p_base_key_value = :ptip_id).
384 --
385 -- Post Success:
386 -- The specified row will be updated with the new effective end date and
387 -- object_version_number.
388 --
389 -- Post Failure:
390 -- Failure might occur if for the specified effective date and primary key
391 -- value a row doesn't exist.
392 --
393 -- Developer Implementation Notes:
394 -- This is an internal datetrack maintenance procedure which should
395 -- not be modified in anyway.
396 --
397 -- Access Status:
398 -- Internal Row Handler Use Only.
399 --
400 -- {End Of Comments}
401 -- ----------------------------------------------------------------------------
402 Procedure upd_effective_end_date
403 (p_effective_date in date,
404 p_base_key_value in number,
405 p_new_effective_end_date in date,
406 p_validation_start_date in date,
407 p_validation_end_date in date,
408 p_object_version_number out nocopy number);
409 --
410 -- ----------------------------------------------------------------------------
411 -- |---------------------------------< lck >----------------------------------|
412 -- ----------------------------------------------------------------------------
413 -- {Start Of Comments}
414 --
415 -- Description:
416 -- The Lck process for datetrack is complicated and comprises of the
417 -- following processing
418 -- The processing steps are as follows:
419 -- 1) The row to be updated or deleted must be locked.
420 -- By locking this row, the g_old_rec record data type is populated.
421 -- 2) If a comment exists the text is selected from hr_comments.
422 -- 3) The datetrack mode is then validated to ensure the operation is
423 -- valid. If the mode is valid the validation start and end dates for
424 -- the mode will be derived and returned. Any required locking is
425 -- completed when the datetrack mode is validated.
426 --
427 -- Prerequisites:
428 -- When attempting to call the lck procedure the object version number,
429 -- primary key, effective date and datetrack mode must be specified.
430 --
431 -- In Parameters:
432 -- p_effective_date
433 -- Specifies the date of the datetrack update operation.
434 -- p_datetrack_mode
435 -- Determines the datetrack update or delete mode.
436 --
437 -- Post Success:
438 -- On successful completion of the Lck process the row to be updated or
439 -- deleted will be locked and selected into the global data structure
440 -- g_old_rec.
441 --
442 -- Post Failure:
443 -- The Lck process can fail for three reasons:
444 -- 1) When attempting to lock the row the row could already be locked by
445 -- another user. This will raise the HR_Api.Object_Locked exception.
446 -- 2) The row which is required to be locked doesn't exist in the HR Schema.
447 -- This error is trapped and reported using the message name
448 -- 'HR_7220_INVALID_PRIMARY_KEY'.
449 -- 3) The row although existing in the HR Schema has a different object
450 -- version number than the object version number specified.
451 -- This error is trapped and reported using the message name
452 -- 'HR_7155_OBJECT_INVALID'.
453 --
454 -- Developer Implementation Notes:
455 -- None.
456 --
457 -- Access Status:
458 -- Internal Development Use Only.
459 --
460 -- {End Of Comments}
461 -- ----------------------------------------------------------------------------
462 Procedure lck
463 (p_effective_date in date,
464 p_datetrack_mode in varchar2,
465 p_ptip_id in number,
466 p_object_version_number in number,
467 p_validation_start_date out nocopy date,
468 p_validation_end_date out nocopy date);
469 --
470 -- ----------------------------------------------------------------------------
471 -- |-----------------------------< convert_args >-----------------------------|
472 -- ----------------------------------------------------------------------------
473 -- {Start Of Comments}
474 --
475 -- Description:
476 -- This function is used to turn attribute parameters into the record
477 -- structure parameter g_rec_type.
478 --
479 -- Prerequisites:
480 -- This is a private function and can only be called from the ins or upd
481 -- attribute processes.
482 --
486 -- A returning record structure will be returned.
483 -- In Parameters:
484 --
485 -- Post Success:
487 --
488 -- Post Failure:
489 -- No direct error handling is required within this function. Any possible
490 -- errors within this function will be a PL/SQL value error due to conversion
491 -- of datatypes or data lengths.
492 --
493 -- Developer Implementation Notes:
494 -- None.
495 --
496 -- Access Status:
497 -- Internal Row Handler Use Only.
498 --
499 -- {End Of Comments}
500 -- ----------------------------------------------------------------------------
501 Function convert_args
502 (
503 p_ptip_id in number,
504 p_effective_start_date in date,
505 p_effective_end_date in date,
506 p_coord_cvg_for_all_pls_flag in varchar2,
507 p_dpnt_dsgn_cd in varchar2,
508 p_dpnt_cvg_no_ctfn_rqd_flag in varchar2,
509 p_dpnt_cvg_strt_dt_cd in varchar2,
510 p_rt_end_dt_cd in varchar2,
511 p_rt_strt_dt_cd in varchar2,
512 p_enrt_cvg_end_dt_cd in varchar2,
513 p_enrt_cvg_strt_dt_cd in varchar2,
514 p_dpnt_cvg_strt_dt_rl in number,
515 p_dpnt_cvg_end_dt_cd in varchar2,
516 p_dpnt_cvg_end_dt_rl in number,
517 p_dpnt_adrs_rqd_flag in varchar2,
518 p_dpnt_legv_id_rqd_flag in varchar2,
519 p_susp_if_dpnt_ssn_nt_prv_cd in varchar2,
520 p_susp_if_dpnt_dob_nt_prv_cd in varchar2,
521 p_susp_if_dpnt_adr_nt_prv_cd in varchar2,
522 p_susp_if_ctfn_not_dpnt_flag in varchar2,
523 p_dpnt_ctfn_determine_cd in varchar2,
524 p_postelcn_edit_rl in number,
525 p_rt_end_dt_rl in number,
526 p_rt_strt_dt_rl in number,
527 p_enrt_cvg_end_dt_rl in number,
528 p_enrt_cvg_strt_dt_rl in number,
529 p_rqd_perd_enrt_nenrt_rl in number,
530 p_auto_enrt_mthd_rl in number,
531 p_enrt_mthd_cd in varchar2,
532 p_enrt_cd in varchar2,
533 p_enrt_rl in number,
534 p_dflt_enrt_cd in varchar2,
535 p_dflt_enrt_det_rl in number,
536 p_drvbl_fctr_apls_rts_flag in varchar2,
537 p_drvbl_fctr_prtn_elig_flag in varchar2,
538 p_elig_apls_flag in varchar2,
539 p_prtn_elig_ovrid_alwd_flag in varchar2,
540 p_trk_inelig_per_flag in varchar2,
541 p_dpnt_dob_rqd_flag in varchar2,
542 p_crs_this_pl_typ_only_flag in varchar2,
543 p_ptip_stat_cd in varchar2,
544 p_mx_cvg_alwd_amt in number,
545 p_mx_enrd_alwd_ovrid_num in number,
546 p_mn_enrd_rqd_ovrid_num in number,
547 p_no_mx_pl_typ_ovrid_flag in varchar2,
548 p_ordr_num in number,
549 p_prvds_cr_flag in varchar2,
550 p_rqd_perd_enrt_nenrt_val in number,
551 p_rqd_perd_enrt_nenrt_tm_uom in varchar2,
552 p_wvbl_flag in varchar2,
553 p_drvd_fctr_dpnt_cvg_flag in varchar2,
554 p_no_mn_pl_typ_overid_flag in varchar2,
555 p_sbj_to_sps_lf_ins_mx_flag in varchar2,
556 p_sbj_to_dpnt_lf_ins_mx_flag in varchar2,
557 p_use_to_sum_ee_lf_ins_flag in varchar2,
558 p_per_cvrd_cd in varchar2,
559 p_short_name in varchar2,
560 p_short_code in varchar2,
561 p_legislation_code in varchar2,
562 p_legislation_subgroup in varchar2,
563 p_vrfy_fmly_mmbr_cd in varchar2,
564 p_vrfy_fmly_mmbr_rl in number,
565 p_ivr_ident in varchar2,
566 p_url_ref_name in varchar2,
567 p_rqd_enrt_perd_tco_cd in varchar2,
568 p_pgm_id in number,
569 p_pl_typ_id in number,
570 p_cmbn_ptip_id in number,
571 p_cmbn_ptip_opt_id in number,
572 p_acrs_ptip_cvg_id in number,
573 p_business_group_id in number,
574 p_ctp_attribute_category in varchar2,
575 p_ctp_attribute1 in varchar2,
576 p_ctp_attribute2 in varchar2,
577 p_ctp_attribute3 in varchar2,
578 p_ctp_attribute4 in varchar2,
579 p_ctp_attribute5 in varchar2,
580 p_ctp_attribute6 in varchar2,
581 p_ctp_attribute7 in varchar2,
582 p_ctp_attribute8 in varchar2,
583 p_ctp_attribute9 in varchar2,
584 p_ctp_attribute10 in varchar2,
585 p_ctp_attribute11 in varchar2,
586 p_ctp_attribute12 in varchar2,
587 p_ctp_attribute13 in varchar2,
588 p_ctp_attribute14 in varchar2,
589 p_ctp_attribute15 in varchar2,
590 p_ctp_attribute16 in varchar2,
591 p_ctp_attribute17 in varchar2,
592 p_ctp_attribute18 in varchar2,
593 p_ctp_attribute19 in varchar2,
594 p_ctp_attribute20 in varchar2,
595 p_ctp_attribute21 in varchar2,
596 p_ctp_attribute22 in varchar2,
597 p_ctp_attribute23 in varchar2,
598 p_ctp_attribute24 in varchar2,
599 p_ctp_attribute25 in varchar2,
600 p_ctp_attribute26 in varchar2,
601 p_ctp_attribute27 in varchar2,
602 p_ctp_attribute28 in varchar2,
603 p_ctp_attribute29 in varchar2,
604 p_ctp_attribute30 in varchar2,
605 p_object_version_number in number
606 )
607 Return g_rec_type;
608 --
609 end ben_ctp_shd;