1 package hrdyndbi AUTHID CURRENT_USER as
2 /* $Header: pydyndbi.pkh 120.6.12010000.2 2009/08/22 07:07:13 pgongada ship $ */
3 --
4 --
5 /* Copyright (c) Oracle Corporation 1991,1992,1993. All rights reserved */
6 /*
7 PRODUCT
8 Oracle*Payroll
9 --
10 NAME
11 pydyndbi.pkh
12 --
13 DESCRIPTION
14 Package headers for the procedures used to create and delete database
15 items in the data dictionary.
16 --
17 MODIFIED (DD-MON-YYYY)
18 pgongada 21-AUG-2009 Added procedure create_ppm_devdff_flex_dict()
19 to create DB Items for Further Personal Payment
20 Method Info DFF. (US IAT Enhancement : 8717589)
21 divicker 01-JUN-2006 Merge 11511 branch
22 arashid 11-MAY-2006 Added p_localization parameter to
23 process_pay_dyndbi_changes.
24 arashid 27-JAN-2006 Changed process_pay_dyndbi_changes to a
25 concurrent processing interface with VARCHAR2
26 parameters.
27 arashid 01-NOV-2005 Made process_pay_dyndbi_changes multi-threaded.
28 arashid 24-OCT-2005 Added new interfaces for translated dynamic
29 database items:
30 * process_pay_dyndbi_changes
31 * update_defined_balance
32 * update_element_type
33 * update_input_value
34 Note: updates to FP.K and earlier should be
35 made on branches to 115.18.
36 divicker 15-MAR-2005 Need insert_mthread_pps public so can call
37 from hrrbdeib
38 divicker 01-FEB-2004 Add proc reib_all
39 divicker 18-NOV-2004 Mthread support
40 divicker 09-DEC-2003 Same as 115.10 and 115.12 (no mthread)
41 divicker 24-SEP-2003 Same as 115.10 (no mthread routines)
42 scchakra 30-APR-2003 Created procedure recreate_defined_balance.
43 Bug - 2450195.
44 alogue 18-DEC-2002 - NOCOPY changes. Bug 2692195.
45 RThirlby 17-OCT-2002 Added new global g_trigger_dfb_ari boolean. Used
46 in new_defined_balance to determine whether to
47 call code to set save_run_balance flag. Prevents
48 mutating table error.
49 divicker 19-JUL-2002 Leg code striping support
50 rthirlby 06-MAR-2002 Added dbdrv commands.
51 divicker 30-OCT-2000 Added global for saying we have disabled some
52 trigger validation and that this validation is
53 moved inside pydyndbi.pkb
54 divicker 04-OCT-2000 Added disable/enable trigger procedures for
55 performance enhancements in rebuild_ele_input_bal
56 tbattoo 24-FEB-2000 Bug 1207273, if a user entity alredy exists when
57 you insert the db item use the id for the
58 existing entity and not the currval in the seq
59 alogue 09-MAR-1998 - Change insert_user_entity to
60 insert_user_entity_main
61 to overload insert_user_entity by 2 calls -
62 one with p_record_inserted and one without.
63 amyers 13-JAN-1998 Amended procedure insert_user_entitiy to:
64 i. only insert data if it doesn't already exist
65 ii. return a value in a new parameter indicating
66 whether the insert has happened to determine
67 the creation of underlying parameter values
68 and database items.
69 This change comes from bug 602851, where in an
70 R11 upgrade database items and entities were not
71 created, so in driver hr11gn.drv we need to run
72 refresh_grade_spine_rates to ensure this doesn't
73 happen. New version is 110.2.
74 alogue 13-AUG-1997 - Business_group_id passed to delete_keyflex_dict
75 to fix bug 513364.
76 mwcallag 26-APR-1995 - Entity name passed to delete_keyflex_dict to
77 fix bug 278064.
78 mwcallag 28-JUL-1994 - Optional commit parameter added to procedure
79 rebuild_ele_input_bal.
80 mwcallag 13-JUN-1994 - G916 Procedure 'rebuild_ele_input_bal' added.
81 mwcallag 20-JAN-1994 - Legislation code passed to delete_keyflex_dict,
82 procedure delete_compiled_formula added (G516).
83 mwcallag 08-DEC-1993 - G323 Context parameter passed to the procedure
84 delete_flexfield_dict.
85 mwcallag 23-NOV-1993 - G161 Simplified the calls to generate DB items for
86 external use.
87 mwcallag 28-SEP-1993 - legislation code parameter removed from procedure
88 'insert_database_item'
89 mwcallag 01-SEP-1993 - Procedure for converting element DB items from the
90 context of date earned to date paid added.
91 mwcallag 23-AUG-1993 - Organization payment methods, external
92 accounts and legal company SCL DB items added.
93 mwcallag 03-AUG-1993 - Developer Descriptive flexfield and SCL flexfield
94 procedures added.
95 mwcallag 14-JUN-1993 - application id removed from both
96 delete_flexfield_dict and create_flexfield_dict
97 mwcallag 03-JUN-1993 - application id passed to delete_flexfield_dict
98 mwcallag 07-MAY-1993 - spine DB creation added to grade procedure.
99 DB creation procedure for key flexfield.
100 mwcallag 30-APR-1993 - grade rates extended, descriptive flexs and
101 absence types added.
102 mwcallag 26-APR-1993 - procedures for input values, element types
103 and grade rate database items added.
104 Abraae 06-APR-1993 - created
105 */
106 --
107 -- first declare general routines that are called from within the database
108 -- item creation procedures. These should only be called by these procedures.
109 --
110 -- Holder for whether we have come thru rebuild_ele_input_bal()
111 g_triggers_altered BOOLEAN := FALSE;
112 g_debug_cnt number;
113 --
114 -- Holder for whether we have come through trigger pay_defined_balances_ari
115 --
116 g_trigger_dfb_ari boolean := false;
117 --
118 PROCEDURE insert_mthread_pps (p_stage in number,
119 p_worker_id in number,
120 p_leg_code in varchar2 default 'ZZ');
121 --
122 ------------------------- insert_parameter_value -------------------------
123 --
124 procedure insert_parameter_value
125 (
126 p_value in varchar2,
127 p_sequence_no in number
128 );
129 --
130 ------------------------- insert_database_item -------------------------
131 --
132 procedure insert_database_item
133 (
134 p_entity_name in varchar2,
135 p_item_name in varchar2,
136 p_data_type in varchar2,
137 p_definition_text in varchar2,
138 p_null_allowed_flag in varchar2,
139 p_description in varchar2,
140 p_user_entity_id in number DEFAULT NULL
141 );
142 --
143 ------------------------- insert_user_entity -------------------------
144 --
145 procedure insert_user_entity
146 (
147 p_route_name in varchar2,
148 p_user_entity_name in varchar2,
149 p_entity_description in varchar2,
150 p_not_found_flag in varchar2,
151 p_creator_type in varchar2,
152 p_creator_id in number,
153 p_business_group_id in number,
154 p_legislation_code in varchar2,
155 p_created_by in number,
156 p_last_login in number,
157 p_record_inserted out nocopy boolean
158 );
159 --
160 procedure insert_user_entity
161 (
162 p_route_name in varchar2,
163 p_user_entity_name in varchar2,
164 p_entity_description in varchar2,
165 p_not_found_flag in varchar2,
166 p_creator_type in varchar2,
167 p_creator_id in number,
168 p_business_group_id in number,
169 p_legislation_code in varchar2,
170 p_created_by in number,
171 p_last_login in number
172 );
173 --
174 procedure insert_user_entity_main
175 (
176 p_route_name in varchar2,
177 p_user_entity_name in varchar2,
178 p_entity_description in varchar2,
179 p_not_found_flag in varchar2,
180 p_creator_type in varchar2,
181 p_creator_id in number,
182 p_business_group_id in number,
183 p_legislation_code in varchar2,
184 p_created_by in number,
185 p_last_login in number,
186 p_record_inserted out nocopy boolean
187 );
188 --
189 ------------------------- delete_compiled_formula -------------------------
190 --
191 procedure delete_compiled_formula
192 (
193 p_creator_id in number,
194 p_creator_type in varchar2,
195 p_user_entity_name in varchar2,
196 p_leg_code in varchar2
197 );
198 --
199 --+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
200 -- +
201 -- The following routines create / delete database items: +
202 -- +
203 --+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
204 --
205 procedure new_defined_balance (p_defined_balance_id in number,
206 p_balance_dimension_id in number,
207 p_balance_type_id in number,
208 p_business_group_id in number,
209 p_legislation_code in varchar2);
210 --
211 procedure refresh_defined_balances(p_worker_id in number default 0,
212 p_maxworkers in number default 1);
213 procedure refresh_defined_balances(p_leg_code in varchar2,
214 p_worker_id in number default 0,
215 p_maxworkers in number default 1);
216 procedure recreate_defined_balance(p_defined_balance_id in number,
217 p_balance_dimension_id in number,
218 p_balance_type_id in number,
219 p_business_group_id in number,
220 p_legislation_code in varchar2);
221 --
222 ------------------------- delete_element_type_dict -------------------------
223 --
224 -- delete database items for a given element type
225 --
226 procedure delete_element_type_dict
227 (
228 p_element_type_id in number
229 );
230 --
231 ------------------------- create_element_type -------------------------
232 --
233 -- create Database items with a context of either date earned or date paid.
234 --
235 procedure create_element_type
236 (
237 p_element_type_id in number,
238 p_effective_date in date,
239 p_date_p in varchar2
240 );
241 --
242 ------------------------- create_element_type_dict -------------------------
243 --
244 -- create database items for a given element type, with a context of date
245 -- earned. This procedure calls 'create_element_type'.
246 --
247 procedure create_element_type_dict
248 (
249 p_element_type_id in number,
250 p_effective_date in date
251 );
252 --
253 ------------------------- create_element_type_dp_dict -------------------------
254 --
255 -- create database items for a given element type, with a context of date
256 -- paid. This procedure calls 'create_element_type'.
257 --
258 procedure create_element_type_dp_dict
259 (
260 p_element_type_id in number
261 );
262 --
263 ------------------------- delete_input_value_dict -------------------------
264 --
265 -- delete database items for a given input value
266 --
267 procedure delete_input_value_dict
268 (
269 p_input_value_id in number
270 );
271 --
272 ------------------------- create_input_value -------------------------
273 --
274 -- create database items for a given input value with a context of either
275 -- date earned or date paid.
276 --
277 procedure create_input_value
278 (
279 p_input_value_id in number,
280 p_effective_date in date,
281 p_date_p in varchar2
282 );
283 --
284 ------------------------- create_input_value_dict -------------------------
285 --
286 -- create database items for a given input value
287 --
288 procedure create_input_value_dict
289 (
290 p_input_value_id in number,
291 p_effective_date in date
292 );
293 --
294 ------------------------- refresh_element_types -------------------------
295 --
296 -- create all the element type and input value database items
297 --
298 procedure refresh_element_types(p_worker_id in number default 0,
299 p_maxworkers in number default 1);
300 --
301 ------------------------- delete_element_types -------------------------
302 --
303 -- delete all the element type and input value database items
304 --
305 procedure delete_element_types(p_worker_id in number default 0,
306 p_maxworkers in number default 1);
307 --
308 ------------------------- rebuild_ele_input_bal -------------------------
309 --
310 -- delete and re-create element, input value and balance DB items
311 --
312 procedure rebuild_ele_input_bal
313 (
314 p_commit in varchar2 default 'N',
315 p_worker_id in number default 0,
316 p_maxworkers in number default 1
317 );
318 procedure rebuild_ele_input_bal
319 (
320 p_commit in varchar2 default 'N',
321 p_leg_code in varchar2,
322 p_worker_id in number default 0,
323 p_maxworkers in number default 1
324 );
325 procedure reib_all;
326 --
327 ------------------------- delete_grade_spine_dict -------------------------
328 --
329 -- delete database items for a given grade / spine rate
330 --
331 procedure delete_grade_spine_dict
332 (
333 p_rate_id in number
334 );
335 --
336 ------------------------- create_grade_spine_dict -------------------------
337 --
338 -- create database items for a given grade/ spine rate
339 --
340 procedure create_grade_spine_dict
341 (
342 p_rate_id in number
343 );
344 --
345 ------------------------- refresh_grade_spine_rates ------------------------
346 --
347 -- create all the grade rate and spine rate database items
348 --
349 procedure refresh_grade_spine_rates;
350 --
351 ------------------------- delete_grade_spine_rates -------------------------
352 --
353 -- delete all the grade and spine rate database items
354 --
355 procedure delete_grade_spine_rates;
356 --
357 ------------------------- create_desc_flex -------------------------
358 --
359 -- General routine to create Descriptive flexfields.
360 --
361 procedure create_desc_flex
362 (
363 p_title in varchar2,
364 p_table_name in varchar2,
365 p_route_name in varchar2,
366 p_entity_name in varchar2,
367 p_context in varchar2,
368 p_global_flag in varchar2,
369 p_param_value in varchar2,
370 p_leg_code in varchar2
371 );
375 -- may be set to '%' in order to create all flexfield database items
372 ------------------------- create_flexfield_dict -------------------------
373 --
374 -- create the flexfield database items for a given title. Note that title
376 --
377 procedure create_flexfield_dict
378 (
379 p_title in varchar2
380 );
381 --
382 ------------------------- create_dev_desc_flex_dict -------------------------
383 --
384 -- create the developer descriptive flexfield database items for a given title
385 -- and context. This will be used by either the Person Developer DF report
386 -- or the Organization Developer DF report.
387 --
388 procedure create_dev_desc_flex_dict
389 (
390 p_title in varchar2,
391 p_context in varchar2
392 );
393 --
394 ------------------------- create_org_pay_flex_dict -------------------------
395 --
396 -- Create Organization Payment descriptive flexfield database items for a
397 -- given payment id.
398 --
399 procedure create_org_pay_flex_dict
400 (
401 p_payment_id in number
402 );
403 ------------------------- create_ppm_devdff_flex_dict -------------------------
404 --
405 -- Create Further Personal Payment Method Info descriptive flexfield database
406 -- items for a given payment type.
407 --
408 procedure create_ppm_devdff_flex_dict
409 (
410 p_payment_id in number
411 );
412 --
413 ------------------------- delete_flexfield_dict -------------------------
414 --
415 -- delete the specified descriptive flexfield database items depending on their
416 -- title, context and legislation code
417 --
418 procedure delete_flexfield_dict
419 (
420 p_title in varchar2,
421 p_context in varchar2,
422 p_leg_code in varchar2
423 );
424 --
425 ------------------------- create_absence_dict -------------------------
426 --
427 -- create database items for a given absence type
428 --
429 procedure create_absence_dict
430 (
431 p_absence_type_id in number
432 );
433 --
434 ------------------------- delete_absence_dict -------------------------
435 --
436 -- delete database items for a given absence type
437 --
438 procedure delete_absence_dict
439 (
440 p_absence_type_id in number
441 );
442 --
443 ------------------------- refresh_absence_types -------------------------
444 --
445 -- create all the absence type database items
446 --
447 procedure refresh_absence_types;
448 --
449 ------------------------- delete_absence_types -------------------------
450 --
451 -- delete all the absence type database items
452 --
453 procedure delete_absence_types;
454 --
455 ------------------------- create_key_flex -------------------------
456 --
457 -- General routine to create Key flexfield Database items
458 --
459 procedure create_key_flex
460 (
461 p_applic_id in number,
462 p_business_group in number,
463 p_id_flex_num in number,
464 p_id_flex_code in varchar2,
465 p_entity_name in varchar2,
466 p_leg_code in varchar2,
467 p_route_name in varchar2,
468 p_table_name in varchar2
469 );
470 --
471 ------------------------- create_keyflex_dict -------------------------
472 --
473 -- create the key flexfield database items for a given business group id.
474 -- Note that the name may be set to '%' in order to create all key flexfield
475 -- database items (see body documentation for more details).
476 --
477 procedure create_keyflex_dict
478 (
479 p_business_group_id in number,
480 p_keyflex_name in varchar2
481 );
482 --
483 ------------------------- delete_keyflex_dict -------------------------
484 --
485 -- delete the key flexfield database items for a given business group id.
486 -- Note that the name may be set to '%' in order to delete all key flexfield
487 -- database items (see body documentation for more details).
488 --
489 procedure delete_keyflex_dict
490 (
491 p_creator_id in number,
492 p_entity_name in varchar2,
493 p_leg_code in varchar2,
494 p_business_group_id in number
495 );
496 --
497 ---------------------- create_ext_acc_keyflex_dict -----------------------
498 --
499 -- Create Personal and Organization External Account Keyflexs
500 --
501 procedure create_ext_acc_keyflex_dict
502 (
503 p_id_flex_num in number
504 );
505 --
506 ------------------------- create_scl_flex_dict -------------------------
507 --
508 -- create the SCL key flexfield database items for a given id flex number.
509 --
510 procedure create_scl_flex_dict
511 (
512 p_id_flex_num in number
513 );
514 --
515 ------------------------- disable_ffue_cascade_trig -------------------------
516 --
517 -- disables the triggers fired off when delete from ff_user_entities which
518 -- gives a performance enhancement. As we have cleared ff_fdi_usages_f
519 -- previously, the validation here is unnecessary
520 --
521 procedure disable_ffue_cascade_trig;
522 --
523 ------------------------- enable_ffue_cascade_trig -------------------------
524 --
525 -- re-enables the same triggers above to allow for validation processing
526 --
527 procedure enable_ffue_cascade_trig;
528 --
532 -- gives a performance enhancement. As we have cleared ff_fdi_usages_f
529 ------------------------- disable_refbal_trig -------------------------
530 --
531 -- disables the triggers fired off when delete from ff_user_entities which
533 -- previously, the validation here is unnecessary
534 --
535 procedure disable_refbal_trig;
536 --
537 ------------------------- enable_refbal_trig -------------------------
538 --
539 -- re-enables the same triggers above to allow for validation processing
540 --
541 procedure enable_refbal_trig;
542 --
543 ------------------------- truncate_fcomp_info -------------------------
544 --
545 -- deletes all formula compilation info
546 --
547 procedure truncate_fcomp_info;
548 --
549 ----------------------- update_defined_balance -----------------------
550 --
551 -- Update a defined balance's database items for a set of languages.
552 -- The P_LANGUAGES list's indexes must start at 1 and go up in
553 -- increments of 1.
554 --
555 -- Notes: This is unsuitable for PAY_BALANCE_TYPES_F_TL or
556 -- PAY_BALANCE_DIMENSIONS_TL trigger calls because it builds the
557 -- database item names by fetching from these tables.
558 --
559 procedure update_defined_balance
560 (p_defined_balance_id in number
561 ,p_languages in dbms_sql.varchar2s
562 );
563 --
564 ------------------------- update_element_type ------------------------
565 --
566 -- Update an element type's database items for a set of languages.
567 -- The P_LANGUAGES list's indexes must start at 1 and go up in
568 -- increments of 1.
569 --
570 -- Notes: This is unsuitable for PAY_ELEMENT_TYPES_F_TL trigger call
571 -- because it builds names by fetching from PAY_ELEMENT_TYPES_F_TL.
572 --
573 procedure update_element_type
574 (p_element_type_id in number
575 ,p_effective_date in date
576 ,p_languages in dbms_sql.varchar2s
577 );
578 --
579 ------------------------- update_input_value -------------------------
580 --
581 -- Update an input value's database items for a set of languages.
582 -- The P_LANGUAGES list's indexes must start at 1 and go up in
583 -- increments of 1.
584 --
585 -- Notes: This is unsuitable for PAY_INPUT_VALUES_F_TL trigger call
586 -- because it builds names by fetching from PAY_INPUT_VALUES_F_TL.
587 --
588 procedure update_input_value
589 (p_input_value_id in number
590 ,p_effective_date in date
591 ,p_languages in dbms_sql.varchar2s
592 );
593 --------------------- process_pay_dyndbi_changes -------------------------
594 --
595 -- Process rows in PAY_DYNDBI_CHANGES to generate new translated
596 -- dynamic database item names at the end of translation patch
597 -- application.
598 --
599 --
600 procedure process_pay_dyndbi_changes
601 (errbuf out nocopy varchar2
602 ,retcode out nocopy number
603 ,p_element_types in varchar2
604 ,p_input_values in varchar2
605 ,p_defined_balances in varchar2
606 ,p_localization in varchar2
607 );
608 --
609 end hrdyndbi;