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