[Home] [Help]
PACKAGE BODY: APPS.BEN_BENACTIV_XMLP_PKG
Source
1 PACKAGE BODY BEN_BENACTIV_XMLP_PKG AS
2 /* $Header: BENACTIVB.pls 120.1 2007/12/10 08:22:52 vjaganat noship $ */
3
4 function CF_STANDARD_HEADERFormula return Number is
5
6 l_concurrent_program_name fnd_concurrent_programs_tl.user_concurrent_program_name%type ; l_process_date varchar2(30);
7 l_mode hr_lookups.meaning%type ; l_derivable_factors hr_lookups.meaning%type ;
8 l_validate hr_lookups.meaning%type ; l_person per_people_f.full_name%type ;
9 l_person_type per_person_types.user_person_type%type ;
10 l_program ben_pgm_f.name%type ; l_business_group per_business_groups.name%type ;
11 l_plan ben_pl_f.name%type ; l_enrollment_type_cycle varchar2(800);
12 l_plans_not_in_programs hr_lookups.meaning%type ;
13 l_just_programs hr_lookups.meaning%type ;
14 l_comp_object_selection_rule ff_formulas_f.formula_name%type ;
15 l_person_selection_rule ff_formulas_f.formula_name%type ; l_life_event_reason ben_ler_f.name%type ; l_organization hr_all_organization_units.name%type ; l_postal_zip_range varchar2(800);
16 l_reporting_group ben_rptg_grp.name%type ;
17 l_plan_type ben_pl_typ_f.name%type ;
18 l_option ben_opt_f.name%type ; l_eligibility_profile ben_eligy_prfl_f.name%type ; l_variable_rate_profile ben_vrbl_rt_prfl_f.name%type ;
19 l_legal_entity hr_all_organization_units.name%type ; l_payroll pay_payrolls_f.payroll_name%type ;
20 l_status fnd_lookups.meaning%type ; l_all varchar2(80); begin
21
22 ben_batch_reporting.standard_header
23 (p_concurrent_request_id => P_CONCURRENT_REQUEST_ID,
24 p_concurrent_program_name => L_CONCURRENT_PROGRAM_NAME,
25 p_process_date => L_PROCESS_DATE,
26 p_mode => L_MODE,
27 p_derivable_factors => L_DERIVABLE_FACTORS,
28 p_validate => L_VALIDATE,
29 p_person => L_PERSON,
30 p_person_type => L_PERSON_TYPE,
31 p_program => L_PROGRAM,
32 p_business_group => L_BUSINESS_GROUP,
33 p_plan => L_PLAN,
34 p_popl_enrt_typ_cycl => L_ENROLLMENT_TYPE_CYCLE,
35 p_plans_not_in_programs => L_PLANS_NOT_IN_PROGRAMS,
36 p_just_programs => L_JUST_PROGRAMS,
37 p_comp_object_selection_rule => L_COMP_OBJECT_SELECTION_RULE,
38 p_person_selection_rule => L_PERSON_SELECTION_RULE,
39 p_life_event_reason => L_LIFE_EVENT_REASON,
40 p_organization => L_ORGANIZATION,
41 p_postal_zip_range => L_POSTAL_ZIP_RANGE,
42 p_reporting_group => L_REPORTING_GROUP,
43 p_plan_type => L_PLAN_TYPE,
44 p_option => L_OPTION,
45 p_eligibility_profile => L_ELIGIBILITY_PROFILE,
46 p_variable_rate_profile => L_VARIABLE_RATE_PROFILE,
47 p_legal_entity => L_LEGAL_ENTITY,
48 p_payroll => L_PAYROLL,
49 p_status => L_STATUS);
50 CP_CONCURRENT_PROGRAM_NAME := l_concurrent_program_name;
51 CP_PROCESS_DATE := l_process_date;
52 CP_MODE := l_mode;
53 CP_DERIVABLE_FACTORS := l_derivable_factors;
54 CP_VALIDATE := l_validate;
55 CP_PERSON := l_person;
56 CP_PERSON_TYPE := l_person_type;
57 CP_PROGRAM := l_program;
58 CP_BUSINESS_GROUP := l_business_group;
59 CP_PLAN := l_plan;
60 CP_ENROLLMENT_TYPE_CYCLE := l_enrollment_type_cycle;
61 CP_PLANS_NOT_IN_PROGRAMS := l_plans_not_in_programs;
62 CP_JUST_PROGRAMS := l_just_programs;
63 CP_COMP_OBJECT_SELECTION_RULE := l_comp_object_selection_rule;
64 CP_PERSON_SELECTION_RULE := l_person_selection_rule;
65 CP_LIFE_EVENT_REASON := l_life_event_reason;
66 CP_ORGANIZATION := l_organization;
67 CP_POSTAL_ZIP_RANGE := l_postal_zip_range;
68 CP_REPORTING_GROUP := l_reporting_group;
69 CP_PLAN_TYPE := l_plan_type;
70 CP_OPTION := l_option;
71 CP_ELIGIBILITY_PROFILE := l_eligibility_profile;
72 CP_VARIABLE_RATE_PROFILE := l_variable_rate_profile;
73 CP_LEGAL_ENTITY := l_legal_entity;
74 CP_PAYROLL := l_payroll;
75 CP_STATUS := l_status;
76 fnd_message.set_name('BEN','BEN_91792_ALL_PROMPT');
77 l_all := substrb(fnd_message.get,1,80);
78 begin
79 select loc.location_code into CP_LOCATION
80 from hr_locations loc,
81 ben_benefit_actions bft
82 where bft.request_id = P_CONCURRENT_REQUEST_ID
83 and bft.location_id = loc.location_id;
84
85 exception
86 when no_data_found then
87 CP_LOCATION := l_all;
88 end;
89
90 begin
91 select bng.name into CP_PERSON_BNFT_GRP
92 from ben_benfts_grp bng,
93 ben_benefit_actions bft
94 where bft.request_id = P_CONCURRENT_REQUEST_ID
95 and bft.benfts_grp_id = bng.benfts_grp_id;
96
97 exception
98 when no_data_found then
99 CP_PERSON_BNFT_GRP := l_all;
100 end;
101
102 begin
103 select decode(audit_log_flag, 'Y', 'Yes', 'N', 'No') into CP_AUDIT_FLAG
104 from ben_benefit_actions bft
105 where bft.request_id = P_CONCURRENT_REQUEST_ID;
106
107
108 exception
109 when no_data_found then
110 null;
111 end;
112
113 begin
114 select decode(lmt_prpnip_by_org_flag, 'Y', 'Yes', 'N', 'No') into CP_LMT_BY_ORG_FLAG
115 from ben_benefit_actions bft
116 where bft.request_id = P_CONCURRENT_REQUEST_ID;
117
118
119 exception
120 when no_data_found then
121 null;
122 end;
123
124 return 1;
125 end;
126
127 function CF_SUMMARY_EVENTFormula return Number is
128 l_without_active_life_event varchar2(30);
129 l_with_active_life_event varchar2(30);
130 l_no_life_event_created varchar2(30);
131 l_life_event_open_and_closed varchar2(30);
132 l_life_event_created varchar2(30);
133 l_life_event_still_active varchar2(30);
134 l_life_event_closed varchar2(30);
135 l_life_event_replaced varchar2(30);
136 l_life_event_dsgn_only varchar2(30);
137 l_life_event_choices varchar2(30);
138 l_life_event_no_effect varchar2(30);
139 l_life_event_rt_pr_chg varchar2(30);
140 l_life_event_collapsed varchar2(30);
141 l_life_event_collision varchar2(30);
142 begin
143 ben_batch_reporting.activity_summary_by_action
144 (p_concurrent_request_id => P_CONCURRENT_REQUEST_ID,
145 p_without_active_life_event => l_without_active_life_event,
146 p_with_active_life_event => l_with_active_life_event,
147 p_no_life_event_created => l_no_life_event_created,
148 p_life_event_open_and_closed => l_life_event_open_and_closed,
149 p_life_event_created => l_life_event_created,
150 p_life_event_still_active => l_life_event_still_active,
151 p_life_event_closed => l_life_event_closed,
152 p_life_event_replaced => l_life_event_replaced,
153 p_life_event_dsgn_only => l_life_event_dsgn_only,
154 p_life_event_choices => l_life_event_choices,
155 p_life_event_no_effect => l_life_event_no_effect,
156 p_life_event_rt_pr_chg => l_life_event_rt_pr_chg,
157 p_life_event_collapsed => l_life_event_collapsed,
158 p_life_event_collision => l_life_event_collision
159 );
160 CP_WITHOUT_ACTIVE_LIFE_EVENT := l_without_active_life_event;
161 CP_WITH_ACTIVE_LIFE_EVENT := l_with_active_life_event-
162 l_life_event_replaced;
163 CP_NO_LIFE_EVENT_CREATED := l_no_life_event_created;
164 CP_LIFE_EVENT_OPEN_AND_CLOSED := l_life_event_open_and_closed;
165 CP_LIFE_EVENT_CREATED := l_life_event_created;
166 CP_LIFE_EVENT_STILL_ACTIVE := l_life_event_still_active;
167 CP_LIFE_EVENT_CLOSED := l_life_event_closed;
168 CP_LIFE_EVENT_REPLACED := l_life_event_replaced;
169 CP_LIFE_EVENT_DSGN_ONLY := l_life_event_dsgn_only;
170 CP_LIFE_EVENT_CHOICES := l_life_event_choices;
171 CP_LIFE_EVENT_NO_EFFECT := l_life_event_no_effect;
172 CP_LIFE_EVENT_RT_PR_CHG := l_life_event_rt_pr_chg;
173 CP_NO_CHANGE_TO_LIFE := l_no_life_event_created+
174 l_life_event_still_active +
175 l_life_event_collapsed+
176 l_life_event_collision;
177 CP_CR_OPN_CLS := l_life_event_open_and_closed+
178 l_life_event_closed;
179 CP_TOTAL_CLOSED := to_number(l_life_event_closed) +
180 to_number(l_life_event_open_and_closed);
181 CP_LIFE_EVENT_COLLAPSED := l_life_event_collapsed;
182 CP_LIFE_EVENT_COLLISION := l_life_event_collision;
183 return 1;
184 end;
185
186 function CF_1Formula return Number is
187 l_start_date varchar2(30);
188 l_end_date varchar2(30);
189 l_start_time varchar2(30);
190 l_end_time varchar2(30);
191 l_elapsed_time varchar2(30);
192 l_persons_selected varchar2(30);
193 l_persons_processed varchar2(30);
194 l_persons_errored varchar2(30);
195 l_persons_processed_succ varchar2(30);
196 l_persons_unprocessed varchar2(30);
197 begin
198 ben_batch_reporting.process_information
199 (p_concurrent_request_id => P_CONCURRENT_REQUEST_ID,
200 p_start_date => L_START_DATE,
201 p_end_date => L_END_DATE,
202 p_start_time => L_START_TIME,
203 p_end_time => L_END_TIME,
204 p_elapsed_time => L_ELAPSED_TIME,
205 p_persons_selected => L_PERSONS_SELECTED,
206 p_persons_processed => L_PERSONS_PROCESSED,
207 p_persons_unprocessed => L_PERSONS_UNPROCESSED,
208 p_persons_processed_succ => L_PERSONS_PROCESSED_SUCC,
209 p_persons_errored => L_PERSONS_ERRORED);
210 CP_START_DATE := l_start_date;
211 CP_END_DATE := l_end_date;
212 CP_START_TIME := l_start_time;
213 CP_END_TIME := l_end_time;
214 CP_ELAPSED_TIME := l_elapsed_time;
215 CP_PERSONS_SELECTED := l_persons_selected;
216 CP_PERSONS_PROCESSED := l_persons_processed;
217 CP_PERSONS_ERRORED := l_persons_errored;
218 CP_PERSONS_UNPROCESSED := l_persons_unprocessed;
219 CP_PERSONS_PROCESSED_SUCC := l_persons_processed_succ;
220 return 1;
221 end;
222
223 function CF_TEMPORAL_LIFE_EVENTSFormula return Number is
224 begin
225 ben_batch_reporting.temporal_life_events
226 (p_concurrent_request_id => P_concurrent_request_id,
227 p_age_changed => CP_age_changed,
228 p_los_changed => CP_los_changed,
229 p_comb_age_los_changed => CP_comb_age_los_changed,
230 p_pft_changed => CP_pft_changed,
231 p_comp_lvl_changed => CP_comp_lvl_changed,
232 p_hrs_wkd_changed => CP_hrs_wkd_changed,
233 p_loss_of_eligibility => CP_LOSS_OF_ELIGIBILITY,
234 p_late_payment => CP_late_payment,
235 p_max_enrollment_rchd => CP_max_enrollment_rchd,
236 p_period_enroll_changed => CP_period_enroll_changed,
237 p_voulntary_end_cvg => CP_voulntary_end_cvg,
238 p_waiting_satisfied => CP_waiting_satisfied,
239 p_persons_no_potential => CP_persons_no_potential,
240 p_persons_with_potential => CP_persons_with_potential,
241 p_number_of_events_created => CP_number_of_events_created);
242
243 return 1;
244 end;
245
246 function BeforeReport return boolean is
247 begin
248 /*hr_standard.event('BEFORE REPORT');*/
249 return (TRUE);
250 end;
251
252 function AfterReport return boolean is
253 begin
254 /* hr_standard.event('AFTER REPORT'); */
255 return (TRUE);
256 end;
257
258 function AfterPForm return boolean is
259 CURSOR c_conc_pgm_name (cv_request_id number) is
260 SELECT fcp.concurrent_program_name
261 FROM ben_benefit_actions bft, fnd_concurrent_programs fcp
262 WHERE bft.program_id = fcp.concurrent_program_id
263 AND bft.request_id = cv_request_id;
264 l_source_program varchar2(30);
265 begin
266
267 if P_CONCURRENT_REQUEST_ID is not null
268 then
269 open c_conc_pgm_name(P_CONCURRENT_REQUEST_ID);
270 fetch c_conc_pgm_name into l_source_program;
271 if l_source_program = 'BENCOMOD'
272 then
273 run_mode := 'COMP';
274 elsif l_source_program = 'BENSEMOD'
275 then
276 run_mode := 'SELECTION';
277 elsif l_source_program = 'BENPAMOD'
278 then
279 run_mode := 'PERSONNEL';
280 else
281 run_mode := 'OTHERS';
282 end if;
283 close c_conc_pgm_name;
284 else
285 run_mode := 'OTHERS';
286 end if;
287 P_CONC_REQUEST_ID := P_CONCURRENT_REQUEST_ID;
288 return (TRUE);
289 end;
290
291 --Functions to refer Oracle report placeholders--
292
293 Function CP_PROCESS_DATE_p return varchar2 is
294 Begin
295 return CP_PROCESS_DATE;
296 END;
297 Function CP_DERIVABLE_FACTORS_p return varchar2 is
298 Begin
299 return CP_DERIVABLE_FACTORS;
300 END;
301 Function CP_VALIDATE_p return varchar2 is
302 Begin
303 return CP_VALIDATE;
304 END;
305 Function CP_PERSON_p return varchar2 is
306 Begin
307 return CP_PERSON;
308 END;
309 Function CP_PERSON_TYPE_p return varchar2 is
310 Begin
311 return CP_PERSON_TYPE;
312 END;
313 Function CP_PROGRAM_p return varchar2 is
314 Begin
315 return CP_PROGRAM;
316 END;
317 Function CP_BUSINESS_GROUP_p return varchar2 is
318 Begin
319 return CP_BUSINESS_GROUP;
320 END;
321 Function CP_PLAN_p return varchar2 is
322 Begin
323 return CP_PLAN;
324 END;
325 Function CP_ENROLLMENT_TYPE_CYCLE_p return varchar2 is
326 Begin
327 return CP_ENROLLMENT_TYPE_CYCLE;
328 END;
329 Function CP_PLANS_NOT_IN_PROGRAMS_p return varchar2 is
330 Begin
331 return CP_PLANS_NOT_IN_PROGRAMS;
332 END;
333 Function CP_JUST_PROGRAMS_p return varchar2 is
334 Begin
335 return CP_JUST_PROGRAMS;
336 END;
337 Function CP_COMP_OBJECT_SELECTION_RULE1 return varchar2 is
338 Begin
339 return CP_COMP_OBJECT_SELECTION_RULE;
340 END;
341 Function CP_PERSON_SELECTION_RULE_p return varchar2 is
342 Begin
343 return CP_PERSON_SELECTION_RULE;
344 END;
345 Function CP_LIFE_EVENT_REASON_p return varchar2 is
346 Begin
347 return CP_LIFE_EVENT_REASON;
348 END;
349 Function CP_ORGANIZATION_p return varchar2 is
350 Begin
351 return CP_ORGANIZATION;
352 END;
353 Function CP_POSTAL_ZIP_RANGE_p return varchar2 is
354 Begin
355 return CP_POSTAL_ZIP_RANGE;
356 END;
357 Function CP_REPORTING_GROUP_p return varchar2 is
358 Begin
359 return CP_REPORTING_GROUP;
360 END;
361 Function CP_PLAN_TYPE_p return varchar2 is
362 Begin
363 return CP_PLAN_TYPE;
364 END;
365 Function CP_OPTION_p return varchar2 is
366 Begin
367 return CP_OPTION;
368 END;
369 Function CP_ELIGIBILITY_PROFILE_p return varchar2 is
370 Begin
371 return CP_ELIGIBILITY_PROFILE;
372 END;
373 Function CP_VARIABLE_RATE_PROFILE_p return varchar2 is
374 Begin
375 return CP_VARIABLE_RATE_PROFILE;
376 END;
377 Function CP_LEGAL_ENTITY_p return varchar2 is
378 Begin
379 return CP_LEGAL_ENTITY;
380 END;
381 Function CP_PAYROLL_p return varchar2 is
382 Begin
383 return CP_PAYROLL;
384 END;
385 Function CP_CONCURRENT_PROGRAM_NAME_p return varchar2 is
386 Begin
387 return CP_CONCURRENT_PROGRAM_NAME;
388 END;
389 Function CP_START_DATE_p return varchar2 is
390 Begin
391 return CP_START_DATE;
392 END;
393 Function CP_END_DATE_p return varchar2 is
394 Begin
395 return CP_END_DATE;
396 END;
397 Function CP_ELAPSED_TIME_p return varchar2 is
398 Begin
399 return CP_ELAPSED_TIME;
400 END;
401 Function CP_PERSONS_SELECTED_p return number is
402 Begin
403 return CP_PERSONS_SELECTED;
404 END;
405 Function CP_PERSONS_PROCESSED_p return number is
406 Begin
407 return CP_PERSONS_PROCESSED;
408 END;
409 Function CP_MODE_p return varchar2 is
410 Begin
411 return CP_MODE;
412 END;
413 Function CP_WITHOUT_ACTIVE_LIFE_EVENT_p return number is
414 Begin
415 return CP_WITHOUT_ACTIVE_LIFE_EVENT;
416 END;
417 Function CP_WITH_ACTIVE_LIFE_EVENT_p return number is
418 Begin
419 return CP_WITH_ACTIVE_LIFE_EVENT;
420 END;
421 Function CP_END_TIME_p return varchar2 is
422 Begin
423 return CP_END_TIME;
424 END;
425 Function CP_START_TIME_p return varchar2 is
426 Begin
427 return CP_START_TIME;
428 END;
429 Function CP_STATUS_p return varchar2 is
430 Begin
431 return CP_STATUS;
432 END;
433 Function CP_PERSONS_ERRORED_p return number is
434 Begin
435 return CP_PERSONS_ERRORED;
436 END;
437 Function CP_PERSONS_PROCESSED_SUCC_p return number is
438 Begin
439 return CP_PERSONS_PROCESSED_SUCC;
440 END;
441 Function CP_PERSONS_UNPROCESSED_p return number is
442 Begin
443 return CP_PERSONS_UNPROCESSED;
444 END;
445 Function CP_NO_LIFE_EVENT_CREATED_p return number is
446 Begin
447 return CP_NO_LIFE_EVENT_CREATED;
448 END;
449 Function CP_LIFE_EVENT_OPEN_AND_CLOSED1 return number is
450 Begin
451 return CP_LIFE_EVENT_OPEN_AND_CLOSED;
452 END;
453 Function CP_LIFE_EVENT_STILL_ACTIVE_p return number is
454 Begin
455 return CP_LIFE_EVENT_STILL_ACTIVE;
456 END;
457 Function CP_LIFE_EVENT_REPLACED_p return number is
458 Begin
459 return CP_LIFE_EVENT_REPLACED;
460 END;
461 Function CP_LIFE_EVENT_CREATED_p return number is
462 Begin
463 return CP_LIFE_EVENT_CREATED;
464 END;
465 Function CP_LIFE_EVENT_CLOSED_p return number is
466 Begin
467 return CP_LIFE_EVENT_CLOSED;
468 END;
469 Function CP_TOTAL_CLOSED_p return number is
470 Begin
471 return CP_TOTAL_CLOSED;
472 END;
473 Function CP_AGE_CHANGED_p return varchar2 is
474 Begin
475 return CP_AGE_CHANGED;
476 END;
477 Function CP_LOS_CHANGED_p return varchar2 is
478 Begin
479 return CP_LOS_CHANGED;
480 END;
481 Function CP_COMB_AGE_LOS_CHANGED_p return varchar2 is
482 Begin
483 return CP_COMB_AGE_LOS_CHANGED;
484 END;
485 Function CP_PFT_CHANGED_p return varchar2 is
486 Begin
487 return CP_PFT_CHANGED;
488 END;
489 Function CP_COMP_LVL_CHANGED_p return varchar2 is
490 Begin
491 return CP_COMP_LVL_CHANGED;
492 END;
493 Function CP_HRS_WKD_CHANGED_p return varchar2 is
494 Begin
495 return CP_HRS_WKD_CHANGED;
496 END;
497 Function CP_PERSONS_NO_POTENTIAL_p return varchar2 is
498 Begin
499 return CP_PERSONS_NO_POTENTIAL;
500 END;
501 Function CP_PERSONS_WITH_POTENTIAL_p return varchar2 is
502 Begin
503 return CP_PERSONS_WITH_POTENTIAL;
504 END;
505 Function CP_NUMBER_OF_EVENTS_CREATED_p return varchar2 is
506 Begin
507 return CP_NUMBER_OF_EVENTS_CREATED;
508 END;
509 Function CP_LIFE_EVENT_DSGN_ONLY_p return number is
510 Begin
511 return CP_LIFE_EVENT_DSGN_ONLY;
512 END;
513 Function CP_LIFE_EVENT_CHOICES_p return number is
514 Begin
515 return CP_LIFE_EVENT_CHOICES;
516 END;
517 Function CP_LIFE_EVENT_NO_EFFECT_p return number is
518 Begin
519 return CP_LIFE_EVENT_NO_EFFECT;
520 END;
521 Function CP_LIFE_EVENT_RT_PR_CHG_p return number is
522 Begin
523 return CP_LIFE_EVENT_RT_PR_CHG;
524 END;
525 Function CP_NO_CHANGE_TO_LIFE_p return number is
526 Begin
527 return CP_NO_CHANGE_TO_LIFE;
528 END;
529 Function CP_CR_OPN_CLS_p return number is
530 Begin
531 return CP_CR_OPN_CLS;
532 END;
533 Function CP_LIFE_EVENT_COLLAPSED_p return number is
534 Begin
535 return CP_LIFE_EVENT_COLLAPSED;
536 END;
537 Function CP_LIFE_EVENT_COLLISION_p return number is
538 Begin
539 return CP_LIFE_EVENT_COLLISION;
540 END;
541 Function CP_LOCATION_p return varchar2 is
542 Begin
543 return CP_LOCATION;
544 END;
545 Function CP_PERSON_BNFT_GRP_p return varchar2 is
546 Begin
547 return CP_PERSON_BNFT_GRP;
548 END;
549 Function CP_AUDIT_FLAG_p return varchar2 is
550 Begin
551 return CP_AUDIT_FLAG;
552 END;
553 Function CP_LMT_BY_ORG_FLAG_p return varchar2 is
554 Begin
555 return CP_LMT_BY_ORG_FLAG;
556 END;
557 Function CP_LOSS_OF_ELIGIBILITY_p return varchar2 is
558 Begin
559 return CP_LOSS_OF_ELIGIBILITY;
560 END;
561 Function CP_late_payment_p return varchar2 is
562 Begin
563 return CP_late_payment;
564 END;
565 Function CP_max_enrollment_rchd_p return varchar2 is
566 Begin
567 return CP_max_enrollment_rchd;
568 END;
569 Function CP_period_enroll_changed_p return varchar2 is
570 Begin
571 return CP_period_enroll_changed;
572 END;
573 Function CP_voulntary_end_cvg_p return varchar2 is
574 Begin
575 return CP_voulntary_end_cvg;
576 END;
577 Function CP_waiting_satisfied_p return varchar2 is
578 Begin
579 return CP_waiting_satisfied;
580 END;
581 END BEN_BENACTIV_XMLP_PKG ;