[Home] [Help]
PACKAGE BODY: APPS.XLA_AAD_MERGE_ANALYSIS_PVT
Source
1 PACKAGE BODY xla_aad_merge_analysis_pvt AS
2 /* $Header: xlaalman.pkb 120.15 2006/06/28 19:34:51 wychan ship $ */
3 /*===========================================================================+
4 | Copyright (c) 2001-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | PACKAGE NAME |
9 | xla_aad_merge_analysis_pvt |
10 | |
11 | DESCRIPTION |
12 | AAD Loader Merge Analysis package |
13 | |
14 | HISTORY |
15 | 01-MAY-2004 W. Chan Created |
16 | 13-APR-2005 W. Chan Added Business Flow Changes |
17 | 05-AUG-2005 W. Chan Added Public Sector Changes |
18 | 19-AUG-2005 W. Chan Added MPA changes |
19 | |
20 +===========================================================================*/
21
22 --=============================================================================
23 -- **************** declaraions ********************
24 --=============================================================================
25 -------------------------------------------------------------------------------
26 -- declaring global types
27 -------------------------------------------------------------------------------
28 TYPE AssgnIndex IS TABLE OF VARCHAR2(1) INDEX BY VARCHAR2(720);
29
30 -------------------------------------------------------------------------------
31 -- declaring global constants
32 -------------------------------------------------------------------------------
33 C_NUM CONSTANT NUMBER := 9.99E125;
34 C_CHAR CONSTANT VARCHAR2(1) := '|'; -- fnd_global.local_chr(12);
35 C_DATE CONSTANT DATE := TO_DATE('1','j');
36
37 C_MERGE_IMPACT_UPDATED CONSTANT VARCHAR2(30):= 'UPDATED';
38 C_MERGE_IMPACT_NEW CONSTANT VARCHAR2(30):= 'NEW';
39 C_MERGE_IMPACT_DELETED CONSTANT VARCHAR2(30):= 'DELETED';
40 C_MERGE_IMPACT_UNCHANGED CONSTANT VARCHAR2(30):= 'UNCHANGED';
41
42 C_OWNER_ORACLE CONSTANT VARCHAR2(1) := 'S';
43 C_OWNER_CUSTOM CONSTANT VARCHAR2(1) := 'C';
44
45 ------------------------------------------------------------------------------
46 -- declaring global variables
47 ------------------------------------------------------------------------------
48 g_application_id NUMBER;
49 g_amb_context_code VARCHAR2(30);
50 g_staging_context_code VARCHAR2(30);
51 g_batch_name VARCHAR2(30);
52 g_aad_groups xla_aad_group_tbl_type;
53 g_user_mode VARCHAR2(30);
54
55 g_assgns AssgnIndex;
56 g_num_updated_props INTEGER;
57 g_updated_props xla_amb_updated_prop_tbl_type := xla_amb_updated_prop_tbl_type();
58 g_num_updated_comps INTEGER;
59 g_updated_comps xla_amb_updated_comp_tbl_type := xla_amb_updated_comp_tbl_type();
60
61 --=============================================================================
62 -- *********** Local Trace Routine **********
63 --=============================================================================
64 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
65 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
66 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
67 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
68 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
69 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
70
71 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
72 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_aad_merge_analysis_pvt';
73
74 g_log_level NUMBER;
75 g_log_enabled BOOLEAN;
76
77 PROCEDURE trace
78 (p_msg IN VARCHAR2
79 ,p_module IN VARCHAR2
80 ,p_level IN NUMBER) IS
81 BEGIN
82 ----------------------------------------------------------------------------
83 -- Following is for FND log.
84 ----------------------------------------------------------------------------
85 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
86 fnd_log.message(p_level, p_module);
87 ELSIF p_level >= g_log_level THEN
88 fnd_log.string(p_level, p_module, p_msg);
89 END IF;
90 EXCEPTION
91 WHEN xla_exceptions_pkg.application_exception THEN
92 RAISE;
93
94 WHEN OTHERS THEN
95 xla_exceptions_pkg.raise_message
96 (p_location => 'xla_aad_merge_analysis_pvt.trace');
97 END trace;
98
99
100 --=============================================================================
101 -- *********** private procedures and functions **********
102 --=============================================================================
103
104 --=============================================================================
105 --
106 -- Name: pre_analysis
107 -- Description: This API prepares the environment for merge
108 --
109 --=============================================================================
110 FUNCTION pre_analysis
111 RETURN VARCHAR2
112 IS
113 CURSOR c IS
114 SELECT *
115 FROM xla_appli_amb_contexts
116 WHERE application_id = g_application_id
117 AND amb_context_code = g_amb_context_code
118 FOR UPDATE OF application_id NOWAIT;
119
120 l_lock_error BOOLEAN;
121 l_recinfo xla_appli_amb_contexts%ROWTYPE;
122 l_retcode VARCHAR2(30);
123
124 l_log_module VARCHAR2(240);
125 BEGIN
126 IF g_log_enabled THEN
127 l_log_module := C_DEFAULT_MODULE||'.pre_analysis';
128 END IF;
129
130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131 trace(p_msg => 'BEGIN of function pre_analysis',
132 p_module => l_log_module,
133 p_level => C_LEVEL_PROCEDURE);
134 END IF;
135
136 l_retcode := 'SUCCESS';
137
138 -- Begin API Logic
139
140 -- Lock the staging area of the AMB context
141 l_lock_error := TRUE;
142 OPEN c;
143 CLOSE c;
144 l_lock_error := FALSE;
145
146 IF (l_retcode = 'SUCCESS') THEN
147 l_retcode := xla_aad_loader_util_pvt.lock_area
148 (p_application_id => g_application_id
149 ,p_amb_context_code => g_amb_context_code);
150
151 IF (l_retcode <> 'SUCCESS') THEN
152 xla_aad_loader_util_pvt.stack_error
153 (p_appli_s_name => 'XLA'
154 ,p_msg_name => 'XLA_AAD_MGR_LOCK_FAILED');
155 l_retcode := 'ERROR';
156 END IF;
157 END IF;
158
159 DELETE FROM xla_amb_updated_comps
160 WHERE application_id = g_application_id
161 AND amb_context_code = g_amb_context_code;
162
163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164 trace(p_msg => 'END of function pre_analysis - Return value = '||l_retcode,
165 p_module => l_log_module,
166 p_level => C_LEVEL_PROCEDURE);
167 END IF;
168
169 RETURN l_retcode;
170 EXCEPTION
171 WHEN OTHERS THEN
172 IF (c%ISOPEN) THEN
173 CLOSE c;
174 END IF;
175
176 IF (l_lock_error) THEN
177 l_retcode := 'ERROR';
178
179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180 trace(p_msg => 'END of function pre_analysis - Return value = '||l_retcode,
181 p_module => l_log_module,
182 p_level => C_LEVEL_PROCEDURE);
183 END IF;
184
185 xla_aad_loader_util_pvt.stack_error
186 (p_appli_s_name => 'XLA'
187 ,p_msg_name => 'XLA_AAD_MAN_LOCK_FAILED');
188
189 RETURN l_retcode;
190 ELSE
191 xla_aad_loader_util_pvt.stack_error
192 (p_appli_s_name => 'XLA'
193 ,p_msg_name => 'XLA_COMMON_ERROR'
194 ,p_token_1 => 'LOCATION'
195 ,p_value_1 => 'xla_aad_merge_analysis_pvt.pre_analysis'
196 ,p_token_2 => 'ERROR'
197 ,p_value_2 => 'unhandled exception');
198 RAISE;
199 END IF;
200
201 END pre_analysis;
202
203 --=============================================================================
204 --
205 -- Name: validation
206 -- Description: This API validate the AADs and components
207 -- Return codes:
208 -- SUCCESS - completed sucessfully
209 -- ERROR - completed with error
210 --
211 --=============================================================================
212 FUNCTION validation
213 RETURN VARCHAR2
214 IS
215 l_retcode VARCHAR2(30);
216 l_log_module VARCHAR2(240);
217 BEGIN
218 IF g_log_enabled THEN
219 l_log_module := C_DEFAULT_MODULE||'.validation';
220 END IF;
221
222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
223 trace(p_msg => 'BEGIN of function validation',
224 p_module => l_log_module,
225 p_level => C_LEVEL_PROCEDURE);
226 END IF;
227
228 l_retcode := 'SUCCESS';
229
230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
231 trace(p_msg => 'END of function validation - Return value = '||l_retcode,
232 p_module => l_log_module,
233 p_level => C_LEVEL_PROCEDURE);
234 END IF;
235
236 return l_retcode;
237 EXCEPTION
238 WHEN OTHERS THEN
239 xla_aad_loader_util_pvt.stack_error
240 (p_appli_s_name => 'XLA'
241 ,p_msg_name => 'XLA_COMMON_ERROR'
242 ,p_token_1 => 'LOCATION'
243 ,p_value_1 => 'xla_aad_merge_analysis_pvt.validation'
244 ,p_token_2 => 'ERROR'
245 ,p_value_2 => 'Unhandled exception');
246 RAISE;
247
248 END validation;
249
250
251 --=============================================================================
252 --
253 --
254 --
255 --=============================================================================
256 PROCEDURE record_updated_property
257 (p_component_type VARCHAR2
258 ,p_component_key VARCHAR2
259 ,p_property VARCHAR2
260 ,p_old_value VARCHAR2
261 ,p_new_value VARCHAR2
262 ,p_lookup_type VARCHAR2)
263 IS
264 l_prop xla_amb_updated_prop_rec_type :=
265 xla_amb_updated_prop_rec_type (null, null, null, null, null, null, null
266 ,null, null, null, null, null, null);
267
268 l_log_module VARCHAR2(240);
269 BEGIN
270 IF g_log_enabled THEN
271 l_log_module := C_DEFAULT_MODULE||'.record_updated_property';
272 END IF;
273
274 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
275 trace(p_msg => 'BEGIN of function record_updated_property',
276 p_module => l_log_module,
277 p_level => C_LEVEL_PROCEDURE);
278 trace(p_msg => 'p_component_type = '||p_component_type,
279 p_module => l_log_module,
280 p_level => C_LEVEL_PROCEDURE);
281 trace(p_msg => 'p_component_key = '||p_component_key,
282 p_module => l_log_module,
283 p_level => C_LEVEL_PROCEDURE);
284 trace(p_msg => 'p_property = '||p_property,
285 p_module => l_log_module,
286 p_level => C_LEVEL_PROCEDURE);
287 trace(p_msg => 'p_old_value = '||p_old_value,
288 p_module => l_log_module,
289 p_level => C_LEVEL_PROCEDURE);
290 trace(p_msg => 'p_new_value = '||p_new_value,
291 p_module => l_log_module,
292 p_level => C_LEVEL_PROCEDURE);
293 trace(p_msg => 'p_lookup_type = '||p_lookup_type,
294 p_module => l_log_module,
295 p_level => C_LEVEL_PROCEDURE);
296 END IF;
297
298 l_prop.component_type := p_component_type;
299 l_prop.component_key := p_component_key;
300 l_prop.property := p_property;
301
302 IF (p_old_value IS NOT NULL) THEN
303 l_prop.old_value := p_old_value;
304 END IF;
305
306 l_prop.new_value := p_new_value;
307 l_prop.lookup_type := p_lookup_type;
308
309 g_num_updated_props := g_num_updated_props+1;
310 g_updated_props.extend;
311 g_updated_props(g_num_updated_props) := l_prop;
312
313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
314 trace(p_msg => 'END of function record_updated_property',
315 p_module => l_log_module,
316 p_level => C_LEVEL_PROCEDURE);
317 END IF;
318
319 EXCEPTION
320 WHEN xla_exceptions_pkg.application_exception THEN
321 RAISE;
322 WHEN OTHERS THEN
323 xla_exceptions_pkg.raise_message
324 (p_location => l_log_module);
325 END record_updated_property;
326
327 --=============================================================================
328 --
329 --
330 --
331 --=============================================================================
332 PROCEDURE record_updated_property
333 (p_component_type VARCHAR2
334 ,p_component_key VARCHAR2
335 ,p_property VARCHAR2
336 ,p_old_value VARCHAR2
337 ,p_new_value VARCHAR2)
338 IS
339 l_log_module VARCHAR2(240);
340 BEGIN
341 IF g_log_enabled THEN
342 l_log_module := C_DEFAULT_MODULE||'.record_updated_property';
343 END IF;
344
345 record_updated_property
346 (p_component_type => p_component_type
347 ,p_component_key => p_component_key
348 ,p_property => p_property
349 ,p_old_value => p_old_value
350 ,p_new_value => p_new_value
351 ,p_lookup_type => NULL);
352
353 EXCEPTION
354 WHEN xla_exceptions_pkg.application_exception THEN
355 RAISE;
356 WHEN OTHERS THEN
357 xla_exceptions_pkg.raise_message
358 (p_location => l_log_module);
359 END record_updated_property;
360
361
362 --=============================================================================
363 --
364 --
365 --
366 --=============================================================================
367 PROCEDURE record_updated_value
368 (p_component_type VARCHAR2
369 ,p_component_key VARCHAR2
370 ,p_property VARCHAR2
371 ,p_old_value VARCHAR2
372 ,p_old_source_app_id INTEGER
373 ,p_old_source_type_code VARCHAR2
374 ,p_old_source_code VARCHAR2
375 ,p_new_value VARCHAR2
376 ,p_new_source_app_id INTEGER
377 ,p_new_source_type_code VARCHAR2
378 ,p_new_source_code VARCHAR2)
379 IS
380 l_prop xla_amb_updated_prop_rec_type :=
381 xla_amb_updated_prop_rec_type (null, null, null, null, null, null, null
382 ,null, null, null, null, null, null);
383
384 l_log_module VARCHAR2(240);
385 BEGIN
386 IF g_log_enabled THEN
387 l_log_module := C_DEFAULT_MODULE||'.record_updated_value';
388 END IF;
389
390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
391 trace(p_msg => 'BEGIN of function record_updated_value',
392 p_module => l_log_module,
393 p_level => C_LEVEL_PROCEDURE);
394 trace(p_msg => 'p_component_type = '||p_component_type,
395 p_module => l_log_module,
396 p_level => C_LEVEL_PROCEDURE);
397 trace(p_msg => 'p_component_key = '||p_component_key,
398 p_module => l_log_module,
399 p_level => C_LEVEL_PROCEDURE);
400 trace(p_msg => 'p_property = '||p_property,
401 p_module => l_log_module,
402 p_level => C_LEVEL_PROCEDURE);
403 trace(p_msg => 'p_old_value = '||p_old_value,
404 p_module => l_log_module,
405 p_level => C_LEVEL_PROCEDURE);
406 trace(p_msg => 'p_old_source_app_id = '||p_old_source_app_id,
407 p_module => l_log_module,
408 p_level => C_LEVEL_PROCEDURE);
409 trace(p_msg => 'p_old_source_type_code = '||p_old_source_type_code,
410 p_module => l_log_module,
411 p_level => C_LEVEL_PROCEDURE);
412 trace(p_msg => 'p_old_source_code = '||p_old_source_code,
413 p_module => l_log_module,
414 p_level => C_LEVEL_PROCEDURE);
415 trace(p_msg => 'p_new_value = '||p_new_value,
416 p_module => l_log_module,
417 p_level => C_LEVEL_PROCEDURE);
418 trace(p_msg => 'p_new_source_app_id = '||p_new_source_app_id,
419 p_module => l_log_module,
420 p_level => C_LEVEL_PROCEDURE);
421 trace(p_msg => 'p_new_source_type_code = '||p_new_source_type_code,
422 p_module => l_log_module,
423 p_level => C_LEVEL_PROCEDURE);
424 trace(p_msg => 'p_new_source_code = '||p_new_source_code,
425 p_module => l_log_module,
426 p_level => C_LEVEL_PROCEDURE);
427 END IF;
428
429 l_prop.component_type := p_component_type;
430 l_prop.component_key := p_component_key;
431 l_prop.property := p_property;
432 l_prop.old_value := p_old_value;
433 l_prop.old_source_app_id := p_old_source_app_id;
434 l_prop.old_source_type_code := p_old_source_type_code;
435 l_prop.old_source_code := p_old_source_code;
436 l_prop.new_value := p_new_value;
437 l_prop.new_source_app_id := p_new_source_app_id;
438 l_prop.new_source_type_code := p_new_source_type_code;
439 l_prop.new_source_code := p_new_source_code;
440
441 g_num_updated_props := g_num_updated_props+1;
442 g_updated_props.extend;
443 g_updated_props(g_num_updated_props) := l_prop;
444
445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
446 trace(p_msg => 'END of function record_updated_value',
447 p_module => l_log_module,
448 p_level => C_LEVEL_PROCEDURE);
449 END IF;
450
451 EXCEPTION
452 WHEN xla_exceptions_pkg.application_exception THEN
453 RAISE;
454 WHEN OTHERS THEN
455 xla_exceptions_pkg.raise_message
456 (p_location => l_log_module);
457 END record_updated_value;
458
459
460 --=============================================================================
461 --
462 --
463 --
464 --=============================================================================
465 PROCEDURE record_updated_source
466 (p_component_type VARCHAR2
467 ,p_component_key VARCHAR2
468 ,p_property VARCHAR2
469 ,p_old_source_app_id INTEGER
470 ,p_old_source_type_code VARCHAR2
471 ,p_old_source_code VARCHAR2
472 ,p_new_source_app_id INTEGER
473 ,p_new_source_type_code VARCHAR2
474 ,p_new_source_code VARCHAR2)
475 IS
476 l_log_module VARCHAR2(240);
477 BEGIN
478 IF g_log_enabled THEN
479 l_log_module := C_DEFAULT_MODULE||'.record_updated_source';
480 END IF;
481
482 record_updated_value
483 (p_component_type => p_component_type
484 ,p_component_key => p_component_key
485 ,p_property => p_property
486 ,p_old_value => NULL
487 ,p_old_source_app_id => p_old_source_app_id
488 ,p_old_source_type_code => p_old_source_type_code
489 ,p_old_source_code => p_old_source_code
490 ,p_new_value => NULL
491 ,p_new_source_app_id => p_new_source_app_id
492 ,p_new_source_type_code => p_new_source_type_code
493 ,p_new_source_code => p_new_source_code);
494
495 EXCEPTION
496 WHEN xla_exceptions_pkg.application_exception THEN
497 RAISE;
498 WHEN OTHERS THEN
499 xla_exceptions_pkg.raise_message
500 (p_location => l_log_module);
501 END record_updated_source;
502
503
504 --=============================================================================
505 --
506 --
507 --
508 --=============================================================================
509 PROCEDURE record_updated_component
510 (p_parent_component_type VARCHAR2
511 ,p_parent_component_key VARCHAR2
512 ,p_component_type VARCHAR2
513 ,p_component_key VARCHAR2
514 ,p_merge_impact VARCHAR2
515 ,p_event_class_code VARCHAR2 DEFAULT NULL
516 ,p_event_type_code VARCHAR2 DEFAULT NULL
517 ,p_component_appl_id NUMBER DEFAULT NULL
518 ,p_component_owner_code VARCHAR2 DEFAULT NULL
519 ,p_component_code VARCHAR2 DEFAULT NULL
520 ,p_parent_component_owner_code VARCHAR2 DEFAULT NULL
521 ,p_parent_component_code VARCHAR2 DEFAULT NULL
522 ,p_property VARCHAR2 DEFAULT NULL
523 ,p_old_value VARCHAR2 DEFAULT NULL
524 ,p_lookup_type VARCHAR2 DEFAULT NULL)
525 IS
526 l_comp xla_amb_updated_comp_rec_type :=
527 xla_amb_updated_comp_rec_type (null, null, null, null, null, null
528 , null, null, null, null, null, null
529 , null, null, null, null, null, null);
530
531 l_log_module VARCHAR2(240);
532 BEGIN
533 IF g_log_enabled THEN
534 l_log_module := C_DEFAULT_MODULE||'.record_updated_component';
535 END IF;
536
537 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
538 trace(p_msg => 'BEGIN of function record_updated_component',
539 p_module => l_log_module,
540 p_level => C_LEVEL_PROCEDURE);
541 trace(p_msg => 'p_parent_component_type = '||p_parent_component_type,
542 p_module => l_log_module,
543 p_level => C_LEVEL_PROCEDURE);
544 trace(p_msg => 'p_parent_component_key = '||p_parent_component_key,
545 p_module => l_log_module,
546 p_level => C_LEVEL_PROCEDURE);
547 trace(p_msg => 'p_component_type = '||p_component_type,
548 p_module => l_log_module,
549 p_level => C_LEVEL_PROCEDURE);
550 trace(p_msg => 'p_component_key = '||p_component_key,
551 p_module => l_log_module,
552 p_level => C_LEVEL_PROCEDURE);
553 trace(p_msg => 'p_merge_impact = '||p_merge_impact,
554 p_module => l_log_module,
555 p_level => C_LEVEL_PROCEDURE);
556 END IF;
557
558 l_comp.parent_component_type := p_parent_component_type;
559 l_comp.parent_component_key := p_parent_component_key;
560 l_comp.component_type := p_component_type;
561 l_comp.component_key := p_component_key;
562 l_comp.merge_impact := p_merge_impact;
563 l_comp.event_class_code := p_event_class_code;
564 l_comp.event_type_code := p_event_type_code;
565 l_comp.component_appl_id := p_component_appl_id;
566 l_comp.component_owner_code := p_component_owner_code;
567 l_comp.component_code := p_component_code;
568 l_comp.parent_component_owner_code := p_parent_component_owner_code;
569 l_comp.parent_component_code := p_parent_component_code;
570
571 g_num_updated_comps := g_num_updated_comps+1;
572 g_updated_comps.extend;
573 g_updated_comps(g_num_updated_comps) := l_comp;
574
575 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
576 trace(p_msg => 'END of function record_updated_component',
577 p_module => l_log_module,
578 p_level => C_LEVEL_PROCEDURE);
579 END IF;
580
581 EXCEPTION
582 WHEN xla_exceptions_pkg.application_exception THEN
583 RAISE;
584 WHEN OTHERS THEN
585 xla_exceptions_pkg.raise_message
586 (p_location => l_log_module);
587 END record_updated_component;
588
589 --=============================================================================
590 --
591 --
592 --
593 --=============================================================================
594 FUNCTION key_exists
595 (p_key VARCHAR2)
596 RETURN BOOLEAN
597 IS
598 l_log_module VARCHAR2(240);
599 l_retcode BOOLEAN;
600 BEGIN
601 IF g_log_enabled THEN
602 l_log_module := C_DEFAULT_MODULE||'.key_exists';
603 END IF;
604
605 BEGIN
606 IF (g_assgns(p_key) = 1) THEN
607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
608 trace(p_msg => 'Check key '||p_key||': exists',
609 p_module => l_log_module,
610 p_level => C_LEVEL_PROCEDURE);
611 END IF;
612 END IF;
613 l_retcode := TRUE;
614 EXCEPTION
615 WHEN NO_DATA_FOUND THEN
616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
617 trace(p_msg => 'Check key '||p_key||': not exists',
618 p_module => l_log_module,
619 p_level => C_LEVEL_PROCEDURE);
620 END IF;
621
622 g_assgns(p_key) := 1;
623 l_retcode := FALSE;
624 END;
625
626 RETURN l_retcode;
627 EXCEPTION
628 WHEN xla_exceptions_pkg.application_exception THEN
629 RAISE;
630 WHEN OTHERS THEN
631 xla_exceptions_pkg.raise_message
632 (p_location => l_log_module);
633 END key_exists;
634
635 --=============================================================================
636 --
637 -- Name: record_updated_aad
638 -- Description: Record that an AAD is updated
639 --
640 --=============================================================================
641 PROCEDURE record_updated_aad
642 (p_product_rule_type_code VARCHAR2
643 ,p_product_rule_code VARCHAR2
644 ,p_merge_impact VARCHAR2)
645 IS
646 l_key VARCHAR2(240);
647 l_log_module VARCHAR2(240);
648 BEGIN
649 IF g_log_enabled THEN
650 l_log_module := C_DEFAULT_MODULE||'.record_updated_aad';
651 END IF;
652
653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
654 trace(p_msg => 'BEGIN of function record_updated_aad: '||
655 'p_product_rule_type_code = '||p_product_rule_type_code||
656 ', p_product_rule_code = '||p_product_rule_code||
657 ', p_merge_impact = '||p_merge_impact,
658 p_module => l_log_module,
659 p_level => C_LEVEL_PROCEDURE);
660 END IF;
661
662 l_key := p_product_rule_type_code||C_CHAR||
663 p_product_rule_code;
664
665 IF (NOT key_exists('AAD'||C_CHAR||l_key)) THEN
666 record_updated_component
667 (p_parent_component_type => 'APPLICATION'
668 ,p_parent_component_key => g_application_id
669 ,p_component_type => 'AMB_AAD'
670 ,p_component_key => l_key
671 ,p_merge_impact => p_merge_impact
672 ,p_component_owner_code => p_product_rule_type_code
673 ,p_component_code => p_product_rule_code);
674 END IF;
675
676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
677 trace(p_msg => 'END of function record_updated_aad',
678 p_module => l_log_module,
679 p_level => C_LEVEL_PROCEDURE);
680 END IF;
681
682 EXCEPTION
683 WHEN xla_exceptions_pkg.application_exception THEN
684 RAISE;
685 WHEN OTHERS THEN
686 xla_exceptions_pkg.raise_message
687 (p_location => l_log_module);
688 END record_updated_aad;
689
690 --=============================================================================
691 --
692 -- Name: record_updated_header_assgn
693 -- Description: Record a header assignment is updated
694 --
695 --=============================================================================
696 PROCEDURE record_updated_header_assgn
697 (p_product_rule_type_code VARCHAR2
698 ,p_product_rule_code VARCHAR2
699 ,p_event_class_code VARCHAR2
700 ,p_event_type_code VARCHAR2
701 ,p_merge_impact VARCHAR2)
702 IS
703 l_key VARCHAR2(240);
704 l_log_module VARCHAR2(240);
705 BEGIN
706 IF g_log_enabled THEN
707 l_log_module := C_DEFAULT_MODULE||'.record_updated_header_assgn';
708 END IF;
709
710 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
711 trace(p_msg => 'BEGIN of function record_updated_header_assgn',
712 p_module => l_log_module,
713 p_level => C_LEVEL_PROCEDURE);
714 END IF;
715
716 l_key := p_product_rule_type_code||C_CHAR||
717 p_product_rule_code||C_CHAR||
718 p_event_class_code||C_CHAR||
719 p_event_type_code;
720
721 IF (NOT key_exists('ET'||C_CHAR||l_key)) THEN
722 record_updated_component
723 (p_parent_component_type => 'AMB_AAD_EVENT_CLASS'
724 ,p_parent_component_key => p_product_rule_type_code||C_CHAR||
725 p_product_rule_code||C_CHAR||
726 p_event_class_code
727 ,p_component_type => 'AMB_AAD_EVENT_TYPE'
728 ,p_component_key => l_key
729 ,p_merge_impact => p_merge_impact
730 ,p_event_class_code => p_event_class_code
731 ,p_event_type_code => p_event_type_code
732 ,p_component_code => p_event_type_code);
733
734 l_key := p_product_rule_type_code||C_CHAR||
735 p_product_rule_code||C_CHAR||
736 p_event_class_code;
737
738 IF (NOT key_exists('EC'||C_CHAR||l_key)) THEN
739 record_updated_component
740 (p_parent_component_type => 'AMB_AAD'
741 ,p_parent_component_key => p_product_rule_type_code||C_CHAR||
742 p_product_rule_code
743 ,p_component_type => 'AMB_AAD_EVENT_CLASS'
744 ,p_component_key => l_key
745 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
746 ,p_event_class_code => p_event_class_code
747 ,p_component_code => p_event_class_code);
748
749 record_updated_aad
750 (p_product_rule_type_code => p_product_rule_type_code
751 ,p_product_rule_code => p_product_rule_code
752 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
753
754 END IF;
755 END IF;
756
757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
758 trace(p_msg => 'END of function record_updated_header_assgn',
759 p_module => l_log_module,
760 p_level => C_LEVEL_PROCEDURE);
761 END IF;
762 EXCEPTION
763 WHEN xla_exceptions_pkg.application_exception THEN
764 RAISE;
765 WHEN OTHERS THEN
766 xla_exceptions_pkg.raise_message
767 (p_location => l_log_module);
768 END record_updated_header_assgn;
769
770 --=============================================================================
771 --
772 --
773 --
774 --=============================================================================
775 PROCEDURE record_updated_jld_assgn
776 (p_product_rule_type_code VARCHAR2
777 ,p_product_rule_code VARCHAR2
778 ,p_event_class_code VARCHAR2
779 ,p_event_type_code VARCHAR2
780 ,p_line_defn_owner_code VARCHAR2
781 ,p_line_defn_code VARCHAR2
782 ,p_merge_impact VARCHAR2)
783 IS
784 l_parent_key VARCHAR2(240);
785 l_key VARCHAR2(240);
786 l_log_module VARCHAR2(240);
787 BEGIN
788 IF g_log_enabled THEN
789 l_log_module := C_DEFAULT_MODULE||'.record_updated_jld_assgn';
790 END IF;
791
792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
793 trace(p_msg => 'BEGIN of function record_updated_jld_assgn',
794 p_module => l_log_module,
795 p_level => C_LEVEL_PROCEDURE);
796 END IF;
797
798 l_parent_key := p_product_rule_type_code||C_CHAR||
799 p_product_rule_code||C_CHAR||
800 p_event_class_code||C_CHAR||
801 p_event_type_code;
802
803 l_key := p_event_class_code||C_CHAR||
804 p_event_type_code||C_CHAR||
805 p_line_defn_owner_code||C_CHAR||
806 p_line_defn_code;
807
808 IF (NOT key_exists('ETJLD'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
809 record_updated_component
810 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
811 ,p_parent_component_key => l_parent_key
812 ,p_component_type => 'AMB_JLD'
813 ,p_component_key => l_key
814 ,p_merge_impact => p_merge_impact
815 ,p_event_class_code => p_event_class_code
816 ,p_event_type_code => p_event_type_code
817 ,p_component_owner_code => p_line_defn_owner_code
818 ,p_component_code => p_line_defn_code);
819
820 record_updated_header_assgn
821 (p_product_rule_type_code => p_product_rule_type_code
822 ,p_product_rule_code => p_product_rule_code
823 ,p_event_class_code => p_event_class_code
824 ,p_event_type_code => p_event_type_code
825 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
826 END IF;
827
828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
829 trace(p_msg => 'END of function record_updated_jld_assgn',
830 p_module => l_log_module,
831 p_level => C_LEVEL_PROCEDURE);
832 END IF;
833 EXCEPTION
834 WHEN xla_exceptions_pkg.application_exception THEN
835 RAISE;
836 WHEN OTHERS THEN
837 xla_exceptions_pkg.raise_message
838 (p_location => l_log_module);
839 END record_updated_jld_assgn;
840
841
842 --=============================================================================
843 --
844 -- Name: record_updated_jld
845 -- Description: Determine the components that has assigned the JLD that is
846 -- modified, and record the changes for those components.
847 --
848 --=============================================================================
849 PROCEDURE record_updated_jld
850 (p_event_class_code VARCHAR2
851 ,p_event_type_code VARCHAR2
852 ,p_line_definition_owner_code VARCHAR2
853 ,p_line_definition_code VARCHAR2)
854 IS
855 CURSOR c_assgns IS
856 SELECT w.product_rule_type_code
857 , w.product_rule_code
858 FROM xla_aad_line_defn_assgns w
859 , xla_aad_line_defn_assgns s
860 WHERE s.application_id = g_application_id
861 AND s.amb_context_code = g_staging_context_code
862 AND s.product_rule_type_code = w.product_rule_type_code
863 AND s.product_rule_code = w.product_rule_code
864 AND s.event_class_code = w.event_class_code
865 AND s.event_type_code = w.event_type_code
866 AND s.line_definition_owner_code = w.line_definition_owner_code
867 AND s.line_definition_code = w.line_definition_code
868 AND w.application_id = g_application_id
869 AND w.amb_context_code = g_amb_context_code
870 AND w.event_class_code = p_event_class_code
871 AND w.event_type_code = p_event_type_code
872 AND w.line_definition_owner_code = p_line_definition_owner_code
873 AND w.line_definition_code = p_line_definition_code;
874
875 l_key VARCHAR2(240);
876 l_log_module VARCHAR2(240);
877 BEGIN
878 IF g_log_enabled THEN
879 l_log_module := C_DEFAULT_MODULE||'.record_updated_jld';
880 END IF;
881
882 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
883 trace(p_msg => 'BEGIN of function record_updated_jld: '||
884 'p_event_class_code = '||p_event_class_code||
885 ', p_event_type_code = '||p_event_type_code||
886 ', p_line_definition_owner_code = '||p_line_definition_owner_code||
887 ', p_line_definition_code = '||p_line_definition_code,
888 p_module => l_log_module,
889 p_level => C_LEVEL_PROCEDURE);
890 END IF;
891
892 l_key := p_event_class_code||C_CHAR||
893 p_event_type_code||C_CHAR||
894 p_line_definition_owner_code||C_CHAR||
895 p_line_definition_code;
896
897 IF (NOT key_exists('JLD'||C_CHAR||l_key)) THEN
898 FOR l_assgn IN c_assgns LOOP
899
900 record_updated_jld_assgn
901 (p_product_rule_type_code => l_assgn.product_rule_type_code
902 ,p_product_rule_code => l_assgn.product_rule_code
903 ,p_event_class_code => p_event_class_code
904 ,p_event_type_code => p_event_type_code
905 ,p_line_defn_owner_code => p_line_definition_owner_code
906 ,p_line_defn_code => p_line_definition_code
907 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
908
909 END LOOP;
910
911 END IF;
912
913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
914 trace(p_msg => 'END of function record_updated_jld',
915 p_module => l_log_module,
916 p_level => C_LEVEL_PROCEDURE);
917 END IF;
918
919 EXCEPTION
920 WHEN xla_exceptions_pkg.application_exception THEN
921 RAISE;
922 WHEN OTHERS THEN
923 xla_exceptions_pkg.raise_message
924 (p_location => l_log_module);
925 END record_updated_jld;
926
927 --=============================================================================
928 --
929 --
930 --
931 --=============================================================================
932 PROCEDURE record_updated_line_assgn
933 (p_event_class_code VARCHAR2
934 ,p_event_type_code VARCHAR2
935 ,p_line_definition_owner_code VARCHAR2
936 ,p_line_definition_code VARCHAR2
937 ,p_accounting_line_type_code VARCHAR2
938 ,p_accounting_line_code VARCHAR2
939 ,p_merge_impact VARCHAR2)
940 IS
941 l_parent_key VARCHAR2(240);
942 l_key VARCHAR2(240);
943 l_log_module VARCHAR2(240);
944 BEGIN
945 IF g_log_enabled THEN
946 l_log_module := C_DEFAULT_MODULE||'.record_updated_line_assgn';
947 END IF;
948
949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
950 trace(p_msg => 'BEGIN of function record_updated_line_assgn: '||
951 'p_event_class_code = '||p_event_class_code||
952 ', p_event_type_code = '||p_event_type_code||
953 ', p_line_definition_owner_code = '||p_line_definition_owner_code||
954 ', p_line_definition_code = '||p_line_definition_code||
955 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
956 ', p_accounting_line_code = '||p_accounting_line_code,
957 p_module => l_log_module,
958 p_level => C_LEVEL_PROCEDURE);
959 END IF;
960
961 l_parent_key := p_event_class_code||C_CHAR||
962 p_event_type_code||C_CHAR||
963 p_line_definition_owner_code||C_CHAR||
964 p_line_definition_code;
965
966 l_key := l_parent_key||C_CHAR||
967 p_accounting_line_type_code||C_CHAR||
968 p_accounting_line_code;
969
970 IF (NOT key_exists('LNA'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
971 record_updated_component
972 (p_parent_component_type => 'AMB_JLD'
973 ,p_parent_component_key => l_parent_key
974 ,p_component_type => 'AMB_LINE_ASSIGNMENT'
975 ,p_component_key => l_key
976 ,p_merge_impact => p_merge_impact
977 ,p_event_class_code => p_event_class_code
978 ,p_event_type_code => NULL
979 ,p_component_owner_code => p_accounting_line_type_code
980 ,p_component_code => p_accounting_line_code);
981
982 record_updated_jld
983 (p_event_class_code => p_event_class_code
984 ,p_event_type_code => p_event_type_code
985 ,p_line_definition_owner_code => p_line_definition_owner_code
986 ,p_line_definition_code => p_line_definition_code);
987
988 END IF;
989
990 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
991 trace(p_msg => 'END of function record_updated_line_assgn',
992 p_module => l_log_module,
993 p_level => C_LEVEL_PROCEDURE);
994 END IF;
995
996 EXCEPTION
997 WHEN xla_exceptions_pkg.application_exception THEN
998 RAISE;
999 WHEN OTHERS THEN
1000 xla_exceptions_pkg.raise_message
1001 (p_location => l_log_module);
1002 END record_updated_line_assgn;
1003
1004 --=============================================================================
1005 --
1006 --
1007 --
1008 --=============================================================================
1009 PROCEDURE record_updated_mpa_assgn
1010 (p_event_class_code VARCHAR2
1011 ,p_event_type_code VARCHAR2
1012 ,p_line_definition_owner_code VARCHAR2
1013 ,p_line_definition_code VARCHAR2
1014 ,p_accounting_line_type_code VARCHAR2
1015 ,p_accounting_line_code VARCHAR2
1016 ,p_merge_impact VARCHAR2)
1017 IS
1018 l_key VARCHAR2(240);
1019 l_log_module VARCHAR2(240);
1020 BEGIN
1021 IF g_log_enabled THEN
1022 l_log_module := C_DEFAULT_MODULE||'.record_updated_mpa_assgn';
1023 END IF;
1024
1025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1026 trace(p_msg => 'BEGIN of function record_updated_mpa_assgn: '||
1027 'p_event_class_code = '||p_event_class_code||
1028 ', p_event_type_code = '||p_event_type_code||
1029 ', p_line_definition_owner_code = '||p_line_definition_owner_code||
1030 ', p_line_definition_code = '||p_line_definition_code||
1031 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
1032 ', p_accounting_line_code = '||p_accounting_line_code,
1033 p_module => l_log_module,
1034 p_level => C_LEVEL_PROCEDURE);
1035 END IF;
1036
1037 l_key := p_event_class_code||C_CHAR||
1038 p_event_type_code||C_CHAR||
1039 p_line_definition_owner_code||C_CHAR||
1040 p_line_definition_code||C_CHAR||
1041 p_accounting_line_type_code||C_CHAR||
1042 p_accounting_line_code;
1043
1044 IF (NOT key_exists('MPAA'||C_CHAR||l_key)) THEN
1045 record_updated_component
1046 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
1047 ,p_parent_component_key => l_key
1048 ,p_component_type => 'AMB_MPA_ASSIGNMENT'
1049 ,p_component_key => l_key||C_CHAR||'MPA'
1050 ,p_merge_impact => p_merge_impact
1051 ,p_event_class_code => NULL
1052 ,p_event_type_code => NULL
1053 ,p_component_owner_code => NULL
1054 ,p_component_code => NULL);
1055
1056 record_updated_line_assgn
1057 (p_event_class_code => p_event_class_code
1058 ,p_event_type_code => p_event_type_code
1059 ,p_line_definition_owner_code => p_line_definition_owner_code
1060 ,p_line_definition_code => p_line_definition_code
1061 ,p_accounting_line_type_code => p_accounting_line_type_code
1062 ,p_accounting_line_code => p_accounting_line_code
1063 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
1064
1065 END IF;
1066
1067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1068 trace(p_msg => 'END of function record_updated_mpa_assgn',
1069 p_module => l_log_module,
1070 p_level => C_LEVEL_PROCEDURE);
1071 END IF;
1072
1073 EXCEPTION
1074 WHEN xla_exceptions_pkg.application_exception THEN
1075 RAISE;
1076 WHEN OTHERS THEN
1077 xla_exceptions_pkg.raise_message
1078 (p_location => l_log_module);
1079 END record_updated_mpa_assgn;
1080
1081 --=============================================================================
1082 --
1083 --
1084 --
1085 --=============================================================================
1086 PROCEDURE record_updated_mpa_line_assgn
1087 (p_event_class_code VARCHAR2
1088 ,p_event_type_code VARCHAR2
1089 ,p_line_definition_owner_code VARCHAR2
1090 ,p_line_definition_code VARCHAR2
1091 ,p_accounting_line_type_code VARCHAR2
1092 ,p_accounting_line_code VARCHAR2
1093 ,p_mpa_acct_line_type_code VARCHAR2
1094 ,p_mpa_acct_line_code VARCHAR2
1095 ,p_merge_impact VARCHAR2)
1096 IS
1097 l_parent_key VARCHAR2(240);
1098 l_key VARCHAR2(240);
1099 l_log_module VARCHAR2(240);
1100 BEGIN
1101 IF g_log_enabled THEN
1102 l_log_module := C_DEFAULT_MODULE||'.record_updated_mpa_line_assgn';
1103 END IF;
1104
1105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1106 trace(p_msg => 'BEGIN of function record_updated_mpa_line_assgn: '||
1107 'p_event_class_code = '||p_event_class_code||
1108 ', p_event_type_code = '||p_event_type_code||
1109 ', p_line_definition_owner_code = '||p_line_definition_owner_code||
1110 ', p_line_definition_code = '||p_line_definition_code||
1111 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
1112 ', p_accounting_line_code = '||p_accounting_line_code||
1113 ', p_mpa_acct_line_type_code = '||p_mpa_acct_line_type_code||
1114 ', p_mpa_acct_line_code = '||p_mpa_acct_line_code,
1115 p_module => l_log_module,
1116 p_level => C_LEVEL_PROCEDURE);
1117 END IF;
1118
1119 l_parent_key := p_event_class_code||C_CHAR||
1120 p_event_type_code||C_CHAR||
1121 p_line_definition_owner_code||C_CHAR||
1122 p_line_definition_code||C_CHAR||
1123 p_accounting_line_type_code||C_CHAR||
1124 p_accounting_line_code||C_CHAR||
1125 'MPA';
1126
1127 l_key := l_parent_key||C_CHAR||
1128 p_mpa_acct_line_type_code||C_CHAR||
1129 p_mpa_acct_line_code;
1130
1131 IF (NOT key_exists('MPALNA'||C_CHAR||l_key)) THEN
1132 record_updated_component
1133 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
1134 ,p_parent_component_key => l_parent_key
1135 ,p_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
1136 ,p_component_key => l_key
1137 ,p_event_class_code => p_event_class_code
1138 ,p_component_owner_code => p_mpa_acct_line_type_code
1139 ,p_component_code => p_mpa_acct_line_code
1140 ,p_merge_impact => p_merge_impact);
1141
1142 record_updated_mpa_assgn
1143 (p_event_class_code => p_event_class_code
1144 ,p_event_type_code => p_event_type_code
1145 ,p_line_definition_owner_code => p_line_definition_owner_code
1146 ,p_line_definition_code => p_line_definition_code
1147 ,p_accounting_line_type_code => p_accounting_line_type_code
1148 ,p_accounting_line_code => p_accounting_line_code
1149 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
1150
1151 END IF;
1152
1153 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1154 trace(p_msg => 'END of function record_updated_mpa_line_assgn',
1155 p_module => l_log_module,
1156 p_level => C_LEVEL_PROCEDURE);
1157 END IF;
1158
1159 EXCEPTION
1160 WHEN xla_exceptions_pkg.application_exception THEN
1161 RAISE;
1162 WHEN OTHERS THEN
1163 xla_exceptions_pkg.raise_message
1164 (p_location => l_log_module);
1165 END record_updated_mpa_line_assgn;
1166
1167 --=============================================================================
1168 --
1169 --
1170 --
1171 --=============================================================================
1172 PROCEDURE record_updated_assignment
1173 (p_parent_component_type IN VARCHAR2
1174 ,p_product_rule_type_code IN VARCHAR2
1175 ,p_product_rule_code IN VARCHAR2
1176 ,p_event_class_code IN VARCHAR2
1177 ,p_event_type_code IN VARCHAR2
1178 ,p_line_definition_owner_code IN VARCHAR2
1179 ,p_line_definition_code IN VARCHAR2
1180 ,p_accounting_line_type_code IN VARCHAR2
1181 ,p_accounting_line_code IN VARCHAR2
1182 ,p_mpa_acct_line_type_code IN VARCHAR2
1183 ,p_mpa_acct_line_code IN VARCHAR2
1184 ,p_merge_impact IN VARCHAR2
1185 ,x_parent_key IN OUT NOCOPY VARCHAR2)
1186 IS
1187 l_log_module VARCHAR2(240);
1188 BEGIN
1189 IF g_log_enabled THEN
1190 l_log_module := C_DEFAULT_MODULE||'.record_updated_assignment';
1191 END IF;
1192
1193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1194 trace(p_msg => 'BEGIN of function record_updated_assignment',
1195 p_module => l_log_module,
1196 p_level => C_LEVEL_PROCEDURE);
1197 END IF;
1198
1199 IF (p_parent_component_type = 'AMB_AAD_EVENT_TYPE') THEN
1200 x_parent_key := p_product_rule_type_code||C_CHAR||
1201 p_product_rule_code||C_CHAR||
1202 p_event_class_code||C_CHAR||
1203 p_event_type_code;
1204
1205 record_updated_header_assgn
1206 (p_product_rule_type_code => p_product_rule_type_code
1207 ,p_product_rule_code => p_product_rule_code
1208 ,p_event_class_code => p_event_class_code
1209 ,p_event_type_code => p_event_type_code
1210 ,p_merge_impact => p_merge_impact);
1211
1212 ELSIF (p_parent_component_type = 'AMB_LINE_ASSIGNMENT') THEN
1213 x_parent_key := p_event_class_code||C_CHAR||
1214 p_event_type_code||C_CHAR||
1215 p_line_definition_owner_code||C_CHAR||
1216 p_line_definition_code||C_CHAR||
1217 p_accounting_line_type_code||C_CHAR||
1218 p_accounting_line_code;
1219
1220 record_updated_line_assgn
1221 (p_event_class_code => p_event_class_code
1222 ,p_event_type_code => p_event_type_code
1223 ,p_line_definition_owner_code => p_line_definition_owner_code
1224 ,p_line_definition_code => p_line_definition_code
1225 ,p_accounting_line_type_code => p_accounting_line_type_code
1226 ,p_accounting_line_code => p_accounting_line_code
1227 ,p_merge_impact => p_merge_impact);
1228
1229 ELSIF (p_parent_component_type = 'AMB_MPA_ASSIGNMENT') THEN
1230
1231 x_parent_key := p_event_class_code||C_CHAR||
1232 p_event_type_code||C_CHAR||
1233 p_line_definition_owner_code||C_CHAR||
1234 p_line_definition_code||C_CHAR||
1235 p_accounting_line_type_code||C_CHAR||
1236 p_accounting_line_code||C_CHAR||
1237 'MPA';
1238
1239 record_updated_mpa_assgn
1240 (p_event_class_code => p_event_class_code
1241 ,p_event_type_code => p_event_type_code
1242 ,p_line_definition_owner_code => p_line_definition_owner_code
1243 ,p_line_definition_code => p_line_definition_code
1244 ,p_accounting_line_type_code => p_accounting_line_type_code
1245 ,p_accounting_line_code => p_accounting_line_code
1246 ,p_merge_impact => p_merge_impact);
1247
1248 ELSIF (p_parent_component_type = 'AMB_MPA_LINE_ASSIGNMENT') THEN
1249
1250 x_parent_key := p_event_class_code||C_CHAR||
1251 p_event_type_code||C_CHAR||
1252 p_line_definition_owner_code||C_CHAR||
1253 p_line_definition_code||C_CHAR||
1254 p_accounting_line_type_code||C_CHAR||
1255 p_accounting_line_code||C_CHAR||
1256 'MPA'||C_CHAR||
1257 p_mpa_acct_line_type_code||C_CHAR||
1258 p_mpa_acct_line_code;
1259
1260 record_updated_mpa_line_assgn
1261 (p_event_class_code => p_event_class_code
1262 ,p_event_type_code => p_event_type_code
1263 ,p_line_definition_owner_code => p_line_definition_owner_code
1264 ,p_line_definition_code => p_line_definition_code
1265 ,p_accounting_line_type_code => p_accounting_line_type_code
1266 ,p_accounting_line_code => p_accounting_line_code
1267 ,p_mpa_acct_line_type_code => p_mpa_acct_line_type_code
1268 ,p_mpa_acct_line_code => p_mpa_acct_line_code
1269 ,p_merge_impact => p_merge_impact);
1270
1271 END IF;
1272
1273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1274 trace(p_msg => 'END of function record_updated_assignment',
1275 p_module => l_log_module,
1276 p_level => C_LEVEL_PROCEDURE);
1277 END IF;
1278
1279 EXCEPTION
1280 WHEN xla_exceptions_pkg.application_exception THEN
1281 RAISE;
1282 WHEN OTHERS THEN
1283 xla_exceptions_pkg.raise_message
1284 (p_location => l_log_module);
1285 END record_updated_assignment;
1286
1287
1288
1289 --=============================================================================
1290 --
1291 --
1292 --
1293 --=============================================================================
1294 PROCEDURE record_deleted_jld
1295 (p_event_class_code VARCHAR2
1296 ,p_event_type_code VARCHAR2
1297 ,p_line_definition_owner_code VARCHAR2
1298 ,p_line_definition_code VARCHAR2)
1299 IS
1300 CURSOR c_assgns IS
1301 SELECT w.product_rule_type_code
1302 , w.product_rule_code
1303 FROM xla_aad_line_defn_assgns w
1304 LEFT OUTER JOIN xla_aad_line_defn_assgns s
1305 ON s.amb_context_code = g_staging_context_code
1306 AND s.application_id = g_application_id
1307 AND s.product_rule_type_code = w.product_rule_type_code
1308 AND s.product_rule_code = w.product_rule_code
1309 AND s.event_class_code = w.event_class_code
1310 AND s.event_type_code = w.event_type_code
1311 AND s.line_definition_owner_code = w.line_definition_owner_code
1312 AND s.line_definition_code = w.line_definition_code
1313 WHERE w.amb_context_code = g_amb_context_code
1314 AND w.application_id = g_application_id
1315 AND w.event_class_code = p_event_class_code
1316 AND w.event_type_code = p_event_type_code
1317 AND w.line_definition_owner_code = p_line_definition_owner_code
1318 AND w.line_definition_code = p_line_definition_code
1319 AND (w.event_type_code = C_OWNER_CUSTOM OR
1320 s.line_definition_owner_code IS NOT NULL);
1321
1322 l_key VARCHAR2(240);
1323 l_log_module VARCHAR2(240);
1324 BEGIN
1325 IF g_log_enabled THEN
1326 l_log_module := C_DEFAULT_MODULE||'.record_deleted_jld';
1327 END IF;
1328
1329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1330 trace(p_msg => 'BEGIN of function record_deleted_jld: '||
1331 'p_event_class_code = '||p_event_class_code||
1332 ', p_event_type_code = '||p_event_type_code||
1333 ', p_line_definition_owner_code = '||p_line_definition_owner_code||
1334 ', p_line_definition_code = '||p_line_definition_code,
1335 p_module => l_log_module,
1336 p_level => C_LEVEL_PROCEDURE);
1337 END IF;
1338
1339 l_key := p_event_class_code||C_CHAR||
1340 p_event_type_code||C_CHAR||
1341 p_line_definition_owner_code||C_CHAR||
1342 p_line_definition_code;
1343
1344 IF (NOT key_exists('JLD'||C_CHAR||l_key)) THEN
1345 FOR l_assgn IN c_assgns LOOP
1346
1347 record_updated_jld_assgn
1348 (p_product_rule_type_code => l_assgn.product_rule_type_code
1349 ,p_product_rule_code => l_assgn.product_rule_code
1350 ,p_event_class_code => p_event_class_code
1351 ,p_event_type_code => p_event_type_code
1352 ,p_line_defn_owner_code => p_line_definition_owner_code
1353 ,p_line_defn_code => p_line_definition_code
1354 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
1355
1356 END LOOP;
1357 END IF;
1358
1359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1360 trace(p_msg => 'END of function record_deleted_jld',
1361 p_module => l_log_module,
1362 p_level => C_LEVEL_PROCEDURE);
1363 END IF;
1364
1365 EXCEPTION
1366 WHEN xla_exceptions_pkg.application_exception THEN
1367 RAISE;
1368 WHEN OTHERS THEN
1369 xla_exceptions_pkg.raise_message
1370 (p_location => l_log_module);
1371 END record_deleted_jld;
1372
1373
1374
1375 --=============================================================================
1376 --
1377 --
1378 --
1379 --=============================================================================
1380 PROCEDURE record_updated_jlt
1381 (p_event_class_code VARCHAR2
1382 ,p_accounting_line_type_code VARCHAR2
1383 ,p_accounting_line_code VARCHAR2)
1384 IS
1385 CURSOR c_assgns IS
1386 SELECT 'AMB_LINE_ASSIGNMENT' parent_component_type
1387 , w.event_class_code
1388 , w.event_type_code
1389 , w.line_definition_owner_code
1390 , w.line_definition_code
1391 , w.accounting_line_type_code
1392 , w.accounting_line_code
1393 , NULL mpa_accounting_line_type_code
1394 , NULL mpa_accounting_line_code
1395 FROM xla_line_defn_jlt_assgns w
1396 , xla_line_defn_jlt_assgns s
1397 WHERE s.application_id = g_application_id
1398 AND s.amb_context_code = g_staging_context_code
1399 AND s.event_class_code = w.event_class_code
1400 AND s.event_type_code = w.event_type_code
1401 AND s.line_definition_owner_code = w.line_definition_owner_code
1402 AND s.line_definition_code = w.line_definition_code
1403 AND s.accounting_line_type_code = w.accounting_line_type_code
1404 AND s.accounting_line_code = w.accounting_line_code
1405 AND w.application_id = g_application_id
1406 AND w.amb_context_code = g_amb_context_code
1407 AND w.event_class_code = p_event_class_code
1408 AND w.accounting_line_type_code = p_accounting_line_type_code
1409 AND w.accounting_line_code = p_accounting_line_code
1410 UNION
1411 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
1412 , w.event_class_code
1413 , w.event_type_code
1414 , w.line_definition_owner_code
1415 , w.line_definition_code
1416 , w.accounting_line_type_code
1417 , w.accounting_line_code
1418 , w.mpa_accounting_line_type_code
1419 , w.mpa_accounting_line_code
1420 FROM xla_mpa_jlt_assgns w
1421 , xla_mpa_jlt_assgns s
1422 WHERE s.application_id = g_application_id
1423 AND s.amb_context_code = g_staging_context_code
1424 AND s.event_class_code = w.event_class_code
1425 AND s.event_type_code = w.event_type_code
1426 AND s.line_definition_owner_code = w.line_definition_owner_code
1427 AND s.line_definition_code = w.line_definition_code
1428 AND s.accounting_line_type_code = w.accounting_line_type_code
1429 AND s.accounting_line_code = w.accounting_line_code
1430 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
1431 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
1432 AND w.application_id = g_application_id
1433 AND w.amb_context_code = g_amb_context_code
1434 AND w.event_class_code = p_event_class_code
1435 AND w.mpa_accounting_line_type_code = p_accounting_line_type_code
1436 AND w.mpa_accounting_line_code = p_accounting_line_code;
1437
1438 l_parent_key VARCHAR2(240);
1439 l_key VARCHAR2(240);
1440 l_log_module VARCHAR2(240);
1441 BEGIN
1442 IF g_log_enabled THEN
1443 l_log_module := C_DEFAULT_MODULE||'.record_updated_jlt';
1444 END IF;
1445
1446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1447 trace(p_msg => 'BEGIN of function record_updated_jlt: '||
1448 'p_event_class_code = '||p_event_class_code||
1449 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
1450 ', p_accounting_line_code = '||p_accounting_line_code,
1451 p_module => l_log_module,
1452 p_level => C_LEVEL_PROCEDURE);
1453 END IF;
1454
1455 l_key := p_event_class_code||C_CHAR||
1456 p_accounting_line_type_code||C_CHAR||
1457 p_accounting_line_code;
1458
1459 IF (NOT key_exists('JLT'||C_CHAR||l_key)) THEN
1460 FOR l_assgn IN c_assgns LOOP
1461
1462 record_updated_assignment
1463 (p_parent_component_type => l_assgn.parent_component_type
1464 ,p_product_rule_type_code => NULL
1465 ,p_product_rule_code => NULL
1466 ,p_event_class_code => l_assgn.event_class_code
1467 ,p_event_type_code => l_assgn.event_type_code
1468 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
1469 ,p_line_definition_code => l_assgn.line_definition_code
1470 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
1471 ,p_accounting_line_code => l_assgn.accounting_line_code
1472 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
1473 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
1474 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
1475 ,x_parent_key => l_parent_key);
1476
1477 record_updated_component
1478 (p_parent_component_type => l_assgn.parent_component_type
1479 ,p_parent_component_key => l_parent_key
1480 ,p_component_type => 'AMB_JLT'
1481 ,p_component_key => l_key
1482 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
1483 ,p_event_class_code => p_event_class_code
1484 ,p_component_owner_code => p_accounting_line_type_code
1485 ,p_component_code => p_accounting_line_code);
1486
1487 END LOOP;
1488 END IF;
1489
1490 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1491 trace(p_msg => 'END of function record_updated_jlt',
1492 p_module => l_log_module,
1493 p_level => C_LEVEL_PROCEDURE);
1494 END IF;
1495
1496 EXCEPTION
1497 WHEN xla_exceptions_pkg.application_exception THEN
1498 RAISE;
1499 WHEN OTHERS THEN
1500 xla_exceptions_pkg.raise_message
1501 (p_location => l_log_module);
1502 END record_updated_jlt;
1503
1504 --=============================================================================
1505 --
1506 --
1507 --
1508 --=============================================================================
1509 PROCEDURE record_updated_jlt_acct_attr
1510 (p_event_class_code VARCHAR2
1511 ,p_accounting_line_type_code VARCHAR2
1512 ,p_accounting_line_code VARCHAR2
1513 ,p_accounting_attribute_code VARCHAR2
1514 ,p_merge_impact VARCHAR2)
1515 IS
1516 l_parent_key VARCHAR2(240);
1517 l_key VARCHAR2(240);
1518 l_log_module VARCHAR2(240);
1519 BEGIN
1520 IF g_log_enabled THEN
1521 l_log_module := C_DEFAULT_MODULE||'.record_updated_jlt_acct_attr';
1522 END IF;
1523
1524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1525 trace(p_msg => 'BEGIN of function record_updated_jlt_acct_attr: '||
1526 'p_event_class_code = '||p_event_class_code||
1527 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
1528 ', p_accounting_line_code = '||p_accounting_line_code||
1529 ', p_accounting_attribute_code = '||p_accounting_attribute_code,
1530 p_module => l_log_module,
1531 p_level => C_LEVEL_PROCEDURE);
1532 END IF;
1533
1534 l_parent_key := p_event_class_code||C_CHAR||
1535 p_accounting_line_type_code||C_CHAR||
1536 p_accounting_line_code;
1537
1538 l_key := p_accounting_attribute_code;
1539
1540 IF (NOT key_exists('JAA'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
1541 record_updated_jlt
1542 (p_event_class_code => p_event_class_code
1543 ,p_accounting_line_type_code => p_accounting_line_type_code
1544 ,p_accounting_line_code => p_accounting_line_code);
1545
1546 record_updated_component
1547 (p_parent_component_type => 'AMB_JLT'
1548 ,p_parent_component_key => l_parent_key
1549 ,p_component_type => 'AMB_JLT_ACCT_ATTR'
1550 ,p_component_key => l_key
1551 ,p_merge_impact => p_merge_impact
1552 ,p_component_code => p_accounting_attribute_code);
1553 END IF;
1554
1555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1556 trace(p_msg => 'END of function record_updated_jlt_acct_attr',
1557 p_module => l_log_module,
1558 p_level => C_LEVEL_PROCEDURE);
1559 END IF;
1560
1561 EXCEPTION
1562 WHEN xla_exceptions_pkg.application_exception THEN
1563 RAISE;
1564 WHEN OTHERS THEN
1565 xla_exceptions_pkg.raise_message
1566 (p_location => l_log_module);
1567 END record_updated_jlt_acct_attr;
1568
1569
1570 --=============================================================================
1571 --
1572 --
1573 --
1574 --=============================================================================
1575 PROCEDURE record_deleted_jlt
1576 (p_event_class_code VARCHAR2
1577 ,p_accounting_line_type_code VARCHAR2
1578 ,p_accounting_line_code VARCHAR2)
1579 IS
1580 CURSOR c_assgns IS
1581 SELECT 'AMB_LINE_ASSIGNMENT' parent_component_type
1582 , w.event_class_code
1583 , w.event_type_code
1584 , w.line_definition_owner_code
1585 , w.line_definition_code
1586 , w.accounting_line_type_code
1587 , w.accounting_line_code
1588 , NULL mpa_accounting_line_type_code
1589 , NULL mpa_accounting_line_code
1590 FROM xla_line_defn_jlt_assgns w
1591 LEFT OUTER JOIN xla_line_defn_jlt_assgns s
1592 ON s.amb_context_code = g_staging_context_code
1593 AND s.application_id = g_application_id
1594 AND s.event_class_code = w.event_class_code
1595 AND s.event_type_code = w.event_type_code
1596 AND s.line_definition_owner_code = w.line_definition_owner_code
1597 AND s.line_definition_code = w.line_definition_code
1598 AND s.accounting_line_type_code = w.accounting_line_type_code
1599 AND s.accounting_line_code = w.accounting_line_code
1600 WHERE w.application_id = g_application_id
1601 AND w.amb_context_code = g_amb_context_code
1602 AND w.event_class_code = p_event_class_code
1603 AND w.accounting_line_type_code = p_accounting_line_type_code
1604 AND w.accounting_line_code = p_accounting_line_code
1605 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
1606 s.line_definition_owner_code IS NOT NULL)
1607 UNION
1608 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
1609 , w.event_class_code
1610 , w.event_type_code
1611 , w.line_definition_owner_code
1612 , w.line_definition_code
1613 , w.accounting_line_type_code
1614 , w.accounting_line_code
1615 , w.mpa_accounting_line_type_code
1616 , w.mpa_accounting_line_code
1617 FROM xla_mpa_jlt_assgns w
1618 LEFT OUTER JOIN xla_mpa_jlt_assgns s
1619 ON s.amb_context_code = g_staging_context_code
1620 AND s.application_id = g_application_id
1621 AND s.event_class_code = w.event_class_code
1622 AND s.event_type_code = w.event_type_code
1623 AND s.line_definition_owner_code = w.line_definition_owner_code
1624 AND s.line_definition_code = w.line_definition_code
1625 AND s.accounting_line_type_code = w.accounting_line_type_code
1626 AND s.accounting_line_code = w.accounting_line_code
1627 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
1628 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
1629 WHERE w.application_id = g_application_id
1630 AND w.amb_context_code = g_amb_context_code
1631 AND w.event_class_code = p_event_class_code
1632 AND w.mpa_accounting_line_type_code = p_accounting_line_type_code
1633 AND w.mpa_accounting_line_code = p_accounting_line_code
1634 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
1635 s.line_definition_owner_code IS NOT NULL);
1636
1637 l_parent_key VARCHAR2(240);
1638 l_key VARCHAR2(240);
1639 l_log_module VARCHAR2(240);
1640 BEGIN
1641 IF g_log_enabled THEN
1642 l_log_module := C_DEFAULT_MODULE||'.record_deleted_jlt';
1643 END IF;
1644
1645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1646 trace(p_msg => 'BEGIN of function record_deleted_jlt: '||
1647 'p_event_class_code = '||p_event_class_code||
1648 ', p_accounting_line_type_code = '||p_accounting_line_type_code||
1649 ', p_accounting_line_code = '||p_accounting_line_code,
1650 p_module => l_log_module,
1651 p_level => C_LEVEL_PROCEDURE);
1652 END IF;
1653
1654 l_key := p_event_class_code||C_CHAR||
1655 p_accounting_line_type_code||C_CHAR||
1656 p_accounting_line_code;
1657
1658 IF (NOT key_exists('JLT'||C_CHAR||l_key)) THEN
1659 FOR l_assgn IN c_assgns LOOP
1660
1661 record_updated_assignment
1662 (p_parent_component_type => l_assgn.parent_component_type
1663 ,p_product_rule_type_code => NULL
1664 ,p_product_rule_code => NULL
1665 ,p_event_class_code => l_assgn.event_class_code
1666 ,p_event_type_code => l_assgn.event_type_code
1667 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
1668 ,p_line_definition_code => l_assgn.line_definition_code
1669 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
1670 ,p_accounting_line_code => l_assgn.accounting_line_code
1671 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
1672 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
1673 ,p_merge_impact => C_MERGE_IMPACT_DELETED
1674 ,x_parent_key => l_parent_key);
1675
1676 END LOOP;
1677 END IF;
1678
1679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1680 trace(p_msg => 'END of function record_deleted_jlt',
1681 p_module => l_log_module,
1682 p_level => C_LEVEL_PROCEDURE);
1683 END IF;
1684
1685 EXCEPTION
1686 WHEN xla_exceptions_pkg.application_exception THEN
1687 RAISE;
1688 WHEN OTHERS THEN
1689 xla_exceptions_pkg.raise_message
1690 (p_location => l_log_module);
1691 END record_deleted_jlt;
1692
1693 --=============================================================================
1694 --
1695 --
1696 --
1697 --=============================================================================
1698 PROCEDURE record_updated_adr_assgn
1699 (p_parent_component_type VARCHAR2
1700 ,p_event_class_code VARCHAR2
1701 ,p_event_type_code VARCHAR2
1702 ,p_line_definition_owner_code VARCHAR2
1703 ,p_line_definition_code VARCHAR2
1704 ,p_accounting_line_type_code VARCHAR2
1705 ,p_accounting_line_code VARCHAR2
1706 ,p_mpa_acct_line_type_code VARCHAR2
1707 ,p_mpa_acct_line_code VARCHAR2
1708 ,p_flexfield_segment_code VARCHAR2
1709 ,p_side_code VARCHAR2
1710 ,p_segment_rule_appl_id INTEGER
1711 ,p_segment_rule_type_code VARCHAR2
1712 ,p_segment_rule_code VARCHAR2
1713 ,p_accounting_coa_id INTEGER
1714 ,p_merge_impact VARCHAR2)
1715 IS
1716 l_key VARCHAR2(240);
1717 l_adr_key VARCHAR2(240);
1718 l_parent_key VARCHAR2(240);
1719 l_parent_component_type2 VARCHAR2(30);
1720 l_log_module VARCHAR2(240);
1721 BEGIN
1722 IF g_log_enabled THEN
1723 l_log_module := C_DEFAULT_MODULE||'.record_updated_adr_assgn';
1724 END IF;
1725
1726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1727 trace(p_msg => 'BEGIN of function record_updated_adr_assgn: '||
1728 'p_segment_rule_type_code = '||p_segment_rule_type_code||
1729 ', p_segment_rule_code = '||p_segment_rule_code,
1730 p_module => l_log_module,
1731 p_level => C_LEVEL_PROCEDURE);
1732 END IF;
1733
1734 l_adr_key := p_segment_rule_appl_id||C_CHAR||
1735 p_segment_rule_type_code||C_CHAR||
1736 p_segment_rule_code;
1737
1738 IF (p_parent_component_type = 'AMB_ADR_ASSGN') THEN
1739 l_parent_component_type2 := 'AMB_LINE_ASSIGNMENT';
1740 ELSIF (p_parent_component_type = 'AMB_MPA_ADR_ASSGN') THEN
1741 l_parent_component_type2 := 'AMB_MPA_LINE_ASSIGNMENT';
1742 END IF;
1743
1744 record_updated_assignment
1745 (p_parent_component_type => l_parent_component_type2
1746 ,p_product_rule_type_code => NULL
1747 ,p_product_rule_code => NULL
1748 ,p_event_class_code => p_event_class_code
1749 ,p_event_type_code => p_event_type_code
1750 ,p_line_definition_owner_code => p_line_definition_owner_code
1751 ,p_line_definition_code => p_line_definition_code
1752 ,p_accounting_line_type_code => p_accounting_line_type_code
1753 ,p_accounting_line_code => p_accounting_line_code
1754 ,p_mpa_acct_line_type_code => p_mpa_acct_line_type_code
1755 ,p_mpa_acct_line_code => p_mpa_acct_line_code
1756 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
1757 ,x_parent_key => l_parent_key);
1758
1759 IF (p_parent_component_type = 'AMB_ADR_ASSGN') THEN
1760
1761 l_key := l_parent_key||C_CHAR||
1762 p_flexfield_segment_code||C_CHAR||
1763 p_side_code;
1764
1765 ELSIF (p_parent_component_type = 'AMB_MPA_ADR_ASSGN') THEN
1766
1767 l_key := l_parent_key||C_CHAR||
1768 p_flexfield_segment_code;
1769
1770 END IF;
1771
1772 record_updated_component
1773 (p_parent_component_type => l_parent_component_type2
1774 ,p_parent_component_key => l_parent_key
1775 ,p_component_type => p_parent_component_type
1776 ,p_component_key => l_key
1777 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
1778 ,p_event_class_code => NULL
1779 ,p_event_type_code => NULL
1780 ,p_component_owner_code => TO_CHAR(p_accounting_coa_id)
1781 ,p_component_code => p_flexfield_segment_code);
1782
1783 record_updated_component
1784 (p_parent_component_type => p_parent_component_type
1785 ,p_parent_component_key => l_key
1786 ,p_component_type => 'AMB_ADR'
1787 ,p_component_key => l_adr_key
1788 ,p_merge_impact => p_merge_impact
1789 ,p_event_class_code => NULL
1790 ,p_event_type_code => NULL
1791 ,p_component_appl_id => p_segment_rule_appl_id
1792 ,p_component_owner_code => p_segment_rule_type_code
1793 ,p_component_code => p_segment_rule_code);
1794
1795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1796 trace(p_msg => 'END of function record_updated_adr_assgn',
1797 p_module => l_log_module,
1798 p_level => C_LEVEL_PROCEDURE);
1799 END IF;
1800
1801 EXCEPTION
1802 WHEN xla_exceptions_pkg.application_exception THEN
1803 RAISE;
1804 WHEN OTHERS THEN
1805 xla_exceptions_pkg.raise_message
1806 (p_location => l_log_module);
1807 END record_updated_adr_assgn;
1808
1809
1810 --=============================================================================
1811 --
1812 --
1813 --
1814 --=============================================================================
1815 PROCEDURE record_updated_adr
1816 (p_segment_rule_appl_id INTEGER
1817 ,p_segment_rule_type_code VARCHAR2
1818 ,p_segment_rule_code VARCHAR2)
1819 IS
1820 CURSOR c_assgns IS
1821 SELECT 'AMB_ADR_ASSGN' parent_component_type
1822 , w.event_class_code
1823 , w.event_type_code
1824 , w.line_definition_owner_code
1825 , w.line_definition_code
1826 , w.accounting_line_type_code
1827 , w.accounting_line_code
1828 , NULL mpa_accounting_line_type_code
1829 , NULL mpa_accounting_line_code
1830 , w.flexfield_segment_code
1831 , w.side_code
1832 , l.accounting_coa_id
1833 FROM xla_line_defn_adr_assgns w
1834 , xla_line_defn_adr_assgns s
1835 , xla_line_definitions_b l
1836 WHERE s.application_id = g_application_id
1837 AND s.amb_context_code = g_staging_context_code
1838 AND s.event_class_code = w.event_class_code
1839 AND s.event_type_code = w.event_type_code
1840 AND s.line_definition_owner_code = w.line_definition_owner_code
1841 AND s.line_definition_code = w.line_definition_code
1842 AND s.flexfield_segment_code = w.flexfield_segment_code
1843 AND s.side_code = w.side_code
1844 AND s.segment_rule_type_code = w.segment_rule_type_code
1845 AND s.segment_rule_code = w.segment_rule_code
1846 AND l.application_id = g_application_id
1847 AND l.amb_context_code = g_staging_context_code
1848 AND l.event_class_code = w.event_class_code
1849 AND l.event_type_code = w.event_type_code
1850 AND l.line_definition_owner_code = w.line_definition_owner_code
1851 AND l.line_definition_code = w.line_definition_code
1852 AND w.application_id = g_application_id
1853 AND w.amb_context_code = g_amb_context_code
1854 AND w.segment_rule_type_code = p_segment_rule_type_code
1855 AND w.segment_rule_code = p_segment_rule_code
1856 UNION
1857 SELECT 'AMB_MPA_ADR_ASSGN' parent_component_type
1858 , w.event_class_code
1859 , w.event_type_code
1860 , w.line_definition_owner_code
1861 , w.line_definition_code
1862 , w.accounting_line_type_code
1863 , w.accounting_line_code
1864 , w.mpa_accounting_line_type_code
1865 , w.mpa_accounting_line_code
1866 , w.flexfield_segment_code
1867 , NULL
1868 , l.accounting_coa_id
1869 FROM xla_mpa_jlt_adr_assgns w
1870 , xla_mpa_jlt_adr_assgns s
1871 , xla_mpa_jlt_assgns j
1872 , xla_line_definitions_b l
1873 WHERE s.application_id = g_application_id
1874 AND s.amb_context_code = g_staging_context_code
1875 AND s.event_class_code = w.event_class_code
1876 AND s.event_type_code = w.event_type_code
1877 AND s.line_definition_owner_code = w.line_definition_owner_code
1878 AND s.line_definition_code = w.line_definition_code
1879 AND s.accounting_line_type_code = w.accounting_line_type_code
1880 AND s.accounting_line_code = w.accounting_line_code
1881 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
1882 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
1883 AND s.flexfield_segment_code = w.flexfield_segment_code
1884 AND s.segment_rule_type_code = w.segment_rule_type_code
1885 AND s.segment_rule_code = w.segment_rule_code
1886 AND j.application_id = g_application_id
1887 AND j.amb_context_code = g_staging_context_code
1888 AND j.event_class_code = w.event_class_code
1889 AND j.event_type_code = w.event_type_code
1890 AND j.line_definition_owner_code = w.line_definition_owner_code
1891 AND j.line_definition_code = w.line_definition_code
1892 AND j.accounting_line_type_code = w.accounting_line_type_code
1893 AND j.accounting_line_code = w.accounting_line_code
1894 AND l.application_id = g_application_id
1895 AND l.amb_context_code = g_staging_context_code
1896 AND l.event_class_code = w.event_class_code
1897 AND l.event_type_code = w.event_type_code
1898 AND l.line_definition_owner_code = w.line_definition_owner_code
1899 AND l.line_definition_code = w.line_definition_code
1900 AND w.application_id = g_application_id
1901 AND w.amb_context_code = g_amb_context_code
1902 AND w.segment_rule_type_code = p_segment_rule_type_code
1903 AND w.segment_rule_code = p_segment_rule_code;
1904
1905 l_key VARCHAR2(240);
1906 l_log_module VARCHAR2(240);
1907 BEGIN
1908 IF g_log_enabled THEN
1909 l_log_module := C_DEFAULT_MODULE||'.record_updated_adr';
1910 END IF;
1911
1912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1913 trace(p_msg => 'BEGIN of function record_updated_adr: '||
1914 'p_segment_rule_type_code = '||p_segment_rule_type_code||
1915 ', p_segment_rule_code = '||p_segment_rule_code,
1916 p_module => l_log_module,
1917 p_level => C_LEVEL_PROCEDURE);
1918 END IF;
1919
1920 l_key := p_segment_rule_appl_id||C_CHAR||
1921 p_segment_rule_type_code||C_CHAR||
1922 p_segment_rule_code;
1923
1924 IF (NOT key_exists('ADR'||C_CHAR||l_key)) THEN
1925
1926 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1927 trace(p_msg => 'BEGIN LOOP: key = '||l_key,
1928 p_module => l_log_module,
1929 p_level => C_LEVEL_PROCEDURE);
1930 END IF;
1931
1932 FOR l_assgn IN c_assgns LOOP
1933
1934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1935 trace(p_msg => 'LOOP: mpa_accounting_line_code = '||l_assgn.mpa_accounting_line_code,
1936 p_module => l_log_module,
1937 p_level => C_LEVEL_PROCEDURE);
1938 END IF;
1939
1940 record_updated_adr_assgn
1941 (p_parent_component_type => l_assgn.parent_component_type
1942 ,p_event_class_code => l_assgn.event_class_code
1943 ,p_event_type_code => l_assgn.event_type_code
1944 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
1945 ,p_line_definition_code => l_assgn.line_definition_code
1946 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
1947 ,p_accounting_line_code => l_assgn.accounting_line_code
1948 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
1949 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
1950 ,p_flexfield_segment_code => l_assgn.flexfield_segment_code
1951 ,p_side_code => l_assgn.side_code
1952 ,p_segment_rule_appl_id => p_segment_rule_appl_id
1953 ,p_segment_rule_type_code => p_segment_rule_type_code
1954 ,p_segment_rule_code => p_segment_rule_code
1955 ,p_accounting_coa_id => l_assgn.accounting_coa_id
1956 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
1957
1958 END LOOP;
1959
1960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1961 trace(p_msg => 'END LOOP: key = '||l_key,
1962 p_module => l_log_module,
1963 p_level => C_LEVEL_PROCEDURE);
1964 END IF;
1965
1966 END IF;
1967
1968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1969 trace(p_msg => 'END of function record_updated_adr',
1970 p_module => l_log_module,
1971 p_level => C_LEVEL_PROCEDURE);
1972 END IF;
1973
1974 EXCEPTION
1975 WHEN xla_exceptions_pkg.application_exception THEN
1976 RAISE;
1977 WHEN OTHERS THEN
1978 xla_exceptions_pkg.raise_message
1979 (p_location => l_log_module);
1980 END record_updated_adr;
1981
1982 --=============================================================================
1983 --
1984 --
1985 --
1986 --=============================================================================
1987 PROCEDURE record_deleted_adr
1988 (p_segment_rule_appl_id INTEGER
1989 ,p_segment_rule_type_code VARCHAR2
1990 ,p_segment_rule_code VARCHAR2)
1991 IS
1992 CURSOR c_assgns IS
1993 SELECT 'AMB_ADR_ASSGN' parent_component_type
1994 , w.event_class_code
1995 , w.event_type_code
1996 , w.line_definition_owner_code
1997 , w.line_definition_code
1998 , w.accounting_line_type_code
1999 , w.accounting_line_code
2000 , NULL mpa_accounting_line_type_code
2001 , NULL mpa_accounting_line_code
2002 , w.flexfield_segment_code
2003 , w.side_code
2004 , l.accounting_coa_id
2005 FROM xla_line_defn_adr_assgns w
2006 JOIN xla_line_definitions_b l
2007 ON l.amb_context_code = g_amb_context_code
2008 AND l.application_id = g_application_id
2009 AND l.event_class_code = w.event_class_code
2010 AND l.event_type_code = w.event_type_code
2011 AND l.line_definition_owner_code = w.line_definition_owner_code
2012 AND l.line_definition_code = w.line_definition_code
2013 LEFT OUTER JOIN xla_line_defn_adr_assgns s
2014 ON s.amb_context_code = g_staging_context_code
2015 AND s.application_id = g_application_id
2016 AND s.event_class_code = w.event_class_code
2017 AND s.event_type_code = w.event_type_code
2018 AND s.line_definition_owner_code = w.line_definition_owner_code
2019 AND s.line_definition_code = w.line_definition_code
2020 AND s.accounting_line_type_code = w.accounting_line_type_code
2021 AND s.accounting_line_code = w.accounting_line_code
2022 AND s.flexfield_segment_code = w.flexfield_segment_code
2023 AND s.side_code = w.side_code
2024 WHERE w.application_id = g_application_id
2025 AND w.amb_context_code = g_amb_context_code
2026 AND w.segment_rule_type_code = p_segment_rule_type_code
2027 AND w.segment_rule_code = p_segment_rule_code
2028 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
2029 s.line_definition_owner_code IS NOT NULL)
2030 UNION
2031 SELECT 'AMB_MPA_ADR_ASSGN'
2032 , w.event_class_code
2033 , w.event_type_code
2034 , w.line_definition_owner_code
2035 , w.line_definition_code
2036 , w.accounting_line_type_code
2037 , w.accounting_line_code
2038 , w.mpa_accounting_line_type_code
2039 , w.mpa_accounting_line_code
2040 , w.flexfield_segment_code
2041 , NULL
2042 , l.accounting_coa_id
2043 FROM xla_mpa_jlt_adr_assgns w
2044 JOIN xla_line_definitions_b l
2045 ON l.amb_context_code = g_amb_context_code
2046 AND l.application_id = g_application_id
2047 AND l.event_class_code = w.event_class_code
2048 AND l.event_type_code = w.event_type_code
2049 AND l.line_definition_owner_code = w.line_definition_owner_code
2050 AND l.line_definition_code = w.line_definition_code
2051 JOIN xla_mpa_jlt_assgns j
2052 ON j.amb_context_code = g_amb_context_code
2053 AND j.application_id = g_application_id
2054 AND j.event_class_code = w.event_class_code
2055 AND j.event_type_code = w.event_type_code
2056 AND j.line_definition_owner_code = w.line_definition_owner_code
2057 AND j.line_definition_code = w.line_definition_code
2058 AND j.accounting_line_type_code = w.accounting_line_type_code
2059 AND j.accounting_line_code = w.accounting_line_code
2060 AND j.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
2061 AND j.mpa_accounting_line_code = w.mpa_accounting_line_code
2062 LEFT OUTER JOIN xla_mpa_jlt_adr_assgns s
2063 ON s.amb_context_code = g_staging_context_code
2064 AND s.application_id = g_application_id
2065 AND s.event_class_code = w.event_class_code
2066 AND s.event_type_code = w.event_type_code
2067 AND s.line_definition_owner_code = w.line_definition_owner_code
2068 AND s.line_definition_code = w.line_definition_code
2069 AND s.accounting_line_type_code = w.accounting_line_type_code
2070 AND s.accounting_line_code = w.accounting_line_code
2071 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
2072 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
2073 AND s.flexfield_segment_code = w.flexfield_segment_code
2074 WHERE w.application_id = g_application_id
2075 AND w.amb_context_code = g_amb_context_code
2076 AND w.segment_rule_type_code = p_segment_rule_type_code
2077 AND w.segment_rule_code = p_segment_rule_code
2078 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
2079 s.line_definition_owner_code IS NOT NULL);
2080
2081 l_key VARCHAR2(240);
2082 l_log_module VARCHAR2(240);
2083 BEGIN
2084 IF g_log_enabled THEN
2085 l_log_module := C_DEFAULT_MODULE||'.record_deleted_adr';
2086 END IF;
2087
2088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2089 trace(p_msg => 'BEGIN of function record_deleted_adr: '||
2090 'p_segment_rule_type_code = '||p_segment_rule_type_code||
2091 ', p_segment_rule_code = '||p_segment_rule_code,
2092 p_module => l_log_module,
2093 p_level => C_LEVEL_PROCEDURE);
2094 END IF;
2095
2096 l_key := p_segment_rule_appl_id||C_CHAR||
2097 p_segment_rule_type_code||C_CHAR||
2098 p_segment_rule_code;
2099
2100 IF (NOT key_exists('ADR'||C_CHAR||l_key)) THEN
2101 FOR l_assgn IN c_assgns LOOP
2102
2103 record_updated_adr_assgn
2104 (p_parent_component_type => l_assgn.parent_component_type
2105 ,p_event_class_code => l_assgn.event_class_code
2106 ,p_event_type_code => l_assgn.event_type_code
2107 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
2108 ,p_line_definition_code => l_assgn.line_definition_code
2109 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
2110 ,p_accounting_line_code => l_assgn.accounting_line_code
2111 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
2112 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
2113 ,p_flexfield_segment_code => l_assgn.flexfield_segment_code
2114 ,p_side_code => l_assgn.side_code
2115 ,p_segment_rule_appl_id => p_segment_rule_appl_id
2116 ,p_segment_rule_type_code => p_segment_rule_type_code
2117 ,p_segment_rule_code => p_segment_rule_code
2118 ,p_accounting_coa_id => l_assgn.accounting_coa_id
2119 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
2120
2121 END LOOP;
2122
2123 END IF;
2124
2125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2126 trace(p_msg => 'END of function record_deleted_adr',
2127 p_module => l_log_module,
2128 p_level => C_LEVEL_PROCEDURE);
2129 END IF;
2130
2131 EXCEPTION
2132 WHEN xla_exceptions_pkg.application_exception THEN
2133 RAISE;
2134 WHEN OTHERS THEN
2135 xla_exceptions_pkg.raise_message
2136 (p_location => l_log_module);
2137 END record_deleted_adr;
2138
2139 --=============================================================================
2140 --
2141 --
2142 --
2143 --=============================================================================
2144 PROCEDURE record_updated_adr_detail
2145 (p_segment_rule_appl_id INTEGER
2146 ,p_segment_rule_type_code VARCHAR2
2147 ,p_segment_rule_code VARCHAR2
2148 ,p_user_sequence INTEGER
2149 ,p_merge_impact VARCHAR2)
2150 IS
2151 l_key VARCHAR2(240);
2152 l_log_module VARCHAR2(240);
2153 BEGIN
2154 IF g_log_enabled THEN
2155 l_log_module := C_DEFAULT_MODULE||'.record_updated_adr_detail';
2156 END IF;
2157
2158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2159 trace(p_msg => 'BEGIN of function record_updated_adr_detail: '||
2160 'p_segment_rule_type_code = '||p_segment_rule_type_code||
2161 ', p_segment_rule_code = '||p_segment_rule_code||
2162 ', p_user_sequence = '||p_user_sequence,
2163 p_module => l_log_module,
2164 p_level => C_LEVEL_PROCEDURE);
2165 END IF;
2166
2167 l_key := p_segment_rule_appl_id||C_CHAR||
2168 p_segment_rule_type_code||C_CHAR||
2169 p_segment_rule_code||C_CHAR||
2170 p_user_sequence;
2171
2172 IF (NOT key_exists('ADRD'||C_CHAR||l_key)) THEN
2173
2174 record_updated_component
2175 (p_parent_component_type => 'AMB_ADR'
2176 ,p_parent_component_key => p_segment_rule_appl_id||C_CHAR||
2177 p_segment_rule_type_code||C_CHAR||
2178 p_segment_rule_code
2179 ,p_component_type => 'AMB_ADR_DETAIL'
2180 ,p_component_key => l_key
2181 ,p_merge_impact => p_merge_impact
2182 ,p_event_class_code => NULL
2183 ,p_event_type_code => NULL
2184 ,p_component_owner_code => NULL
2185 ,p_component_code => p_user_sequence);
2186
2187 record_updated_adr
2188 (p_segment_rule_appl_id => p_segment_rule_appl_id
2189 ,p_segment_rule_type_code => p_segment_rule_type_code
2190 ,p_segment_rule_code => p_segment_rule_code);
2191 END IF;
2192
2193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2194 trace(p_msg => 'END of function record_updated_adr_detail',
2195 p_module => l_log_module,
2196 p_level => C_LEVEL_PROCEDURE);
2197 END IF;
2198
2199 EXCEPTION
2200 WHEN xla_exceptions_pkg.application_exception THEN
2201 RAISE;
2202 WHEN OTHERS THEN
2203 xla_exceptions_pkg.raise_message
2204 (p_location => l_log_module);
2205 END record_updated_adr_detail;
2206
2207 --=============================================================================
2208 --
2209 --
2210 --
2211 --=============================================================================
2212 PROCEDURE record_updated_ms
2213 (p_mapping_set_code VARCHAR2
2214 ,p_merge_impact VARCHAR2)
2215 IS
2216 CURSOR c_assgns IS
2217 SELECT application_id segment_rule_appl_id
2218 , segment_rule_type_code
2219 , segment_rule_code
2220 , user_sequence
2221 FROM xla_seg_rule_details s
2222 WHERE application_id = g_application_id
2223 AND amb_context_code = g_amb_context_code
2224 AND value_mapping_set_code = p_mapping_set_code;
2225
2226 l_parent_key VARCHAR2(240);
2227 l_key VARCHAR2(240);
2228 l_log_module VARCHAR2(240);
2229 BEGIN
2230 IF g_log_enabled THEN
2231 l_log_module := C_DEFAULT_MODULE||'.record_updated_ms';
2232 END IF;
2233
2234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2235 trace(p_msg => 'BEGIN of function record_updated_ms: '||
2236 ', p_mapping_set_code = '||p_mapping_set_code,
2237 p_module => l_log_module,
2238 p_level => C_LEVEL_PROCEDURE);
2239 END IF;
2240
2241 l_key := p_mapping_set_code;
2242
2243 IF (NOT key_exists('MS'||C_CHAR||l_key)) THEN
2244 FOR l_assgn IN c_assgns LOOP
2245
2246 l_parent_key := l_assgn.segment_rule_type_code||C_CHAR||
2247 l_assgn.segment_rule_code||C_CHAR||
2248 l_assgn.user_sequence;
2249
2250 IF (NOT key_exists('ADRMS'||C_CHAR||l_key)) THEN
2251 record_updated_component
2252 (p_parent_component_type => 'AMB_ADR_DETAIL'
2253 ,p_parent_component_key => l_parent_key
2254 ,p_component_type => 'AMB_MS'
2255 ,p_component_key => l_key
2256 ,p_merge_impact => p_merge_impact
2257 ,p_event_class_code => NULL
2258 ,p_event_type_code => NULL
2259 ,p_component_owner_code => NULL
2260 ,p_component_code => p_mapping_set_code);
2261
2262 record_updated_adr_detail
2263 (p_segment_rule_appl_id => l_assgn.segment_rule_appl_id
2264 ,p_segment_rule_type_code => l_assgn.segment_rule_type_code
2265 ,p_segment_rule_code => l_assgn.segment_rule_code
2266 ,p_user_sequence => l_assgn.user_sequence
2267 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
2268
2269 END IF;
2270 END LOOP;
2271
2272 END IF;
2273
2274 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2275 trace(p_msg => 'END of function record_updated_ms',
2276 p_module => l_log_module,
2277 p_level => C_LEVEL_PROCEDURE);
2278 END IF;
2279
2280 EXCEPTION
2281 WHEN xla_exceptions_pkg.application_exception THEN
2282 RAISE;
2283 WHEN OTHERS THEN
2284 xla_exceptions_pkg.raise_message
2285 (p_location => l_log_module);
2286 END record_updated_ms;
2287
2288 --=============================================================================
2289 --
2290 --
2291 --
2292 --=============================================================================
2293 PROCEDURE record_updated_ms_value
2294 (p_mapping_set_code VARCHAR2
2295 ,p_flexfield_assign_mode_code VARCHAR2
2296 ,p_value_set_id INTEGER
2297 ,p_view_application_id INTEGER
2298 ,p_lookup_type VARCHAR2
2299 ,p_value_constant VARCHAR2
2300 ,p_effective_date_from DATE
2301 ,p_effective_date_to DATE
2302 ,p_enabled_flag VARCHAR2
2303 ,p_input_value_type_code VARCHAR2
2304 ,p_input_value_constant VARCHAR2
2305 ,p_merge_impact VARCHAR2)
2306 IS
2307 l_key VARCHAR2(720);
2308 l_log_module VARCHAR2(240);
2309 BEGIN
2310 IF g_log_enabled THEN
2311 l_log_module := C_DEFAULT_MODULE||'.record_updated_ms_value';
2312 END IF;
2313
2314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2315 trace(p_msg => 'BEGIN of function record_updated_ms_value: '||
2316 'p_mapping_set_code = '||p_mapping_set_code||
2317 ', p_input_value_type_code = '||p_input_value_type_code||
2318 ', p_input_value_constant = '||p_input_value_constant||
2319 ', p_value_constant = '||p_value_constant||
2320 ', p_effective_date_from = '||p_effective_date_from||
2321 ', p_effective_date_to = '||p_effective_date_to||
2322 ', p_enabled_flag = '||p_enabled_flag,
2323 p_module => l_log_module,
2324 p_level => C_LEVEL_PROCEDURE);
2325 END IF;
2326
2327 l_key := p_mapping_set_code||C_CHAR||
2328 p_input_value_type_code||C_CHAR||
2329 p_input_value_constant||C_CHAR||
2330 p_value_constant||C_CHAR||
2331 TO_CHAR(p_effective_date_from,'J')||C_CHAR||
2332 TO_CHAR(p_effective_date_to,'J')||C_CHAR||
2333 p_enabled_flag;
2334
2335 record_updated_property
2336 (p_component_type => 'AMB_MS_VALUE'
2337 ,p_component_key => l_key
2338 ,p_property => 'INPUT_VALUE_TYPE'
2339 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2340 THEN p_input_value_type_code ELSE NULL END
2341 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2342 THEN p_input_value_type_code ELSE NULL END);
2343
2344 IF (p_input_value_constant IS NOT NULL) THEN
2345 record_updated_value
2346 (p_component_type => 'AMB_MS_VALUE'
2347 ,p_component_key => l_key
2348 ,p_property => 'INPUT_VALUE'
2349 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2350 THEN p_input_value_constant ELSE NULL END
2351 ,p_old_source_app_id => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2352 THEN p_value_set_id ELSE NULL END
2353 ,p_old_source_type_code => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2354 THEN p_view_application_id ELSE NULL END
2355 ,p_old_source_code => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2356 THEN p_lookup_type ELSE NULL END
2357 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2358 THEN p_input_value_constant ELSE NULL END
2359 ,p_new_source_app_id => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2360 THEN p_value_set_id ELSE NULL END
2361 ,p_new_source_type_code => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2362 THEN p_view_application_id ELSE NULL END
2363 ,p_new_source_code => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2364 THEN p_lookup_type ELSE NULL END);
2365 END IF;
2366
2367 IF (p_flexfield_assign_mode_code = 'S') THEN
2368 record_updated_property
2369 (p_component_type => 'AMB_MS_VALUE'
2370 ,p_component_key => l_key
2371 ,p_property => 'OUTPUT_VALUE'
2372 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2373 THEN p_value_constant ELSE NULL END
2374 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2375 THEN p_value_constant ELSE NULL END);
2376 END IF;
2377
2378 record_updated_property
2379 (p_component_type => 'AMB_MS_VALUE'
2380 ,p_component_key => l_key
2381 ,p_property => 'EFFECTIVE_DATE_FROM'
2382 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2383 THEN p_effective_date_from ELSE NULL END
2384 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2385 THEN p_effective_date_from ELSE NULL END);
2386
2387 record_updated_property
2388 (p_component_type => 'AMB_MS_VALUE'
2389 ,p_component_key => l_key
2390 ,p_property => 'EFFECTIVE_DATE_TO'
2391 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2392 THEN p_effective_date_to ELSE NULL END
2393 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2394 THEN p_effective_date_to ELSE NULL END);
2395
2396 record_updated_property
2397 (p_component_type => 'AMB_MS_VALUE'
2398 ,p_component_key => l_key
2399 ,p_property => 'ENABLED'
2400 ,p_old_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_DELETED
2401 THEN p_enabled_flag ELSE NULL END
2402 ,p_new_value => CASE WHEN p_merge_impact = C_MERGE_IMPACT_NEW
2403 THEN p_enabled_flag ELSE NULL END
2404 ,p_lookup_type => 'XLA_YES_NO');
2405
2406 IF (NOT key_exists('MSV'||C_CHAR||l_key)) THEN
2407 record_updated_component
2408 (p_parent_component_type => 'AMB_MS'
2409 ,p_parent_component_key => p_mapping_set_code
2410 ,p_component_type => 'AMB_MS_VALUE'
2411 ,p_component_key => l_key
2412 ,p_merge_impact => p_merge_impact
2413 ,p_event_class_code => NULL
2414 ,p_event_type_code => NULL
2415 ,p_component_owner_code => NULL
2416 ,p_component_code => NULL);
2417 END IF;
2418
2419 record_updated_ms
2420 (p_mapping_set_code => p_mapping_set_code
2421 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
2422
2423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2424 trace(p_msg => 'END of function record_updated_ms_value',
2425 p_module => l_log_module,
2426 p_level => C_LEVEL_PROCEDURE);
2427 END IF;
2428
2429 EXCEPTION
2430 WHEN xla_exceptions_pkg.application_exception THEN
2431 RAISE;
2432 WHEN OTHERS THEN
2433 xla_exceptions_pkg.raise_message
2434 (p_location => l_log_module);
2435 END record_updated_ms_value;
2436
2437 --=============================================================================
2438 --
2439 --
2440 --
2441 --=============================================================================
2442 PROCEDURE record_updated_desc
2443 (p_description_type_code VARCHAR2
2444 ,p_description_code VARCHAR2)
2445 IS
2446 CURSOR c_assgns IS
2447 SELECT 'AMB_AAD_EVENT_TYPE' parent_component_type
2448 , w.product_rule_type_code
2449 , w.product_rule_code
2450 , w.event_class_code
2451 , w.event_type_code
2452 , NULL line_definition_owner_code
2453 , NULL line_definition_code
2454 , NULL accounting_line_type_code
2455 , NULL accounting_line_code
2456 , NULL mpa_accounting_line_type_code
2457 , NULL mpa_accounting_line_code
2458 FROM xla_prod_acct_headers w
2459 , xla_prod_acct_headers s
2460 WHERE s.application_id = g_application_id
2461 AND s.amb_context_code = g_staging_context_code
2462 AND s.product_rule_type_code = w.product_rule_type_code
2463 AND s.product_rule_code = w.product_rule_code
2464 AND s.event_class_code = w.event_class_code
2465 AND s.event_type_code = w.event_type_code
2466 AND s.description_type_code = w.description_type_code
2467 AND s.description_code = w.description_code
2468 AND w.application_id = g_application_id
2469 AND w.amb_context_code = g_amb_context_code
2470 AND w.description_type_code = p_description_type_code
2471 AND w.description_code = p_description_code
2472 UNION
2473 SELECT 'AMB_LINE_ASSIGNMENT'
2474 , NULL
2475 , NULL
2476 , w.event_class_code
2477 , w.event_type_code
2478 , w.line_definition_owner_code
2479 , w.line_definition_code
2480 , w.accounting_line_type_code
2481 , w.accounting_line_code
2482 , NULL
2483 , NULL
2484 FROM xla_line_defn_jlt_assgns w
2485 , xla_line_defn_jlt_assgns s
2486 WHERE s.application_id = g_application_id
2487 AND s.amb_context_code = g_staging_context_code
2488 AND s.event_class_code = w.event_class_code
2489 AND s.event_type_code = w.event_type_code
2490 AND s.line_definition_owner_code = w.line_definition_owner_code
2491 AND s.line_definition_code = w.line_definition_code
2492 AND s.accounting_line_type_code = w.accounting_line_type_code
2493 AND s.accounting_line_code = w.accounting_line_code
2494 AND s.description_type_code = w.description_type_code
2495 AND s.description_code = w.description_code
2496 AND w.application_id = g_application_id
2497 AND w.amb_context_code = g_amb_context_code
2498 AND w.description_type_code = p_description_type_code
2499 AND w.description_code = p_description_code
2500 UNION
2501 SELECT 'AMB_MPA_ASSIGNMENT'
2502 , NULL
2503 , NULL
2504 , w.event_class_code
2505 , w.event_type_code
2506 , w.line_definition_owner_code
2507 , w.line_definition_code
2508 , w.accounting_line_type_code
2509 , w.accounting_line_code
2510 , NULL
2511 , NULL
2512 FROM xla_line_defn_jlt_assgns w
2513 , xla_line_defn_jlt_assgns s
2514 WHERE s.application_id = g_application_id
2515 AND s.amb_context_code = g_staging_context_code
2516 AND s.event_class_code = w.event_class_code
2517 AND s.event_type_code = w.event_type_code
2518 AND s.line_definition_owner_code = w.line_definition_owner_code
2519 AND s.line_definition_code = w.line_definition_code
2520 AND s.accounting_line_type_code = w.accounting_line_type_code
2521 AND s.accounting_line_code = w.accounting_line_code
2522 AND s.mpa_header_desc_type_code = w.mpa_header_desc_type_code
2523 AND s.mpa_header_desc_code = w.mpa_header_desc_code
2524 AND w.application_id = g_application_id
2525 AND w.amb_context_code = g_amb_context_code
2526 AND w.mpa_header_desc_type_code = p_description_type_code
2527 AND w.mpa_header_desc_code = p_description_code
2528 UNION
2529 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
2530 , NULL
2531 , NULL
2532 , w.event_class_code
2533 , w.event_type_code
2534 , w.line_definition_owner_code
2535 , w.line_definition_code
2536 , w.accounting_line_type_code
2537 , w.accounting_line_code
2538 , w.mpa_accounting_line_type_code
2539 , w.mpa_accounting_line_code
2540 FROM xla_mpa_jlt_assgns w
2541 , xla_mpa_jlt_assgns s
2542 WHERE s.application_id = g_application_id
2543 AND s.amb_context_code = g_staging_context_code
2544 AND s.event_class_code = w.event_class_code
2545 AND s.event_type_code = w.event_type_code
2546 AND s.line_definition_owner_code = w.line_definition_owner_code
2547 AND s.line_definition_code = w.line_definition_code
2548 AND s.accounting_line_type_code = w.accounting_line_type_code
2549 AND s.accounting_line_code = w.accounting_line_code
2550 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
2551 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
2552 AND s.description_type_code = w.description_type_code
2553 AND s.description_code = w.description_code
2554 AND w.application_id = g_application_id
2555 AND w.amb_context_code = g_amb_context_code
2556 AND w.description_type_code = p_description_type_code
2557 AND w.description_code = p_description_code;
2558
2559 l_parent_key VARCHAR2(240);
2560 l_key VARCHAR2(240);
2561 l_log_module VARCHAR2(240);
2562 BEGIN
2563 IF g_log_enabled THEN
2564 l_log_module := C_DEFAULT_MODULE||'.record_updated_desc';
2565 END IF;
2566
2567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2568 trace(p_msg => 'BEGIN of function record_updated_desc: '||
2569 ', p_description_type_code = '||p_description_type_code||
2570 ', p_description_code = '||p_description_code,
2571 p_module => l_log_module,
2572 p_level => C_LEVEL_PROCEDURE);
2573 END IF;
2574
2575 l_key := p_description_type_code||C_CHAR||
2576 p_description_code;
2577
2578 IF (NOT key_exists('DESC'||C_CHAR||l_key)) THEN
2579 FOR l_assgn IN c_assgns LOOP
2580
2581 record_updated_assignment
2582 (p_parent_component_type => l_assgn.parent_component_type
2583 ,p_product_rule_type_code => l_assgn.product_rule_type_code
2584 ,p_product_rule_code => l_assgn.product_rule_code
2585 ,p_event_class_code => l_assgn.event_class_code
2586 ,p_event_type_code => l_assgn.event_type_code
2587 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
2588 ,p_line_definition_code => l_assgn.line_definition_code
2589 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
2590 ,p_accounting_line_code => l_assgn.accounting_line_code
2591 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
2592 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
2593 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
2594 ,x_parent_key => l_parent_key);
2595
2596 record_updated_component
2597 (p_parent_component_type => l_assgn.parent_component_type
2598 ,p_parent_component_key => l_parent_key
2599 ,p_component_type => 'AMB_DESCRIPTION'
2600 ,p_component_key => l_key
2601 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
2602 ,p_component_owner_code => p_description_type_code
2603 ,p_component_code => p_description_code);
2604
2605 END LOOP;
2606 END IF;
2607
2608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2609 trace(p_msg => 'END of function record_updated_desc',
2610 p_module => l_log_module,
2611 p_level => C_LEVEL_PROCEDURE);
2612 END IF;
2613
2614 EXCEPTION
2615 WHEN xla_exceptions_pkg.application_exception THEN
2616 RAISE;
2617 WHEN OTHERS THEN
2618 xla_exceptions_pkg.raise_message
2619 (p_location => l_log_module);
2620 END record_updated_desc;
2621
2622 --=============================================================================
2623 --
2624 --
2625 --
2626 --=============================================================================
2627 PROCEDURE record_deleted_desc
2628 (p_description_type_code VARCHAR2
2629 ,p_description_code VARCHAR2)
2630 IS
2631 CURSOR c_assgns IS
2632 SELECT 'AMB_AAD_EVENT_TYPE' parent_component_type
2633 , w.product_rule_type_code
2634 , w.product_rule_code
2635 , w.event_class_code
2636 , w.event_type_code
2637 , NULL line_definition_owner_code
2638 , NULL line_definition_code
2639 , NULL accounting_line_type_code
2640 , NULL accounting_line_code
2641 , NULL mpa_accounting_line_type_code
2642 , NULL mpa_accounting_line_code
2643 FROM xla_prod_acct_headers w
2644 LEFT OUTER JOIN xla_prod_acct_headers s
2645 ON s.amb_context_code = g_staging_context_code
2646 AND s.application_id = g_application_id
2647 AND s.product_rule_type_code = w.product_rule_type_code
2648 AND s.product_rule_code = w.product_rule_code
2649 AND s.event_class_code = w.event_class_code
2650 AND s.event_type_code = w.event_type_code
2651 WHERE w.application_id = g_application_id
2652 AND w.amb_context_code = g_amb_context_code
2653 AND w.description_type_code = p_description_type_code
2654 AND w.description_code = p_description_code
2655 AND (w.product_rule_type_code = C_OWNER_CUSTOM OR
2656 s.product_rule_type_code IS NOT NULL)
2657 UNION
2658 SELECT 'AMB_LINE_ASSIGNMENT'
2659 , NULL
2660 , NULL
2661 , w.event_class_code
2662 , w.event_type_code
2663 , w.line_definition_owner_code
2664 , w.line_definition_code
2665 , w.accounting_line_type_code
2666 , w.accounting_line_code
2667 , NULL
2668 , NULL
2669 FROM xla_line_defn_jlt_assgns w
2670 LEFT OUTER JOIN xla_line_defn_jlt_assgns s
2671 ON s.amb_context_code = g_staging_context_code
2672 AND s.application_id = g_application_id
2673 AND s.event_class_code = w.event_class_code
2674 AND s.event_type_code = w.event_type_code
2675 AND s.line_definition_owner_code = w.line_definition_owner_code
2676 AND s.line_definition_code = w.line_definition_code
2677 AND s.accounting_line_type_code = w.accounting_line_type_code
2678 AND s.accounting_line_code = w.accounting_line_code
2679 WHERE w.application_id = g_application_id
2680 AND w.amb_context_code = g_amb_context_code
2681 AND w.description_type_code = p_description_type_code
2682 AND w.description_code = p_description_code
2683 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
2684 s.line_definition_owner_code IS NOT NULL)
2685 UNION
2686 SELECT 'AMB_MPA_ASSIGNMENT'
2687 , NULL
2688 , NULL
2689 , w.event_class_code
2690 , w.event_type_code
2691 , w.line_definition_owner_code
2692 , w.line_definition_code
2693 , w.accounting_line_type_code
2694 , w.accounting_line_code
2695 , NULL
2696 , NULL
2697 FROM xla_line_defn_jlt_assgns w
2698 LEFT OUTER JOIN xla_line_defn_jlt_assgns s
2699 ON s.amb_context_code = g_staging_context_code
2700 AND s.application_id = g_application_id
2701 AND s.event_class_code = w.event_class_code
2702 AND s.event_type_code = w.event_type_code
2703 AND s.line_definition_owner_code = w.line_definition_owner_code
2704 AND s.line_definition_code = w.line_definition_code
2705 AND s.accounting_line_type_code = w.accounting_line_type_code
2706 AND s.accounting_line_code = w.accounting_line_code
2707 WHERE w.application_id = g_application_id
2708 AND w.amb_context_code = g_amb_context_code
2709 AND w.mpa_header_desc_type_code = p_description_type_code
2710 AND w.mpa_header_desc_code = p_description_code
2711 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
2712 s.line_definition_owner_code IS NOT NULL)
2713 UNION
2714 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
2715 , NULL
2716 , NULL
2717 , w.event_class_code
2718 , w.event_type_code
2719 , w.line_definition_owner_code
2720 , w.line_definition_code
2721 , w.accounting_line_type_code
2722 , w.accounting_line_code
2723 , w.mpa_accounting_line_type_code
2724 , w.mpa_accounting_line_code
2725 FROM xla_mpa_jlt_assgns w
2726 LEFT OUTER JOIN xla_mpa_jlt_assgns s
2727 ON s.amb_context_code = g_staging_context_code
2728 AND s.application_id = g_application_id
2729 AND s.event_class_code = w.event_class_code
2730 AND s.event_type_code = w.event_type_code
2731 AND s.line_definition_owner_code = w.line_definition_owner_code
2732 AND s.line_definition_code = w.line_definition_code
2733 AND s.accounting_line_type_code = w.accounting_line_type_code
2734 AND s.accounting_line_code = w.accounting_line_code
2735 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
2736 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
2737 WHERE w.application_id = g_application_id
2738 AND w.amb_context_code = g_amb_context_code
2739 AND w.description_type_code = p_description_type_code
2740 AND w.description_code = p_description_code
2741 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
2742 s.line_definition_owner_code IS NOT NULL);
2743
2744 l_parent_key VARCHAR2(240);
2745 l_key VARCHAR2(240);
2746 l_log_module VARCHAR2(240);
2747 BEGIN
2748 IF g_log_enabled THEN
2749 l_log_module := C_DEFAULT_MODULE||'.record_deleted_desc';
2750 END IF;
2751
2752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2753 trace(p_msg => 'BEGIN of function record_deleted_desc: '||
2754 ', p_description_type_code = '||p_description_type_code||
2755 ', p_description_code = '||p_description_code,
2756 p_module => l_log_module,
2757 p_level => C_LEVEL_PROCEDURE);
2758 END IF;
2759
2760 l_key := p_description_type_code||C_CHAR||
2761 p_description_code;
2762
2763 IF (NOT key_exists('DESC'||C_CHAR||l_key)) THEN
2764 FOR l_assgn IN c_assgns LOOP
2765
2766 record_updated_assignment
2767 (p_parent_component_type => l_assgn.parent_component_type
2768 ,p_product_rule_type_code => l_assgn.product_rule_type_code
2769 ,p_product_rule_code => l_assgn.product_rule_code
2770 ,p_event_class_code => l_assgn.event_class_code
2771 ,p_event_type_code => l_assgn.event_type_code
2772 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
2773 ,p_line_definition_code => l_assgn.line_definition_code
2774 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
2775 ,p_accounting_line_code => l_assgn.accounting_line_code
2776 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
2777 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
2778 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
2779 ,x_parent_key => l_parent_key);
2780
2781 record_updated_component
2782 (p_parent_component_type => l_assgn.parent_component_type
2783 ,p_parent_component_key => l_parent_key
2784 ,p_component_type => 'AMB_DESCRIPTION'
2785 ,p_component_key => l_key
2786 ,p_merge_impact => C_MERGE_IMPACT_DELETED
2787 ,p_event_class_code => NULL
2788 ,p_event_type_code => NULL
2789 ,p_component_owner_code => p_description_type_code
2790 ,p_component_code => p_description_code);
2791
2792 END LOOP;
2793
2794 END IF;
2795
2796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2797 trace(p_msg => 'END of function record_deleted_desc',
2798 p_module => l_log_module,
2799 p_level => C_LEVEL_PROCEDURE);
2800 END IF;
2801
2802 EXCEPTION
2803 WHEN xla_exceptions_pkg.application_exception THEN
2804 RAISE;
2805 WHEN OTHERS THEN
2806 xla_exceptions_pkg.raise_message
2807 (p_location => l_log_module);
2808 END record_deleted_desc;
2809
2810 --=============================================================================
2811 --
2812 --
2813 --
2814 --=============================================================================
2815 PROCEDURE record_updated_desc_priority
2816 (p_description_type_code VARCHAR2
2817 ,p_description_code VARCHAR2
2818 ,p_user_sequence VARCHAR2
2819 ,p_merge_impact VARCHAR2)
2820 IS
2821 l_key VARCHAR2(240);
2822 l_log_module VARCHAR2(240);
2823 BEGIN
2824 IF g_log_enabled THEN
2825 l_log_module := C_DEFAULT_MODULE||'.record_updated_desc_priority';
2826 END IF;
2827
2828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2829 trace(p_msg => 'BEGIN of function record_updated_desc_priority: '||
2830 ', p_description_type_code = '||p_description_type_code||
2831 ', p_description_code = '||p_description_code||
2832 ', p_user_sequence = '||p_user_sequence,
2833 p_module => l_log_module,
2834 p_level => C_LEVEL_PROCEDURE);
2835 END IF;
2836
2837 l_key := p_description_type_code||C_CHAR||
2838 p_description_code||C_CHAR||
2839 p_user_sequence;
2840
2841 IF (NOT key_exists('DESCP'||C_CHAR||l_key)) THEN
2842 record_updated_component
2843 (p_parent_component_type => 'AMB_DESCRIPTION'
2844 ,p_parent_component_key => p_description_type_code||C_CHAR||
2845 p_description_code
2846 ,p_component_type => 'AMB_DESC_PRIO'
2847 ,p_component_key => l_key
2848 ,p_merge_impact => p_merge_impact
2849 ,p_event_class_code => NULL
2850 ,p_event_type_code => NULL
2851 ,p_component_code => p_user_sequence
2852 ,p_parent_component_owner_code => p_description_type_code
2853 ,p_parent_component_code => p_description_code);
2854
2855 record_updated_desc
2856 (p_description_type_code => p_description_type_code
2857 ,p_description_code => p_description_code);
2858
2859 END IF;
2860
2861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2862 trace(p_msg => 'END of function record_updated_desc_priority',
2863 p_module => l_log_module,
2864 p_level => C_LEVEL_PROCEDURE);
2865 END IF;
2866
2867 EXCEPTION
2868 WHEN xla_exceptions_pkg.application_exception THEN
2869 RAISE;
2870 WHEN OTHERS THEN
2871 xla_exceptions_pkg.raise_message
2872 (p_location => l_log_module);
2873 END record_updated_desc_priority;
2874
2875 --=============================================================================
2876 --
2877 -- Name: record_updated_ac
2878 -- Description: Determine all the components that references the AC that is
2879 -- modified, and record that the component is updated.
2880 --
2881 --=============================================================================
2882 PROCEDURE record_updated_ac
2883 (p_ac_type_code VARCHAR2
2884 ,p_ac_code VARCHAR2
2885 ,p_merge_impact VARCHAR2)
2886 IS
2887 CURSOR c_assgns IS
2888 SELECT 'AMB_AAD_EVENT_TYPE' parent_component_type
2889 , w.product_rule_type_code
2890 , w.product_rule_code
2891 , w.event_class_code
2892 , w.event_type_code
2893 , NULL line_definition_owner_code
2894 , NULL line_definition_code
2895 , NULL accounting_line_type_code
2896 , NULL accounting_line_code
2897 , NULL mpa_accounting_line_type_code
2898 , NULL mpa_accounting_line_code
2899 FROM xla_aad_header_ac_assgns w
2900 , xla_prod_acct_headers b
2901 WHERE b.amb_context_code = g_staging_context_code
2902 AND b.application_id = g_application_id
2903 AND b.product_rule_type_code = w.product_rule_type_code
2904 AND b.product_rule_code = w.product_rule_code
2905 AND b.event_class_code = w.event_class_code
2906 AND b.event_type_code = w.event_type_code
2907 AND w.amb_context_code = g_amb_context_code
2908 AND w.analytical_criterion_type_code = p_ac_type_code
2909 AND w.analytical_criterion_code = p_ac_code
2910 UNION
2911 SELECT 'AMB_LINE_ASSIGNMENT'
2912 , NULL
2913 , NULL
2914 , w.event_class_code
2915 , w.event_type_code
2916 , w.line_definition_owner_code
2917 , w.line_definition_code
2918 , w.accounting_line_type_code
2919 , w.accounting_line_code
2920 , NULL
2921 , NULL
2922 FROM xla_line_defn_ac_assgns w
2923 , xla_line_defn_jlt_assgns b
2924 WHERE b.amb_context_code = g_staging_context_code
2925 AND b.application_id = g_application_id
2926 AND b.event_class_code = w.event_class_code
2927 AND b.event_type_code = w.event_type_code
2928 AND b.line_definition_owner_code = w.line_definition_owner_code
2929 AND b.line_definition_code = w.line_definition_code
2930 AND b.accounting_line_type_code = w.accounting_line_type_code
2931 AND b.accounting_line_code = w.accounting_line_code
2932 AND w.amb_context_code = g_amb_context_code
2933 AND w.analytical_criterion_type_code = p_ac_type_code
2934 AND w.analytical_criterion_code = p_ac_code
2935 UNION
2936 SELECT 'AMB_MPA_ASSIGNMENT'
2937 , NULL
2938 , NULL
2939 , w.event_class_code
2940 , w.event_type_code
2941 , w.line_definition_owner_code
2942 , w.line_definition_code
2943 , w.accounting_line_type_code
2944 , w.accounting_line_code
2945 , NULL
2946 , NULL
2947 FROM xla_mpa_header_ac_assgns w
2948 , xla_line_defn_jlt_assgns b
2949 WHERE b.amb_context_code = g_staging_context_code
2950 AND b.application_id = g_application_id
2951 AND b.event_class_code = w.event_class_code
2952 AND b.event_type_code = w.event_type_code
2953 AND b.line_definition_owner_code = w.line_definition_owner_code
2954 AND b.line_definition_code = w.line_definition_code
2955 AND b.accounting_line_type_code = w.accounting_line_type_code
2956 AND b.accounting_line_code = w.accounting_line_code
2957 AND w.amb_context_code = g_amb_context_code
2958 AND w.analytical_criterion_type_code = p_ac_type_code
2959 AND w.analytical_criterion_code = p_ac_code
2960 UNION
2961 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
2962 , NULL
2963 , NULL
2964 , w.event_class_code
2965 , w.event_type_code
2966 , w.line_definition_owner_code
2967 , w.line_definition_code
2968 , w.accounting_line_type_code
2969 , w.accounting_line_code
2970 , w.mpa_accounting_line_type_code
2971 , w.mpa_accounting_line_code
2972 FROM xla_mpa_jlt_ac_assgns w
2973 , xla_mpa_jlt_assgns b
2974 WHERE b.amb_context_code = g_staging_context_code
2975 AND b.application_id = g_application_id
2976 AND b.event_class_code = w.event_class_code
2977 AND b.event_type_code = w.event_type_code
2978 AND b.line_definition_owner_code = w.line_definition_owner_code
2979 AND b.line_definition_code = w.line_definition_code
2980 AND b.accounting_line_type_code = w.accounting_line_type_code
2981 AND b.accounting_line_code = w.accounting_line_code
2982 AND b.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
2983 AND b.mpa_accounting_line_code = w.mpa_accounting_line_code
2984 AND w.amb_context_code = g_amb_context_code
2985 AND w.analytical_criterion_type_code = p_ac_type_code
2986 AND w.analytical_criterion_code = p_ac_code;
2987
2988 l_parent_key VARCHAR2(240);
2989 l_key VARCHAR2(240);
2990 l_log_module VARCHAR2(240);
2991 BEGIN
2992 IF g_log_enabled THEN
2993 l_log_module := C_DEFAULT_MODULE||'.record_updated_ac';
2994 END IF;
2995
2996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2997 trace(p_msg => 'BEGIN of function record_updated_ac: '||
2998 ', p_ac_type_code = '||p_ac_type_code||
2999 ', p_ac_code = '||p_ac_code,
3000 p_module => l_log_module,
3001 p_level => C_LEVEL_PROCEDURE);
3002 END IF;
3003
3004 l_key := p_ac_type_code||C_CHAR||
3005 p_ac_code;
3006
3007 IF (NOT key_exists('AC'||C_CHAR||l_key)) THEN
3008 FOR l_assgn IN c_assgns LOOP
3009
3010 record_updated_assignment
3011 (p_parent_component_type => l_assgn.parent_component_type
3012 ,p_product_rule_type_code => l_assgn.product_rule_type_code
3013 ,p_product_rule_code => l_assgn.product_rule_code
3014 ,p_event_class_code => l_assgn.event_class_code
3015 ,p_event_type_code => l_assgn.event_type_code
3016 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
3017 ,p_line_definition_code => l_assgn.line_definition_code
3018 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
3019 ,p_accounting_line_code => l_assgn.accounting_line_code
3020 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
3021 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
3022 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
3023 ,x_parent_key => l_parent_key);
3024
3025 record_updated_component
3026 (p_parent_component_type => l_assgn.parent_component_type
3027 ,p_parent_component_key => l_parent_key
3028 ,p_component_type => 'AMB_AC'
3029 ,p_component_key => l_key
3030 ,p_merge_impact => p_merge_impact
3031 ,p_event_class_code => NULL
3032 ,p_event_type_code => NULL
3033 ,p_component_owner_code => p_ac_type_code
3034 ,p_component_code => p_ac_code);
3035
3036 END LOOP;
3037 END IF;
3038
3039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3040 trace(p_msg => 'END of function record_updated_ac',
3041 p_module => l_log_module,
3042 p_level => C_LEVEL_PROCEDURE);
3043 END IF;
3044
3045 EXCEPTION
3046 WHEN xla_exceptions_pkg.application_exception THEN
3047 RAISE;
3048 WHEN OTHERS THEN
3049 xla_exceptions_pkg.raise_message
3050 (p_location => l_log_module);
3051 END record_updated_ac;
3052
3053 --=============================================================================
3054 --
3055 -- Name: record_deleted_ac
3056 -- Description: For the deleted ORACLE AC, determine if it is referenced by any
3057 -- CUSTOM component. If so, report the component updated.
3058 --
3059 --=============================================================================
3060 PROCEDURE record_deleted_ac
3061 (p_ac_type_code VARCHAR2
3062 ,p_ac_code VARCHAR2)
3063 IS
3064 --
3065 -- Marked the AC is deleted from the assignment if
3066 -- 1. The AC is assigned to any CUSTOM component in the working context OR
3067 -- 2. The AC assignment exists in the staging context
3068 --
3069 CURSOR c_assgns IS
3070 SELECT 'AMB_AAD_EVENT_TYPE' parent_component_type
3071 , w.product_rule_type_code
3072 , w.product_rule_code
3073 , w.event_class_code
3074 , w.event_type_code
3075 , NULL line_definition_owner_code
3076 , NULL line_definition_code
3077 , NULL accounting_line_type_code
3078 , NULL accounting_line_code
3079 , NULL mpa_accounting_line_type_code
3080 , NULL mpa_accounting_line_code
3081 FROM xla_aad_header_ac_assgns w
3082 LEFT OUTER JOIN xla_prod_acct_headers s
3083 ON s.amb_context_code = g_staging_context_code
3084 AND s.application_id = g_application_id
3085 AND s.product_rule_type_code = w.product_rule_type_code
3086 AND s.product_rule_code = w.product_rule_code
3087 AND s.event_class_code = w.event_class_code
3088 AND s.event_type_code = w.event_type_code
3089 WHERE w.amb_context_code = g_amb_context_code
3090 AND w.analytical_criterion_type_code = p_ac_type_code
3091 AND w.analytical_criterion_code = p_ac_code
3092 AND (w.product_rule_type_code = C_OWNER_CUSTOM OR
3093 s.product_rule_type_code IS NOT NULL)
3094 UNION
3095 SELECT 'AMB_LINE_ASSIGNMENT'
3096 , NULL
3097 , NULL
3098 , w.event_class_code
3099 , w.event_type_code
3100 , w.line_definition_owner_code
3101 , w.line_definition_code
3102 , w.accounting_line_type_code
3103 , w.accounting_line_code
3104 , NULL
3105 , NULL
3106 FROM xla_line_defn_ac_assgns w
3107 LEFT OUTER JOIN xla_line_defn_jlt_assgns s
3108 ON s.amb_context_code = g_staging_context_code
3109 AND s.event_class_code = w.event_class_code
3110 AND s.event_type_code = w.event_type_code
3111 AND s.line_definition_owner_code = w.line_definition_owner_code
3112 AND s.line_definition_code = w.line_definition_code
3113 AND s.accounting_line_type_code = w.accounting_line_type_code
3114 AND s.accounting_line_code = w.accounting_line_code
3115 WHERE w.amb_context_code = g_amb_context_code
3116 AND w.analytical_criterion_type_code = p_ac_type_code
3117 AND w.analytical_criterion_code = p_ac_code
3118 AND (w.accounting_line_type_code = C_OWNER_CUSTOM OR
3119 s.accounting_line_type_code IS NOT NULL)
3120 UNION
3121 SELECT 'AMB_MPA_ASSIGNMENT'
3122 , NULL
3123 , NULL
3124 , w.event_class_code
3125 , w.event_type_code
3126 , w.line_definition_owner_code
3127 , w.line_definition_code
3128 , w.accounting_line_type_code
3129 , w.accounting_line_code
3130 , NULL
3131 , NULL
3132 FROM xla_mpa_header_ac_assgns w
3133 LEFT OUTER JOIN xla_line_defn_jlt_assgns s
3134 ON s.amb_context_code = g_staging_context_code
3135 AND s.event_class_code = w.event_class_code
3136 AND s.event_type_code = w.event_type_code
3137 AND s.line_definition_owner_code = w.line_definition_owner_code
3138 AND s.line_definition_code = w.line_definition_code
3139 AND s.accounting_line_type_code = w.accounting_line_type_code
3140 AND s.accounting_line_code = w.accounting_line_code
3141 WHERE w.amb_context_code = g_amb_context_code
3142 AND w.analytical_criterion_type_code = p_ac_type_code
3143 AND w.analytical_criterion_code = p_ac_code
3144 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
3145 s.line_definition_owner_code IS NOT NULL)
3146 UNION
3147 SELECT 'AMB_MPA_LINE_ASSIGNMENT'
3148 , NULL
3149 , NULL
3150 , w.event_class_code
3151 , w.event_type_code
3152 , w.line_definition_owner_code
3153 , w.line_definition_code
3154 , w.accounting_line_type_code
3155 , w.accounting_line_code
3156 , w.mpa_accounting_line_type_code
3157 , w.mpa_accounting_line_code
3158 FROM xla_mpa_jlt_ac_assgns w
3159 LEFT OUTER JOIN xla_mpa_jlt_assgns s
3160 ON s.amb_context_code = g_staging_context_code
3161 AND s.event_class_code = w.event_class_code
3162 AND s.event_type_code = w.event_type_code
3163 AND s.line_definition_owner_code = w.line_definition_owner_code
3164 AND s.line_definition_code = w.line_definition_code
3165 AND s.accounting_line_type_code = w.accounting_line_type_code
3166 AND s.accounting_line_code = w.accounting_line_code
3167 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
3168 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
3169 WHERE w.amb_context_code = g_amb_context_code
3170 AND w.analytical_criterion_type_code = p_ac_type_code
3171 AND w.analytical_criterion_code = p_ac_code
3172 AND (w.line_definition_owner_code = C_OWNER_CUSTOM OR
3173 s.line_definition_owner_code IS NOT NULL);
3174
3175 l_parent_key VARCHAR2(240);
3176 l_key VARCHAR2(240);
3177 l_log_module VARCHAR2(240);
3178 BEGIN
3179 IF g_log_enabled THEN
3180 l_log_module := C_DEFAULT_MODULE||'.record_deleted_ac';
3181 END IF;
3182
3183 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3184 trace(p_msg => 'BEGIN of function record_deleted_ac: '||
3185 ', p_ac_type_code = '||p_ac_type_code||
3186 ', p_ac_code = '||p_ac_code,
3187 p_module => l_log_module,
3188 p_level => C_LEVEL_PROCEDURE);
3189 END IF;
3190
3191 l_key := p_ac_type_code||C_CHAR||
3192 p_ac_code;
3193
3194 IF (NOT key_exists('AC'||C_CHAR||l_key)) THEN
3195 FOR l_assgn IN c_assgns LOOP
3196
3197 record_updated_assignment
3198 (p_parent_component_type => l_assgn.parent_component_type
3199 ,p_product_rule_type_code => l_assgn.product_rule_type_code
3200 ,p_product_rule_code => l_assgn.product_rule_code
3201 ,p_event_class_code => l_assgn.event_class_code
3202 ,p_event_type_code => l_assgn.event_type_code
3203 ,p_line_definition_owner_code => l_assgn.line_definition_owner_code
3204 ,p_line_definition_code => l_assgn.line_definition_code
3205 ,p_accounting_line_type_code => l_assgn.accounting_line_type_code
3206 ,p_accounting_line_code => l_assgn.accounting_line_code
3207 ,p_mpa_acct_line_type_code => l_assgn.mpa_accounting_line_type_code
3208 ,p_mpa_acct_line_code => l_assgn.mpa_accounting_line_code
3209 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
3210 ,x_parent_key => l_parent_key);
3211
3212 record_updated_component
3213 (p_parent_component_type => l_assgn.parent_component_type
3214 ,p_parent_component_key => l_parent_key
3215 ,p_component_type => 'AMB_AC'
3216 ,p_component_key => l_key
3217 ,p_merge_impact => C_MERGE_IMPACT_DELETED
3218 ,p_component_owner_code => p_ac_type_code
3219 ,p_component_code => p_ac_code);
3220
3221 END LOOP;
3222
3223 END IF;
3224
3225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3226 trace(p_msg => 'END of function record_deleted_ac',
3227 p_module => l_log_module,
3228 p_level => C_LEVEL_PROCEDURE);
3229 END IF;
3230
3231 EXCEPTION
3232 WHEN xla_exceptions_pkg.application_exception THEN
3233 RAISE;
3234 WHEN OTHERS THEN
3235 xla_exceptions_pkg.raise_message
3236 (p_location => l_log_module);
3237 END record_deleted_ac;
3238
3239 --=============================================================================
3240 --
3241 --
3242 --
3243 --=============================================================================
3244 PROCEDURE record_updated_ac_detail
3245 (p_ac_type_code VARCHAR2
3246 ,p_ac_code VARCHAR2
3247 ,p_ac_detail_code VARCHAR2
3248 ,p_merge_impact VARCHAR2)
3249 IS
3250 l_key VARCHAR2(240);
3251 l_log_module VARCHAR2(240);
3252 BEGIN
3253 IF g_log_enabled THEN
3254 l_log_module := C_DEFAULT_MODULE||'.record_updated_ac_detail';
3255 END IF;
3256
3257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3258 trace(p_msg => 'BEGIN of function record_updated_ac_detail: '||
3259 ', p_ac_type_code = '||p_ac_type_code||
3260 ', p_ac_code = '||p_ac_code||
3261 ', p_ac_detail_code = '||p_ac_detail_code,
3262 p_module => l_log_module,
3263 p_level => C_LEVEL_PROCEDURE);
3264 END IF;
3265
3266 l_key := p_ac_type_code||C_CHAR||
3267 p_ac_code||C_CHAR||
3268 p_ac_detail_code;
3269
3270 IF (NOT key_exists('ACD'||C_CHAR||l_key)) THEN
3271
3272 record_updated_component
3273 (p_parent_component_type => 'AMB_AC'
3274 ,p_parent_component_key => p_ac_type_code||C_CHAR||
3275 p_ac_code
3276 ,p_component_type => 'AMB_AC_DETAIL'
3277 ,p_component_key => l_key
3278 ,p_merge_impact => p_merge_impact
3279 ,p_event_class_code => NULL
3280 ,p_event_type_code => NULL
3281 ,p_component_owner_code => NULL
3282 ,p_component_code => p_ac_detail_code
3283 ,p_parent_component_owner_code => p_ac_type_code
3284 ,p_parent_component_code => p_ac_code);
3285
3286 record_updated_ac
3287 (p_ac_type_code => p_ac_type_code
3288 ,p_ac_code => p_ac_code
3289 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
3290
3291 END IF;
3292
3293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3294 trace(p_msg => 'END of function record_updated_ac_detail',
3295 p_module => l_log_module,
3296 p_level => C_LEVEL_PROCEDURE);
3297 END IF;
3298
3299 EXCEPTION
3300 WHEN xla_exceptions_pkg.application_exception THEN
3301 RAISE;
3302 WHEN OTHERS THEN
3303 xla_exceptions_pkg.raise_message
3304 (p_location => l_log_module);
3305 END record_updated_ac_detail;
3306
3307 --=============================================================================
3308 --
3309 -- Name: update_group_number
3310 -- Description: This API update the product rule in global aad group arry with
3311 -- the group number
3312 -- Return Code:
3313 -- TRUE: group number is updated
3314 -- FALSE: group number is not updated
3315 --
3316 --=============================================================================
3317 FUNCTION update_group_number
3318 (p_product_rule_type_code VARCHAR2
3319 ,p_product_rule_code VARCHAR2
3320 ,p_group_number INTEGER)
3321 RETURN BOOLEAN
3322 IS
3323 l_retcode BOOLEAN;
3324 l_log_module VARCHAR2(240);
3325 BEGIN
3326 IF g_log_enabled THEN
3327 l_log_module := C_DEFAULT_MODULE||'.update_group_number';
3328 END IF;
3329
3330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3331 trace(p_msg => 'BEGIN of function update_group_number: '||
3332 p_product_rule_type_code||','||
3333 p_product_rule_code||','||
3334 p_group_number,
3335 p_module => l_log_module,
3336 p_level => C_LEVEL_PROCEDURE);
3337 END IF;
3338
3339 l_retcode := FALSE;
3340
3341 FOR i IN 1 .. g_aad_groups.COUNT LOOP
3342 IF (g_aad_groups(i).product_rule_type_code = p_product_rule_type_code AND
3343 g_aad_groups(i).product_rule_code = p_product_rule_code) THEN
3344 IF (g_aad_groups(i).group_num <> p_group_number) THEN
3345 g_aad_groups(i).group_num := p_group_number;
3346 l_retcode := TRUE;
3347 END IF;
3348 EXIT;
3349 END IF;
3350 END LOOP;
3351
3352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3353 trace(p_msg => 'END of function update_group_number',
3354 p_module => l_log_module,
3355 p_level => C_LEVEL_PROCEDURE);
3356 END IF;
3357
3358 return l_retcode;
3359 EXCEPTION
3360 WHEN xla_exceptions_pkg.application_exception THEN
3361 RAISE;
3362
3363 WHEN OTHERS THEN
3364 xla_exceptions_pkg.raise_message
3365 (p_location => 'xla_aad_merge_analysis_pvt.update_group_number');
3366
3367 END update_group_number;
3368
3369
3370 --=============================================================================
3371 --
3372 -- Name: compare_components
3373 -- Description:
3374 --
3375 --=============================================================================
3376 PROCEDURE compare_components
3377 IS
3378 l_log_module VARCHAR2(240);
3379 BEGIN
3380 IF g_log_enabled THEN
3381 l_log_module := C_DEFAULT_MODULE||'.compare_components';
3382 END IF;
3383
3384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3385 trace(p_msg => 'BEGIN of function compare_components',
3386 p_module => l_log_module,
3387 p_level => C_LEVEL_PROCEDURE);
3388 END IF;
3389
3390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3391 trace(p_msg => 'END of function compare_components',
3392 p_module => l_log_module,
3393 p_level => C_LEVEL_PROCEDURE);
3394 END IF;
3395
3396 EXCEPTION
3397 WHEN xla_exceptions_pkg.application_exception THEN
3398 RAISE;
3399 WHEN OTHERS THEN
3400 xla_exceptions_pkg.raise_message
3401 (p_location => l_log_module);
3402 END compare_components;
3403
3404
3405 --=============================================================================
3406 --
3407 -- Name: analyze_deleted_oracle_aads
3408 -- Description:
3409 --
3410 --=============================================================================
3411 PROCEDURE analyze_deleted_oracle_aads
3412 IS
3413 CURSOR c_comp IS
3414 SELECT w.product_rule_type_code
3415 , w.product_rule_code
3416 FROM xla_product_rules_b w
3417 WHERE w.application_id = g_application_id
3418 AND w.amb_context_code = g_amb_context_code
3419 AND w.product_rule_type_code = C_OWNER_ORACLE
3420 AND NOT EXISTS (
3421 SELECT 1
3422 FROM xla_product_rules_b s
3423 WHERE s.application_id = g_application_id
3424 AND s.amb_context_code = g_staging_context_code
3425 AND s.product_rule_type_code = w.product_rule_type_code
3426 AND s.product_rule_code = w.product_rule_code);
3427
3428 l_log_module VARCHAR2(240);
3429 BEGIN
3430 IF g_log_enabled THEN
3431 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_aads';
3432 END IF;
3433
3434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3435 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_aads',
3436 p_module => l_log_module,
3437 p_level => C_LEVEL_PROCEDURE);
3438 END IF;
3439
3440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3441 trace(p_msg => 'BEGIN LOOP: deleted oracle aads',
3442 p_module => l_log_module,
3443 p_level => C_LEVEL_PROCEDURE);
3444 END IF;
3445
3446 FOR l_comp IN c_comp LOOP
3447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3448 trace(p_msg => 'LOOP: deleted oracle aad '||
3449 '- product_rule_type_code = '||l_comp.product_rule_type_code||
3450 ', product_rule_code = '||l_comp.product_rule_code,
3451 p_module => l_log_module,
3452 p_level => C_LEVEL_PROCEDURE);
3453 END IF;
3454
3455 record_updated_aad
3456 (p_product_rule_type_code => l_comp.product_rule_type_code
3457 ,p_product_rule_code => l_comp.product_rule_code
3458 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
3459 END LOOP;
3460
3461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3462 trace(p_msg => 'END LOOP: deleted oracle aads',
3463 p_module => l_log_module,
3464 p_level => C_LEVEL_PROCEDURE);
3465 END IF;
3466
3467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3468 trace(p_msg => 'END of function analyze_deleted_oracle_aads',
3469 p_module => l_log_module,
3470 p_level => C_LEVEL_PROCEDURE);
3471 END IF;
3472
3473 EXCEPTION
3474 WHEN xla_exceptions_pkg.application_exception THEN
3475 RAISE;
3476 WHEN OTHERS THEN
3477 xla_exceptions_pkg.raise_message
3478 (p_location => l_log_module);
3479 END analyze_deleted_oracle_aads;
3480
3481 --=============================================================================
3482 --
3483 -- Name: analyze_deleted_oracle_ems
3484 -- Description:
3485 --
3486 --=============================================================================
3487 PROCEDURE analyze_deleted_oracle_ems
3488 IS
3489 CURSOR c_comp IS
3490 SELECT w.product_rule_type_code
3491 , w.product_rule_code
3492 , w.event_class_code
3493 , w.event_type_code
3494 FROM xla_prod_acct_headers w
3495 , xla_product_rules_b b
3496 WHERE b.application_id = g_application_id
3497 AND b.amb_context_code = g_staging_context_code
3498 AND b.product_rule_type_code = w.product_rule_type_code
3499 AND b.product_rule_code = w.product_rule_code
3500 AND w.application_id = g_application_id
3501 AND w.amb_context_code = g_amb_context_code
3502 AND w.product_rule_type_code = C_OWNER_ORACLE
3503 AND NOT EXISTS (
3504 SELECT 1
3505 FROM xla_prod_acct_headers s
3506 WHERE s.application_id = g_application_id
3507 AND s.amb_context_code = g_staging_context_code
3508 AND s.product_rule_type_code = w.product_rule_type_code
3509 AND s.product_rule_code = w.product_rule_code
3510 AND s.event_class_code = w.event_class_code
3511 AND s.event_type_code = w.event_type_code);
3512
3513 l_log_module VARCHAR2(240);
3514 BEGIN
3515 IF g_log_enabled THEN
3516 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_ems';
3517 END IF;
3518
3519 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3520 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_ems',
3521 p_module => l_log_module,
3522 p_level => C_LEVEL_PROCEDURE);
3523 END IF;
3524
3525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3526 trace(p_msg => 'BEGIN LOOP: deleted oracle event types',
3527 p_module => l_log_module,
3528 p_level => C_LEVEL_PROCEDURE);
3529 END IF;
3530
3531 FOR l_comp IN c_comp LOOP
3532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3533 trace(p_msg => 'LOOP: deleted oracle event type '||
3534 '- product_rule_type_code = '||l_comp.product_rule_type_code||
3535 ', product_rule_code = '||l_comp.product_rule_code||
3536 ', event_class_code = '||l_comp.event_class_code||
3537 ', event_type_code = '||l_comp.event_type_code,
3538 p_module => l_log_module,
3539 p_level => C_LEVEL_PROCEDURE);
3540 END IF;
3541
3542 record_updated_header_assgn
3543 (p_product_rule_type_code => l_comp.product_rule_type_code
3544 ,p_product_rule_code => l_comp.product_rule_code
3545 ,p_event_class_code => l_comp.event_class_code
3546 ,p_event_type_code => l_comp.event_type_code
3547 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
3548 END LOOP;
3549
3550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3551 trace(p_msg => 'END LOOP: deleted oracle event types',
3552 p_module => l_log_module,
3553 p_level => C_LEVEL_PROCEDURE);
3554 END IF;
3555
3556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3557 trace(p_msg => 'END of function analyze_deleted_oracle_ems',
3558 p_module => l_log_module,
3559 p_level => C_LEVEL_PROCEDURE);
3560 END IF;
3561
3562 EXCEPTION
3563 WHEN xla_exceptions_pkg.application_exception THEN
3564 RAISE;
3565 WHEN OTHERS THEN
3566 xla_exceptions_pkg.raise_message
3567 (p_location => l_log_module);
3568 END analyze_deleted_oracle_ems;
3569
3570 --=============================================================================
3571 --
3572 -- Name: analyze_deleted_oracle_adrs
3573 -- Description:
3574 --
3575 --=============================================================================
3576 PROCEDURE analyze_deleted_oracle_adrs
3577 IS
3578 CURSOR c_comp IS
3579 SELECT w.application_id segment_rule_appl_id
3580 ,w.segment_rule_type_code
3581 , w.segment_rule_code
3582 FROM xla_seg_rules_b w
3583 WHERE w.application_id = g_application_id
3584 AND w.amb_context_code = g_amb_context_code
3585 AND w.segment_rule_type_code = C_OWNER_ORACLE
3586 AND NOT EXISTS (
3587 SELECT 1
3588 FROM xla_seg_rules_b s
3589 WHERE s.application_id = g_application_id
3590 AND s.amb_context_code = g_staging_context_code
3591 AND s.segment_rule_type_code = w.segment_rule_type_code
3592 AND s.segment_rule_code = w.segment_rule_code);
3593
3594 CURSOR c_comp_dtl IS
3595 SELECT w.application_id segment_rule_appl_id
3596 ,w.segment_rule_type_code
3597 ,w.segment_rule_code
3598 ,w.user_sequence
3599 ,C_MERGE_IMPACT_DELETED
3600 FROM xla_seg_rule_details w
3601 , xla_seg_rules_b b
3602 WHERE b.application_id = g_application_id
3603 AND b.amb_context_code = g_staging_context_code
3604 AND b.segment_rule_type_code = w.segment_rule_type_code
3605 AND b.segment_rule_code = w.segment_rule_code
3606 AND w.application_id = g_application_id
3607 AND w.amb_context_code = g_amb_context_code
3608 AND w.segment_rule_type_code = C_OWNER_ORACLE
3609 AND NOT EXISTS
3610 (SELECT 1
3611 FROM xla_seg_rule_details s
3612 WHERE s.application_id = g_application_id
3613 AND s.amb_context_code = g_staging_context_code
3614 AND s.segment_rule_type_code = w.segment_rule_type_code
3615 AND s.segment_rule_code = w.segment_rule_code
3616 AND s.user_sequence = w.user_sequence);
3617
3618 l_log_module VARCHAR2(240);
3619 BEGIN
3620 IF g_log_enabled THEN
3621 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_adrs';
3622 END IF;
3623
3624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3625 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_adrs',
3626 p_module => l_log_module,
3627 p_level => C_LEVEL_PROCEDURE);
3628 END IF;
3629
3630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3631 trace(p_msg => 'BEGIN LOOP: deleted oracle adrs',
3632 p_module => l_log_module,
3633 p_level => C_LEVEL_PROCEDURE);
3634 END IF;
3635
3636 FOR l_comp IN c_comp LOOP
3637 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3638 trace(p_msg => 'LOOP: deleted oracle adr '||
3639 '- segment_rule_type_code = '||l_comp.segment_rule_type_code||
3640 ', segment_rule_code = '||l_comp.segment_rule_code,
3641 p_module => l_log_module,
3642 p_level => C_LEVEL_PROCEDURE);
3643 END IF;
3644
3645 record_deleted_adr
3646 (p_segment_rule_appl_id => l_comp.segment_rule_appl_id
3647 ,p_segment_rule_type_code => l_comp.segment_rule_type_code
3648 ,p_segment_rule_code => l_comp.segment_rule_code);
3649 END LOOP;
3650
3651 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3652 trace(p_msg => 'END LOOP: deleted oracle adrs',
3653 p_module => l_log_module,
3654 p_level => C_LEVEL_PROCEDURE);
3655 END IF;
3656
3657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3658 trace(p_msg => 'BEGIN LOOP: deleted oracle adr details',
3659 p_module => l_log_module,
3660 p_level => C_LEVEL_PROCEDURE);
3661 END IF;
3662
3663 FOR l_comp IN c_comp_dtl LOOP
3664 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3665 trace(p_msg => 'LOOP: deleted oracle adr detail '||
3666 '- segment_rule_type_code = '||l_comp.segment_rule_type_code||
3667 ', segment_rule_code = '||l_comp.segment_rule_code||
3668 ', user_sequence = '||l_comp.user_sequence,
3669 p_module => l_log_module,
3670 p_level => C_LEVEL_PROCEDURE);
3671 END IF;
3672
3673 record_updated_adr_detail
3674 (p_segment_rule_appl_id => l_comp.segment_rule_appl_id
3675 ,p_segment_rule_type_code => l_comp.segment_rule_type_code
3676 ,p_segment_rule_code => l_comp.segment_rule_code
3677 ,p_user_sequence => l_comp.user_sequence
3678 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
3679 END LOOP;
3680
3681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3682 trace(p_msg => 'END LOOP: deleted oracle adr details',
3683 p_module => l_log_module,
3684 p_level => C_LEVEL_PROCEDURE);
3685 END IF;
3686
3687 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3688 trace(p_msg => 'END of function analyze_deleted_oracle_adrs',
3689 p_module => l_log_module,
3690 p_level => C_LEVEL_PROCEDURE);
3691 END IF;
3692
3693 EXCEPTION
3694 WHEN xla_exceptions_pkg.application_exception THEN
3695 RAISE;
3696 WHEN OTHERS THEN
3697 xla_exceptions_pkg.raise_message
3698 (p_location => l_log_module);
3699 END analyze_deleted_oracle_adrs;
3700
3701 --=============================================================================
3702 --
3703 -- Name: analyze_deleted_oracle_acs
3704 -- Description:
3705 --
3706 --=============================================================================
3707 PROCEDURE analyze_deleted_oracle_acs
3708 IS
3709 CURSOR c_comp IS
3710 SELECT w.analytical_criterion_type_code
3711 , w.analytical_criterion_code
3712 FROM xla_analytical_hdrs_b w
3713 WHERE w.application_id = g_application_id
3714 AND w.amb_context_code = g_amb_context_code
3715 AND w.analytical_criterion_type_code = C_OWNER_ORACLE
3716 AND NOT EXISTS (
3717 SELECT 1
3718 FROM xla_analytical_hdrs_b s
3719 WHERE s.application_id = g_application_id
3720 AND s.amb_context_code = g_staging_context_code
3721 AND s.analytical_criterion_type_code = w.analytical_criterion_type_code
3722 AND s.analytical_criterion_code = w.analytical_criterion_code);
3723
3724 CURSOR c_comp_dtl IS
3725 SELECT w.analytical_criterion_type_code
3726 ,w.analytical_criterion_code
3727 ,w.analytical_detail_code
3728 FROM xla_analytical_dtls_b w
3729 , xla_analytical_hdrs_b b
3730 WHERE b.amb_context_code = g_staging_context_code
3731 AND b.application_id = g_application_id
3732 AND b.analytical_criterion_type_code = w.analytical_criterion_type_code
3733 AND b.analytical_criterion_code = w.analytical_criterion_code
3734 AND w.amb_context_code = g_amb_context_code
3735 AND w.analytical_criterion_type_code = C_OWNER_ORACLE
3736 AND NOT EXISTS
3737 (SELECT 1
3738 FROM xla_analytical_dtls_b s
3739 WHERE s.amb_context_code = g_staging_context_code
3740 AND s.analytical_criterion_type_code = w.analytical_criterion_type_code
3741 AND s.analytical_criterion_code = w.analytical_criterion_code
3742 AND s.analytical_detail_code = w.analytical_detail_code);
3743
3744 l_log_module VARCHAR2(240);
3745 BEGIN
3746 IF g_log_enabled THEN
3747 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_acs';
3748 END IF;
3749
3750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3751 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_acs',
3752 p_module => l_log_module,
3753 p_level => C_LEVEL_PROCEDURE);
3754 END IF;
3755
3756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3757 trace(p_msg => 'BEGIN LOOP: deleted oracle ac ',
3758 p_module => l_log_module,
3759 p_level => C_LEVEL_PROCEDURE);
3760 END IF;
3761
3762 FOR l_comp IN c_comp LOOP
3763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3764 trace(p_msg => 'LOOP: deleted oracle ac '||
3765 '- analytical_criterion_type_code = '||l_comp.analytical_criterion_type_code||
3766 ', analytical_criterion_code = '||l_comp.analytical_criterion_code,
3767 p_module => l_log_module,
3768 p_level => C_LEVEL_PROCEDURE);
3769 END IF;
3770
3771 record_deleted_ac
3772 (p_ac_type_code => l_comp.analytical_criterion_type_code
3773 ,p_ac_code => l_comp.analytical_criterion_code);
3774 END LOOP;
3775
3776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3777 trace(p_msg => 'END LOOP: deleted oracle ac ',
3778 p_module => l_log_module,
3779 p_level => C_LEVEL_PROCEDURE);
3780 END IF;
3781
3782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3783 trace(p_msg => 'BEGIN LOOP: deleted oracle ac details',
3784 p_module => l_log_module,
3785 p_level => C_LEVEL_PROCEDURE);
3786 END IF;
3787
3788 FOR l_comp IN c_comp_dtl LOOP
3789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3790 trace(p_msg => 'LOOP: deleted oracle ac detail '||
3791 '- analytical_criterion_type_code = '||l_comp.analytical_criterion_type_code||
3792 ', analytical_criterion_code = '||l_comp.analytical_criterion_code||
3793 ', analytical_detail_code = '||l_comp.analytical_detail_code,
3794 p_module => l_log_module,
3795 p_level => C_LEVEL_PROCEDURE);
3796 END IF;
3797
3798 record_updated_ac_detail
3799 (p_ac_type_code => l_comp.analytical_criterion_type_code
3800 ,p_ac_code => l_comp.analytical_criterion_code
3801 ,p_ac_detail_code => l_comp.analytical_detail_code
3802 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
3803 END LOOP;
3804
3805 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3806 trace(p_msg => 'END LOOP: deleted oracle ac details',
3807 p_module => l_log_module,
3808 p_level => C_LEVEL_PROCEDURE);
3809 END IF;
3810
3811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3812 trace(p_msg => 'END of function analyze_deleted_oracle_acs',
3813 p_module => l_log_module,
3814 p_level => C_LEVEL_PROCEDURE);
3815 END IF;
3816
3817 EXCEPTION
3818 WHEN xla_exceptions_pkg.application_exception THEN
3819 RAISE;
3820 WHEN OTHERS THEN
3821 xla_exceptions_pkg.raise_message
3822 (p_location => l_log_module);
3823 END analyze_deleted_oracle_acs;
3824
3825 --=============================================================================
3826 --
3827 -- Name: analyze_deleted_oracle_descs
3828 -- Description:
3829 --
3830 --=============================================================================
3831 PROCEDURE analyze_deleted_oracle_descs
3832 IS
3833 CURSOR c_comp IS
3834 SELECT w.description_type_code
3835 , w.description_code
3836 FROM xla_descriptions_b w
3837 WHERE w.application_id = g_application_id
3838 AND w.amb_context_code = g_amb_context_code
3839 AND w.description_type_code = C_OWNER_ORACLE
3840 AND NOT EXISTS (
3841 SELECT 1
3842 FROM xla_descriptions_b s
3843 WHERE s.application_id = g_application_id
3844 AND s.amb_context_code = g_staging_context_code
3845 AND s.description_type_code = w.description_type_code
3846 AND s.description_code = w.description_code);
3847
3848 l_log_module VARCHAR2(240);
3849 BEGIN
3850 IF g_log_enabled THEN
3851 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_descs';
3852 END IF;
3853
3854 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3855 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_descs',
3856 p_module => l_log_module,
3857 p_level => C_LEVEL_PROCEDURE);
3858 END IF;
3859
3860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3861 trace(p_msg => 'BEGIN LOOP: deleted oracle descriptions',
3862 p_module => l_log_module,
3863 p_level => C_LEVEL_PROCEDURE);
3864 END IF;
3865
3866 FOR l_comp IN c_comp LOOP
3867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3868 trace(p_msg => 'LOOP: deleted oracle ac '||
3869 '- description_type_code = '||l_comp.description_type_code||
3870 ', description_code = '||l_comp.description_code,
3871 p_module => l_log_module,
3872 p_level => C_LEVEL_PROCEDURE);
3873 END IF;
3874
3875 record_deleted_desc
3876 (p_description_type_code => l_comp.description_type_code
3877 ,p_description_code => l_comp.description_code);
3878 END LOOP;
3879
3880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3881 trace(p_msg => 'END LOOP: deleted oracle descriptions',
3882 p_module => l_log_module,
3883 p_level => C_LEVEL_PROCEDURE);
3884 END IF;
3885
3886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3887 trace(p_msg => 'END of function analyze_deleted_oracle_descs',
3888 p_module => l_log_module,
3889 p_level => C_LEVEL_PROCEDURE);
3890 END IF;
3891
3892 EXCEPTION
3893 WHEN xla_exceptions_pkg.application_exception THEN
3894 RAISE;
3895 WHEN OTHERS THEN
3896 xla_exceptions_pkg.raise_message
3897 (p_location => l_log_module);
3898 END analyze_deleted_oracle_descs;
3899
3900 --=============================================================================
3901 --
3902 -- Name: analyze_deleted_oracle_jlts
3903 -- Description:
3904 --
3905 --=============================================================================
3906 PROCEDURE analyze_deleted_oracle_jlts
3907 IS
3908 CURSOR c_comp IS
3909 SELECT w.event_class_code
3910 , w.accounting_line_type_code
3911 , w.accounting_line_code
3912 FROM xla_acct_line_types_b w
3913 WHERE w.application_id = g_application_id
3914 AND w.amb_context_code = g_amb_context_code
3915 AND w.accounting_line_type_code = C_OWNER_ORACLE
3916 AND NOT EXISTS (
3917 SELECT 1
3918 FROM xla_acct_line_types_b s
3919 WHERE s.application_id = g_application_id
3920 AND s.amb_context_code = g_staging_context_code
3921 AND s.event_class_code = w.event_class_code
3922 AND s.accounting_line_type_code = w.accounting_line_type_code
3923 AND s.accounting_line_code = w.accounting_line_code);
3924
3925 CURSOR c_comp_dtl IS
3926 SELECT w.event_class_code
3927 , w.accounting_line_type_code
3928 ,w.accounting_line_code
3929 ,w.accounting_attribute_code
3930 FROM xla_jlt_acct_attrs w
3931 , xla_acct_line_types_b b
3932 WHERE b.amb_context_code = g_staging_context_code
3933 AND b.application_id = g_application_id
3934 AND b.accounting_line_type_code = w.accounting_line_type_code
3935 AND b.accounting_line_code = w.accounting_line_code
3936 AND w.amb_context_code = g_amb_context_code
3937 AND w.application_id = g_application_id
3938 AND w.accounting_line_type_code = C_OWNER_ORACLE
3939 AND NOT EXISTS
3940 (SELECT 1
3941 FROM xla_jlt_acct_attrs s
3942 WHERE s.amb_context_code = g_staging_context_code
3943 AND s.application_id = g_application_id
3944 AND s.accounting_line_type_code = w.accounting_line_type_code
3945 AND s.accounting_line_code = w.accounting_line_code
3946 AND s.accounting_attribute_code = w.accounting_attribute_code);
3947
3948 l_log_module VARCHAR2(240);
3949 BEGIN
3950 IF g_log_enabled THEN
3951 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_jlts';
3952 END IF;
3953
3954 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3955 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_jlts',
3956 p_module => l_log_module,
3957 p_level => C_LEVEL_PROCEDURE);
3958 END IF;
3959
3960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3961 trace(p_msg => 'BEGIN LOOP: deleted oracle jlts',
3962 p_module => l_log_module,
3963 p_level => C_LEVEL_PROCEDURE);
3964 END IF;
3965
3966 FOR l_comp IN c_comp LOOP
3967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3968 trace(p_msg => 'LOOP: deleted oracle jlt '||
3969 '- event_class_code = '||l_comp.event_class_code||
3970 ', accounting_line_type_code = '||l_comp.accounting_line_type_code||
3971 ', accounting_line_code = '||l_comp.accounting_line_code,
3972 p_module => l_log_module,
3973 p_level => C_LEVEL_PROCEDURE);
3974 END IF;
3975
3976 record_deleted_jlt
3977 (p_event_class_code => l_comp.event_class_code
3978 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
3979 ,p_accounting_line_code => l_comp.accounting_line_code);
3980 END LOOP;
3981
3982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3983 trace(p_msg => 'END LOOP: deleted oracle jlts',
3984 p_module => l_log_module,
3985 p_level => C_LEVEL_PROCEDURE);
3986 END IF;
3987
3988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3989 trace(p_msg => 'BEGIN LOOP: deleted oracle jlt details',
3990 p_module => l_log_module,
3991 p_level => C_LEVEL_PROCEDURE);
3992 END IF;
3993
3994 FOR l_comp IN c_comp_dtl LOOP
3995 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3996 trace(p_msg => 'LOOP: deleted oracle jlt '||
3997 '- event_class_code = '||l_comp.event_class_code||
3998 ', accounting_line_type_code = '||l_comp.accounting_line_type_code||
3999 ', accounting_line_code = '||l_comp.accounting_line_code||
4000 ', accounting_attribute_code = '||l_comp.accounting_attribute_code,
4001 p_module => l_log_module,
4002 p_level => C_LEVEL_PROCEDURE);
4003 END IF;
4004
4005 record_updated_jlt_acct_attr
4006 (p_event_class_code => l_comp.event_class_code
4007 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
4008 ,p_accounting_line_code => l_comp.accounting_line_code
4009 ,p_accounting_attribute_code => l_comp.accounting_attribute_code
4010 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
4011 END LOOP;
4012
4013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4014 trace(p_msg => 'END LOOP: deleted oracle jlt details',
4015 p_module => l_log_module,
4016 p_level => C_LEVEL_PROCEDURE);
4017 END IF;
4018
4019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4020 trace(p_msg => 'END of function analyze_deleted_oracle_jlts',
4021 p_module => l_log_module,
4022 p_level => C_LEVEL_PROCEDURE);
4023 END IF;
4024
4025 EXCEPTION
4026 WHEN xla_exceptions_pkg.application_exception THEN
4027 RAISE;
4028 WHEN OTHERS THEN
4029 xla_exceptions_pkg.raise_message
4030 (p_location => l_log_module);
4031 END analyze_deleted_oracle_jlts;
4032
4033 --=============================================================================
4034 --
4035 -- Name: analyze_deleted_oracle_jlds
4036 -- Description:
4037 --
4038 --=============================================================================
4039 PROCEDURE analyze_deleted_oracle_jlds
4040 IS
4041 CURSOR c_comp IS
4042 SELECT w.event_class_code
4043 , w.event_type_code
4044 , w.line_definition_owner_code
4045 , w.line_definition_code
4046 FROM xla_line_definitions_b w
4047 WHERE w.application_id = g_application_id
4048 AND w.amb_context_code = g_amb_context_code
4049 AND w.line_definition_owner_code = C_OWNER_ORACLE
4050 AND NOT EXISTS (
4051 SELECT 1
4052 FROM xla_line_definitions_b s
4053 WHERE s.application_id = g_application_id
4054 AND s.amb_context_code = g_staging_context_code
4055 AND s.event_class_code = w.event_class_code
4056 AND s.event_type_code = w.event_type_code
4057 AND s.line_definition_owner_code = w.line_definition_owner_code
4058 AND s.line_definition_code = w.line_definition_code);
4059
4060 CURSOR c_assgn IS
4061 SELECT w.product_rule_type_code
4062 , w.product_rule_code
4063 , w.event_class_code
4064 , w.event_type_code
4065 , w.line_definition_owner_code
4066 , w.line_definition_code
4067 FROM xla_aad_line_defn_assgns w
4068 , xla_prod_acct_headers b
4069 WHERE b.amb_context_code = g_staging_context_code
4070 AND b.application_id = g_application_id
4071 AND b.product_rule_type_code = w.product_rule_type_code
4072 AND b.product_rule_code = w.product_rule_code
4073 AND b.event_class_code = w.event_class_code
4074 AND b.event_type_code = w.event_type_code
4075 AND w.amb_context_code = g_amb_context_code
4076 AND w.application_id = g_application_id
4077 AND w.line_definition_owner_code = C_OWNER_ORACLE
4078 AND NOT EXISTS
4079 (SELECT 1
4080 FROM xla_aad_line_defn_assgns s
4081 WHERE s.amb_context_code = g_staging_context_code
4082 AND s.application_id = g_application_id
4083 AND s.product_rule_type_code = w.product_rule_type_code
4084 AND s.product_rule_code = w.product_rule_code
4085 AND s.event_class_code = w.event_class_code
4086 AND s.event_type_code = w.event_type_code
4087 AND s.line_definition_owner_code = w.line_definition_owner_code
4088 AND s.line_definition_code = w.line_definition_code);
4089
4090 l_log_module VARCHAR2(240);
4091 BEGIN
4092 IF g_log_enabled THEN
4093 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_jlds';
4094 END IF;
4095
4096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4097 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_jlds',
4098 p_module => l_log_module,
4099 p_level => C_LEVEL_PROCEDURE);
4100 END IF;
4101
4102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4103 trace(p_msg => 'BEGIN LOOP: deleted oracle jlds',
4104 p_module => l_log_module,
4105 p_level => C_LEVEL_PROCEDURE);
4106 END IF;
4107
4108 FOR l_comp IN c_comp LOOP
4109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4110 trace(p_msg => 'LOOP: deleted oracle jld '||
4111 '- event_class_code = '||l_comp.event_class_code||
4112 ', event_type_code = '||l_comp.event_type_code||
4113 ', line_definition_owner_code = '||l_comp.line_definition_owner_code||
4114 ', line_definition_code = '||l_comp.line_definition_code,
4115 p_module => l_log_module,
4116 p_level => C_LEVEL_PROCEDURE);
4117 END IF;
4118
4119 record_deleted_jld
4120 (p_event_class_code => l_comp.event_class_code
4121 ,p_event_type_code => l_comp.event_type_code
4122 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
4123 ,p_line_definition_code => l_comp.line_definition_code);
4124 END LOOP;
4125
4126 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4127 trace(p_msg => 'END LOOP: deleted oracle jlds',
4128 p_module => l_log_module,
4129 p_level => C_LEVEL_PROCEDURE);
4130 END IF;
4131
4132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4133 trace(p_msg => 'BEGIN LOOP: deleted oracle jld assgns',
4134 p_module => l_log_module,
4135 p_level => C_LEVEL_PROCEDURE);
4136 END IF;
4137
4138 FOR l_comp IN c_assgn LOOP
4139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4140 trace(p_msg => 'LOOP: deleted oracle jld assgns '||
4141 '- product_rule_type_code = '||l_comp.product_rule_type_code||
4142 ', product_rule_code = '||l_comp.product_rule_code||
4143 ', event_class_code = '||l_comp.event_class_code||
4144 ', event_type_code = '||l_comp.event_type_code||
4145 ', line_definition_owner_code = '||l_comp.line_definition_owner_code||
4146 ', line_definition_code = '||l_comp.line_definition_code,
4147 p_module => l_log_module,
4148 p_level => C_LEVEL_PROCEDURE);
4149 END IF;
4150
4151 record_updated_jld_assgn
4152 (p_product_rule_type_code => l_comp.product_rule_type_code
4153 ,p_product_rule_code => l_comp.product_rule_code
4154 ,p_event_class_code => l_comp.event_class_code
4155 ,p_event_type_code => l_comp.event_type_code
4156 ,p_line_defn_owner_code => l_comp.line_definition_owner_code
4157 ,p_line_defn_code => l_comp.line_definition_code
4158 ,p_merge_impact => C_MERGE_IMPACT_DELETED);
4159 END LOOP;
4160
4161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4162 trace(p_msg => 'END LOOP: deleted oracle jld assgns',
4163 p_module => l_log_module,
4164 p_level => C_LEVEL_PROCEDURE);
4165 END IF;
4166
4167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4168 trace(p_msg => 'END of function analyze_deleted_oracle_jlds',
4169 p_module => l_log_module,
4170 p_level => C_LEVEL_PROCEDURE);
4171 END IF;
4172
4173 EXCEPTION
4174 WHEN xla_exceptions_pkg.application_exception THEN
4175 RAISE;
4176 WHEN OTHERS THEN
4177 xla_exceptions_pkg.raise_message
4178 (p_location => l_log_module);
4179 END analyze_deleted_oracle_jlds;
4180
4181
4182 --=============================================================================
4183 --
4184 -- Name: analyze_deleted_oracle_comps
4185 -- Description:
4186 --
4187 --=============================================================================
4188 PROCEDURE analyze_deleted_oracle_comps
4189 IS
4190 l_log_module VARCHAR2(240);
4191 BEGIN
4192 IF g_log_enabled THEN
4193 l_log_module := C_DEFAULT_MODULE||'.analyze_deleted_oracle_comps';
4194 END IF;
4195
4196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4197 trace(p_msg => 'BEGIN of function analyze_deleted_oracle_comps',
4198 p_module => l_log_module,
4199 p_level => C_LEVEL_PROCEDURE);
4200 END IF;
4201
4202 analyze_deleted_oracle_acs;
4203 analyze_deleted_oracle_adrs;
4204 analyze_deleted_oracle_descs;
4205 analyze_deleted_oracle_jlts;
4206 analyze_deleted_oracle_jlds;
4207 analyze_deleted_oracle_ems;
4208 analyze_deleted_oracle_aads;
4209
4210 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4211 trace(p_msg => 'END of function analyze_deleted_oracle_comps',
4212 p_module => l_log_module,
4213 p_level => C_LEVEL_PROCEDURE);
4214 END IF;
4215
4216 EXCEPTION
4217 WHEN xla_exceptions_pkg.application_exception THEN
4218 RAISE;
4219 WHEN OTHERS THEN
4220 xla_exceptions_pkg.raise_message
4221 (p_location => l_log_module);
4222 END analyze_deleted_oracle_comps;
4223
4224
4225 --=============================================================================
4226 --
4227 -- Name: compare_mapping_sets
4228 -- Description:
4229 --
4230 --=============================================================================
4231 PROCEDURE compare_mapping_sets
4232 IS
4233 CURSOR c_comp IS
4234 SELECT ts.mapping_set_code
4235 ,ts.name s_name
4236 ,tw.name w_name
4237 ,ts.description s_description
4238 ,tw.description w_description
4239 ,bs.accounting_coa_id s_accounting_coa_id
4240 ,bw.accounting_coa_id w_accounting_coa_id
4241 ,bs.value_set_id s_value_set_id
4242 ,bw.value_set_id w_value_set_id
4243 ,bs.enabled_flag s_enabled_flag
4244 ,bw.enabled_flag w_enabled_flag
4245 ,bs.flexfield_assign_mode_code s_flexfield_assign_mode_code
4246 ,bw.flexfield_assign_mode_code w_flexfield_assign_mode_code
4247 ,bs.flexfield_segment_code s_flexfield_segment_code
4248 ,bw.flexfield_segment_code w_flexfield_segment_code
4249 ,bs.view_application_id s_view_application_id
4250 ,bw.view_application_id w_view_application_id
4251 ,bs.lookup_type s_lookup_type
4252 ,bw.lookup_type w_lookup_type
4253 FROM xla_mapping_sets_b bs
4254 JOIN xla_mapping_sets_tl ts
4255 ON ts.amb_context_code = bs.amb_context_code
4256 AND ts.mapping_set_code = bs.mapping_set_code
4257 AND ts.language = USERENV('LANG')
4258 JOIN xla_mapping_sets_b bw
4259 ON bw.amb_context_code = g_amb_context_code
4260 AND bw.mapping_set_code = bs.mapping_set_code
4261 JOIN xla_mapping_sets_tl tw
4262 ON tw.amb_context_code = bw.amb_context_code
4263 AND tw.mapping_set_code = bw.mapping_set_code
4264 AND tw.language = USERENV('LANG')
4265 WHERE bs.amb_context_code = g_staging_context_code
4266 AND (ts.name <> tw.name OR
4267 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
4268 NVL(bs.value_set_id,C_NUM) <> NVL(bw.value_set_id,C_NUM) OR
4269 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id,C_NUM) OR
4270 bs.flexfield_assign_mode_code <> bw.flexfield_assign_mode_code OR
4271 NVL(bs.flexfield_segment_code,C_CHAR) <> NVL(bw.flexfield_segment_code,C_CHAR) OR
4272 NVL(bs.view_application_id,C_NUM) <> NVL(bw.view_application_id,C_NUM) OR
4273 NVL(bs.lookup_type,C_CHAR) <> NVL(bw.lookup_type,C_CHAR) OR
4274 bs.enabled_flag <> bw.enabled_flag);
4275
4276 l_key VARCHAR2(240);
4277 l_log_module VARCHAR2(240);
4278 BEGIN
4279 IF g_log_enabled THEN
4280 l_log_module := C_DEFAULT_MODULE||'.compare_mapping_sets';
4281 END IF;
4282
4283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4284 trace(p_msg => 'BEGIN of function compare_mapping_sets',
4285 p_module => l_log_module,
4286 p_level => C_LEVEL_PROCEDURE);
4287 END IF;
4288
4289 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4290 trace(p_msg => 'BEGIN LOOP: updated mapping sets',
4291 p_module => l_log_module,
4292 p_level => C_LEVEL_PROCEDURE);
4293 END IF;
4294
4295 FOR l_comp in c_comp LOOP
4296
4297 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4298 trace(p_msg => 'LOOP: updated ms '||
4299 '- mapping_set_code = '||l_comp.mapping_set_code,
4300 p_module => l_log_module,
4301 p_level => C_LEVEL_PROCEDURE);
4302 END IF;
4303
4304 l_key := l_comp.mapping_set_code;
4305
4306 IF (l_comp.s_name <> l_comp.w_name) THEN
4307 record_updated_property
4308 (p_component_type => 'AMB_MS'
4309 ,p_component_key => l_key
4310 ,p_property => 'NAME'
4311 ,p_old_value => l_comp.w_name
4312 ,p_new_value => l_comp.s_name);
4313 END IF;
4314
4315 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
4316 record_updated_property
4317 (p_component_type => 'AMB_MS'
4318 ,p_component_key => l_key
4319 ,p_property => 'DESCRIPTION'
4320 ,p_old_value => l_comp.w_description
4321 ,p_new_value => l_comp.s_description);
4322 END IF;
4323
4324 IF (NVL(l_comp.s_accounting_coa_id,C_NUM) <> NVL(l_comp.w_accounting_coa_id,C_NUM)) THEN
4325 record_updated_property
4326 (p_component_type => 'AMB_MS'
4327 ,p_component_key => l_key
4328 ,p_property => 'ACCOUNTING_COA'
4329 ,p_old_value => l_comp.w_accounting_coa_id
4330 ,p_new_value => l_comp.s_accounting_coa_id);
4331 END IF;
4332
4333 IF (NVL(l_comp.s_value_set_id,C_NUM) <> NVL(l_comp.w_value_set_id,C_NUM)) THEN
4334 record_updated_property
4335 (p_component_type => 'AMB_MS'
4336 ,p_component_key => l_key
4337 ,p_property => 'VALUE_SET'
4338 ,p_old_value => l_comp.w_value_set_id
4339 ,p_new_value => l_comp.s_value_set_id);
4340 END IF;
4341
4342 IF (l_comp.s_flexfield_assign_mode_code <> l_comp.w_flexfield_assign_mode_code) THEN
4343 record_updated_property
4344 (p_component_type => 'AMB_MS'
4345 ,p_component_key => l_key
4346 ,p_property => 'FLEXFIELD_ASSIGN_MODE'
4347 ,p_old_value => l_comp.w_flexfield_assign_mode_code
4348 ,p_new_value => l_comp.s_flexfield_assign_mode_code
4349 ,p_lookup_type => 'XLA_ASSIGN_FLEX_MODE');
4350 END IF;
4351
4352 IF (NVL(l_comp.s_flexfield_segment_code,C_CHAR) <> NVL(l_comp.w_flexfield_segment_code,C_CHAR)) THEN
4353 record_updated_property
4354 (p_component_type => 'AMB_MS'
4355 ,p_component_key => l_key
4356 ,p_property => 'FLEXFIELD_SEGMENT'
4357 ,p_old_value => l_comp.w_flexfield_segment_code
4358 ,p_new_value => l_comp.s_flexfield_segment_code);
4359 END IF;
4360
4361 IF (NVL(l_comp.s_view_application_id,C_NUM) <> NVL(l_comp.w_view_application_id,C_NUM)) THEN
4362 record_updated_property
4363 (p_component_type => 'AMB_MS'
4364 ,p_component_key => l_key
4365 ,p_property => 'VIEW_APPLICATION'
4366 ,p_old_value => l_comp.w_view_application_id
4367 ,p_new_value => l_comp.s_view_application_id);
4368 END IF;
4369
4370 IF (NVL(l_comp.s_lookup_type,C_CHAR) <> NVL(l_comp.w_lookup_type,C_CHAR)) THEN
4371 record_updated_property
4372 (p_component_type => 'AMB_MS'
4373 ,p_component_key => l_key
4374 ,p_property => 'LOOKUP_TYPE'
4375 ,p_old_value => l_comp.w_lookup_type
4376 ,p_new_value => l_comp.s_lookup_type);
4377 END IF;
4378
4379 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
4380 record_updated_property
4381 (p_component_type => 'AMB_MS'
4382 ,p_component_key => l_key
4383 ,p_property => 'ENABLED'
4384 ,p_old_value => l_comp.w_enabled_flag
4385 ,p_new_value => l_comp.s_enabled_flag
4386 ,p_lookup_type => 'XLA_YES_NO');
4387 END IF;
4388
4389 record_updated_ms
4390 (p_mapping_set_code => l_comp.mapping_set_code
4391 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
4392
4393 END LOOP;
4394
4395 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4396 trace(p_msg => 'END LOOP: updated mapping sets',
4397 p_module => l_log_module,
4398 p_level => C_LEVEL_PROCEDURE);
4399 END IF;
4400
4401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4402 trace(p_msg => 'END of function compare_mapping_sets',
4403 p_module => l_log_module,
4404 p_level => C_LEVEL_PROCEDURE);
4405 END IF;
4406
4407 EXCEPTION
4408 WHEN xla_exceptions_pkg.application_exception THEN
4409 RAISE;
4410 WHEN OTHERS THEN
4411 xla_exceptions_pkg.raise_message
4412 (p_location => l_log_module);
4413 END compare_mapping_sets;
4414
4415 --=============================================================================
4416 --
4417 -- Name: compare_mapping_set_values
4418 -- Description:
4419 --
4420 --=============================================================================
4421 PROCEDURE compare_mapping_set_values
4422 IS
4423 CURSOR c_comp IS
4424 SELECT s.mapping_set_code
4425 ,bs.flexfield_assign_mode_code
4426 ,bs.value_set_id
4427 ,bs.view_application_id
4428 ,bs.lookup_type
4429 ,s.value_constant
4430 ,s.effective_date_from
4431 ,s.effective_date_to
4432 ,s.enabled_flag
4433 ,s.input_value_type_code
4434 ,s.input_value_constant
4435 ,C_MERGE_IMPACT_NEW merge_impact
4436 FROM xla_mapping_set_values s
4437 JOIN xla_mapping_sets_b bs
4438 ON bs.amb_context_code = s.amb_context_code
4439 AND bs.mapping_set_code = s.mapping_set_code
4440 WHERE s.amb_context_code = g_staging_context_code
4441 AND NOT EXISTS
4442 (SELECT 1
4443 FROM xla_mapping_set_values w
4444 WHERE w.amb_context_code = g_amb_context_code
4445 AND w.mapping_set_code = s.mapping_set_code
4446 AND NVL(w.value_constant,C_CHAR) = NVL(s.value_constant,C_CHAR)
4447 AND w.effective_date_from = s.effective_date_from
4448 AND NVL(w.effective_date_to,C_DATE) = NVL(s.effective_date_to,C_DATE)
4449 AND w.enabled_flag = s.enabled_flag
4450 AND w.input_value_type_code = s.input_value_type_code
4451 AND NVL(w.input_value_constant,C_CHAR) = NVL(s.input_value_constant,C_CHAR))
4452 UNION
4453 SELECT w.mapping_set_code
4454 ,bw.flexfield_assign_mode_code
4455 ,bw.value_set_id
4456 ,bw.view_application_id
4457 ,bw.lookup_type
4458 ,w.value_constant
4459 ,w.effective_date_from
4460 ,w.effective_date_to
4461 ,w.enabled_flag
4462 ,w.input_value_type_code
4463 ,w.input_value_constant
4464 ,C_MERGE_IMPACT_DELETED
4465 FROM xla_mapping_set_values w
4466 JOIN xla_mapping_sets_b bw
4467 ON bw.amb_context_code = w.amb_context_code
4468 AND bw.mapping_set_code = w.mapping_set_code
4469 WHERE w.amb_context_code = g_staging_context_code
4470 AND NOT EXISTS
4471 (SELECT 1
4472 FROM xla_mapping_set_values s
4473 WHERE s.amb_context_code = g_staging_context_code
4474 AND s.mapping_set_code = w.mapping_set_code
4475 AND NVL(s.value_constant,C_CHAR) = NVL(w.value_constant,C_CHAR)
4476 AND s.effective_date_from = w.effective_date_from
4477 AND NVL(s.effective_date_to,C_DATE) = NVL(w.effective_date_to,C_DATE)
4478 AND s.enabled_flag = w.enabled_flag
4479 AND s.input_value_type_code = w.input_value_type_code
4480 AND NVL(s.input_value_constant,C_CHAR) = NVL(w.input_value_constant,C_CHAR));
4481
4482 l_key VARCHAR2(240);
4483 l_log_module VARCHAR2(240);
4484 BEGIN
4485 IF g_log_enabled THEN
4486 l_log_module := C_DEFAULT_MODULE||'.compare_mapping_set_values';
4487 END IF;
4488
4489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4490 trace(p_msg => 'BEGIN of function compare_mapping_set_values',
4491 p_module => l_log_module,
4492 p_level => C_LEVEL_PROCEDURE);
4493 END IF;
4494
4495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4496 trace(p_msg => 'BEGIN LOOP: updated mapping set values',
4497 p_module => l_log_module,
4498 p_level => C_LEVEL_PROCEDURE);
4499 END IF;
4500
4501 FOR l_comp in c_comp LOOP
4502
4503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4504 trace(p_msg => 'LOOP: updated ms value '||
4505 '- mapping_set_code = '||l_comp.mapping_set_code||
4506 ', merge_impact = '||l_comp.merge_impact,
4507 p_module => l_log_module,
4508 p_level => C_LEVEL_PROCEDURE);
4509 END IF;
4510
4511 record_updated_ms_value
4512 (p_mapping_set_code => l_comp.mapping_set_code
4513 ,p_flexfield_assign_mode_code=> l_comp.flexfield_assign_mode_code
4514 ,p_value_set_id => l_comp.value_set_id
4515 ,p_view_application_id => l_comp.view_application_id
4516 ,p_lookup_type => l_comp.lookup_type
4517 ,p_value_constant => l_comp.value_constant
4518 ,p_effective_date_from => l_comp.effective_date_from
4519 ,p_effective_date_to => l_comp.effective_date_to
4520 ,p_enabled_flag => l_comp.enabled_flag
4521 ,p_input_value_type_code => l_comp.input_value_type_code
4522 ,p_input_value_constant => l_comp.input_value_constant
4523 ,p_merge_impact => l_comp.merge_impact);
4524
4525 END LOOP;
4526
4527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4528 trace(p_msg => 'END LOOP: updated mapping set values',
4529 p_module => l_log_module,
4530 p_level => C_LEVEL_PROCEDURE);
4531 END IF;
4532
4533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4534 trace(p_msg => 'END of function compare_mapping_set_values',
4535 p_module => l_log_module,
4536 p_level => C_LEVEL_PROCEDURE);
4537 END IF;
4538
4539 EXCEPTION
4540 WHEN xla_exceptions_pkg.application_exception THEN
4541 RAISE;
4542 WHEN OTHERS THEN
4543 xla_exceptions_pkg.raise_message
4544 (p_location => l_log_module);
4545 END compare_mapping_set_values;
4546
4547 --=============================================================================
4548 --
4549 -- Name: compare_adrs
4550 -- Description:
4551 --
4552 --=============================================================================
4553 PROCEDURE compare_adrs
4554 IS
4555 CURSOR c_comp IS
4556 SELECT ts.application_id segment_rule_appl_id
4557 ,ts.segment_rule_type_code
4558 ,ts.segment_rule_code
4559 ,ts.name s_name
4560 ,tw.name w_name
4561 ,ts.description s_description
4562 ,tw.description w_description
4563 ,bs.transaction_coa_id s_transaction_coa_id
4564 ,bw.transaction_coa_id w_transaction_coa_id
4565 ,bs.accounting_coa_id s_accounting_coa_id
4566 ,bw.accounting_coa_id w_accounting_coa_id
4567 ,bs.flexfield_assign_mode_code s_flexfield_assign_mode_code
4568 ,bw.flexfield_assign_mode_code w_flexfield_assign_mode_code
4569 ,bs.flexfield_segment_code s_flexfield_segment_code
4570 ,bw.flexfield_segment_code w_flexfield_segment_code
4571 ,bs.enabled_flag s_enabled_flag
4572 ,bw.enabled_flag w_enabled_flag
4573 FROM xla_seg_rules_b bs
4574 JOIN xla_seg_rules_tl ts
4575 ON ts.application_id = bs.application_id
4576 AND ts.amb_context_code = bs.amb_context_code
4577 AND ts.segment_rule_type_code = bs.segment_rule_type_code
4578 AND ts.segment_rule_code = bs.segment_rule_code
4579 AND ts.language = USERENV('LANG')
4580 JOIN xla_seg_rules_b bw
4581 ON bw.application_id = g_application_id
4582 AND bw.amb_context_code = g_amb_context_code
4583 AND bw.segment_rule_type_code = bs.segment_rule_type_code
4584 AND bw.segment_rule_code = bs.segment_rule_code
4585 JOIN xla_seg_rules_tl tw
4586 ON tw.application_id = bw.application_id
4587 AND tw.amb_context_code = bw.amb_context_code
4588 AND tw.segment_rule_type_code = bw.segment_rule_type_code
4589 AND tw.segment_rule_code = bw.segment_rule_code
4590 AND tw.language = USERENV('LANG')
4591 WHERE bs.application_id = g_application_id
4592 AND bs.amb_context_code = g_staging_context_code
4593 AND (ts.name <> tw.name OR
4594 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
4595 nvl(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id,C_NUM) OR
4596 nvl(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id,C_NUM) OR
4597 bs.flexfield_assign_mode_code <> bw.flexfield_assign_mode_code OR
4598 NVL(bs.flexfield_segment_code,C_CHAR) <> NVL(bw.flexfield_segment_code,C_CHAR)OR
4599 bs.enabled_flag <> bw.enabled_flag);
4600
4601 l_key VARCHAR2(240);
4602 l_log_module VARCHAR2(240);
4603 BEGIN
4604 IF g_log_enabled THEN
4605 l_log_module := C_DEFAULT_MODULE||'.compare_adrs';
4606 END IF;
4607
4608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4609 trace(p_msg => 'BEGIN of function compare_adrs',
4610 p_module => l_log_module,
4611 p_level => C_LEVEL_PROCEDURE);
4612 END IF;
4613
4614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4615 trace(p_msg => 'BEGIN LOOP: updated adrs',
4616 p_module => l_log_module,
4617 p_level => C_LEVEL_PROCEDURE);
4618 END IF;
4619
4620 FOR l_comp in c_comp LOOP
4621
4622 l_key := l_comp.segment_rule_appl_id||C_CHAR||
4623 l_comp.segment_rule_type_code||C_CHAR||
4624 l_comp.segment_rule_code;
4625
4626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4627 trace(p_msg => 'LOOP: updated adr - '||l_key,
4628 p_module => l_log_module,
4629 p_level => C_LEVEL_PROCEDURE);
4630 END IF;
4631
4632 IF (l_comp.s_name <> l_comp.w_name) THEN
4633 record_updated_property
4634 (p_component_type => 'AMB_ADR'
4635 ,p_component_key => l_key
4636 ,p_property => 'NAME'
4637 ,p_old_value => l_comp.w_name
4638 ,p_new_value => l_comp.s_name);
4639 END IF;
4640
4641 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
4642 record_updated_property
4643 (p_component_type => 'AMB_ADR'
4644 ,p_component_key => l_key
4645 ,p_property => 'DESCRIPTION'
4646 ,p_old_value => l_comp.w_description
4647 ,p_new_value => l_comp.s_description);
4648 END IF;
4649
4650 IF (NVL(l_comp.s_transaction_coa_id,C_NUM) <> NVL(l_comp.w_transaction_coa_id,C_NUM)) THEN
4651 record_updated_property
4652 (p_component_type => 'AMB_ADR'
4653 ,p_component_key => l_key
4654 ,p_property => 'TRANSACTION_COA'
4655 ,p_old_value => l_comp.w_transaction_coa_id
4656 ,p_new_value => l_comp.s_transaction_coa_id);
4657 END IF;
4658
4659 IF (NVL(l_comp.s_accounting_coa_id,C_NUM) <> NVL(l_comp.w_accounting_coa_id,C_NUM)) THEN
4660 record_updated_property
4661 (p_component_type => 'AMB_ADR'
4662 ,p_component_key => l_key
4663 ,p_property => 'ACCOUNTING_COA'
4664 ,p_old_value => l_comp.w_accounting_coa_id
4665 ,p_new_value => l_comp.s_accounting_coa_id);
4666 END IF;
4667
4668 IF (l_comp.s_flexfield_assign_mode_code <> l_comp.w_flexfield_assign_mode_code) THEN
4669 record_updated_property
4670 (p_component_type => 'AMB_ADR'
4671 ,p_component_key => l_key
4672 ,p_property => 'FLEXFIELD_ASSIGN_MODE'
4673 ,p_old_value => l_comp.w_flexfield_assign_mode_code
4674 ,p_new_value => l_comp.s_flexfield_assign_mode_code
4675 ,p_lookup_type => 'XLA_ASSIGN_FLEX_MODE');
4676 END IF;
4677
4678 IF (NVL(l_comp.s_flexfield_segment_code,C_CHAR) <> NVL(l_comp.w_flexfield_segment_code,C_CHAR)) THEN
4679 record_updated_property
4680 (p_component_type => 'AMB_ADR'
4681 ,p_component_key => l_key
4682 ,p_property => 'FLEXFIELD_SEGMENT'
4683 ,p_old_value => l_comp.w_flexfield_segment_code
4684 ,p_new_value => l_comp.s_flexfield_segment_code);
4685 END IF;
4686
4687 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
4688 record_updated_property
4689 (p_component_type => 'AMB_ADR'
4690 ,p_component_key => l_key
4691 ,p_property => 'ENABLED'
4692 ,p_old_value => l_comp.w_enabled_flag
4693 ,p_new_value => l_comp.s_enabled_flag
4694 ,p_lookup_type => 'XLA_YES_NO');
4695 END IF;
4696
4697 record_updated_adr
4698 (p_segment_rule_appl_id => l_comp.segment_rule_appl_id
4699 ,p_segment_rule_type_code => l_comp.segment_rule_type_code
4700 ,p_segment_rule_code => l_comp.segment_rule_code);
4701
4702 END LOOP;
4703
4704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4705 trace(p_msg => 'END LOOP: updated adrs',
4706 p_module => l_log_module,
4707 p_level => C_LEVEL_PROCEDURE);
4708 END IF;
4709
4710 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4711 trace(p_msg => 'END of function compare_adrs',
4712 p_module => l_log_module,
4713 p_level => C_LEVEL_PROCEDURE);
4714 END IF;
4715
4716 EXCEPTION
4717 WHEN xla_exceptions_pkg.application_exception THEN
4718 RAISE;
4719 WHEN OTHERS THEN
4720 xla_exceptions_pkg.raise_message
4721 (p_location => l_log_module);
4722 END compare_adrs;
4723
4724 --=============================================================================
4725 --
4726 -- Name: compare_adr_details
4727 -- Description:
4728 --
4729 --=============================================================================
4730 PROCEDURE compare_adr_details
4731 IS
4732 CURSOR c_comp IS
4733 SELECT s.application_id segment_rule_appl_id
4734 ,s.segment_rule_type_code
4735 ,s.segment_rule_code
4736 ,s.user_sequence
4737 ,CASE WHEN w.user_sequence IS NULL
4738 THEN C_MERGE_IMPACT_NEW
4739 ELSE C_MERGE_IMPACT_UPDATED END merge_impact
4740 ,bs.accounting_coa_id s_accounting_coa_id
4741 ,bw.accounting_coa_id w_accounting_coa_id
4742 ,s.value_type_code s_value_type_code
4743 ,w.value_type_code w_value_type_code
4744 ,s.value_code_combination_id s_value_ccid
4745 ,w.value_code_combination_id w_value_ccid
4746 ,s.value_source_application_id s_value_source_app_id
4747 ,w.value_source_application_id w_value_source_app_id
4748 ,s.value_source_type_code s_value_source_type_code
4749 ,w.value_source_type_code w_value_source_type_code
4750 ,s.value_source_code s_value_source_code
4751 ,w.value_source_code w_value_source_code
4752 ,s.value_constant s_value_constant
4753 ,w.value_constant w_value_constant
4754 ,s.value_mapping_set_code s_value_mapping_set_code
4755 ,w.value_mapping_set_code w_value_mapping_set_code
4756 ,s.value_flexfield_segment_code s_value_flexfield_segment_code
4757 ,w.value_flexfield_segment_code w_value_flexfield_segment_code
4758 ,s.value_segment_rule_appl_id s_value_segment_rule_appl_id
4759 ,s.value_segment_rule_appl_id w_value_segment_rule_appl_id
4760 ,s.value_segment_rule_type_code s_value_segment_rule_type_code
4761 ,s.value_segment_rule_type_code w_value_segment_rule_type_code
4762 ,s.value_segment_rule_code s_value_segment_rule_code
4763 ,s.value_segment_rule_code w_value_segment_rule_code
4764 ,s.input_source_application_id s_input_source_app_id
4765 ,w.input_source_application_id w_input_source_app_id
4766 ,s.input_source_type_code s_input_source_type_code
4767 ,w.input_source_type_code w_input_source_type_code
4768 ,s.input_source_code s_input_source_code
4769 ,w.input_source_code w_input_source_code
4770 FROM xla_seg_rule_details s
4771 JOIN xla_seg_rules_b bs
4772 ON bs.application_id = g_application_id
4773 AND bs.amb_context_code = g_staging_context_code
4774 AND bs.segment_rule_type_code = s.segment_rule_type_code
4775 AND bs.segment_rule_code = s.segment_rule_code
4776 JOIN xla_seg_rules_b bw
4777 ON bw.application_id = g_application_id
4778 AND bw.amb_context_code = g_amb_context_code
4779 AND bw.segment_rule_type_code = s.segment_rule_type_code
4780 AND bw.segment_rule_code = s.segment_rule_code
4781 LEFT OUTER JOIN xla_seg_rule_details w
4782 ON w.application_id = g_application_id
4783 AND w.amb_context_code = g_amb_context_code
4784 AND w.segment_rule_type_code = s.segment_rule_type_code
4785 AND w.segment_rule_code = s.segment_rule_code
4786 AND w.user_sequence = s.user_sequence
4787 WHERE s.application_id = g_application_id
4788 AND s.amb_context_code = g_staging_context_code
4789 AND (w.value_type_code IS NULL OR
4790 NVL(s.value_type_code,C_CHAR) <> NVL(w.value_type_code,C_CHAR) OR
4791 NVL(s.value_code_combination_id,C_NUM) <> NVL(w.value_code_combination_id,C_NUM) OR
4792 NVL(s.value_source_application_id,C_NUM) <> NVL(w.value_source_application_id,C_NUM) OR
4793 NVL(s.value_source_type_code,C_CHAR) <> NVL(w.value_source_type_code,C_CHAR) OR
4794 NVL(s.value_source_code,C_CHAR) <> NVL(w.value_source_code,C_CHAR) OR
4795 NVL(s.value_constant,C_CHAR) <> NVL(w.value_constant,C_CHAR) OR
4796 NVL(s.value_mapping_set_code,C_CHAR) <> NVL(w.value_mapping_set_code,C_CHAR) OR
4797 NVL(s.value_segment_rule_appl_id,C_NUM) <> NVL(w.value_segment_rule_appl_id,C_NUM) OR
4798 NVL(s.value_segment_rule_type_code,C_CHAR) <> NVL(w.value_segment_rule_type_code,C_CHAR) OR
4799 NVL(s.value_segment_rule_code,C_CHAR) <> NVL(w.value_segment_rule_code,C_CHAR) OR
4800 NVL(s.value_flexfield_segment_code,C_CHAR) <> NVL(w.value_flexfield_segment_code,C_CHAR) OR
4801 NVL(s.input_source_application_id,C_NUM) <> NVL(w.input_source_application_id,C_NUM) OR
4802 NVL(s.input_source_type_code,C_CHAR) <> NVL(w.input_source_type_code,C_CHAR) OR
4803 NVL(s.input_source_code,C_CHAR) <> NVL(w.input_source_code,C_CHAR));
4804
4805 l_key VARCHAR2(240);
4806 l_s_value VARCHAR2(2000);
4807 l_w_value VARCHAR2(2000);
4808 l_log_module VARCHAR2(240);
4809 BEGIN
4810 IF g_log_enabled THEN
4811 l_log_module := C_DEFAULT_MODULE||'.compare_adr_details';
4812 END IF;
4813
4814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4815 trace(p_msg => 'BEGIN of function compare_adr_details',
4816 p_module => l_log_module,
4817 p_level => C_LEVEL_PROCEDURE);
4818 END IF;
4819
4820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4821 trace(p_msg => 'BEGIN LOOP: updated adr details',
4822 p_module => l_log_module,
4823 p_level => C_LEVEL_PROCEDURE);
4824 END IF;
4825
4826 FOR l_comp in c_comp LOOP
4827
4828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4829 trace(p_msg => 'LOOP: updated adr detail '||
4830 '- segment_rule_type_code = '||l_comp.segment_rule_type_code||
4831 ', segment_rule_code = '||l_comp.segment_rule_code||
4832 ', user_sequence = '||l_comp.user_sequence||
4833 ', merge_impact = '||l_comp.merge_impact,
4834 p_module => l_log_module,
4835 p_level => C_LEVEL_PROCEDURE);
4836 END IF;
4837
4838 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
4839
4840 l_key := l_comp.segment_rule_appl_id||C_CHAR||
4841 l_comp.segment_rule_type_code||C_CHAR||
4842 l_comp.segment_rule_code||C_CHAR||
4843 l_comp.user_sequence;
4844
4845 IF (l_comp.s_value_type_code <> l_comp.w_value_type_code) THEN
4846 record_updated_property
4847 (p_component_type => 'AMB_ADR_DETAIL'
4848 ,p_component_key => l_key
4849 ,p_property => 'VALUE_TYPE'
4850 ,p_old_value => l_comp.w_value_type_code
4851 ,p_new_value => l_comp.s_value_type_code
4852 ,p_lookup_type => 'XLA_SEG_VALUE_TYPE');
4853 END IF;
4854
4855 IF (NVL(l_comp.s_value_source_app_id,C_NUM) <> NVL(l_comp.w_value_source_app_id,C_NUM) OR
4856 NVL(l_comp.s_value_source_type_code,C_CHAR) <> NVL(l_comp.w_value_source_type_code,C_CHAR) OR
4857 NVL(l_comp.s_value_source_code,C_CHAR) <> NVL(l_comp.w_value_source_code,C_CHAR) OR
4858 NVL(l_comp.s_value_mapping_set_code,C_CHAR) <> NVL(l_comp.w_value_mapping_set_code,C_CHAR) OR
4859 NVL(l_comp.s_value_segment_rule_appl_id,C_NUM) <> NVL(l_comp.w_value_segment_rule_appl_id,C_NUM) OR
4860 NVL(l_comp.s_value_segment_rule_type_code,C_CHAR) <> NVL(l_comp.w_value_segment_rule_type_code,C_CHAR) OR
4861 NVL(l_comp.s_value_segment_rule_code,C_CHAR) <> NVL(l_comp.w_value_segment_rule_code,C_CHAR)
4862 )
4863 THEN
4864 record_updated_value
4865 (p_component_type => 'AMB_ADR_DETAIL'
4866 ,p_component_key => l_key
4867 ,p_property => 'VALUE'
4868 ,p_old_value => '#VALUE_TYPE_CODE#='||l_comp.w_value_type_code
4869 ,p_old_source_app_id => NVL(l_comp.w_value_source_app_id,
4870 l_comp.w_value_segment_rule_appl_id)
4871 ,p_old_source_type_code => NVL(l_comp.w_value_source_type_code,
4872 l_comp.w_value_segment_rule_type_code)
4873 ,p_old_source_code => NVL(l_comp.w_value_mapping_set_code,
4874 NVL(l_comp.w_value_segment_rule_code,
4875 l_comp.w_value_source_code))
4876 ,p_new_value => '#VALUE_TYPE_CODE#='||l_comp.s_value_type_code
4877 ,p_new_source_app_id => NVL(l_comp.s_value_source_app_id,
4878 l_comp.s_value_segment_rule_appl_id)
4879 ,p_new_source_type_code => NVL(l_comp.s_value_source_type_code,
4880 l_comp.s_value_segment_rule_type_code)
4881 ,p_new_source_code => NVL(l_comp.s_value_mapping_set_code,
4882 NVL(l_comp.s_value_segment_rule_code,
4883 l_comp.s_value_source_code)));
4884 END IF;
4885
4886 IF (NVL(l_comp.s_input_source_app_id,C_NUM) <> NVL(l_comp.w_input_source_app_id,C_NUM) OR
4887 NVL(l_comp.s_input_source_type_code,C_CHAR) <> NVL(l_comp.w_input_source_type_code,C_CHAR) OR
4888 NVL(l_comp.s_input_source_code,C_CHAR) <> NVL(l_comp.w_input_source_code,C_CHAR)) THEN
4889 record_updated_source
4890 (p_component_type => 'AMB_ADR_DETAIL'
4891 ,p_component_key => l_key
4892 ,p_property => 'INPUT_SOURCE'
4893 ,p_old_source_app_id => l_comp.w_input_source_app_id
4894 ,p_old_source_type_code => l_comp.w_input_source_type_code
4895 ,p_old_source_code => l_comp.w_input_source_code
4896 ,p_new_source_app_id => l_comp.s_input_source_app_id
4897 ,p_new_source_type_code => l_comp.s_input_source_type_code
4898 ,p_new_source_code => l_comp.s_input_source_code);
4899 END IF;
4900
4901 IF (NVL(l_comp.s_value_flexfield_segment_code,C_CHAR) <>
4902 NVL(l_comp.w_value_flexfield_segment_code,C_CHAR)) THEN
4903 record_updated_property
4904 (p_component_type => 'AMB_ADR_DETAIL'
4905 ,p_component_key => l_key
4906 ,p_property => 'FLEXFIELD_SEGMENT'
4907 ,p_old_value => l_comp.w_value_flexfield_segment_code
4908 ,p_new_value => l_comp.s_value_flexfield_segment_code);
4909 END IF;
4910
4911 IF (NVL(l_comp.s_value_constant,C_CHAR) <> NVL(l_comp.w_value_constant,C_CHAR)) THEN
4912 record_updated_property
4913 (p_component_type => 'AMB_ADR_DETAIL'
4914 ,p_component_key => l_key
4915 ,p_property => 'VALUE'
4916 ,p_old_value => l_comp.w_value_constant
4917 ,p_new_value => l_comp.s_value_constant);
4918 END IF;
4919
4920 IF (NVL(l_comp.s_value_ccid,C_NUM) <> NVL(l_comp.w_value_ccid,C_NUM)) THEN
4921
4922 IF (l_comp.s_value_ccid IS NOT NULL) THEN
4923 l_s_value := fnd_flex_ext.get_segs('SQLGL', 'GL#', l_comp.s_accounting_coa_id, l_comp.s_value_ccid);
4924 END IF;
4925
4926 IF (l_comp.w_value_ccid IS NOT NULL) THEN
4927 l_w_value := fnd_flex_ext.get_segs('SQLGL', 'GL#', l_comp.w_accounting_coa_id, l_comp.w_value_ccid);
4928 END IF;
4929
4930 record_updated_property
4931 (p_component_type => 'AMB_ADR_DETAIL'
4932 ,p_component_key => l_key
4933 ,p_property => 'VALUE'
4934 ,p_old_value => l_w_value
4935 ,p_new_value => l_s_value);
4936 END IF;
4937 END IF;
4938
4939 record_updated_adr_detail
4940 (p_segment_rule_appl_id => l_comp.segment_rule_appl_id
4941 ,p_segment_rule_type_code => l_comp.segment_rule_type_code
4942 ,p_segment_rule_code => l_comp.segment_rule_code
4943 ,p_user_sequence => l_comp.user_sequence
4944 ,p_merge_impact => l_comp.merge_impact);
4945
4946 END LOOP;
4947
4948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4949 trace(p_msg => 'END LOOP: updated adr details',
4950 p_module => l_log_module,
4951 p_level => C_LEVEL_PROCEDURE);
4952 END IF;
4953
4954 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4955 trace(p_msg => 'END of function compare_adr_details',
4956 p_module => l_log_module,
4957 p_level => C_LEVEL_PROCEDURE);
4958 END IF;
4959
4960 EXCEPTION
4961 WHEN xla_exceptions_pkg.application_exception THEN
4962 RAISE;
4963 WHEN OTHERS THEN
4964 xla_exceptions_pkg.raise_message
4965 (p_location => l_log_module);
4966 END compare_adr_details;
4967
4968 --=============================================================================
4969 --
4970 -- Name: compare_descs
4971 -- Description: Retrieve descriptions that are updated
4972 --
4973 --=============================================================================
4974 PROCEDURE compare_descs
4975 IS
4976 CURSOR c_comp IS
4977 SELECT ts.description_type_code
4978 ,ts.description_code
4979 ,ts.name s_name
4980 ,tw.name w_name
4981 ,ts.description s_description
4982 ,tw.description w_description
4983 ,bs.transaction_coa_id s_transaction_coa_id
4984 ,bw.transaction_coa_id w_transaction_coa_id
4985 ,bs.enabled_flag s_enabled_flag
4986 ,bw.enabled_flag w_enabled_flag
4987 FROM xla_descriptions_b bs
4988 JOIN xla_descriptions_tl ts
4989 ON ts.application_id = bs.application_id
4990 AND ts.amb_context_code = bs.amb_context_code
4991 AND ts.description_type_code = bs.description_type_code
4992 AND ts.description_code = bs.description_code
4993 AND ts.language = USERENV('LANG')
4994 JOIN xla_descriptions_b bw
4995 ON bw.application_id = g_application_id
4996 AND bw.amb_context_code = g_amb_context_code
4997 AND bw.description_type_code = bs.description_type_code
4998 AND bw.description_code = bs.description_code
4999 JOIN xla_descriptions_tl tw
5000 ON tw.application_id = bw.application_id
5001 AND tw.amb_context_code = bw.amb_context_code
5002 AND tw.description_type_code = bw.description_type_code
5003 AND tw.description_code = bw.description_code
5004 AND tw.language = USERENV('LANG')
5005 WHERE bs.application_id = g_application_id
5006 AND bs.amb_context_code = g_staging_context_code
5007 AND (ts.name <> tw.name OR
5008 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
5009 NVL(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id,C_NUM) OR
5010 bs.enabled_flag <> bw.enabled_flag);
5011
5012 l_key VARCHAR2(240);
5013 l_log_module VARCHAR2(240);
5014 BEGIN
5015 IF g_log_enabled THEN
5016 l_log_module := C_DEFAULT_MODULE||'.compare_descs';
5017 END IF;
5018
5019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5020 trace(p_msg => 'BEGIN of function compare_descs',
5021 p_module => l_log_module,
5022 p_level => C_LEVEL_PROCEDURE);
5023 END IF;
5024
5025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5026 trace(p_msg => 'BEGIN LOOP: updated desc',
5027 p_module => l_log_module,
5028 p_level => C_LEVEL_PROCEDURE);
5029 END IF;
5030
5031 FOR l_comp in c_comp LOOP
5032
5033 l_key := l_comp.description_type_code||C_CHAR||
5034 l_comp.description_code;
5035
5036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5037 trace(p_msg => 'LOOP: updated desc - '||l_key,
5038 p_module => l_log_module,
5039 p_level => C_LEVEL_PROCEDURE);
5040 END IF;
5041
5042 IF (l_comp.s_name <> l_comp.w_name) THEN
5043 record_updated_property
5044 (p_component_type => 'AMB_DESCRIPTION'
5045 ,p_component_key => l_key
5046 ,p_property => 'NAME'
5047 ,p_old_value => l_comp.w_name
5048 ,p_new_value => l_comp.s_name);
5049 END IF;
5050
5051 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
5052 record_updated_property
5053 (p_component_type => 'AMB_DESCRIPTION'
5054 ,p_component_key => l_key
5055 ,p_property => 'DESCRIPTION'
5056 ,p_old_value => l_comp.w_description
5057 ,p_new_value => l_comp.s_description);
5058 END IF;
5059
5060 IF (NVL(l_comp.s_transaction_coa_id,C_NUM) <> NVL(l_comp.w_transaction_coa_id,C_NUM)) THEN
5061 record_updated_property
5062 (p_component_type => 'AMB_DESCRIPTION'
5063 ,p_component_key => l_key
5064 ,p_property => 'TRANSACTION_COA'
5065 ,p_old_value => l_comp.w_transaction_coa_id
5066 ,p_new_value => l_comp.s_transaction_coa_id);
5067 END IF;
5068
5069 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
5070 record_updated_property
5071 (p_component_type => 'AMB_DESCRIPTION'
5072 ,p_component_key => l_key
5073 ,p_property => 'ENABLED'
5074 ,p_old_value => l_comp.w_enabled_flag
5075 ,p_new_value => l_comp.s_enabled_flag
5076 ,p_lookup_type => 'XLA_YES_NO');
5077 END IF;
5078
5079 record_updated_desc
5080 (p_description_type_code => l_comp.description_type_code
5081 ,p_description_code => l_comp.description_code);
5082
5083 END LOOP;
5084
5085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5086 trace(p_msg => 'END LOOP: updated desc',
5087 p_module => l_log_module,
5088 p_level => C_LEVEL_PROCEDURE);
5089 END IF;
5090
5091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5092 trace(p_msg => 'END of function compare_descs',
5093 p_module => l_log_module,
5094 p_level => C_LEVEL_PROCEDURE);
5095 END IF;
5096
5097 EXCEPTION
5098 WHEN xla_exceptions_pkg.application_exception THEN
5099 RAISE;
5100 WHEN OTHERS THEN
5101 xla_exceptions_pkg.raise_message
5102 (p_location => l_log_module);
5103 END compare_descs;
5104
5105 --=============================================================================
5106 --
5107 -- Name: compare_desc_priorities
5108 -- Description: Retrieve the description priority that are new, deleted, or
5109 -- updated
5110 --
5111 --=============================================================================
5112 PROCEDURE compare_desc_priorities
5113 IS
5114 CURSOR c_comp IS
5115 SELECT s.description_type_code
5116 ,s.description_code
5117 ,s.user_sequence
5118 ,CASE WHEN w.application_id IS NULL
5119 THEN C_MERGE_IMPACT_NEW
5120 ELSE C_MERGE_IMPACT_UPDATED
5121 END merge_impact
5122 ,s.description_prio_id s_description_prio_id
5123 ,w.description_prio_id w_description_prio_id
5124 ,bs.transaction_coa_id s_transaction_coa_id
5125 ,bw.transaction_coa_id w_transaction_coa_id
5126 FROM xla_desc_priorities s
5127 JOIN xla_descriptions_b bs
5128 ON bs.application_id = s.application_id
5129 AND bs.amb_context_code = s.amb_context_code
5130 AND bs.description_type_code = s.description_type_code
5131 AND bs.description_code = s.description_code
5132 JOIN xla_descriptions_b bw
5133 ON bw.application_id = g_application_id
5134 AND bw.amb_context_code = g_amb_context_code
5135 AND bw.description_type_code = s.description_type_code
5136 AND bw.description_code = s.description_code
5137 LEFT OUTER JOIN xla_desc_priorities w
5138 ON w.application_id = g_application_id
5139 AND w.amb_context_code = g_amb_context_code
5140 AND w.description_type_code = s.description_type_code
5141 AND w.description_code = s.description_code
5142 AND w.user_sequence = s.user_sequence
5143 WHERE s.amb_context_code = g_staging_context_code
5144 UNION
5145 SELECT w.description_type_code
5146 ,w.description_code
5147 ,w.user_sequence
5148 ,C_MERGE_IMPACT_DELETED
5149 , null , null , null , null
5150 FROM xla_desc_priorities w
5151 JOIN xla_descriptions_b bs
5152 ON bs.application_id = g_application_id
5153 AND bs.amb_context_code = g_staging_context_code
5154 AND bs.description_type_code = w.description_type_code
5155 AND bs.description_code = w.description_code
5156 WHERE w.amb_context_code = g_amb_context_code
5157 AND NOT EXISTS
5158 (SELECT 1
5159 FROM xla_desc_priorities s
5160 WHERE s.application_id = g_application_id
5161 AND s.amb_context_code = g_staging_context_code
5162 AND s.description_type_code = w.description_type_code
5163 AND s.description_code = w.description_code
5164 AND s.user_sequence = w.user_sequence);
5165
5166 l_staging_detail VARCHAR2(2000);
5167 l_working_detail VARCHAR2(2000);
5168 l_staging_condition VARCHAR2(2000);
5169 l_working_condition VARCHAR2(2000);
5170 l_updated BOOLEAN;
5171 l_key VARCHAR2(240);
5172 l_log_module VARCHAR2(240);
5173 BEGIN
5174 IF g_log_enabled THEN
5175 l_log_module := C_DEFAULT_MODULE||'.compare_desc_priorities';
5176 END IF;
5177
5178 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5179 trace(p_msg => 'BEGIN of function compare_desc_priorities',
5180 p_module => l_log_module,
5181 p_level => C_LEVEL_PROCEDURE);
5182 END IF;
5183
5184 l_updated := FALSE;
5185
5186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5187 trace(p_msg => 'BEGIN LOOP: updated desc priorities',
5188 p_module => l_log_module,
5189 p_level => C_LEVEL_PROCEDURE);
5190 END IF;
5191
5192 FOR l_comp in c_comp LOOP
5193
5194 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
5195 l_key := l_comp.description_type_code||C_CHAR||
5196 l_comp.description_code||C_CHAR||
5197 l_comp.user_sequence;
5198
5199 l_working_detail := xla_descript_details_pkg.display_desc_prio_details
5200 (p_description_prio_id => l_comp.w_description_prio_id
5201 ,p_chart_of_accounts_id => l_comp.w_transaction_coa_id);
5202
5203 l_staging_detail := xla_descript_details_pkg.display_desc_prio_details
5204 (p_description_prio_id => l_comp.s_description_prio_id
5205 ,p_chart_of_accounts_id => l_comp.s_transaction_coa_id);
5206
5207 IF (l_working_detail <> l_staging_detail) THEN
5208 l_updated := TRUE;
5209 record_updated_property
5210 (p_component_type => 'AMB_DESC_PRIO'
5211 ,p_component_key => l_key
5212 ,p_property => 'DETAIL'
5213 ,p_old_value => l_working_detail
5214 ,p_new_value => l_staging_detail);
5215 END IF;
5216
5217 l_working_condition := xla_conditions_pkg.display_condition
5218 (p_description_prio_id => l_comp.w_description_prio_id
5219 ,p_chart_of_accounts_id => l_comp.w_transaction_coa_id
5220 ,p_context => 'D');
5221
5222 l_staging_condition := xla_conditions_pkg.display_condition
5223 (p_description_prio_id => l_comp.s_description_prio_id
5224 ,p_chart_of_accounts_id => l_comp.s_transaction_coa_id
5225 ,p_context => 'D');
5226
5227 IF (l_working_condition <> l_staging_condition) THEN
5228 l_updated := TRUE;
5229 record_updated_property
5230 (p_component_type => 'AMB_DESC_PRIO'
5231 ,p_component_key => l_key
5232 ,p_property => 'CONDITION'
5233 ,p_old_value => l_working_condition
5234 ,p_new_value => l_staging_condition);
5235 END IF;
5236
5237 IF (l_updated) THEN
5238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5239 trace(p_msg => 'LOOP: updated desc prio '||
5240 '- description_type_code = '||l_comp.description_type_code||
5241 ', description_code = '||l_comp.description_code||
5242 ', user_sequence = '||l_comp.user_sequence||
5243 ', merge_impact = '||C_MERGE_IMPACT_UPDATED,
5244 p_module => l_log_module,
5245 p_level => C_LEVEL_PROCEDURE);
5246 END IF;
5247
5248 l_updated := FALSE;
5249 record_updated_desc_priority
5250 (p_description_type_code => l_comp.description_type_code
5251 ,p_description_code => l_comp.description_code
5252 ,p_user_sequence => l_comp.user_sequence
5253 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5254 END IF;
5255 ELSE
5256
5257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5258 trace(p_msg => 'LOOP: updated desc prio '||
5259 '- description_type_code = '||l_comp.description_type_code||
5260 ', description_code = '||l_comp.description_code||
5261 ', user_sequence = '||l_comp.user_sequence||
5262 ', merge_impact = '||l_comp.merge_impact,
5263 p_module => l_log_module,
5264 p_level => C_LEVEL_PROCEDURE);
5265 END IF;
5266
5267 record_updated_desc_priority
5268 (p_description_type_code => l_comp.description_type_code
5269 ,p_description_code => l_comp.description_code
5270 ,p_user_sequence => l_comp.user_sequence
5271 ,p_merge_impact => l_comp.merge_impact);
5272 END IF;
5273 END LOOP;
5274
5275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5276 trace(p_msg => 'END LOOP: updated desc priorities',
5277 p_module => l_log_module,
5278 p_level => C_LEVEL_PROCEDURE);
5279 END IF;
5280
5281 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5282 trace(p_msg => 'END of function compare_desc_priorities',
5283 p_module => l_log_module,
5284 p_level => C_LEVEL_PROCEDURE);
5285 END IF;
5286
5287 EXCEPTION
5288 WHEN xla_exceptions_pkg.application_exception THEN
5289 RAISE;
5290 WHEN OTHERS THEN
5291 xla_exceptions_pkg.raise_message
5292 (p_location => l_log_module);
5293 END compare_desc_priorities;
5294
5295
5296 --=============================================================================
5297 --
5298 -- Name: compare_acs
5299 -- Description:
5300 --
5301 --=============================================================================
5302 PROCEDURE compare_acs
5303 IS
5304 CURSOR c_comp IS
5305 SELECT ts.analytical_criterion_type_code
5306 ,ts.analytical_criterion_code
5307 ,ts.name s_name
5308 ,tw.name w_name
5309 ,ts.description s_description
5310 ,tw.description w_description
5311 ,bs.balancing_flag s_balancing_flag
5312 ,bw.balancing_flag w_balancing_flag
5313 ,bs.display_order s_display_order
5314 ,bw.display_order w_display_order
5315 ,bs.enabled_flag s_enabled_flag
5316 ,bw.enabled_flag w_enabled_flag
5317 ,bs.year_end_carry_forward_code s_year_end_carry_forward_code
5318 ,bw.year_end_carry_forward_code w_year_end_carry_forward_code
5319 ,bs.display_in_inquiries_flag s_display_in_inquiries_flag
5320 ,bw.display_in_inquiries_flag w_display_in_inquiries_flag
5321 ,bs.criterion_value_code s_criterion_value_code
5322 ,bw.criterion_value_code w_criterion_value_code
5323 FROM xla_analytical_hdrs_b bs
5324 JOIN xla_analytical_hdrs_tl ts
5325 ON ts.amb_context_code = bs.amb_context_code
5326 AND ts.analytical_criterion_type_code = bs.analytical_criterion_type_code
5327 AND ts.analytical_criterion_code = bs.analytical_criterion_code
5328 AND ts.language = USERENV('LANG')
5329 JOIN xla_analytical_hdrs_b bw
5330 ON bw.amb_context_code = g_amb_context_code
5331 AND bw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5332 AND bw.analytical_criterion_code = bs.analytical_criterion_code
5333 JOIN xla_analytical_hdrs_tl tw
5334 ON tw.amb_context_code = bw.amb_context_code
5335 AND tw.analytical_criterion_type_code = bw.analytical_criterion_type_code
5336 AND tw.analytical_criterion_code = bw.analytical_criterion_code
5337 AND tw.language = USERENV('LANG')
5338 WHERE bs.amb_context_code = g_staging_context_code
5339 AND (ts.name <> tw.name OR
5340 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
5341 bs.balancing_flag <> bw.balancing_flag OR
5342 bs.display_order <> bw.display_order OR
5343 bs.enabled_flag <> bw.enabled_flag OR
5344 NVL(bs.year_end_carry_forward_code,C_CHAR) <>
5345 NVL(bw.year_end_carry_forward_code,C_CHAR) OR
5346 bs.display_in_inquiries_flag <> bw.display_in_inquiries_flag OR
5347 bs.criterion_value_code <> bw.criterion_value_code);
5348
5349 l_key VARCHAR2(240);
5350 l_log_module VARCHAR2(240);
5351 BEGIN
5352 IF g_log_enabled THEN
5353 l_log_module := C_DEFAULT_MODULE||'.compare_acs';
5354 END IF;
5355
5356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5357 trace(p_msg => 'BEGIN of function compare_acs',
5358 p_module => l_log_module,
5359 p_level => C_LEVEL_PROCEDURE);
5360 END IF;
5361
5362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5363 trace(p_msg => 'BEGIN LOOP: updated acs',
5364 p_module => l_log_module,
5365 p_level => C_LEVEL_PROCEDURE);
5366 END IF;
5367
5368 FOR l_comp in c_comp LOOP
5369
5370 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5371 l_comp.analytical_criterion_code;
5372
5373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5374 trace(p_msg => 'LOOP: updated ac - '||l_key,
5375 p_module => l_log_module,
5376 p_level => C_LEVEL_PROCEDURE);
5377 END IF;
5378
5379 IF (l_comp.s_name <> l_comp.w_name) THEN
5380 record_updated_property
5381 (p_component_type => 'AMB_AC'
5382 ,p_component_key => l_key
5383 ,p_property => 'NAME'
5384 ,p_old_value => l_comp.w_name
5385 ,p_new_value => l_comp.s_name);
5386 END IF;
5387
5388 IF (l_comp.s_description <> l_comp.w_description) THEN
5389 record_updated_property
5390 (p_component_type => 'AMB_AC'
5391 ,p_component_key => l_key
5392 ,p_property => 'DESCRIPTION'
5393 ,p_old_value => l_comp.w_description
5394 ,p_new_value => l_comp.s_description);
5395 END IF;
5396
5397 IF (l_comp.s_balancing_flag <> l_comp.w_balancing_flag) THEN
5398 record_updated_property
5399 (p_component_type => 'AMB_AC'
5400 ,p_component_key => l_key
5401 ,p_property => 'MAINTAIN_BALANCE'
5402 ,p_old_value => l_comp.w_balancing_flag
5403 ,p_new_value => l_comp.s_balancing_flag);
5404 END IF;
5405
5406 IF (l_comp.s_display_order <> l_comp.w_display_order) THEN
5407 record_updated_property
5408 (p_component_type => 'AMB_AC'
5409 ,p_component_key => l_key
5410 ,p_property => 'DISPLAY_ORDER'
5411 ,p_old_value => l_comp.w_display_order
5412 ,p_new_value => l_comp.s_display_order);
5413 END IF;
5414
5415 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
5416 record_updated_property
5417 (p_component_type => 'AMB_AC'
5418 ,p_component_key => l_key
5419 ,p_property => 'ENABLED'
5420 ,p_old_value => l_comp.w_enabled_flag
5421 ,p_new_value => l_comp.s_enabled_flag
5422 ,p_lookup_type => 'XLA_YES_NO');
5423 END IF;
5424
5425 IF (NVL(l_comp.s_year_end_carry_forward_code,C_CHAR) <>
5426 NVL(l_comp.w_year_end_carry_forward_code,C_CHAR)) THEN
5427 record_updated_property
5428 (p_component_type => 'AMB_AC'
5429 ,p_component_key => l_key
5430 ,p_property => 'YEAR_END_CARRY_FORWARD'
5431 ,p_old_value => l_comp.w_year_end_carry_forward_code
5432 ,p_new_value => l_comp.s_year_end_carry_forward_code
5433 ,p_lookup_type => 'XLA_YEAR_END_CARRY_FORWARD');
5434 END IF;
5435
5436 IF (l_comp.s_display_in_inquiries_flag <> l_comp.w_display_in_inquiries_flag) THEN
5437 record_updated_property
5438 (p_component_type => 'AMB_AC'
5439 ,p_component_key => l_key
5440 ,p_property => 'DISPLAY_IN_INQUIRIES_FLAG'
5441 ,p_old_value => l_comp.w_display_in_inquiries_flag
5442 ,p_new_value => l_comp.s_display_in_inquiries_flag
5443 ,p_lookup_type => 'XLA_YES_NO');
5444 END IF;
5445
5446 IF (l_comp.s_criterion_value_code <> l_comp.w_criterion_value_code) THEN
5447 record_updated_property
5448 (p_component_type => 'AMB_AC'
5449 ,p_component_key => l_key
5450 ,p_property => 'CRITERION_VALUE_CODE'
5451 ,p_old_value => l_comp.w_criterion_value_code
5452 ,p_new_value => l_comp.s_criterion_value_code);
5453 END IF;
5454
5455 record_updated_ac(p_ac_type_code => l_comp.analytical_criterion_type_code
5456 ,p_ac_code => l_comp.analytical_criterion_code
5457 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5458
5459 END LOOP;
5460
5461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5462 trace(p_msg => 'END LOOP: updated acs',
5463 p_module => l_log_module,
5464 p_level => C_LEVEL_PROCEDURE);
5465 END IF;
5466
5467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5468 trace(p_msg => 'END of function compare_acs',
5469 p_module => l_log_module,
5470 p_level => C_LEVEL_PROCEDURE);
5471 END IF;
5472
5473 EXCEPTION
5474 WHEN xla_exceptions_pkg.application_exception THEN
5475 RAISE;
5476 WHEN OTHERS THEN
5477 xla_exceptions_pkg.raise_message
5478 (p_location => l_log_module);
5479 END compare_acs;
5480
5481
5482 --=============================================================================
5483 --
5484 -- Name: compare_ac_details
5485 -- Description:
5486 --
5487 --=============================================================================
5488 PROCEDURE compare_ac_details
5489 IS
5490 CURSOR c_comp IS
5491 SELECT ts.analytical_criterion_type_code
5492 ,ts.analytical_criterion_code
5493 ,ts.analytical_detail_code
5494 ,CASE WHEN bw.analytical_detail_code IS NULL
5495 THEN C_MERGE_IMPACT_NEW
5496 ELSE C_MERGE_IMPACT_UPDATED
5497 END merge_impact
5498 ,ts.name s_name
5499 ,tw.name w_name
5500 ,ts.description s_description
5501 ,tw.description w_description
5502 ,bs.grouping_order s_grouping_order
5503 ,bw.grouping_order w_grouping_order
5504 ,bs.data_type_code s_data_type_code
5505 ,bw.data_type_code w_data_type_code
5506 FROM xla_analytical_dtls_b bs
5507 JOIN xla_analytical_hdrs_b hw
5508 ON hw.amb_context_code = g_amb_context_code
5509 AND hw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5510 AND hw.analytical_criterion_code = bs.analytical_criterion_code
5511 JOIN xla_analytical_dtls_tl ts
5512 ON ts.amb_context_code = bs.amb_context_code
5513 AND ts.analytical_criterion_type_code = bs.analytical_criterion_type_code
5514 AND ts.analytical_criterion_code = bs.analytical_criterion_code
5515 AND ts.analytical_detail_code = bs.analytical_detail_code
5516 AND ts.language = USERENV('LANG')
5517 LEFT OUTER JOIN xla_analytical_dtls_b bw
5518 ON bw.amb_context_code = g_amb_context_code
5519 AND bw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5520 AND bw.analytical_criterion_code = bs.analytical_criterion_code
5521 AND bw.analytical_detail_code = bs.analytical_detail_code
5522 LEFT OUTER JOIN xla_analytical_dtls_tl tw
5523 ON tw.amb_context_code = bw.amb_context_code
5524 AND tw.analytical_criterion_type_code = bw.analytical_criterion_type_code
5525 AND tw.analytical_criterion_code = bw.analytical_criterion_code
5526 AND tw.analytical_detail_code = bw.analytical_detail_code
5527 AND tw.language = USERENV('LANG')
5528 WHERE bs.amb_context_code = g_staging_context_code
5529 AND (bw.analytical_detail_code IS NULL OR
5530 NVL(ts.name,C_CHAR) <> NVL(tw.name,C_CHAR) OR
5531 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
5532 NVL(bs.grouping_order,C_NUM) <> NVL(bw.grouping_order,C_NUM) OR
5533 NVL(bs.data_type_code,C_CHAR) <> NVL(bw.data_type_code,C_CHAR));
5534
5535 l_key VARCHAR2(240);
5536 l_log_module VARCHAR2(240);
5537 BEGIN
5538 IF g_log_enabled THEN
5539 l_log_module := C_DEFAULT_MODULE||'.compare_ac_details';
5540 END IF;
5541
5542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5543 trace(p_msg => 'BEGIN of function compare_ac_details',
5544 p_module => l_log_module,
5545 p_level => C_LEVEL_PROCEDURE);
5546 END IF;
5547
5548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5549 trace(p_msg => 'BEGIN LOOP: updated ac details',
5550 p_module => l_log_module,
5551 p_level => C_LEVEL_PROCEDURE);
5552 END IF;
5553
5554 FOR l_comp in c_comp LOOP
5555
5556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5557 trace(p_msg => 'LOOP: updated ac detail - '||
5558 l_comp.analytical_criterion_type_code||C_CHAR||
5559 l_comp.analytical_criterion_code||C_CHAR||
5560 l_comp.analytical_detail_code||C_CHAR||
5561 l_comp.merge_impact,
5562 p_module => l_log_module,
5563 p_level => C_LEVEL_PROCEDURE);
5564 END IF;
5565
5566 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
5567
5568 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5569 l_comp.analytical_criterion_code||C_CHAR||
5570 l_comp.analytical_detail_code;
5571
5572 IF (l_comp.s_name <> l_comp.w_name) THEN
5573 record_updated_property
5574 (p_component_type => 'AMB_AC_DETAIL'
5575 ,p_component_key => l_key
5576 ,p_property => 'NAME'
5577 ,p_old_value => l_comp.w_name
5578 ,p_new_value => l_comp.s_name);
5579 END IF;
5580
5581 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
5582 record_updated_property
5583 (p_component_type => 'AMB_AC_DETAIL'
5584 ,p_component_key => l_key
5585 ,p_property => 'DESCRIPTION'
5586 ,p_old_value => l_comp.w_description
5587 ,p_new_value => l_comp.s_description);
5588 END IF;
5589
5590 IF (l_comp.s_grouping_order <> l_comp.w_grouping_order) THEN
5591 record_updated_property
5592 (p_component_type => 'AMB_AC_DETAIL'
5593 ,p_component_key => l_key
5594 ,p_property => 'GROUPING_ORDER'
5595 ,p_old_value => l_comp.w_grouping_order
5596 ,p_new_value => l_comp.s_grouping_order);
5597 END IF;
5598
5599 IF (NVL(l_comp.s_data_type_code,C_CHAR) <> NVL(l_comp.w_data_type_code,C_CHAR)) THEN
5600 record_updated_property
5601 (p_component_type => 'AMB_AC_DETAIL'
5602 ,p_component_key => l_key
5603 ,p_property => 'DATA_TYPE'
5604 ,p_old_value => l_comp.w_data_type_code
5605 ,p_new_value => l_comp.s_data_type_code
5606 ,p_lookup_type => 'XLA_DATA_TYPE');
5607 END IF;
5608
5609 END IF;
5610
5611 record_updated_ac_detail
5612 (p_ac_type_code => l_comp.analytical_criterion_type_code
5613 ,p_ac_code => l_comp.analytical_criterion_code
5614 ,p_ac_detail_code => l_comp.analytical_detail_code
5615 ,p_merge_impact => l_comp.merge_impact);
5616
5617 END LOOP;
5618
5619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5620 trace(p_msg => 'END LOOP: updated ac details',
5621 p_module => l_log_module,
5622 p_level => C_LEVEL_PROCEDURE);
5623 END IF;
5624
5625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5626 trace(p_msg => 'END of function compare_ac_details',
5627 p_module => l_log_module,
5628 p_level => C_LEVEL_PROCEDURE);
5629 END IF;
5630
5631 EXCEPTION
5632 WHEN xla_exceptions_pkg.application_exception THEN
5633 RAISE;
5634 WHEN OTHERS THEN
5635 xla_exceptions_pkg.raise_message
5636 (p_location => l_log_module);
5637 END compare_ac_details;
5638
5639 --=============================================================================
5640 --
5641 -- Name: compare_ac_sources
5642 -- Description:
5643 --
5644 --=============================================================================
5645 PROCEDURE compare_ac_sources
5646 IS
5647 CURSOR c_comp IS
5648 SELECT s.analytical_criterion_type_code
5649 , s.analytical_criterion_code
5650 , s.analytical_detail_code
5651 , s.entity_code
5652 , s.event_class_code
5653 , s.application_id
5654 , s.source_type_code s_source_type_code
5655 , s.source_code s_source_code
5656 , s.source_application_id s_source_application_id
5657 , w.source_type_code w_source_type_code
5658 , w.source_code w_source_code
5659 , w.source_application_id w_source_application_id
5660 FROM xla_analytical_sources s
5661 JOIN xla_analytical_dtls_b b
5662 ON b.amb_context_code = g_amb_context_code
5663 AND b.analytical_criterion_type_code = s.analytical_criterion_type_code
5664 AND b.analytical_criterion_code = s.analytical_criterion_code
5665 AND b.analytical_detail_code = s.analytical_detail_code
5666 LEFT OUTER JOIN xla_analytical_sources w
5667 ON w.amb_context_code = g_amb_context_code
5668 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
5669 AND w.analytical_criterion_code = s.analytical_criterion_code
5670 AND w.analytical_detail_code = s.analytical_detail_code
5671 AND w.entity_code = s.entity_code
5672 AND w.event_class_code = s.event_class_code
5673 AND w.application_id = s.application_id
5674 WHERE s.amb_context_code = g_staging_context_code
5675 AND (w.source_application_id IS NULL OR
5676 NVL(w.source_type_code,C_CHAR) <> NVL(s.source_type_code,C_CHAR) OR
5677 NVL(w.source_code,C_CHAR) <> NVL(s.source_code,C_CHAR) OR
5678 NVL(w.source_application_id,C_NUM) <> NVL(s.source_application_id,C_NUM))
5679 UNION
5680 SELECT w.analytical_criterion_type_code
5681 , w.analytical_criterion_code
5682 , w.analytical_detail_code
5683 , w.entity_code
5684 , w.event_class_code
5685 , w.application_id
5686 , NULL
5687 , NULL
5688 , NULL
5689 , w.source_type_code
5690 , w.source_code
5691 , w.source_application_id
5692 FROM xla_analytical_sources w
5693 , xla_analytical_dtls_b b
5694 WHERE w.amb_context_code = g_amb_context_code
5695 AND b.amb_context_code = g_staging_context_code
5696 AND b.analytical_criterion_type_code = w.analytical_criterion_type_code
5697 AND b.analytical_criterion_code = w.analytical_criterion_code
5698 AND b.analytical_detail_code = w.analytical_detail_code
5699 AND NOT EXISTS
5700 (SELECT 1
5701 FROM xla_analytical_sources s
5702 WHERE s.amb_context_code = g_staging_context_code
5703 AND s.analytical_criterion_type_code = w.analytical_criterion_type_code
5704 AND s.analytical_criterion_code = w.analytical_criterion_code
5705 AND s.analytical_detail_code = w.analytical_detail_code
5706 AND s.entity_code = w.entity_code
5707 AND s.event_class_code = w.event_class_code
5708 AND s.application_id = w.application_id);
5709
5710 l_key VARCHAR2(4000);
5711 l_parent_key VARCHAR2(240);
5712 l_log_module VARCHAR2(240);
5713 BEGIN
5714 IF g_log_enabled THEN
5715 l_log_module := C_DEFAULT_MODULE||'.compare_ac_sources';
5716 END IF;
5717
5718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5719 trace(p_msg => 'BEGIN of function compare_ac_sources',
5720 p_module => l_log_module,
5721 p_level => C_LEVEL_PROCEDURE);
5722 END IF;
5723
5724 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5725 trace(p_msg => 'BEGIN LOOP: updated ac sources',
5726 p_module => l_log_module,
5727 p_level => C_LEVEL_PROCEDURE);
5728 END IF;
5729
5730 FOR l_comp IN c_comp LOOP
5731 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5732 trace(p_msg => 'LOOP 1: updated ac sources - '||l_comp.analytical_criterion_type_code,
5733 p_module => l_log_module,
5734 p_level => C_LEVEL_PROCEDURE);
5735 END IF;
5736
5737 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5738 l_comp.analytical_criterion_code||C_CHAR||
5739 l_comp.analytical_detail_code||C_CHAR||
5740 l_comp.entity_code||C_CHAR||
5741 l_comp.event_class_code||C_CHAR||
5742 l_comp.application_id;
5743
5744 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5745 trace(p_msg => 'LOOP: updated ac sources - '||l_key,
5746 p_module => l_log_module,
5747 p_level => C_LEVEL_PROCEDURE);
5748 END IF;
5749
5750 record_updated_source(p_component_type => 'AMB_AC_SOURCE'
5751 ,p_component_key => l_key
5752 ,p_property => 'SOURCE_CODE'
5753 ,p_old_source_app_id => l_comp.w_source_application_id
5754 ,p_old_source_type_code => l_comp.w_source_type_code
5755 ,p_old_source_code => l_comp.w_source_code
5756 ,p_new_source_app_id => l_comp.s_source_application_id
5757 ,p_new_source_type_code => l_comp.s_source_type_code
5758 ,p_new_source_code => l_comp.s_source_code);
5759
5760 record_updated_component
5761 (p_parent_component_type => 'AMB_AC_DETAIL'
5762 ,p_parent_component_key => l_comp.analytical_criterion_type_code||C_CHAR||
5763 l_comp.analytical_criterion_code||C_CHAR||
5764 l_comp.analytical_detail_code
5765 ,p_component_type => 'AMB_AC_SOURCE'
5766 ,p_component_key => l_key
5767 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
5768 ,p_event_class_code => l_comp.event_class_code
5769 ,p_event_type_code => NULL
5770 ,p_component_owner_code => NULL
5771 ,p_component_code => l_comp.event_class_code);
5772
5773 record_updated_ac_detail
5774 (p_ac_type_code => l_comp.analytical_criterion_type_code
5775 ,p_ac_code => l_comp.analytical_criterion_code
5776 ,p_ac_detail_code => l_comp.analytical_detail_code
5777 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5778
5779 END LOOP;
5780
5781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5782 trace(p_msg => 'END LOOP: updated ac sources',
5783 p_module => l_log_module,
5784 p_level => C_LEVEL_PROCEDURE);
5785 END IF;
5786
5787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5788 trace(p_msg => 'END of function compare_ac_sources',
5789 p_module => l_log_module,
5790 p_level => C_LEVEL_PROCEDURE);
5791 END IF;
5792
5793 EXCEPTION
5794 WHEN xla_exceptions_pkg.application_exception THEN
5795 RAISE;
5796 WHEN OTHERS THEN
5797 xla_exceptions_pkg.raise_message
5798 (p_location => l_log_module);
5799 END compare_ac_sources;
5800
5801 --=============================================================================
5802 --
5803 -- Name: compare_jlt_acct_attrs
5804 -- Description:
5805 --
5806 --=============================================================================
5807 PROCEDURE compare_jlt_acct_attrs
5808 IS
5809 CURSOR c_comp IS
5810 SELECT s.event_class_code
5811 , s.accounting_line_type_code
5812 , s.accounting_line_code
5813 , s.accounting_attribute_code
5814 , CASE WHEN w.application_id IS NULL
5815 THEN C_MERGE_IMPACT_NEW
5816 ELSE C_MERGE_IMPACT_UPDATED
5817 END merge_impact
5818 , s.source_application_id s_source_application_id
5819 , w.source_application_id w_source_application_id
5820 , s.source_type_code s_source_type_code
5821 , w.source_type_code w_source_type_code
5822 , s.source_code s_source_code
5823 , w.source_code w_source_code
5824 , s.event_class_default_flag s_event_class_default_flag
5825 , w.event_class_default_flag w_event_class_default_flag
5826 FROM xla_jlt_acct_attrs s
5827 JOIN xla_acct_line_types_b b
5828 ON b.application_id = g_application_id
5829 AND b.amb_context_code = g_amb_context_code
5830 AND b.event_class_code = s.event_class_code
5831 AND b.accounting_line_type_code = s.accounting_line_type_code
5832 AND b.accounting_line_code = s.accounting_line_code
5833 LEFT OUTER JOIN xla_jlt_acct_attrs w
5834 ON w.application_id = g_application_id
5835 AND w.amb_context_code = g_amb_context_code
5836 AND w.event_class_code = s.event_class_code
5837 AND w.accounting_line_type_code = s.accounting_line_type_code
5838 AND w.accounting_line_code = s.accounting_line_code
5839 AND w.accounting_attribute_code = s.accounting_attribute_code
5840 WHERE s.application_id = g_application_id
5841 AND s.amb_context_code = g_staging_context_code
5842 AND (w.application_id IS NULL OR
5843 NVL(s.event_class_default_flag,C_CHAR) <> NVL(w.event_class_default_flag,C_CHAR) OR
5844 NVL(s.source_application_id,C_NUM) <> NVL(w.source_application_id,C_NUM) OR
5845 NVL(s.source_type_code,C_CHAR) <> NVL(w.source_type_code,C_CHAR) OR
5846 NVL(s.source_code,C_CHAR) <> NVL(w.source_code,C_CHAR));
5847
5848 l_key VARCHAR2(240);
5849 l_log_module VARCHAR2(240);
5850 BEGIN
5851 IF g_log_enabled THEN
5852 l_log_module := C_DEFAULT_MODULE||'.compare_jlt_acct_attrs';
5853 END IF;
5854
5855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5856 trace(p_msg => 'BEGIN of function compare_jlt_acct_attrs',
5857 p_module => l_log_module,
5858 p_level => C_LEVEL_PROCEDURE);
5859 END IF;
5860
5861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5862 trace(p_msg => 'BEGIN LOOP: updated jlt acct attrs',
5863 p_module => l_log_module,
5864 p_level => C_LEVEL_PROCEDURE);
5865 END IF;
5866
5867 FOR l_comp IN c_comp LOOP
5868
5869 l_key := l_comp.event_class_code||C_CHAR||
5870 l_comp.accounting_line_type_code||C_CHAR||
5871 l_comp.accounting_line_code||C_CHAR||
5872 l_comp.accounting_attribute_code;
5873
5874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5875 trace(p_msg => 'LOOP: updated jlt acct attr - '||l_comp.merge_impact,
5876 p_module => l_log_module,
5877 p_level => C_LEVEL_PROCEDURE);
5878 trace(p_msg => 'l_key = '||l_key,
5879 p_module => l_log_module,
5880 p_level => C_LEVEL_PROCEDURE);
5881 END IF;
5882
5883 record_updated_jlt_acct_attr
5884 (p_event_class_code => l_comp.event_class_code
5885 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
5886 ,p_accounting_line_code => l_comp.accounting_line_code
5887 ,p_accounting_attribute_code => l_comp.accounting_attribute_code
5888 ,p_merge_impact => l_comp.merge_impact);
5889
5890 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
5891
5892 IF (l_comp.s_event_class_default_flag <> l_comp.w_event_class_default_flag) THEN
5893 record_updated_property
5894 (p_component_type => 'AMB_JLT_ACCT_ATTR'
5895 ,p_component_key => l_key
5896 ,p_property => 'EVENT_CLASS_DEFAULT_FLAG'
5897 ,p_old_value => l_comp.w_event_class_default_flag
5898 ,p_new_value => l_comp.s_event_class_default_flag
5899 ,p_lookup_type => 'XLA_YES_NO');
5900 END IF;
5901
5902 IF (NVL(l_comp.w_source_application_id,C_NUM) <> NVL(l_comp.s_source_application_id,C_NUM) OR
5903 NVL(l_comp.w_source_type_code,C_CHAR) <> NVL(l_comp.s_source_type_code,C_CHAR) OR
5904 NVL(l_comp.w_source_code,C_CHAR) <> NVL(l_comp.s_source_code,C_CHAR)) THEN
5905 record_updated_source(p_component_type => 'AMB_JLT_ACCT_ATTR'
5906 ,p_component_key => l_key
5907 ,p_property => 'SOURCE_CODE'
5908 ,p_old_source_app_id => l_comp.w_source_application_id
5909 ,p_old_source_type_code => l_comp.w_source_type_code
5910 ,p_old_source_code => l_comp.w_source_code
5911 ,p_new_source_app_id => l_comp.s_source_application_id
5912 ,p_new_source_type_code => l_comp.s_source_type_code
5913 ,p_new_source_code => l_comp.s_source_code);
5914 END IF;
5915 END IF;
5916
5917 END LOOP;
5918
5919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5920 trace(p_msg => 'END LOOP: updated jlt acct attrs',
5921 p_module => l_log_module,
5922 p_level => C_LEVEL_PROCEDURE);
5923 END IF;
5924
5925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5926 trace(p_msg => 'END of function compare_jlt_acct_attrs',
5927 p_module => l_log_module,
5928 p_level => C_LEVEL_PROCEDURE);
5929 END IF;
5930
5931 EXCEPTION
5932 WHEN xla_exceptions_pkg.application_exception THEN
5933 RAISE;
5934 WHEN OTHERS THEN
5935 xla_exceptions_pkg.raise_message
5936 (p_location => l_log_module);
5937 END compare_jlt_acct_attrs;
5938
5939 --=============================================================================
5940 --
5941 -- Name: compare_jlts
5942 -- Description:
5943 --
5944 --=============================================================================
5945 PROCEDURE compare_jlts
5946 IS
5947 CURSOR c_comp IS
5948 SELECT ts.entity_code
5949 ,ts.event_class_code
5950 ,ts.accounting_line_type_code acct_line_type_code
5951 ,ts.accounting_line_code acct_line_code
5952 ,ts.name s_name
5953 ,tw.name w_name
5954 ,ts.description s_description
5955 ,tw.description w_description
5956 ,s.accounting_class_code s_acct_class_code
5957 ,w.accounting_class_code w_acct_class_code
5958 ,s.enabled_flag s_enabled_flag
5959 ,w.enabled_flag w_enabled_flag
5960 ,s.accounting_entry_type_code s_ae_type_code
5961 ,w.accounting_entry_type_code w_ae_type_code
5962 ,s.natural_side_code s_natural_side_code
5963 ,w.natural_side_code w_natural_side_code
5964 ,s.switch_side_flag s_switch_side_flag
5965 ,w.switch_side_flag w_switch_side_flag
5966 ,s.merge_duplicate_code s_merge_duplicate_code
5967 ,w.merge_duplicate_code w_merge_duplicate_code
5968 ,s.transaction_coa_id s_trx_coa_id
5969 ,w.transaction_coa_id w_trx_coa_id
5970 ,s.gl_transfer_mode_code s_gl_transfer_mode_code
5971 ,w.gl_transfer_mode_code w_gl_transfer_mode_code
5972 ,s.business_method_code s_business_method_code
5973 ,w.business_method_code w_business_method_code
5974 ,s.business_class_code s_business_class_code
5975 ,w.business_class_code w_business_class_code
5976 ,s.rounding_class_code s_rounding_class_code
5977 ,w.rounding_class_code w_rounding_class_code
5978 ,s.encumbrance_type_id s_encumbrance_type_id
5979 ,w.encumbrance_type_id w_encumbrance_type_id
5980 ,s.mpa_option_code s_mpa_option_code
5981 ,w.mpa_option_code w_mpa_option_code
5982 FROM xla_acct_line_types_b s
5983 JOIN xla_acct_line_types_tl ts
5984 ON ts.application_id = s.application_id
5985 AND ts.amb_context_code = s.amb_context_code
5986 AND ts.entity_code = s.entity_code
5987 AND ts.event_class_code = s.event_class_code
5988 AND ts.accounting_line_type_code = s.accounting_line_type_code
5989 AND ts.accounting_line_code = s.accounting_line_code
5990 AND ts.accounting_line_code = s.accounting_line_code
5991 AND ts.language = USERENV('LANG')
5992 JOIN xla_acct_line_types_b w
5993 ON w.application_id = s.application_id
5994 AND w.entity_code = s.entity_code
5995 AND w.event_class_code = s.event_class_code
5996 AND w.accounting_line_type_code = s.accounting_line_type_code
5997 AND w.accounting_line_code = s.accounting_line_code
5998 JOIN xla_acct_line_types_tl tw
5999 ON tw.application_id = w.application_id
6000 AND tw.amb_context_code = w.amb_context_code
6001 AND tw.entity_code = w.entity_code
6002 AND tw.event_class_code = w.event_class_code
6003 AND tw.accounting_line_type_code = w.accounting_line_type_code
6004 AND tw.accounting_line_code = w.accounting_line_code
6005 AND tw.language = USERENV('LANG')
6006 WHERE s.amb_context_code = g_staging_context_code
6007 AND w.amb_context_code = g_amb_context_code;
6008
6009 l_key VARCHAR2(240);
6010 l_staging_condition VARCHAR2(2000);
6011 l_working_condition VARCHAR2(2000);
6012 l_updated BOOLEAN;
6013
6014 l_log_module VARCHAR2(240);
6015 BEGIN
6016 IF g_log_enabled THEN
6017 l_log_module := C_DEFAULT_MODULE||'.compare_jlts';
6018 END IF;
6019
6020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6021 trace(p_msg => 'BEGIN of function compare_jlts',
6022 p_module => l_log_module,
6023 p_level => C_LEVEL_PROCEDURE);
6024 END IF;
6025
6026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6027 trace(p_msg => 'BEGIN LOOP: updated jlt',
6028 p_module => l_log_module,
6029 p_level => C_LEVEL_PROCEDURE);
6030 END IF;
6031
6032 l_updated := FALSE;
6033 FOR l_comp in c_comp LOOP
6034
6035 l_key := l_comp.event_class_code||C_CHAR||
6036 l_comp.acct_line_type_code||C_CHAR||
6037 l_comp.acct_line_code;
6038
6039 IF (l_comp.s_name <> l_comp.w_name) THEN
6040 l_updated := TRUE;
6041 record_updated_property
6042 (p_component_type => 'AMB_JLT'
6043 ,p_component_key => l_key
6044 ,p_property => 'NAME'
6045 ,p_old_value => l_comp.w_name
6046 ,p_new_value => l_comp.s_name);
6047 END IF;
6048
6049 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
6050 l_updated := TRUE;
6051 record_updated_property
6052 (p_component_type => 'AMB_JLT'
6053 ,p_component_key => l_key
6054 ,p_property => 'DESCRIPTION'
6055 ,p_old_value => l_comp.w_description
6056 ,p_new_value => l_comp.s_description);
6057 END IF;
6058
6059 IF (l_comp.s_acct_class_code <> l_comp.w_acct_class_code) THEN
6060 l_updated := TRUE;
6061 record_updated_property
6062 (p_component_type => 'AMB_JLT'
6063 ,p_component_key => l_key
6064 ,p_property => 'ACCOUNTING_CLASS'
6065 ,p_old_value => l_comp.w_acct_class_code
6066 ,p_new_value => l_comp.s_acct_class_code
6067 ,p_lookup_type => 'XLA_ACCOUNTING_CLASS');
6068 END IF;
6069
6070 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
6071 l_updated := TRUE;
6072 record_updated_property
6073 (p_component_type => 'AMB_JLT'
6074 ,p_component_key => l_key
6075 ,p_property => 'ENABLED'
6076 ,p_old_value => l_comp.w_enabled_flag
6077 ,p_new_value => l_comp.s_enabled_flag
6078 ,p_lookup_type => 'XLA_YES_NO');
6079 END IF;
6080
6081 IF (l_comp.s_ae_type_code <> l_comp.w_ae_type_code) THEN
6082 l_updated := TRUE;
6083 record_updated_property
6084 (p_component_type => 'AMB_JLT'
6085 ,p_component_key => l_key
6086 ,p_property => 'ACCOUNTING_ENTRY_TYPE'
6087 ,p_old_value => l_comp.w_ae_type_code
6088 ,p_new_value => l_comp.s_ae_type_code
6089 ,p_lookup_type => 'XLA_BALANCE_TYPE');
6090 END IF;
6091
6092 IF (l_comp.s_natural_side_code <> l_comp.w_natural_side_code) THEN
6093 l_updated := TRUE;
6094 record_updated_property
6095 (p_component_type => 'AMB_JLT'
6096 ,p_component_key => l_key
6097 ,p_property => 'NATURAL_SIDE'
6098 ,p_old_value => l_comp.w_natural_side_code
6099 ,p_new_value => l_comp.s_natural_side_code
6100 ,p_lookup_type => 'XLA_ACCT_NATURAL_SIDE');
6101 END IF;
6102
6103 IF (NVL(l_comp.s_switch_side_flag,C_CHAR) <> NVL(l_comp.w_switch_side_flag,C_CHAR)) THEN
6104 l_updated := TRUE;
6105 record_updated_property
6106 (p_component_type => 'AMB_JLT'
6107 ,p_component_key => l_key
6108 ,p_property => 'SWITCH_SIDE'
6109 ,p_old_value => l_comp.w_switch_side_flag
6110 ,p_new_value => l_comp.s_switch_side_flag
6111 ,p_lookup_type => 'XLA_YES_NO');
6112 END IF;
6113
6114 IF (l_comp.s_merge_duplicate_code <> l_comp.w_merge_duplicate_code) THEN
6115 l_updated := TRUE;
6116 record_updated_property
6117 (p_component_type => 'AMB_JLT'
6118 ,p_component_key => l_key
6119 ,p_property => 'MERGE_DUPLICATE'
6120 ,p_old_value => l_comp.w_merge_duplicate_code
6121 ,p_new_value => l_comp.s_merge_duplicate_code
6122 ,p_lookup_type => 'XLA_MERGE_MATCHING_TYPE');
6123 END IF;
6124
6125 IF (NVL(l_comp.s_trx_coa_id,C_NUM) <> NVL(l_comp.w_trx_coa_id,C_NUM)) THEN
6126 l_updated := TRUE;
6127 record_updated_property
6128 (p_component_type => 'AMB_JLT'
6129 ,p_component_key => l_key
6130 ,p_property => 'TRANSACTION_COA'
6131 ,p_old_value => l_comp.w_trx_coa_id
6132 ,p_new_value => l_comp.s_trx_coa_id);
6133 END IF;
6134
6135 IF (l_comp.s_gl_transfer_mode_code <> l_comp.w_gl_transfer_mode_code) THEN
6136 l_updated := TRUE;
6137 record_updated_property
6138 (p_component_type => 'AMB_JLT'
6139 ,p_component_key => l_key
6140 ,p_property => 'GL_TRANSFER_MODE'
6141 ,p_old_value => l_comp.w_gl_transfer_mode_code
6142 ,p_new_value => l_comp.s_gl_transfer_mode_code
6143 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6144 END IF;
6145
6146 IF (l_comp.s_business_method_code <> l_comp.w_business_method_code) THEN
6147 l_updated := TRUE;
6148 record_updated_property
6149 (p_component_type => 'AMB_JLT'
6150 ,p_component_key => l_key
6151 ,p_property => 'BUSINESS_METHOD'
6152 ,p_old_value => l_comp.w_business_method_code
6153 ,p_new_value => l_comp.s_business_method_code
6154 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6155 END IF;
6156
6157 IF (NVL(l_comp.s_business_class_code,C_CHAR) <> NVL(l_comp.w_business_class_code,C_CHAR)) THEN
6158 l_updated := TRUE;
6159 record_updated_property
6160 (p_component_type => 'AMB_JLT'
6161 ,p_component_key => l_key
6162 ,p_property => 'BUSINESS_CLASS'
6163 ,p_old_value => l_comp.w_business_class_code
6164 ,p_new_value => l_comp.s_business_class_code
6165 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6166 END IF;
6167
6168 IF (NVL(l_comp.s_encumbrance_type_id,C_NUM) <> NVL(l_comp.w_encumbrance_type_id,C_NUM)) THEN
6169 l_updated := TRUE;
6170 record_updated_property
6171 (p_component_type => 'AMB_JLT'
6172 ,p_component_key => l_key
6173 ,p_property => 'ENCUMBRANCE_TYPE'
6174 ,p_old_value => l_comp.w_encumbrance_type_id
6175 ,p_new_value => l_comp.s_encumbrance_type_id);
6176 END IF;
6177
6178 IF (NVL(l_comp.s_mpa_option_code,C_CHAR) <> NVL(l_comp.w_mpa_option_code,C_CHAR)) THEN
6179 l_updated := TRUE;
6180 record_updated_property
6181 (p_component_type => 'AMB_JLT'
6182 ,p_component_key => l_key
6183 ,p_property => 'MPA_OPTION_CODE'
6184 ,p_old_value => l_comp.w_mpa_option_code
6185 ,p_new_value => l_comp.s_mpa_option_code
6186 ,p_lookup_type => 'XLA_MPA_OPTION');
6187 END IF;
6188
6189 IF (NVL(l_comp.s_rounding_class_code,C_CHAR) <> NVL(l_comp.w_rounding_class_code,C_CHAR)) THEN
6190 l_updated := TRUE;
6191 record_updated_property
6192 (p_component_type => 'AMB_JLT'
6193 ,p_component_key => l_key
6194 ,p_property => 'ROUNDING_CLASS'
6195 ,p_old_value => l_comp.w_rounding_class_code
6196 ,p_new_value => l_comp.s_rounding_class_code
6197 ,p_lookup_type => 'XLA_ACCOUNTING_CLASS');
6198 END IF;
6199
6200 l_working_condition := xla_conditions_pkg.display_condition
6201 (p_application_id => g_application_id
6202 ,p_amb_context_code => g_amb_context_code
6203 ,p_entity_code => l_comp.entity_code
6204 ,p_event_class_code => l_comp.event_class_code
6205 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6206 ,p_accounting_line_code => l_comp.acct_line_code
6207 ,p_chart_of_accounts_id => l_comp.w_trx_coa_id
6208 ,p_context => 'A');
6209
6210 l_staging_condition := xla_conditions_pkg.display_condition
6211 (p_application_id => g_application_id
6212 ,p_amb_context_code => g_staging_context_code
6213 ,p_entity_code => l_comp.entity_code
6214 ,p_event_class_code => l_comp.event_class_code
6215 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6216 ,p_accounting_line_code => l_comp.acct_line_code
6217 ,p_chart_of_accounts_id => l_comp.s_trx_coa_id
6218 ,p_context => 'A');
6219
6220 IF (l_working_condition <> l_staging_condition) THEN
6221 l_updated := TRUE;
6222 record_updated_property
6223 (p_component_type => 'AMB_JLT'
6224 ,p_component_key => l_key
6225 ,p_property => 'CONDITION'
6226 ,p_old_value => l_working_condition
6227 ,p_new_value => l_staging_condition);
6228 END IF;
6229
6230 IF (l_updated) THEN
6231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6232 trace(p_msg => 'LOOP: updated ac sources - '||l_key,
6233 p_module => l_log_module,
6234 p_level => C_LEVEL_PROCEDURE);
6235 END IF;
6236
6237 record_updated_jlt(p_event_class_code => l_comp.event_class_code
6238 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6239 ,p_accounting_line_code => l_comp.acct_line_code);
6240
6241 l_updated := FALSE;
6242 END IF;
6243
6244 END LOOP;
6245
6246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6247 trace(p_msg => 'END LOOP: updated jlt',
6248 p_module => l_log_module,
6249 p_level => C_LEVEL_PROCEDURE);
6250 END IF;
6251
6252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6253 trace(p_msg => 'END of function compare_jlts',
6254 p_module => l_log_module,
6255 p_level => C_LEVEL_PROCEDURE);
6256 END IF;
6257
6258 EXCEPTION
6259 WHEN xla_exceptions_pkg.application_exception THEN
6260 RAISE;
6261 WHEN OTHERS THEN
6262 xla_exceptions_pkg.raise_message
6263 (p_location => l_log_module);
6264 END compare_jlts;
6265
6266 --=============================================================================
6267 --
6268 -- Name: compare_line_adr_assgns
6269 -- Description:
6270 --
6271 --=============================================================================
6272 PROCEDURE compare_line_adr_assgns
6273 IS
6274 CURSOR c_comp IS
6275 SELECT s.event_class_code
6276 , s.event_type_code
6277 , s.line_definition_owner_code
6278 , s.line_definition_code
6279 , s.accounting_line_type_code
6280 , s.accounting_line_code
6281 , s.flexfield_segment_code
6282 , s.side_code
6283 , l.accounting_coa_id
6284 , CASE WHEN w.application_id IS NULL
6285 THEN C_MERGE_IMPACT_NEW
6286 ELSE C_MERGE_IMPACT_UPDATED
6287 END merge_impact
6288 , s.segment_rule_appl_id s_segment_rule_appl_id
6289 , w.segment_rule_appl_id w_segment_rule_appl_id
6290 , s.segment_rule_type_code s_segment_rule_type_code
6291 , w.segment_rule_type_code w_segment_rule_type_code
6292 , s.segment_rule_code s_segment_rule_code
6293 , w.segment_rule_code w_segment_rule_code
6294 , s.inherit_adr_flag s_inherit_adr_flag
6295 , w.inherit_adr_flag w_inherit_adr_flag
6296 FROM xla_line_defn_adr_assgns s
6297 JOIN xla_line_definitions_b l
6298 ON l.application_id = g_application_id
6299 AND l.amb_context_code = g_amb_context_code
6300 AND l.event_class_code = s.event_class_code
6301 AND l.event_type_code = s.event_type_code
6302 AND l.line_definition_owner_code = s.line_definition_owner_code
6303 AND l.line_definition_code = s.line_definition_code
6304 JOIN xla_line_defn_jlt_assgns b
6305 ON b.application_id = g_application_id
6306 AND b.amb_context_code = g_amb_context_code
6307 AND b.event_class_code = s.event_class_code
6308 AND b.event_type_code = s.event_type_code
6309 AND b.line_definition_owner_code = s.line_definition_owner_code
6310 AND b.line_definition_code = s.line_definition_code
6311 AND b.accounting_line_type_code = s.accounting_line_type_code
6312 AND b.accounting_line_code = s.accounting_line_code
6313 LEFT OUTER JOIN xla_line_defn_adr_assgns w
6314 ON w.application_id = g_application_id
6315 AND w.amb_context_code = g_amb_context_code
6316 AND w.event_class_code = s.event_class_code
6317 AND w.event_type_code = s.event_type_code
6318 AND w.line_definition_owner_code = s.line_definition_owner_code
6319 AND w.line_definition_code = s.line_definition_code
6320 AND w.accounting_line_type_code = s.accounting_line_type_code
6321 AND w.accounting_line_code = s.accounting_line_code
6322 AND w.flexfield_segment_code = s.flexfield_segment_code
6323 WHERE s.application_id = g_application_id
6324 AND s.amb_context_code = g_staging_context_code
6325 AND (w.application_id IS NULL OR
6326 s.inherit_adr_flag <> w.inherit_adr_flag OR
6327 NVL(s.segment_rule_appl_id,C_NUM) <> NVL(w.segment_rule_appl_id,C_NUM) OR
6328 NVL(s.segment_rule_type_code,C_CHAR) <> NVL(w.segment_rule_type_code,C_CHAR) OR
6329 NVL(s.segment_rule_code,C_CHAR) <> NVL(w.segment_rule_code,C_CHAR));
6330
6331 l_key VARCHAR2(240);
6332 l_parent_key VARCHAR2(240);
6333 l_log_module VARCHAR2(240);
6334 BEGIN
6335 IF g_log_enabled THEN
6336 l_log_module := C_DEFAULT_MODULE||'.compare_line_adr_assgns';
6337 END IF;
6338
6339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6340 trace(p_msg => 'BEGIN of function compare_line_adr_assgns',
6341 p_module => l_log_module,
6342 p_level => C_LEVEL_PROCEDURE);
6343 END IF;
6344
6345 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6346 trace(p_msg => 'BEGIN LOOP: updated line adr assgns',
6347 p_module => l_log_module,
6348 p_level => C_LEVEL_PROCEDURE);
6349 END IF;
6350
6351 FOR l_comp IN c_comp LOOP
6352
6353 l_parent_key := l_comp.event_class_code||C_CHAR||
6354 l_comp.event_type_code||C_CHAR||
6355 l_comp.line_definition_owner_code||C_CHAR||
6356 l_comp.line_definition_code||C_CHAR||
6357 l_comp.accounting_line_type_code||C_CHAR||
6358 l_comp.accounting_line_code;
6359
6360 l_key := l_parent_key||C_CHAR||
6361 l_comp.flexfield_segment_code||C_CHAR||
6362 l_comp.side_code;
6363
6364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6365 trace(p_msg => 'LOOP: updated line adr assgn - '||l_key,
6366 p_module => l_log_module,
6367 p_level => C_LEVEL_PROCEDURE);
6368 END IF;
6369
6370 IF (NOT key_exists('LNADR'||C_CHAR||l_key)) THEN
6371 record_updated_component
6372 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
6373 ,p_parent_component_key => l_parent_key
6374 ,p_component_type => 'AMB_ADR_ASSGN'
6375 ,p_component_key => l_key
6376 ,p_merge_impact => l_comp.merge_impact
6377 ,p_component_owner_code => l_comp.accounting_coa_id
6378 ,p_component_code => l_comp.flexfield_segment_code);
6379
6380 record_updated_line_assgn
6381 (p_event_class_code => l_comp.event_class_code
6382 ,p_event_type_code => l_comp.event_type_code
6383 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6384 ,p_line_definition_code => l_comp.line_definition_code
6385 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6386 ,p_accounting_line_code => l_comp.accounting_line_code
6387 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6388
6389 END IF;
6390
6391 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
6392
6393 IF (l_comp.w_inherit_adr_flag <> l_comp.s_inherit_adr_flag) THEN
6394 record_updated_property
6395 (p_component_type => 'AMB_ADR_ASSGN'
6396 ,p_component_key => l_key
6397 ,p_property => 'INHERIT_ADR_FLAG'
6398 ,p_old_value => l_comp.w_inherit_adr_flag
6399 ,p_new_value => l_comp.s_inherit_adr_flag
6400 ,p_lookup_type => 'XLA_YES_NO');
6401
6402 END IF;
6403
6404 IF (NVL(l_comp.w_segment_rule_appl_id,C_NUM) <> NVL(l_comp.s_segment_rule_appl_id,C_NUM) OR
6405 NVL(l_comp.w_segment_rule_type_code,C_CHAR) <> NVL(l_comp.s_segment_rule_type_code,C_CHAR) OR
6406 NVL(l_comp.w_segment_rule_code,C_CHAR) <> NVL(l_comp.s_segment_rule_code,C_CHAR)) THEN
6407
6408 l_parent_key := l_key;
6409
6410 IF (l_comp.s_segment_rule_code IS NOT NULL) THEN
6411
6412 record_updated_component
6413 (p_parent_component_type => 'AMB_ADR_ASSGN'
6414 ,p_parent_component_key => l_parent_key
6415 ,p_component_type => 'AMB_ADR'
6416 ,p_component_key => l_comp.s_segment_rule_type_code||C_CHAR||
6417 l_comp.s_segment_rule_code
6418 ,p_merge_impact => C_MERGE_IMPACT_NEW
6419 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
6420 ,p_component_owner_code => l_comp.s_segment_rule_type_code
6421 ,p_component_code => l_comp.s_segment_rule_code);
6422 END IF;
6423
6424 IF (l_comp.w_segment_rule_code IS NOT NULL) THEN
6425
6426 record_updated_component
6427 (p_parent_component_type => 'AMB_ADR_ASSGN'
6428 ,p_parent_component_key => l_parent_key
6429 ,p_component_type => 'AMB_ADR'
6430 ,p_component_key => l_comp.w_segment_rule_type_code||C_CHAR||
6431 l_comp.w_segment_rule_code
6432 ,p_merge_impact => C_MERGE_IMPACT_DELETED
6433 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
6434 ,p_component_owner_code => l_comp.w_segment_rule_type_code
6435 ,p_component_code => l_comp.w_segment_rule_code);
6436 END IF;
6437 END IF;
6438 END IF;
6439
6440 END LOOP;
6441
6442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6443 trace(p_msg => 'END LOOP: updated line adr assgns',
6444 p_module => l_log_module,
6445 p_level => C_LEVEL_PROCEDURE);
6446 END IF;
6447
6448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6449 trace(p_msg => 'END of function compare_line_adr_assgns',
6450 p_module => l_log_module,
6451 p_level => C_LEVEL_PROCEDURE);
6452 END IF;
6453
6454 EXCEPTION
6455 WHEN xla_exceptions_pkg.application_exception THEN
6456 RAISE;
6457 WHEN OTHERS THEN
6458 xla_exceptions_pkg.raise_message
6459 (p_location => l_log_module);
6460 END compare_line_adr_assgns;
6461
6462
6463 --=============================================================================
6464 --
6465 -- Name: compare_line_ac_assgns
6466 -- Description:
6467 --
6468 --=============================================================================
6469 PROCEDURE compare_line_ac_assgns
6470 IS
6471 CURSOR c_comp IS
6472 SELECT s.event_class_code
6473 , s.event_type_code
6474 , s.line_definition_owner_code
6475 , s.line_definition_code
6476 , s.accounting_line_type_code
6477 , s.accounting_line_code
6478 , s.analytical_criterion_type_code
6479 , s.analytical_criterion_code
6480 , C_MERGE_IMPACT_NEW merge_impact
6481 FROM xla_line_defn_ac_assgns s
6482 , xla_line_defn_jlt_assgns b
6483 WHERE s.application_id = g_application_id
6484 AND s.amb_context_code = g_staging_context_code
6485 AND b.application_id = g_application_id
6486 AND b.amb_context_code = g_amb_context_code
6487 AND b.event_class_code = s.event_class_code
6488 AND b.event_type_code = s.event_type_code
6489 AND b.line_definition_owner_code = s.line_definition_owner_code
6490 AND b.line_definition_code = s.line_definition_code
6491 AND b.accounting_line_type_code = s.accounting_line_type_code
6492 AND b.accounting_line_code = s.accounting_line_code
6493 AND NOT EXISTS
6494 (SELECT 1
6495 FROM xla_line_defn_ac_assgns w
6496 WHERE w.application_id = g_application_id
6497 AND w.amb_context_code = g_amb_context_code
6498 AND w.event_class_code = s.event_class_code
6499 AND w.event_type_code = s.event_type_code
6500 AND w.line_definition_owner_code = s.line_definition_owner_code
6501 AND w.line_definition_code = s.line_definition_code
6502 AND w.accounting_line_type_code = s.accounting_line_type_code
6503 AND w.accounting_line_code = s.accounting_line_code
6504 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
6505 AND w.analytical_criterion_code = s.analytical_criterion_code);
6506
6507 l_parent_key VARCHAR2(240);
6508 l_key VARCHAR2(240);
6509 l_log_module VARCHAR2(240);
6510 BEGIN
6511 IF g_log_enabled THEN
6512 l_log_module := C_DEFAULT_MODULE||'.compare_line_ac_assgns';
6513 END IF;
6514
6515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6516 trace(p_msg => 'BEGIN of function compare_line_ac_assgns',
6517 p_module => l_log_module,
6518 p_level => C_LEVEL_PROCEDURE);
6519 END IF;
6520
6521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6522 trace(p_msg => 'BEGIN LOOP: updated line ac assgns',
6523 p_module => l_log_module,
6524 p_level => C_LEVEL_PROCEDURE);
6525 END IF;
6526
6527 FOR l_comp IN c_comp LOOP
6528
6529 l_parent_key := l_comp.event_class_code||C_CHAR||
6530 l_comp.event_type_code||C_CHAR||
6531 l_comp.line_definition_owner_code||C_CHAR||
6532 l_comp.line_definition_code||C_CHAR||
6533 l_comp.accounting_line_type_code||C_CHAR||
6534 l_comp.accounting_line_code;
6535
6536 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
6537 l_comp.analytical_criterion_code;
6538
6539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6540 trace(p_msg => 'LOOP: updated line ac assgn',
6541 p_module => l_log_module,
6542 p_level => C_LEVEL_PROCEDURE);
6543 trace(p_msg => 'l_parent_key = '||l_parent_key,
6544 p_module => l_log_module,
6545 p_level => C_LEVEL_PROCEDURE);
6546 trace(p_msg => 'l_key = '||l_key,
6547 p_module => l_log_module,
6548 p_level => C_LEVEL_PROCEDURE);
6549 END IF;
6550
6551 record_updated_component
6552 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
6553 ,p_parent_component_key => l_parent_key
6554 ,p_component_type => 'AMB_AC'
6555 ,p_component_key => l_key
6556 ,p_merge_impact => l_comp.merge_impact
6557 ,p_component_owner_code => l_comp.analytical_criterion_type_code
6558 ,p_component_code => l_comp.analytical_criterion_code);
6559
6560 record_updated_line_assgn
6561 (p_event_class_code => l_comp.event_class_code
6562 ,p_event_type_code => l_comp.event_type_code
6563 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6564 ,p_line_definition_code => l_comp.line_definition_code
6565 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6566 ,p_accounting_line_code => l_comp.accounting_line_code
6567 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6568
6569 END LOOP;
6570
6571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6572 trace(p_msg => 'END LOOP: updated line ac assgns',
6573 p_module => l_log_module,
6574 p_level => C_LEVEL_PROCEDURE);
6575 END IF;
6576
6577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6578 trace(p_msg => 'END of function compare_line_ac_assgns',
6579 p_module => l_log_module,
6580 p_level => C_LEVEL_PROCEDURE);
6581 END IF;
6582
6583 EXCEPTION
6584 WHEN xla_exceptions_pkg.application_exception THEN
6585 RAISE;
6586 WHEN OTHERS THEN
6587 xla_exceptions_pkg.raise_message
6588 (p_location => l_log_module);
6589 END compare_line_ac_assgns;
6590
6591
6592 --=============================================================================
6593 --
6594 -- Name: compare_mpa_hdr_ac_assgns
6595 -- Description:
6596 --
6597 --=============================================================================
6598 PROCEDURE compare_mpa_hdr_ac_assgns
6599 IS
6600 CURSOR c_comp IS
6601 SELECT s.event_class_code
6602 , s.event_type_code
6603 , s.line_definition_owner_code
6604 , s.line_definition_code
6605 , s.accounting_line_type_code
6606 , s.accounting_line_code
6607 , s.analytical_criterion_type_code
6608 , s.analytical_criterion_code
6609 , C_MERGE_IMPACT_NEW merge_impact
6610 FROM xla_mpa_header_ac_assgns s
6611 , xla_line_defn_jlt_assgns b
6612 WHERE s.application_id = g_application_id
6613 AND s.amb_context_code = g_staging_context_code
6614 AND b.application_id = g_application_id
6615 AND b.amb_context_code = g_amb_context_code
6616 AND b.event_class_code = s.event_class_code
6617 AND b.event_type_code = s.event_type_code
6618 AND b.line_definition_owner_code = s.line_definition_owner_code
6619 AND b.line_definition_code = s.line_definition_code
6620 AND b.accounting_line_type_code = s.accounting_line_type_code
6621 AND b.accounting_line_code = s.accounting_line_code
6622 AND NOT EXISTS
6623 (SELECT 1
6624 FROM xla_mpa_header_ac_assgns w
6625 WHERE w.application_id = g_application_id
6626 AND w.amb_context_code = g_amb_context_code
6627 AND w.event_class_code = s.event_class_code
6628 AND w.event_type_code = s.event_type_code
6629 AND w.line_definition_owner_code = s.line_definition_owner_code
6630 AND w.line_definition_code = s.line_definition_code
6631 AND w.accounting_line_type_code = s.accounting_line_type_code
6632 AND w.accounting_line_code = s.accounting_line_code
6633 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
6634 AND w.analytical_criterion_code = s.analytical_criterion_code);
6635
6636 l_parent_key VARCHAR2(240);
6637 l_key VARCHAR2(240);
6638 l_log_module VARCHAR2(240);
6639 BEGIN
6640 IF g_log_enabled THEN
6641 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_hdr_ac_assgns';
6642 END IF;
6643
6644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6645 trace(p_msg => 'BEGIN of function compare_mpa_hdr_ac_assgns',
6646 p_module => l_log_module,
6647 p_level => C_LEVEL_PROCEDURE);
6648 END IF;
6649
6650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6651 trace(p_msg => 'BEGIN LOOP: updated mpa header ac assgns',
6652 p_module => l_log_module,
6653 p_level => C_LEVEL_PROCEDURE);
6654 END IF;
6655
6656 FOR l_comp IN c_comp LOOP
6657
6658 l_parent_key := l_comp.event_class_code||C_CHAR||
6659 l_comp.event_type_code||C_CHAR||
6660 l_comp.line_definition_owner_code||C_CHAR||
6661 l_comp.line_definition_code||C_CHAR||
6662 l_comp.accounting_line_type_code||C_CHAR||
6663 l_comp.accounting_line_code||C_CHAR||
6664 'MPA';
6665
6666 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
6667 l_comp.analytical_criterion_code;
6668
6669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6670 trace(p_msg => 'LOOP: updated mpa header ac assgn',
6671 p_module => l_log_module,
6672 p_level => C_LEVEL_PROCEDURE);
6673 trace(p_msg => 'l_parent_key = '||l_parent_key,
6674 p_module => l_log_module,
6675 p_level => C_LEVEL_PROCEDURE);
6676 trace(p_msg => 'l_key = '||l_key,
6677 p_module => l_log_module,
6678 p_level => C_LEVEL_PROCEDURE);
6679 END IF;
6680
6681 record_updated_component
6682 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6683 ,p_parent_component_key => l_parent_key
6684 ,p_component_type => 'AMB_AC'
6685 ,p_component_key => l_key
6686 ,p_merge_impact => l_comp.merge_impact
6687 ,p_component_owner_code => l_comp.analytical_criterion_type_code
6688 ,p_component_code => l_comp.analytical_criterion_code);
6689
6690 record_updated_mpa_assgn
6691 (p_event_class_code => l_comp.event_class_code
6692 ,p_event_type_code => l_comp.event_type_code
6693 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6694 ,p_line_definition_code => l_comp.line_definition_code
6695 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6696 ,p_accounting_line_code => l_comp.accounting_line_code
6697 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6698
6699 END LOOP;
6700
6701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6702 trace(p_msg => 'END LOOP: updated mpa header ac assgns',
6703 p_module => l_log_module,
6704 p_level => C_LEVEL_PROCEDURE);
6705 END IF;
6706
6707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6708 trace(p_msg => 'END of function compare_mpa_hdr_ac_assgns',
6709 p_module => l_log_module,
6710 p_level => C_LEVEL_PROCEDURE);
6711 END IF;
6712
6713 EXCEPTION
6714 WHEN xla_exceptions_pkg.application_exception THEN
6715 RAISE;
6716 WHEN OTHERS THEN
6717 xla_exceptions_pkg.raise_message
6718 (p_location => l_log_module);
6719 END compare_mpa_hdr_ac_assgns;
6720
6721 --=============================================================================
6722 --
6723 -- Name: compare_mpa_hdr_assgns
6724 -- Description:
6725 --
6726 --=============================================================================
6727 PROCEDURE compare_mpa_hdr_assgns
6728 IS
6729 CURSOR c_comp IS
6730 SELECT s.event_class_code
6731 , s.event_type_code
6732 , s.line_definition_owner_code
6733 , s.line_definition_code
6734 , s.accounting_line_type_code
6735 , s.accounting_line_code
6736 , CASE WHEN sl.mpa_option_code = 'NONE'
6737 THEN C_MERGE_IMPACT_DELETED
6738 WHEN wl.mpa_option_code = 'NONE'
6739 THEN C_MERGE_IMPACT_NEW
6740 ELSE C_MERGE_IMPACT_UPDATED
6741 END merge_impact
6742 , s.mpa_header_desc_type_code s_mpa_header_desc_type_code
6743 , w.mpa_header_desc_type_code w_mpa_header_desc_type_code
6744 , s.mpa_header_desc_code s_mpa_header_desc_code
6745 , w.mpa_header_desc_code w_mpa_header_desc_code
6746 , s.mpa_num_je_code s_mpa_num_je_code
6747 , w.mpa_num_je_code w_mpa_num_je_code
6748 , s.mpa_gl_dates_code s_mpa_gl_dates_code
6749 , w.mpa_gl_dates_code w_mpa_gl_dates_code
6750 , s.mpa_proration_code s_mpa_proration_code
6751 , w.mpa_proration_code w_mpa_proration_code
6752 FROM xla_line_defn_jlt_assgns s
6753 JOIN xla_line_defn_jlt_assgns w
6754 ON w.application_id = g_application_id
6755 AND w.amb_context_code = g_amb_context_code
6756 AND w.event_class_code = s.event_class_code
6757 AND w.event_type_code = s.event_type_code
6758 AND w.line_definition_owner_code = s.line_definition_owner_code
6759 AND w.line_definition_code = s.line_definition_code
6760 AND w.accounting_line_type_code = s.accounting_line_type_code
6761 AND w.accounting_line_code = s.accounting_line_code
6762 JOIN xla_acct_line_types_b sl
6763 ON sl.application_id = s.application_id
6764 AND sl.amb_context_code = s.amb_context_code
6765 AND sl.event_class_code = s.event_class_code
6766 AND sl.accounting_line_type_code = s.accounting_line_type_code
6767 AND sl.accounting_line_code = s.accounting_line_code
6768 JOIN xla_acct_line_types_b wl
6769 ON wl.application_id = w.application_id
6770 AND wl.amb_context_code = w.amb_context_code
6771 AND wl.event_class_code = w.event_class_code
6772 AND wl.accounting_line_type_code = w.accounting_line_type_code
6773 AND wl.accounting_line_code = w.accounting_line_code
6774 --AND sl.mpa_option_code <> wl.mpa_option_code
6775 WHERE s.application_id = g_application_id
6776 AND s.amb_context_code = g_staging_context_code
6777 AND (sl.mpa_option_code = 'ACCRUAL' OR
6778 wl.mpa_option_code = 'ACCRUAL')
6779 AND (NVL(s.mpa_header_desc_type_code,C_CHAR) <> NVL(w.mpa_header_desc_type_code,C_CHAR) OR
6780 NVL(s.mpa_header_desc_code,C_CHAR) <> NVL(w.mpa_header_desc_code,C_CHAR) OR
6781 NVL(s.mpa_num_je_code,C_CHAR) <> NVL(w.mpa_num_je_code,C_CHAR) OR
6782 NVL(s.mpa_gl_dates_code,C_CHAR) <> NVL(w.mpa_gl_dates_code,C_CHAR) OR
6783 NVL(s.mpa_proration_code,C_CHAR) <> NVL(w.mpa_proration_code,C_CHAR));
6784
6785 l_parent_key VARCHAR2(240);
6786 l_key VARCHAR2(240);
6787 l_log_module VARCHAR2(240);
6788 BEGIN
6789 IF g_log_enabled THEN
6790 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_hdr_assgns';
6791 END IF;
6792
6793 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6794 trace(p_msg => 'BEGIN of function compare_mpa_hdr_assgns',
6795 p_module => l_log_module,
6796 p_level => C_LEVEL_PROCEDURE);
6797 END IF;
6798
6799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6800 trace(p_msg => 'BEGIN LOOP: updated mpa header assgns',
6801 p_module => l_log_module,
6802 p_level => C_LEVEL_PROCEDURE);
6803 END IF;
6804
6805 FOR l_comp IN c_comp LOOP
6806
6807 l_parent_key := l_comp.event_class_code||C_CHAR||
6808 l_comp.event_type_code||C_CHAR||
6809 l_comp.line_definition_owner_code||C_CHAR||
6810 l_comp.line_definition_code||C_CHAR||
6811 l_comp.accounting_line_type_code||C_CHAR||
6812 l_comp.accounting_line_code||C_CHAR||
6813 'MPA';
6814
6815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6816 trace(p_msg => 'LOOP: updated mpa header assgn - ',
6817 p_module => l_log_module,
6818 p_level => C_LEVEL_PROCEDURE);
6819 trace(p_msg => 'l_parent_key = '||l_parent_key,
6820 p_module => l_log_module,
6821 p_level => C_LEVEL_PROCEDURE);
6822 END IF;
6823
6824 record_updated_mpa_assgn
6825 (p_event_class_code => l_comp.event_class_code
6826 ,p_event_type_code => l_comp.event_type_code
6827 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6828 ,p_line_definition_code => l_comp.line_definition_code
6829 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6830 ,p_accounting_line_code => l_comp.accounting_line_code
6831 ,p_merge_impact => l_comp.merge_impact);
6832
6833 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
6834
6835 IF (l_comp.s_mpa_header_desc_type_code IS NOT NULL AND
6836 l_comp.w_mpa_header_desc_type_code IS NULL) OR
6837 (NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) OR
6838 NVL(l_comp.w_mpa_header_desc_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_code,C_CHAR)) THEN
6839
6840 l_key := l_comp.s_mpa_header_desc_type_code||C_CHAR||
6841 l_comp.s_mpa_header_desc_code;
6842
6843 record_updated_component
6844 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6845 ,p_parent_component_key => l_parent_key
6846 ,p_component_type => 'AMB_DESCRIPTION'
6847 ,p_component_key => l_key
6848 ,p_merge_impact => C_MERGE_IMPACT_NEW
6849 ,p_component_owner_code => l_comp.s_mpa_header_desc_type_code
6850 ,p_component_code => l_comp.s_mpa_header_desc_code);
6851
6852 ELSIF (l_comp.w_mpa_header_desc_type_code IS NOT NULL AND
6853 l_comp.s_mpa_header_desc_type_code IS NULL) OR
6854 (NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) OR
6855 NVL(l_comp.w_mpa_header_desc_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_code,C_CHAR)) THEN
6856
6857 l_key := l_comp.w_mpa_header_desc_type_code||C_CHAR||
6858 l_comp.w_mpa_header_desc_code;
6859
6860 record_updated_component
6861 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6862 ,p_parent_component_key => l_parent_key
6863 ,p_component_type => 'AMB_DESCRIPTION'
6864 ,p_component_key => l_key
6865 ,p_merge_impact => C_MERGE_IMPACT_DELETED
6866 ,p_component_owner_code => l_comp.s_mpa_header_desc_type_code
6867 ,p_component_code => l_comp.s_mpa_header_desc_code);
6868 END IF;
6869
6870 IF (l_comp.w_mpa_num_je_code <> l_comp.s_mpa_num_je_code) THEN
6871 record_updated_property
6872 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6873 ,p_component_key => l_parent_key
6874 ,p_property => 'MPA_NUM_JE'
6875 ,p_old_value => l_comp.w_mpa_num_je_code
6876 ,p_new_value => l_comp.s_mpa_num_je_code
6877 ,p_lookup_type => 'XLA_MPA_NUM_OF_ENTRIES');
6878 END IF;
6879
6880 IF (l_comp.w_mpa_gl_dates_code <> l_comp.s_mpa_gl_dates_code) THEN
6881 record_updated_property
6882 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6883 ,p_component_key => l_parent_key
6884 ,p_property => 'MPA_GL_DATES'
6885 ,p_old_value => l_comp.w_mpa_gl_dates_code
6886 ,p_new_value => l_comp.s_mpa_gl_dates_code
6887 ,p_lookup_type => 'XLA_MPA_GL_DATE');
6888 END IF;
6889
6890 IF (NVL(l_comp.w_mpa_proration_code,C_CHAR) <> NVL(l_comp.s_mpa_proration_code,C_CHAR)) THEN
6891 record_updated_property
6892 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6893 ,p_component_key => l_parent_key
6894 ,p_property => 'MPA_PRORATION'
6895 ,p_old_value => l_comp.w_mpa_proration_code
6896 ,p_new_value => l_comp.s_mpa_proration_code
6897 ,p_lookup_type => 'XLA_MPA_PRORATION');
6898 END IF;
6899
6900 END IF;
6901 END LOOP;
6902
6903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6904 trace(p_msg => 'END LOOP: updated mpa header assgns',
6905 p_module => l_log_module,
6906 p_level => C_LEVEL_PROCEDURE);
6907 END IF;
6908
6909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6910 trace(p_msg => 'END of function compare_mpa_hdr_assgns',
6911 p_module => l_log_module,
6912 p_level => C_LEVEL_PROCEDURE);
6913 END IF;
6914
6915 EXCEPTION
6916 WHEN xla_exceptions_pkg.application_exception THEN
6917 RAISE;
6918 WHEN OTHERS THEN
6919 xla_exceptions_pkg.raise_message
6920 (p_location => l_log_module);
6921 END compare_mpa_hdr_assgns;
6922
6923 --=============================================================================
6924 --
6925 -- Name: compare_mpa_jlt_adr_assgns
6926 -- Description:
6927 --
6928 --=============================================================================
6929 PROCEDURE compare_mpa_jlt_adr_assgns
6930 IS
6931 CURSOR c_comp IS
6932 SELECT s.event_class_code
6933 , s.event_type_code
6934 , s.line_definition_owner_code
6935 , s.line_definition_code
6936 , s.accounting_line_type_code
6937 , s.accounting_line_code
6938 , s.mpa_accounting_line_type_code
6939 , s.mpa_accounting_line_code
6940 , s.flexfield_segment_code
6941 , l.accounting_coa_id
6942 , CASE WHEN w.application_id IS NULL
6943 THEN C_MERGE_IMPACT_NEW
6944 ELSE C_MERGE_IMPACT_UPDATED
6945 END merge_impact
6946 , s.segment_rule_appl_id s_segment_rule_appl_id
6947 , w.segment_rule_appl_id w_segment_rule_appl_id
6948 , s.segment_rule_type_code s_segment_rule_type_code
6949 , w.segment_rule_type_code w_segment_rule_type_code
6950 , s.segment_rule_code s_segment_rule_code
6951 , w.segment_rule_code w_segment_rule_code
6952 , s.inherit_adr_flag s_inherit_adr_flag
6953 , w.inherit_adr_flag w_inherit_adr_flag
6954 FROM xla_mpa_jlt_adr_assgns s
6955 JOIN xla_line_definitions_b l
6956 ON l.application_id = g_application_id
6957 AND l.amb_context_code = g_amb_context_code
6958 AND l.event_class_code = s.event_class_code
6959 AND l.event_type_code = s.event_type_code
6960 AND l.line_definition_owner_code = s.line_definition_owner_code
6961 AND l.line_definition_code = s.line_definition_code
6962 JOIN xla_mpa_jlt_assgns b
6963 ON b.application_id = g_application_id
6964 AND b.amb_context_code = g_amb_context_code
6965 AND b.event_class_code = s.event_class_code
6966 AND b.event_type_code = s.event_type_code
6967 AND b.line_definition_owner_code = s.line_definition_owner_code
6968 AND b.line_definition_code = s.line_definition_code
6969 AND b.accounting_line_type_code = s.accounting_line_type_code
6970 AND b.accounting_line_code = s.accounting_line_code
6971 AND b.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
6972 AND b.mpa_accounting_line_code = s.mpa_accounting_line_code
6973 LEFT OUTER JOIN xla_mpa_jlt_adr_assgns w
6974 ON w.application_id = g_application_id
6975 AND w.amb_context_code = g_amb_context_code
6976 AND w.event_class_code = s.event_class_code
6977 AND w.event_type_code = s.event_type_code
6978 AND w.line_definition_owner_code = s.line_definition_owner_code
6979 AND w.line_definition_code = s.line_definition_code
6980 AND w.accounting_line_type_code = s.accounting_line_type_code
6981 AND w.accounting_line_code = s.accounting_line_code
6982 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
6983 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
6984 AND w.flexfield_segment_code = s.flexfield_segment_code
6985 WHERE s.application_id = g_application_id
6986 AND s.amb_context_code = g_staging_context_code
6987 AND (w.application_id IS NULL OR
6988 s.inherit_adr_flag <> w.inherit_adr_flag OR
6989 NVL(s.segment_rule_appl_id,C_NUM) <> NVL(w.segment_rule_appl_id,C_NUM) OR
6990 NVL(s.segment_rule_type_code,C_CHAR) <> NVL(w.segment_rule_type_code,C_CHAR) OR
6991 NVL(s.segment_rule_code,C_CHAR) <> NVL(w.segment_rule_code,C_CHAR));
6992
6993 l_parent_key VARCHAR2(240);
6994 l_key VARCHAR2(240);
6995 l_log_module VARCHAR2(240);
6996 BEGIN
6997 IF g_log_enabled THEN
6998 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_adr_assgns';
6999 END IF;
7000
7001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7002 trace(p_msg => 'BEGIN of function compare_mpa_jlt_adr_assgns',
7003 p_module => l_log_module,
7004 p_level => C_LEVEL_PROCEDURE);
7005 END IF;
7006
7007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7008 trace(p_msg => 'BEGIN LOOP: updated mpa line adr assgns',
7009 p_module => l_log_module,
7010 p_level => C_LEVEL_PROCEDURE);
7011 END IF;
7012
7013 FOR l_comp IN c_comp LOOP
7014
7015 l_parent_key := l_comp.event_class_code||C_CHAR||
7016 l_comp.event_type_code||C_CHAR||
7017 l_comp.line_definition_owner_code||C_CHAR||
7018 l_comp.line_definition_code||C_CHAR||
7019 l_comp.accounting_line_type_code||C_CHAR||
7020 l_comp.accounting_line_code||C_CHAR||
7021 'MPA'||C_CHAR||
7022 l_comp.mpa_accounting_line_type_code||C_CHAR||
7023 l_comp.mpa_accounting_line_code;
7024
7025 l_key := l_parent_key||C_CHAR||
7026 l_comp.flexfield_segment_code;
7027
7028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7029 trace(p_msg => 'LOOP: updated mpa line adr assgn',
7030 p_module => l_log_module,
7031 p_level => C_LEVEL_PROCEDURE);
7032 trace(p_msg => 'l_parent_key = '||l_key,
7033 p_module => l_log_module,
7034 p_level => C_LEVEL_PROCEDURE);
7035 trace(p_msg => 'l_key = '||l_key,
7036 p_module => l_log_module,
7037 p_level => C_LEVEL_PROCEDURE);
7038 END IF;
7039
7040 IF (NOT key_exists('LNADR'||C_CHAR||l_key)) THEN
7041 record_updated_component
7042 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7043 ,p_parent_component_key => l_parent_key
7044 ,p_component_type => 'AMB_MPA_ADR_ASSGN'
7045 ,p_component_key => l_key
7046 ,p_merge_impact => l_comp.merge_impact
7047 ,p_component_owner_code => l_comp.accounting_coa_id
7048 ,p_component_code => l_comp.flexfield_segment_code);
7049
7050 record_updated_mpa_line_assgn
7051 (p_event_class_code => l_comp.event_class_code
7052 ,p_event_type_code => l_comp.event_type_code
7053 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7054 ,p_line_definition_code => l_comp.line_definition_code
7055 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7056 ,p_accounting_line_code => l_comp.accounting_line_code
7057 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7058 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7059 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7060
7061 END IF;
7062
7063 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
7064
7065 IF (l_comp.w_inherit_adr_flag <> l_comp.s_inherit_adr_flag) THEN
7066 record_updated_property
7067 (p_component_type => 'AMB_MPA_ADR_ASSGN'
7068 ,p_component_key => l_key
7069 ,p_property => 'INHERIT_ADR_FLAG'
7070 ,p_old_value => l_comp.w_inherit_adr_flag
7071 ,p_new_value => l_comp.s_inherit_adr_flag
7072 ,p_lookup_type => 'XLA_YES_NO');
7073
7074 END IF;
7075
7076 IF (NVL(l_comp.w_segment_rule_appl_id,C_NUM) <> NVL(l_comp.s_segment_rule_appl_id,C_NUM) OR
7077 NVL(l_comp.w_segment_rule_type_code,C_CHAR) <> NVL(l_comp.s_segment_rule_type_code,C_CHAR) OR
7078 NVL(l_comp.w_segment_rule_code,C_CHAR) <> NVL(l_comp.s_segment_rule_code,C_CHAR)) THEN
7079
7080 l_parent_key := l_key;
7081
7082 IF (l_comp.s_segment_rule_code IS NOT NULL) THEN
7083
7084 record_updated_component
7085 (p_parent_component_type => 'AMB_MPA_ADR_ASSGN'
7086 ,p_parent_component_key => l_parent_key
7087 ,p_component_type => 'AMB_ADR'
7088 ,p_component_key => l_comp.s_segment_rule_type_code||C_CHAR||
7089 l_comp.s_segment_rule_code
7090 ,p_merge_impact => C_MERGE_IMPACT_NEW
7091 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
7092 ,p_component_owner_code => l_comp.s_segment_rule_type_code
7093 ,p_component_code => l_comp.s_segment_rule_code);
7094 END IF;
7095
7096 IF (l_comp.w_segment_rule_code IS NOT NULL) THEN
7097
7098 record_updated_component
7099 (p_parent_component_type => 'AMB_MPA_ADR_ASSGN'
7100 ,p_parent_component_key => l_parent_key
7101 ,p_component_type => 'AMB_ADR'
7102 ,p_component_key => l_comp.w_segment_rule_type_code||C_CHAR||
7103 l_comp.w_segment_rule_code
7104 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7105 ,p_component_appl_id => l_comp.w_segment_rule_appl_id
7106 ,p_component_owner_code => l_comp.s_segment_rule_type_code
7107 ,p_component_code => l_comp.w_segment_rule_code);
7108 END IF;
7109 END IF;
7110 END IF;
7111
7112 END LOOP;
7113
7114 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7115 trace(p_msg => 'END LOOP: updated mpa line adr assgns',
7116 p_module => l_log_module,
7117 p_level => C_LEVEL_PROCEDURE);
7118 END IF;
7119
7120 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7121 trace(p_msg => 'END of function compare_mpa_jlt_adr_assgns',
7122 p_module => l_log_module,
7123 p_level => C_LEVEL_PROCEDURE);
7124 END IF;
7125
7126 EXCEPTION
7127 WHEN xla_exceptions_pkg.application_exception THEN
7128 RAISE;
7129 WHEN OTHERS THEN
7130 xla_exceptions_pkg.raise_message
7131 (p_location => l_log_module);
7132 END compare_mpa_jlt_adr_assgns;
7133
7134 --=============================================================================
7135 --
7136 -- Name: compare_mpa_jlt_ac_assgns
7137 -- Description:
7138 --
7139 --=============================================================================
7140 PROCEDURE compare_mpa_jlt_ac_assgns
7141 IS
7142 CURSOR c_comp IS
7143 SELECT s.event_class_code
7144 , s.event_type_code
7145 , s.line_definition_owner_code
7146 , s.line_definition_code
7147 , s.accounting_line_type_code
7148 , s.accounting_line_code
7149 , s.mpa_accounting_line_type_code
7150 , s.mpa_accounting_line_code
7151 , s.analytical_criterion_type_code
7152 , s.analytical_criterion_code
7153 , C_MERGE_IMPACT_NEW merge_impact
7154 FROM xla_mpa_jlt_ac_assgns s
7155 , xla_mpa_jlt_assgns b
7156 WHERE s.application_id = g_application_id
7157 AND s.amb_context_code = g_staging_context_code
7158 AND b.application_id = g_application_id
7159 AND b.amb_context_code = g_amb_context_code
7160 AND b.event_class_code = s.event_class_code
7161 AND b.event_type_code = s.event_type_code
7162 AND b.line_definition_owner_code = s.line_definition_owner_code
7163 AND b.line_definition_code = s.line_definition_code
7164 AND b.accounting_line_type_code = s.accounting_line_type_code
7165 AND b.accounting_line_code = s.accounting_line_code
7166 AND b.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7167 AND b.mpa_accounting_line_code = s.mpa_accounting_line_code
7168 AND NOT EXISTS
7169 (SELECT 1
7170 FROM xla_mpa_jlt_ac_assgns w
7171 WHERE w.application_id = g_application_id
7172 AND w.amb_context_code = g_amb_context_code
7173 AND w.event_class_code = s.event_class_code
7174 AND w.event_type_code = s.event_type_code
7175 AND w.line_definition_owner_code = s.line_definition_owner_code
7176 AND w.line_definition_code = s.line_definition_code
7177 AND w.accounting_line_type_code = s.accounting_line_type_code
7178 AND w.accounting_line_code = s.accounting_line_code
7179 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7180 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
7181 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
7182 AND w.analytical_criterion_code = s.analytical_criterion_code);
7183
7184 l_parent_key VARCHAR2(240);
7185 l_key VARCHAR2(240);
7186 l_log_module VARCHAR2(240);
7187 BEGIN
7188 IF g_log_enabled THEN
7189 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_ac_assgns';
7190 END IF;
7191
7192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7193 trace(p_msg => 'BEGIN of function compare_mpa_jlt_ac_assgns',
7194 p_module => l_log_module,
7195 p_level => C_LEVEL_PROCEDURE);
7196 END IF;
7197
7198 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7199 trace(p_msg => 'BEGIN LOOP: updated mpa line ac assgns',
7200 p_module => l_log_module,
7201 p_level => C_LEVEL_PROCEDURE);
7202 END IF;
7203
7204 FOR l_comp IN c_comp LOOP
7205
7206 l_parent_key := l_comp.event_class_code||C_CHAR||
7207 l_comp.event_type_code||C_CHAR||
7208 l_comp.line_definition_owner_code||C_CHAR||
7209 l_comp.line_definition_code||C_CHAR||
7210 l_comp.accounting_line_type_code||C_CHAR||
7211 l_comp.accounting_line_code||C_CHAR||
7212 'MPA'||C_CHAR||
7213 l_comp.mpa_accounting_line_type_code||C_CHAR||
7214 l_comp.mpa_accounting_line_code;
7215
7216 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
7217 l_comp.analytical_criterion_code;
7218
7219 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7220 trace(p_msg => 'LOOP: updated mpa line ac assgn',
7221 p_module => l_log_module,
7222 p_level => C_LEVEL_PROCEDURE);
7223 trace(p_msg => 'l_parent_key = '||l_parent_key,
7224 p_module => l_log_module,
7225 p_level => C_LEVEL_PROCEDURE);
7226 trace(p_msg => 'l_key = '||l_key,
7227 p_module => l_log_module,
7228 p_level => C_LEVEL_PROCEDURE);
7229 END IF;
7230
7231 record_updated_component
7232 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7233 ,p_parent_component_key => l_parent_key
7234 ,p_component_type => 'AMB_AC'
7235 ,p_component_key => l_key
7236 ,p_merge_impact => l_comp.merge_impact
7237 ,p_component_owner_code => l_comp.analytical_criterion_type_code
7238 ,p_component_code => l_comp.analytical_criterion_code);
7239
7240 record_updated_mpa_line_assgn
7241 (p_event_class_code => l_comp.event_class_code
7242 ,p_event_type_code => l_comp.event_type_code
7243 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7244 ,p_line_definition_code => l_comp.line_definition_code
7245 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7246 ,p_accounting_line_code => l_comp.accounting_line_code
7247 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7248 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7249 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7250
7251 END LOOP;
7252
7253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7254 trace(p_msg => 'END LOOP: updated mpa line ac assgns',
7255 p_module => l_log_module,
7256 p_level => C_LEVEL_PROCEDURE);
7257 END IF;
7258
7259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7260 trace(p_msg => 'END of function compare_mpa_jlt_ac_assgns',
7261 p_module => l_log_module,
7262 p_level => C_LEVEL_PROCEDURE);
7263 END IF;
7264
7265 EXCEPTION
7266 WHEN xla_exceptions_pkg.application_exception THEN
7267 RAISE;
7268 WHEN OTHERS THEN
7269 xla_exceptions_pkg.raise_message
7270 (p_location => l_log_module);
7271 END compare_mpa_jlt_ac_assgns;
7272
7273 --=============================================================================
7274 --
7275 -- Name: compare_mpa_jlt_assgns
7276 -- Description:
7277 --
7278 --=============================================================================
7279 PROCEDURE compare_mpa_jlt_assgns
7280 IS
7281 CURSOR c_comp IS
7282 SELECT s.event_class_code
7283 , s.event_type_code
7284 , s.line_definition_owner_code
7285 , s.line_definition_code
7286 , s.accounting_line_type_code
7287 , s.accounting_line_code
7288 , s.mpa_accounting_line_type_code
7289 , s.mpa_accounting_line_code
7290 , CASE WHEN w.mpa_accounting_line_code IS NULL
7291 THEN C_MERGE_IMPACT_NEW
7292 ELSE C_MERGE_IMPACT_UPDATED
7293 END merge_impact
7294 , s.description_type_code s_description_type_code
7295 , w.description_type_code w_description_type_code
7296 , s.description_code s_description_code
7297 , w.description_code w_description_code
7298 FROM xla_mpa_jlt_assgns s
7299 JOIN xla_line_defn_jlt_assgns bw
7300 ON bw.application_id = g_application_id
7301 AND bw.amb_context_code = g_amb_context_code
7302 AND bw.event_class_code = s.event_class_code
7303 AND bw.event_type_code = s.event_type_code
7304 AND bw.line_definition_owner_code = s.line_definition_owner_code
7305 AND bw.line_definition_code = s.line_definition_code
7306 AND bw.accounting_line_type_code = s.accounting_line_type_code
7307 AND bw.accounting_line_code = s.accounting_line_code
7308 LEFT OUTER JOIN xla_mpa_jlt_assgns w
7309 ON w.application_id = g_application_id
7310 AND w.amb_context_code = g_amb_context_code
7311 AND w.event_class_code = s.event_class_code
7312 AND w.event_type_code = s.event_type_code
7313 AND w.line_definition_owner_code = s.line_definition_owner_code
7314 AND w.line_definition_code = s.line_definition_code
7315 AND w.accounting_line_type_code = s.accounting_line_type_code
7316 AND w.accounting_line_code = s.accounting_line_code
7317 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7318 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
7319 WHERE s.application_id = g_application_id
7320 AND s.amb_context_code = g_staging_context_code
7321 AND (w.mpa_accounting_line_code IS NULL
7322 OR s.description_type_code <> w.description_type_code
7323 OR s.description_code <> w.description_code)
7324 UNION
7325 SELECT w.event_class_code
7326 , w.event_type_code
7327 , w.line_definition_owner_code
7328 , w.line_definition_code
7329 , w.accounting_line_type_code
7330 , w.accounting_line_code
7331 , w.mpa_accounting_line_type_code
7332 , w.mpa_accounting_line_code
7333 , C_MERGE_IMPACT_DELETED
7334 , NULL, NULL, NULL, NULL
7335 FROM xla_mpa_jlt_assgns w
7336 JOIN xla_line_defn_jlt_assgns bs
7337 ON bs.application_id = g_application_id
7338 AND bs.amb_context_code = g_staging_context_code
7339 AND bs.event_class_code = w.event_class_code
7340 AND bs.event_type_code = w.event_type_code
7341 AND bs.line_definition_owner_code = w.line_definition_owner_code
7342 AND bs.line_definition_code = w.line_definition_code
7343 AND bs.accounting_line_type_code = w.accounting_line_type_code
7344 AND bs.accounting_line_code = w.accounting_line_code
7345 LEFT OUTER JOIN xla_mpa_jlt_assgns s
7346 ON s.application_id = g_application_id
7347 AND s.amb_context_code = g_staging_context_code
7348 AND s.event_class_code = w.event_class_code
7349 AND s.event_type_code = w.event_type_code
7350 AND s.line_definition_owner_code = w.line_definition_owner_code
7351 AND s.line_definition_code = w.line_definition_code
7352 AND s.accounting_line_type_code = w.accounting_line_type_code
7353 AND s.accounting_line_code = w.accounting_line_code
7354 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
7355 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
7356 WHERE s.application_id = g_application_id
7357 AND s.amb_context_code = g_amb_context_code
7358 AND w.mpa_accounting_line_code IS NULL;
7359
7360 l_parent_key VARCHAR2(240);
7361 l_key VARCHAR2(240);
7362 l_log_module VARCHAR2(240);
7363 BEGIN
7364 IF g_log_enabled THEN
7365 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_assgns';
7366 END IF;
7367
7368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7369 trace(p_msg => 'BEGIN of function compare_mpa_jlt_assgns',
7370 p_module => l_log_module,
7371 p_level => C_LEVEL_PROCEDURE);
7372 END IF;
7373
7374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7375 trace(p_msg => 'BEGIN LOOP: updated mpa jlt assgns',
7376 p_module => l_log_module,
7377 p_level => C_LEVEL_PROCEDURE);
7378 END IF;
7379
7380 FOR l_comp IN c_comp LOOP
7381
7382 l_parent_key := l_comp.event_class_code||C_CHAR||
7383 l_comp.event_type_code||C_CHAR||
7384 l_comp.line_definition_owner_code||C_CHAR||
7385 l_comp.line_definition_code||C_CHAR||
7386 l_comp.accounting_line_type_code||C_CHAR||
7387 l_comp.accounting_line_code||C_CHAR||
7388 'MPA'||C_CHAR||
7389 l_comp.mpa_accounting_line_type_code||C_CHAR||
7390 l_comp.mpa_accounting_line_code;
7391
7392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7393 trace(p_msg => 'LOOP: updated mpa jlt assgn - merge_impact = '||l_comp.merge_impact,
7394 p_module => l_log_module,
7395 p_level => C_LEVEL_PROCEDURE);
7396 trace(p_msg => 'l_parent_key = '||l_parent_key,
7397 p_module => l_log_module,
7398 p_level => C_LEVEL_PROCEDURE);
7399 END IF;
7400
7401 IF (l_comp.merge_impact IN (C_MERGE_IMPACT_NEW, C_MERGE_IMPACT_DELETED)) THEN
7402
7403 l_key := l_comp.mpa_accounting_line_type_code||C_CHAR||
7404 l_comp.mpa_accounting_line_code;
7405
7406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7407 trace(p_msg => 'l_key = '||l_key,
7408 p_module => l_log_module,
7409 p_level => C_LEVEL_PROCEDURE);
7410 END IF;
7411
7412 record_updated_component
7413 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7414 ,p_parent_component_key => l_parent_key
7415 ,p_component_type => 'AMB_JLT'
7416 ,p_component_key => l_key
7417 ,p_merge_impact => l_comp.merge_impact
7418 ,p_event_class_code => l_comp.event_class_code
7419 ,p_event_type_code => NULL
7420 ,p_component_owner_code => l_comp.mpa_accounting_line_type_code
7421 ,p_component_code => l_comp.mpa_accounting_line_code);
7422
7423 ELSE
7424
7425 IF (l_comp.s_description_type_code IS NOT NULL) THEN
7426
7427 l_key := l_comp.s_description_type_code||C_CHAR||
7428 l_comp.s_description_code;
7429
7430 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7431 trace(p_msg => 'merge_impact = '||C_MERGE_IMPACT_NEW,
7432 p_module => l_log_module,
7433 p_level => C_LEVEL_PROCEDURE);
7434 trace(p_msg => 'l_key = '||l_key,
7435 p_module => l_log_module,
7436 p_level => C_LEVEL_PROCEDURE);
7437 END IF;
7438
7439 record_updated_component
7440 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7441 ,p_parent_component_key => l_parent_key
7442 ,p_component_type => 'AMB_DESCRIPTION'
7443 ,p_component_key => l_key
7444 ,p_merge_impact => C_MERGE_IMPACT_NEW
7445 ,p_component_owner_code => l_comp.s_description_type_code
7446 ,p_component_code => l_comp.s_description_code);
7447
7448 END IF;
7449
7450 IF (l_comp.w_description_type_code IS NOT NULL) THEN
7451
7452 l_key := l_comp.w_description_type_code||C_CHAR||
7453 l_comp.w_description_code;
7454
7455 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7456 trace(p_msg => 'merge_impact = '||C_MERGE_IMPACT_DELETED,
7457 p_module => l_log_module,
7458 p_level => C_LEVEL_PROCEDURE);
7459 trace(p_msg => 'l_key = '||l_key,
7460 p_module => l_log_module,
7461 p_level => C_LEVEL_PROCEDURE);
7462 END IF;
7463
7464 record_updated_component
7465 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7466 ,p_parent_component_key => l_parent_key
7467 ,p_component_type => 'AMB_DESCRIPTION'
7468 ,p_component_key => l_key
7469 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7470 ,p_component_owner_code => l_comp.w_description_type_code
7471 ,p_component_code => l_comp.w_description_code);
7472 END IF;
7473
7474 END IF;
7475
7476 record_updated_mpa_line_assgn
7477 (p_event_class_code => l_comp.event_class_code
7478 ,p_event_type_code => l_comp.event_type_code
7479 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7480 ,p_line_definition_code => l_comp.line_definition_code
7481 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7482 ,p_accounting_line_code => l_comp.accounting_line_code
7483 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7484 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7485 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7486
7487 END LOOP;
7488
7489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7490 trace(p_msg => 'END LOOP: updated mpa jlt assgns',
7491 p_module => l_log_module,
7492 p_level => C_LEVEL_PROCEDURE);
7493 END IF;
7494
7495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7496 trace(p_msg => 'END of function compare_mpa_jlt_assgns',
7497 p_module => l_log_module,
7498 p_level => C_LEVEL_PROCEDURE);
7499 END IF;
7500
7501 EXCEPTION
7502 WHEN xla_exceptions_pkg.application_exception THEN
7503 RAISE;
7504 WHEN OTHERS THEN
7505 xla_exceptions_pkg.raise_message
7506 (p_location => l_log_module);
7507 END compare_mpa_jlt_assgns;
7508
7509
7510 --=============================================================================
7511 --
7512 -- Name: compare_jld_jlt_assgns
7513 -- Description:
7514 --
7515 --=============================================================================
7516 PROCEDURE compare_jld_jlt_assgns
7517 IS
7518 CURSOR c_comp IS
7519 SELECT s.event_class_code
7520 , s.event_type_code
7521 , s.line_definition_owner_code
7522 , s.line_definition_code
7523 , s.accounting_line_type_code
7524 , s.accounting_line_code
7525 , CASE WHEN w.application_id IS NULL
7526 THEN C_MERGE_IMPACT_NEW
7527 ELSE C_MERGE_IMPACT_UPDATED
7528 END merge_impact
7529 , s.active_flag s_active_flag
7530 , w.active_flag w_active_flag
7531 , s.description_type_code s_description_type_code
7532 , w.description_type_code w_description_type_code
7533 , s.description_code s_description_code
7534 , w.description_code w_description_code
7535 , s.inherit_desc_flag s_inherit_desc_flag
7536 , w.inherit_desc_flag w_inherit_desc_flag
7537 FROM xla_line_defn_jlt_assgns s
7538 JOIN xla_line_definitions_b b
7539 ON b.application_id = g_application_id
7540 AND b.amb_context_code = g_amb_context_code
7541 AND b.event_class_code = s.event_class_code
7542 AND b.event_type_code = s.event_type_code
7543 AND b.line_definition_owner_code = s.line_definition_owner_code
7544 AND b.line_definition_code = s.line_definition_code
7545 LEFT OUTER JOIN xla_line_defn_jlt_assgns w
7546 ON w.application_id = g_application_id
7547 AND w.amb_context_code = g_amb_context_code
7548 AND w.event_class_code = s.event_class_code
7549 AND w.event_type_code = s.event_type_code
7550 AND w.line_definition_owner_code = s.line_definition_owner_code
7551 AND w.line_definition_code = s.line_definition_code
7552 AND w.accounting_line_type_code = s.accounting_line_type_code
7553 AND w.accounting_line_code = s.accounting_line_code
7554 WHERE s.application_id = g_application_id
7555 AND s.amb_context_code = g_staging_context_code
7556 AND (w.application_id IS NULL
7557 OR NVL(s.active_flag,C_CHAR) <> NVL(w.active_flag,C_CHAR)
7558 OR NVL(s.inherit_desc_flag,C_CHAR) <> NVL(w.inherit_desc_flag,C_CHAR)
7559 OR NVL(s.description_type_code,C_CHAR) <> NVL(w.description_type_code,C_CHAR)
7560 OR NVL(s.description_code,C_CHAR) <> NVL(w.description_code,C_CHAR)
7561 );
7562
7563 l_parent_key VARCHAR2(240);
7564 l_key VARCHAR2(240);
7565 l_merge_impact VARCHAR2(30);
7566 l_log_module VARCHAR2(240);
7567 BEGIN
7568 IF g_log_enabled THEN
7569 l_log_module := C_DEFAULT_MODULE||'.compare_jld_jlt_assgns';
7570 END IF;
7571
7572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7573 trace(p_msg => 'BEGIN of function compare_jld_jlt_assgns',
7574 p_module => l_log_module,
7575 p_level => C_LEVEL_PROCEDURE);
7576 END IF;
7577
7578 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7579 trace(p_msg => 'END LOOP: updated jld jlt assgns',
7580 p_module => l_log_module,
7581 p_level => C_LEVEL_PROCEDURE);
7582 END IF;
7583
7584 FOR l_comp IN c_comp LOOP
7585
7586 record_updated_line_assgn
7587 (p_event_class_code => l_comp.event_class_code
7588 ,p_event_type_code => l_comp.event_type_code
7589 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7590 ,p_line_definition_code => l_comp.line_definition_code
7591 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7592 ,p_accounting_line_code => l_comp.accounting_line_code
7593 ,p_merge_impact => l_comp.merge_impact);
7594
7595 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
7596
7597 l_parent_key := l_comp.event_class_code||C_CHAR||
7598 l_comp.event_type_code||C_CHAR||
7599 l_comp.line_definition_owner_code||C_CHAR||
7600 l_comp.line_definition_code||C_CHAR||
7601 l_comp.accounting_line_type_code||C_CHAR||
7602 l_comp.accounting_line_code;
7603
7604 IF (l_comp.w_active_flag <> l_comp.s_active_flag) THEN
7605 record_updated_property
7606 (p_component_type => 'AMB_LINE_ASSIGNMENT'
7607 ,p_component_key => l_parent_key
7608 ,p_property => 'ACTIVE'
7609 ,p_old_value => l_comp.w_active_flag
7610 ,p_new_value => l_comp.s_active_flag
7611 ,p_lookup_type => 'XLA_YES_NO');
7612
7613 END IF;
7614
7615 IF (l_comp.w_inherit_desc_flag <> l_comp.s_inherit_desc_flag) THEN
7616 record_updated_property
7617 (p_component_type => 'AMB_LINE_ASSIGNMENT'
7618 ,p_component_key => l_parent_key
7619 ,p_property => 'INHERIT_DESC'
7620 ,p_old_value => l_comp.w_inherit_desc_flag
7621 ,p_new_value => l_comp.s_inherit_desc_flag
7622 ,p_lookup_type => 'XLA_YES_NO');
7623
7624 END IF;
7625
7626 IF (NVL(l_comp.w_description_type_code,C_CHAR) <> NVL(l_comp.s_description_type_code,C_CHAR) OR
7627 NVL(l_comp.w_description_code,C_CHAR) <> NVL(l_comp.s_description_code,C_CHAR)) THEN
7628
7629 IF (l_comp.s_description_code IS NOT NULL) THEN
7630
7631 l_key := l_comp.s_description_type_code||C_CHAR||
7632 l_comp.s_description_code;
7633
7634 IF (NOT key_exists('LDESC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
7635
7636 record_updated_component
7637 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
7638 ,p_parent_component_key => l_parent_key
7639 ,p_component_type => 'AMB_DESCRIPTION'
7640 ,p_component_key => l_key
7641 ,p_merge_impact => C_MERGE_IMPACT_NEW
7642 ,p_component_owner_code => l_comp.s_description_type_code
7643 ,p_component_code => l_comp.s_description_code);
7644 END IF;
7645 END IF;
7646
7647 IF (l_comp.w_description_code IS NOT NULL) THEN
7648
7649 l_key := l_comp.w_description_type_code||C_CHAR||
7650 l_comp.w_description_code;
7651
7652 IF (NOT key_exists('LDESC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
7653
7654 record_updated_component
7655 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
7656 ,p_parent_component_key => l_parent_key
7657 ,p_component_type => 'AMB_DESCRIPTION'
7658 ,p_component_key => l_key
7659 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7660 ,p_component_owner_code => l_comp.w_description_type_code
7661 ,p_component_code => l_comp.w_description_code);
7662 END IF;
7663 END IF;
7664 END IF; -- updated description
7665
7666 END IF; -- l_comp.merge_impact = C_MERGE_IMPACT_UPDATED
7667
7668 END LOOP;
7669
7670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7671 trace(p_msg => 'END LOOP: updated jld jlt assgns',
7672 p_module => l_log_module,
7673 p_level => C_LEVEL_PROCEDURE);
7674 END IF;
7675
7676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7677 trace(p_msg => 'END of function compare_jld_jlt_assgns',
7678 p_module => l_log_module,
7679 p_level => C_LEVEL_PROCEDURE);
7680 END IF;
7681
7682 EXCEPTION
7683 WHEN xla_exceptions_pkg.application_exception THEN
7684 RAISE;
7685 WHEN OTHERS THEN
7686 xla_exceptions_pkg.raise_message
7687 (p_location => l_log_module);
7688 END compare_jld_jlt_assgns;
7689
7690
7691 --=============================================================================
7692 --
7693 -- Name: compare_jlds
7694 -- Description:
7695 --
7696 --=============================================================================
7697 PROCEDURE compare_jlds
7698 IS
7699 CURSOR c_comp IS
7700 SELECT ts.event_class_code
7701 ,ts.event_type_code
7702 ,ts.line_definition_owner_code
7703 ,ts.line_definition_code
7704 ,ts.name s_name
7705 ,tw.name w_name
7706 ,ts.description s_description
7707 ,tw.description w_description
7708 ,bs.enabled_flag s_enabled_flag
7709 ,bw.enabled_flag w_enabled_flag
7710 ,bs.accounting_coa_id s_acct_coa_id
7711 ,bw.accounting_coa_id w_acct_coa_id
7712 ,bs.transaction_coa_id s_trx_coa_id
7713 ,bw.transaction_coa_id w_trx_coa_id
7714 ,bs.budgetary_control_flag s_budgetary_control_flag
7715 ,bw.budgetary_control_flag w_budgetary_control_flag
7716 FROM xla_line_definitions_b bs
7717 JOIN xla_line_definitions_tl ts
7718 ON ts.application_id = bs.application_id
7719 AND ts.amb_context_code = bs.amb_context_code
7720 AND ts.event_class_code = bs.event_class_code
7721 AND ts.event_type_code = bs.event_type_code
7722 AND ts.line_definition_owner_code = bs.line_definition_owner_code
7723 AND ts.line_definition_code = bs.line_definition_code
7724 AND ts.language = USERENV('LANG')
7725 JOIN xla_line_definitions_b bw
7726 ON bw.application_id = bs.application_id
7727 AND bw.amb_context_code = g_amb_context_code
7728 AND bw.event_class_code = bs.event_class_code
7729 AND bw.event_type_code = bs.event_type_code
7730 AND bw.line_definition_owner_code = bs.line_definition_owner_code
7731 AND bw.line_definition_code = bs.line_definition_code
7732 JOIN xla_line_definitions_tl tw
7733 ON tw.application_id = bw.application_id
7734 AND tw.amb_context_code = bw.amb_context_code
7735 AND tw.event_class_code = bw.event_class_code
7736 AND tw.event_type_code = bw.event_type_code
7737 AND tw.line_definition_owner_code = bw.line_definition_owner_code
7738 AND tw.line_definition_code = bw.line_definition_code
7739 AND tw.language = USERENV('LANG')
7740 WHERE bs.amb_context_code = g_staging_context_code
7741 AND bw.amb_context_code = g_amb_context_code
7742 AND (ts.name <> tw.name OR
7743 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
7744 bs.enabled_flag <> bw.enabled_flag OR
7745 bs.budgetary_control_flag <> bw.budgetary_control_flag OR
7746 NVL(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id,C_NUM) OR
7747 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id,C_NUM));
7748
7749 l_key VARCHAR2(240);
7750 l_log_module VARCHAR2(240);
7751 BEGIN
7752 IF g_log_enabled THEN
7753 l_log_module := C_DEFAULT_MODULE||'.compare_jlds';
7754 END IF;
7755
7756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7757 trace(p_msg => 'BEGIN of function compare_jlds',
7758 p_module => l_log_module,
7759 p_level => C_LEVEL_PROCEDURE);
7760 END IF;
7761
7762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7763 trace(p_msg => 'BEGIN LOOP: updated jlds',
7764 p_module => l_log_module,
7765 p_level => C_LEVEL_PROCEDURE);
7766 END IF;
7767
7768 FOR l_comp in c_comp LOOP
7769
7770 l_key := l_comp.event_class_code||C_CHAR||
7771 l_comp.event_type_code||C_CHAR||
7772 l_comp.line_definition_owner_code||C_CHAR||
7773 l_comp.line_definition_code;
7774
7775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7776 trace(p_msg => 'LOOP: updated jld - '||l_key,
7777 p_module => l_log_module,
7778 p_level => C_LEVEL_PROCEDURE);
7779 END IF;
7780
7781 record_updated_jld
7782 (p_event_class_code => l_comp.event_class_code
7783 ,p_event_type_code => l_comp.event_type_code
7784 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7785 ,p_line_definition_code => l_comp.line_definition_code);
7786
7787 IF (l_comp.s_name <> l_comp.w_name) THEN
7788 record_updated_property
7789 (p_component_type => 'AMB_JLD'
7790 ,p_component_key => l_key
7791 ,p_property => 'NAME'
7792 ,p_old_value => l_comp.w_name
7793 ,p_new_value => l_comp.s_name);
7794 END IF;
7795
7796 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
7797 record_updated_property
7798 (p_component_type => 'AMB_JLD'
7799 ,p_component_key => l_key
7800 ,p_property => 'DESCRIPTION'
7801 ,p_old_value => l_comp.w_description
7802 ,p_new_value => l_comp.s_description);
7803 END IF;
7804
7805 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
7806 record_updated_property
7807 (p_component_type => 'AMB_JLD'
7808 ,p_component_key => l_key
7809 ,p_property => 'ENABLED'
7810 ,p_old_value => l_comp.w_enabled_flag
7811 ,p_new_value => l_comp.s_enabled_flag
7812 ,p_lookup_type => 'XLA_YES_NO');
7813 END IF;
7814
7815 IF (l_comp.s_budgetary_control_flag <> l_comp.w_budgetary_control_flag) THEN
7816 record_updated_property
7817 (p_component_type => 'AMB_JLD'
7818 ,p_component_key => l_key
7819 ,p_property => 'BUDGETARY_CONTROL'
7820 ,p_old_value => l_comp.w_budgetary_control_flag
7821 ,p_new_value => l_comp.s_budgetary_control_flag
7822 ,p_lookup_type => 'XLA_YES_NO');
7823 END IF;
7824
7825 IF (NVL(l_comp.s_acct_coa_id,C_NUM) <> NVL(l_comp.w_acct_coa_id,C_NUM)) THEN
7826 record_updated_property
7827 (p_component_type => 'AMB_JLD'
7828 ,p_component_key => l_key
7829 ,p_property => 'ACCOUNTING_COA'
7830 ,p_old_value => l_comp.w_acct_coa_id
7831 ,p_new_value => l_comp.s_acct_coa_id);
7832 END IF;
7833
7834 IF (NVL(l_comp.s_trx_coa_id,C_NUM) <> NVL(l_comp.w_trx_coa_id,C_NUM)) THEN
7835 record_updated_property
7836 (p_component_type => 'AMB_JLD'
7837 ,p_component_key => l_key
7838 ,p_property => 'TRANSACTION_COA'
7839 ,p_old_value => l_comp.w_trx_coa_id
7840 ,p_new_value => l_comp.s_trx_coa_id);
7841 END IF;
7842
7843 END LOOP;
7844
7845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7846 trace(p_msg => 'END LOOP: updated jlds',
7847 p_module => l_log_module,
7848 p_level => C_LEVEL_PROCEDURE);
7849 END IF;
7850
7851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7852 trace(p_msg => 'END of function compare_jlds',
7853 p_module => l_log_module,
7854 p_level => C_LEVEL_PROCEDURE);
7855 END IF;
7856
7857 EXCEPTION
7858 WHEN xla_exceptions_pkg.application_exception THEN
7859 RAISE;
7860 WHEN OTHERS THEN
7861 xla_exceptions_pkg.raise_message
7862 (p_location => l_log_module);
7863 END compare_jlds;
7864
7865
7866 --=============================================================================
7867 --
7868 -- Name: compare_jld_assgns
7869 -- Description:
7870 --
7871 --=============================================================================
7872 PROCEDURE compare_jld_assgns
7873 IS
7874 -- Retrieve new or deleted JLD assignment to the event class/evnet type
7875 CURSOR c_comp IS
7876 SELECT s.product_rule_type_code
7877 , s.product_rule_code
7878 , s.event_class_code
7879 , s.event_type_code
7880 , s.line_definition_owner_code
7881 , s.line_definition_code
7882 , C_MERGE_IMPACT_NEW merge_impact
7883 FROM xla_aad_line_defn_assgns s
7884 , xla_prod_acct_headers b
7885 WHERE s.application_id = g_application_id
7886 AND s.amb_context_code = g_staging_context_code
7887 AND b.application_id = g_application_id
7888 AND b.amb_context_code = g_amb_context_code
7889 AND b.product_rule_type_code = s.product_rule_type_code
7890 AND b.product_rule_code = s.product_rule_code
7891 AND b.event_class_code = s.event_class_code
7892 AND b.event_type_code = s.event_type_code
7893 AND NOT EXISTS
7894 (SELECT 1
7895 FROM xla_aad_line_defn_assgns w
7896 WHERE w.application_id = g_application_id
7897 AND w.amb_context_code = g_amb_context_code
7898 AND s.product_rule_type_code = w.product_rule_type_code
7899 AND s.product_rule_code = w.product_rule_code
7900 AND s.event_class_code = w.event_class_code
7901 AND s.event_type_code = w.event_type_code
7902 AND s.line_definition_owner_code = w.line_definition_owner_code
7903 AND s.line_definition_code = w.line_definition_code);
7904
7905 l_log_module VARCHAR2(240);
7906 BEGIN
7907 IF g_log_enabled THEN
7908 l_log_module := C_DEFAULT_MODULE||'.compare_jld_assgns';
7909 END IF;
7910
7911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7912 trace(p_msg => 'BEGIN of function compare_jld_assgns',
7913 p_module => l_log_module,
7914 p_level => C_LEVEL_PROCEDURE);
7915 END IF;
7916
7917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7918 trace(p_msg => 'BEGIN LOOP: updated jld assgns',
7919 p_module => l_log_module,
7920 p_level => C_LEVEL_PROCEDURE);
7921 END IF;
7922
7923 FOR l_comp IN c_comp LOOP
7924
7925 record_updated_jld_assgn
7926 (p_product_rule_type_code => l_comp.product_rule_type_code
7927 ,p_product_rule_code => l_comp.product_rule_code
7928 ,p_event_class_code => l_comp.event_class_code
7929 ,p_event_type_code => l_comp.event_type_code
7930 ,p_line_defn_owner_code => l_comp.line_definition_owner_code
7931 ,p_line_defn_code => l_comp.line_definition_code
7932 ,p_merge_impact => l_comp.merge_impact);
7933
7934 END LOOP;
7935
7936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7937 trace(p_msg => 'END LOOP: updated jld assgns',
7938 p_module => l_log_module,
7939 p_level => C_LEVEL_PROCEDURE);
7940 END IF;
7941
7942 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7943 trace(p_msg => 'END of function compare_jld_assgns',
7944 p_module => l_log_module,
7945 p_level => C_LEVEL_PROCEDURE);
7946 END IF;
7947
7948 EXCEPTION
7949 WHEN xla_exceptions_pkg.application_exception THEN
7950 RAISE;
7951 WHEN OTHERS THEN
7952 xla_exceptions_pkg.raise_message
7953 (p_location => l_log_module);
7954 END compare_jld_assgns;
7955
7956 --=============================================================================
7957 --
7958 -- Name: compare_hdr_ac_assgns
7959 -- Description:
7960 --
7961 --=============================================================================
7962 PROCEDURE compare_hdr_ac_assgns
7963 IS
7964 CURSOR c_comp IS
7965 SELECT s.product_rule_type_code
7966 , s.product_rule_code
7967 , s.event_class_code
7968 , s.event_type_code
7969 , s.analytical_criterion_type_code
7970 , s.analytical_criterion_code
7971 , C_MERGE_IMPACT_NEW merge_impact
7972 FROM xla_aad_header_ac_assgns s
7973 , xla_prod_acct_headers b
7974 WHERE s.application_id = g_application_id
7975 AND s.amb_context_code = g_staging_context_code
7976 AND b.application_id = g_application_id
7977 AND b.amb_context_code = g_amb_context_code
7978 AND b.product_rule_type_code = s.product_rule_type_code
7979 AND b.product_rule_code = s.product_rule_code
7980 AND b.event_class_code = s.event_class_code
7981 AND b.event_type_code = s.event_type_code
7982 AND NOT EXISTS
7983 (SELECT 1
7984 FROM xla_aad_header_ac_assgns w
7985 WHERE w.application_id = g_application_id
7986 AND w.amb_context_code = g_amb_context_code
7987 AND w.product_rule_type_code = s.product_rule_type_code
7988 AND w.product_rule_code = s.product_rule_code
7989 AND w.event_class_code = s.event_class_code
7990 AND w.event_type_code = s.event_type_code
7991 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
7992 AND w.analytical_criterion_code = s.analytical_criterion_code);
7993
7994 l_parent_key VARCHAR2(240);
7995 l_key VARCHAR2(240);
7996 l_log_module VARCHAR2(240);
7997 BEGIN
7998 IF g_log_enabled THEN
7999 l_log_module := C_DEFAULT_MODULE||'.compare_hdr_ac_assgns';
8000 END IF;
8001
8002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8003 trace(p_msg => 'BEGIN of function compare_hdr_ac_assgns',
8004 p_module => l_log_module,
8005 p_level => C_LEVEL_PROCEDURE);
8006 END IF;
8007
8008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8009 trace(p_msg => 'BEGIN LOOP: updated header ac assgns',
8010 p_module => l_log_module,
8011 p_level => C_LEVEL_PROCEDURE);
8012 END IF;
8013
8014 FOR l_comp IN c_comp LOOP
8015
8016 l_parent_key := l_comp.product_rule_type_code||C_CHAR||
8017 l_comp.product_rule_code||C_CHAR||
8018 l_comp.event_class_code||C_CHAR||
8019 l_comp.event_type_code;
8020
8021 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
8022 l_comp.analytical_criterion_code;
8023
8024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8025 trace(p_msg => 'LOOP: updated header ac assgn - '||l_key,
8026 p_module => l_log_module,
8027 p_level => C_LEVEL_PROCEDURE);
8028 END IF;
8029
8030 IF (NOT key_exists('HAC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
8031 record_updated_component
8032 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8033 ,p_parent_component_key => l_parent_key
8034 ,p_component_type => 'AMB_AC'
8035 ,p_component_key => l_key
8036 ,p_merge_impact => l_comp.merge_impact
8037 ,p_component_owner_code => l_comp.analytical_criterion_type_code
8038 ,p_component_code => l_comp.analytical_criterion_code);
8039
8040 record_updated_header_assgn
8041 (p_product_rule_type_code => l_comp.product_rule_type_code
8042 ,p_product_rule_code => l_comp.product_rule_code
8043 ,p_event_class_code => l_comp.event_class_code
8044 ,p_event_type_code => l_comp.event_type_code
8045 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
8046 END IF;
8047 END LOOP;
8048
8049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8050 trace(p_msg => 'END LOOP: updated header ac assgns',
8051 p_module => l_log_module,
8052 p_level => C_LEVEL_PROCEDURE);
8053 END IF;
8054
8055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8056 trace(p_msg => 'END of function compare_hdr_ac_assgns',
8057 p_module => l_log_module,
8058 p_level => C_LEVEL_PROCEDURE);
8059 END IF;
8060
8061 EXCEPTION
8062 WHEN xla_exceptions_pkg.application_exception THEN
8063 RAISE;
8064 WHEN OTHERS THEN
8065 xla_exceptions_pkg.raise_message
8066 (p_location => l_log_module);
8067 END compare_hdr_ac_assgns;
8068
8069
8070 --=============================================================================
8071 --
8072 -- Name: compare_hdr_acct_attrs
8073 -- Description:
8074 --
8075 --=============================================================================
8076 PROCEDURE compare_hdr_acct_attrs
8077 IS
8078 CURSOR c_comp IS
8079 SELECT s.product_rule_type_code
8080 , s.product_rule_code
8081 , s.event_class_code
8082 , s.event_type_code
8083 , s.accounting_attribute_code
8084 , CASE WHEN w.accounting_attribute_code IS NULL
8085 THEN C_MERGE_IMPACT_NEW
8086 ELSE C_MERGE_IMPACT_UPDATED END merge_impact
8087 ,s.event_class_default_flag s_event_class_default_flag
8088 ,w.event_class_default_flag w_event_class_default_flag
8089 ,s.source_application_id s_source_application_id
8090 ,w.source_application_id w_source_application_id
8091 ,s.source_type_code s_source_type_code
8092 ,w.source_type_code w_source_type_code
8093 ,s.source_code s_source_code
8094 ,w.source_code w_source_code
8095 FROM xla_aad_hdr_acct_attrs s
8096 JOIN xla_prod_acct_headers b
8097 ON b.application_id = g_application_id
8098 AND b.amb_context_code = g_amb_context_code
8099 AND b.product_rule_type_code = s.product_rule_type_code
8100 AND b.product_rule_code = s.product_rule_code
8101 AND b.event_class_code = s.event_class_code
8102 AND b.event_type_code = s.event_type_code
8103 LEFT OUTER JOIN xla_aad_hdr_acct_attrs w
8104 ON w.application_id = g_application_id
8105 AND w.amb_context_code = g_amb_context_code
8106 AND w.product_rule_type_code = s.product_rule_type_code
8107 AND w.product_rule_code = s.product_rule_code
8108 AND w.event_class_code = s.event_class_code
8109 AND w.event_type_code = s.event_type_code
8110 AND w.accounting_attribute_code = s.accounting_attribute_code
8111 WHERE s.application_id = g_application_id
8112 AND s.amb_context_code = g_staging_context_code
8113 AND (w.accounting_attribute_code IS NULL OR
8114 s.event_class_default_flag <> w.event_class_default_flag OR
8115 s.source_application_id <> w.source_application_id OR
8116 s.source_type_code <> w.source_type_code OR
8117 s.source_code <> w.source_code);
8118
8119 l_key VARCHAR2(240);
8120 l_log_module VARCHAR2(240);
8121 BEGIN
8122 IF g_log_enabled THEN
8123 l_log_module := C_DEFAULT_MODULE||'.compare_hdr_acct_attrs';
8124 END IF;
8125
8126 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8127 trace(p_msg => 'BEGIN of function compare_hdr_acct_attrs',
8128 p_module => l_log_module,
8129 p_level => C_LEVEL_PROCEDURE);
8130 END IF;
8131
8132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8133 trace(p_msg => 'BEGIN LOOP: updated header acct attrs',
8134 p_module => l_log_module,
8135 p_level => C_LEVEL_PROCEDURE);
8136 END IF;
8137
8138 FOR l_comp IN c_comp LOOP
8139
8140 l_key := l_comp.product_rule_type_code||C_CHAR||
8141 l_comp.product_rule_code||C_CHAR||
8142 l_comp.event_class_code||C_CHAR||
8143 l_comp.event_type_code||C_CHAR||
8144 l_comp.accounting_attribute_code;
8145
8146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8147 trace(p_msg => 'LOOP: updated header acct attr - '||l_key,
8148 p_module => l_log_module,
8149 p_level => C_LEVEL_PROCEDURE);
8150 END IF;
8151
8152 IF (NOT key_exists('HAA'||C_CHAR||l_key)) THEN
8153
8154 record_updated_header_assgn
8155 (p_product_rule_type_code => l_comp.product_rule_type_code
8156 ,p_product_rule_code => l_comp.product_rule_code
8157 ,p_event_class_code => l_comp.event_class_code
8158 ,p_event_type_code => l_comp.event_type_code
8159 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
8160
8161 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8162
8163 IF (l_comp.s_event_class_default_flag <> l_comp.w_event_class_default_flag) THEN
8164
8165 record_updated_property
8166 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8167 ,p_component_key => l_key
8168 ,p_property => 'ACCOUNTING_REQUIRED_FLAG'
8169 ,p_old_value => l_comp.w_event_class_default_flag
8170 ,p_new_value => l_comp.s_event_class_default_flag
8171 ,p_lookup_type => 'XLA_YES_NO');
8172
8173 END IF;
8174
8175 IF (l_comp.s_source_application_id <> l_comp.w_source_application_id OR
8176 l_comp.s_source_type_code <> l_comp.s_source_type_code OR
8177 l_comp.s_source_code <> l_comp.s_source_code) THEN
8178 record_updated_source
8179 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8180 ,p_component_key => l_key
8181 ,p_property => 'SOURCE_CODE'
8182 ,p_old_source_app_id => l_comp.w_source_application_id
8183 ,p_old_source_type_code => l_comp.w_source_type_code
8184 ,p_old_source_code => l_comp.w_source_code
8185 ,p_new_source_app_id => l_comp.s_source_application_id
8186 ,p_new_source_type_code => l_comp.s_source_type_code
8187 ,p_new_source_code => l_comp.s_source_code);
8188
8189 END IF;
8190 END IF;
8191
8192 END IF;
8193
8194 END LOOP;
8195
8196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8197 trace(p_msg => 'END LOOP: updated header acct attrs',
8198 p_module => l_log_module,
8199 p_level => C_LEVEL_PROCEDURE);
8200 END IF;
8201
8202 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8203 trace(p_msg => 'END of function compare_hdr_acct_attrs',
8204 p_module => l_log_module,
8205 p_level => C_LEVEL_PROCEDURE);
8206 END IF;
8207
8208 EXCEPTION
8209 WHEN xla_exceptions_pkg.application_exception THEN
8210 RAISE;
8211 WHEN OTHERS THEN
8212 xla_exceptions_pkg.raise_message
8213 (p_location => l_log_module);
8214 END compare_hdr_acct_attrs;
8215
8216
8217
8218
8219 --=============================================================================
8220 --
8221 -- Name: compare_header_assgns
8222 -- Description:
8223 --
8224 --=============================================================================
8225 PROCEDURE compare_header_assgns
8226 IS
8227 CURSOR c_comp IS
8228 -- Retreive new, deleted, and updated event class/event type assignment
8229 SELECT s.product_rule_type_code
8230 , s.product_rule_code
8231 , s.event_class_code
8232 , s.event_type_code
8233 , CASE WHEN w.event_type_code IS NULL
8234 THEN C_MERGE_IMPACT_NEW
8235 ELSE C_MERGE_IMPACT_UPDATED
8236 END merge_impact
8237 , s.accounting_required_flag s_accounting_required_flag
8238 , w.accounting_required_flag w_accounting_required_flag
8239 , s.description_type_code s_description_type_code
8240 , w.description_type_code w_description_type_code
8241 , s.description_code s_description_code
8242 , w.description_code w_description_code
8243 FROM xla_prod_acct_headers s
8244 JOIN xla_product_rules_b b
8245 ON b.application_id = g_application_id
8246 AND b.amb_context_code = g_amb_context_code
8247 AND b.product_rule_type_code = s.product_rule_type_code
8248 AND b.product_rule_code = s.product_rule_code
8249 LEFT OUTER JOIN xla_prod_acct_headers w
8250 ON w.application_id = g_application_id
8251 AND w.amb_context_code = g_amb_context_code
8252 AND w.product_rule_type_code = s.product_rule_type_code
8253 AND w.product_rule_code = s.product_rule_code
8254 AND w.event_class_code = s.event_class_code
8255 AND w.event_type_code = s.event_type_code
8256 WHERE s.application_id = g_application_id
8257 AND s.amb_context_code = g_staging_context_code
8258 AND (w.event_type_code IS NULL OR
8259 NVL(s.accounting_required_flag,C_CHAR) <> NVL(w.accounting_required_flag,C_CHAR) OR
8260 NVL(s.description_type_code,C_CHAR) <> NVL(w.description_type_code,C_CHAR) OR
8261 NVL(s.description_code,C_CHAR) <> NVL(w.description_code,C_CHAR));
8262
8263 l_key VARCHAR2(240);
8264 l_parent_key VARCHAR2(240);
8265 l_log_module VARCHAR2(240);
8266 BEGIN
8267 IF g_log_enabled THEN
8268 l_log_module := C_DEFAULT_MODULE||'.compare_header_assgns';
8269 END IF;
8270
8271 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8272 trace(p_msg => 'BEGIN of function compare_header_assgns',
8273 p_module => l_log_module,
8274 p_level => C_LEVEL_PROCEDURE);
8275 END IF;
8276
8277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8278 trace(p_msg => 'BEGIN LOOP: updated header assgns',
8279 p_module => l_log_module,
8280 p_level => C_LEVEL_PROCEDURE);
8281 END IF;
8282
8283 FOR l_comp IN c_comp LOOP
8284
8285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8286 trace(p_msg => 'LOOP: updated header assgn - '||
8287 l_comp.product_rule_type_code||C_CHAR||
8288 l_comp.product_rule_code||C_CHAR||
8289 l_comp.event_class_code||C_CHAR||
8290 l_comp.event_type_code||C_CHAR||
8291 l_comp.merge_impact,
8292 p_module => l_log_module,
8293 p_level => C_LEVEL_PROCEDURE);
8294 END IF;
8295
8296 record_updated_header_assgn
8297 (p_product_rule_type_code => l_comp.product_rule_type_code
8298 ,p_product_rule_code => l_comp.product_rule_code
8299 ,p_event_class_code => l_comp.event_class_code
8300 ,p_event_type_code => l_comp.event_type_code
8301 ,p_merge_impact => l_comp.merge_impact);
8302
8303 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8304
8305 l_key := l_comp.product_rule_type_code||C_CHAR||
8306 l_comp.product_rule_code||C_CHAR||
8307 l_comp.event_class_code||C_CHAR||
8308 l_comp.event_type_code;
8309
8310 IF (l_comp.s_accounting_required_flag <> l_comp.w_accounting_required_flag) THEN
8311 record_updated_property
8312 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8313 ,p_component_key => l_key
8314 ,p_property => 'ACCOUNTING_REQUIRED_FLAG'
8315 ,p_old_value => l_comp.w_accounting_required_flag
8316 ,p_new_value => l_comp.s_accounting_required_flag
8317 ,p_lookup_type => 'XLA_YES_NO');
8318 END IF;
8319
8320 IF (NVL(l_comp.s_description_type_code,C_CHAR) <> NVL(l_comp.w_description_type_code,C_CHAR) OR
8321 NVL(l_comp.s_description_code,C_CHAR) <> NVL(l_comp.w_description_code,C_CHAR)) THEN
8322
8323 IF (l_comp.s_description_code IS NOT NULL) THEN
8324 l_parent_key := l_key;
8325 l_key := l_comp.s_description_type_code||C_CHAR||
8326 l_comp.s_description_code;
8327
8328 IF (NOT key_exists('HDESC'||C_CHAR||l_key)) THEN
8329 record_updated_component
8330 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8331 ,p_parent_component_key => l_parent_key
8332 ,p_component_type => 'AMB_DESCRIPTION'
8333 ,p_component_key => l_key
8334 ,p_merge_impact => C_MERGE_IMPACT_NEW
8335 ,p_component_owner_code => l_comp.s_description_type_code
8336 ,p_component_code => l_comp.s_description_code);
8337 END IF;
8338 END IF;
8339
8340 IF (l_comp.w_description_code IS NOT NULL) THEN
8341 l_key := l_comp.s_description_type_code||C_CHAR||
8342 l_comp.s_description_code;
8343
8344 IF (NOT key_exists('HDESC'||C_CHAR||l_key)) THEN
8345 record_updated_component
8346 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8347 ,p_parent_component_key => l_parent_key
8348 ,p_component_type => 'AMB_DESCRIPTION'
8349 ,p_component_key => l_key
8350 ,p_merge_impact => C_MERGE_IMPACT_DELETED
8351 ,p_component_owner_code => l_comp.w_description_type_code
8352 ,p_component_code => l_comp.w_description_code);
8353 END IF;
8354 END IF;
8355 END IF;
8356
8357 END IF;
8358
8359 END LOOP;
8360
8361 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8362 trace(p_msg => 'END LOOP: updated header assgns',
8363 p_module => l_log_module,
8364 p_level => C_LEVEL_PROCEDURE);
8365 END IF;
8366
8367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8368 trace(p_msg => 'END of function compare_header_assgns',
8369 p_module => l_log_module,
8370 p_level => C_LEVEL_PROCEDURE);
8371 END IF;
8372
8373 EXCEPTION
8374 WHEN xla_exceptions_pkg.application_exception THEN
8375 RAISE;
8376 WHEN OTHERS THEN
8377 xla_exceptions_pkg.raise_message
8378 (p_location => l_log_module);
8379 END compare_header_assgns;
8380
8381
8382 --=============================================================================
8383 --
8384 -- Name: compare_aads
8385 -- Description:
8386 --
8387 --=============================================================================
8388 PROCEDURE compare_aads
8389 IS
8390 -- Retrieve new, deleted, and updated AAD
8391 CURSOR c_comps IS
8392 SELECT bs.product_rule_type_code
8393 , bs.product_rule_code
8394 , CASE WHEN bw.application_id IS NULL
8395 THEN C_MERGE_IMPACT_NEW
8396 ELSE C_MERGE_IMPACT_UPDATED
8397 END merge_impact
8398 , ts.name s_name
8399 , tw.name w_name
8400 , ts.description s_description
8401 , tw.description w_description
8402 , bs.transaction_coa_id s_transaction_coa_id
8403 , bw.transaction_coa_id w_transaction_coa_id
8404 , bs.accounting_coa_id s_accounting_coa_id
8405 , bw.accounting_coa_id w_accounting_coa_id
8406 , bs.enabled_flag s_enabled_flag
8407 , bw.enabled_flag w_enabled_flag
8408 , bs.locking_status_flag s_locking_status_flag
8409 , bw.locking_status_flag w_locking_status_flag
8410 , bs.product_rule_version s_product_rule_version
8411 , bw.product_rule_version w_product_rule_version
8412 , bs.version_num s_version_num
8413 , bw.version_num w_version_num
8414 FROM xla_product_rules_b bs
8415 JOIN xla_product_rules_tl ts
8416 ON ts.application_id = bs.application_id
8417 AND ts.amb_context_code = bs.amb_context_code
8418 AND ts.product_rule_type_code = bs.product_rule_type_code
8419 AND ts.product_rule_code = bs.product_rule_code
8420 AND ts.language = USERENV('LANG')
8421 LEFT OUTER JOIN xla_product_rules_b bw
8422 ON bw.application_id = bs.application_id
8423 AND bw.amb_context_code = g_amb_context_code
8424 AND bw.product_rule_type_code = bs.product_rule_type_code
8425 AND bw.product_rule_code = bs.product_rule_code
8426 LEFT OUTER JOIN xla_product_rules_tl tw
8427 ON tw.application_id = bw.application_id
8428 AND tw.amb_context_code = bw.amb_context_code
8429 AND tw.product_rule_type_code = bw.product_rule_type_code
8430 AND tw.product_rule_code = bw.product_rule_code
8431 AND tw.language = USERENV('LANG')
8432 WHERE bs.application_id = g_application_id
8433 AND bs.amb_context_code = g_staging_context_code
8434 AND (bw.application_id IS NULL OR
8435 NVL(ts.name,C_CHAR) <> NVL(tw.name, C_CHAR) OR
8436 NVL(ts.description,C_CHAR) <> NVL(tw.description, C_CHAR) OR
8437 NVL(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id, C_NUM) OR
8438 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id, C_NUM) OR
8439 NVL(bs.enabled_flag,C_CHAR) <> NVL(bw.enabled_flag, C_CHAR) OR
8440 NVL(bs.locking_status_flag,C_CHAR) <> NVL(bw.locking_status_flag, C_CHAR) OR
8441 NVL(bs.product_rule_version,C_CHAR)<> NVL(bw.product_rule_version, C_CHAR) OR
8442 NVL(bs.version_num,C_NUM) <> NVL(bw.version_num, C_NUM));
8443
8444 l_key VARCHAR2(240);
8445 l_log_module VARCHAR2(240);
8446 BEGIN
8447 IF g_log_enabled THEN
8448 l_log_module := C_DEFAULT_MODULE||'.compare_aads';
8449 END IF;
8450
8451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8452 trace(p_msg => 'BEGIN of function compare_aads',
8453 p_module => l_log_module,
8454 p_level => C_LEVEL_PROCEDURE);
8455 END IF;
8456
8457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8458 trace(p_msg => 'BEGIN LOOP: updated aads',
8459 p_module => l_log_module,
8460 p_level => C_LEVEL_PROCEDURE);
8461 END IF;
8462
8463 FOR l_comp IN c_comps LOOP
8464
8465 l_key := l_comp.product_rule_type_code||C_CHAR||
8466 l_comp.product_rule_code;
8467
8468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8469 trace(p_msg => 'LOOP: updated aad - '||l_key,
8470 p_module => l_log_module,
8471 p_level => C_LEVEL_PROCEDURE);
8472 END IF;
8473
8474 record_updated_aad
8475 (p_product_rule_type_code => l_comp.product_rule_type_code
8476 ,p_product_rule_code => l_comp.product_rule_code
8477 ,p_merge_impact => l_comp.merge_impact);
8478
8479 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8480
8481 IF (l_comp.s_name <> l_comp.w_name) THEN
8482 record_updated_property
8483 (p_component_type => 'AMB_AAD'
8484 ,p_component_key => l_key
8485 ,p_property => 'NAME'
8486 ,p_old_value => l_comp.w_name
8487 ,p_new_value => l_comp.s_name);
8488 END IF;
8489
8490 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
8491 record_updated_property
8492 (p_component_type => 'AMB_AAD'
8493 ,p_component_key => l_key
8494 ,p_property => 'DESCRIPTION'
8495 ,p_old_value => l_comp.w_description
8496 ,p_new_value => l_comp.s_description);
8497 END IF;
8498
8499 IF (NVL(l_comp.s_transaction_coa_id,C_NUM) <> NVL(l_comp.w_transaction_coa_id,C_NUM)) THEN
8500 record_updated_property
8501 (p_component_type => 'AMB_AAD'
8502 ,p_component_key => l_key
8503 ,p_property => 'TRANSACTION_COA'
8504 ,p_old_value => l_comp.w_transaction_coa_id
8505 ,p_new_value => l_comp.s_transaction_coa_id);
8506 END IF;
8507
8508 IF (NVL(l_comp.s_accounting_coa_id,C_NUM) <> NVL(l_comp.w_accounting_coa_id,C_NUM)) THEN
8509 record_updated_property
8510 (p_component_type => 'AMB_AAD'
8511 ,p_component_key => l_key
8512 ,p_property => 'ACCOUNTING_COA'
8513 ,p_old_value => l_comp.w_accounting_coa_id
8514 ,p_new_value => l_comp.s_accounting_coa_id);
8515 END IF;
8516
8517 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
8518 record_updated_property
8519 (p_component_type => 'AMB_AAD'
8520 ,p_component_key => l_key
8521 ,p_property => 'ENABLED'
8522 ,p_old_value => l_comp.w_enabled_flag
8523 ,p_new_value => l_comp.s_enabled_flag
8524 ,p_lookup_type => 'XLA_YES_NO');
8525 END IF;
8526
8527 IF (l_comp.s_locking_status_flag <> l_comp.w_locking_status_flag) THEN
8528 record_updated_property
8529 (p_component_type => 'AMB_AAD'
8530 ,p_component_key => l_key
8531 ,p_property => 'LOCKED'
8532 ,p_old_value => l_comp.w_locking_status_flag
8533 ,p_new_value => l_comp.s_locking_status_flag
8534 ,p_lookup_type => 'XLA_YES_NO');
8535 END IF;
8536
8537 IF (NVL(l_comp.s_product_rule_version,C_CHAR) <> NVL(l_comp.w_product_rule_version,C_CHAR)) THEN
8538 record_updated_property
8539 (p_component_type => 'AMB_AAD'
8540 ,p_component_key => l_key
8541 ,p_property => 'PRODUCT_RULE_VERSION'
8542 ,p_old_value => l_comp.w_product_rule_version
8543 ,p_new_value => l_comp.s_product_rule_version);
8544 END IF;
8545
8546 IF (NVL(l_comp.s_version_num,C_NUM) <> NVL(l_comp.w_version_num,C_NUM)) THEN
8547 record_updated_property
8548 (p_component_type => 'AMB_AAD'
8549 ,p_component_key => l_key
8550 ,p_property => 'VERSION_NUM'
8551 ,p_old_value => l_comp.w_version_num
8552 ,p_new_value => l_comp.s_version_num);
8553 END IF;
8554
8555 END IF;
8556 END LOOP;
8557
8558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8559 trace(p_msg => 'END LOOP: updated aads',
8560 p_module => l_log_module,
8561 p_level => C_LEVEL_PROCEDURE);
8562 END IF;
8563
8564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8565 trace(p_msg => 'END of function compare_aads',
8566 p_module => l_log_module,
8567 p_level => C_LEVEL_PROCEDURE);
8568 END IF;
8569
8570 EXCEPTION
8571 WHEN xla_exceptions_pkg.application_exception THEN
8572 RAISE;
8573 WHEN OTHERS THEN
8574 xla_exceptions_pkg.raise_message
8575 (p_location => l_log_module);
8576 END compare_aads;
8577
8578 --=============================================================================
8579 --
8580 -- Name; analyze_aads
8581 -- Description:
8582 --
8583 --=============================================================================
8584 PROCEDURE analyze_aads
8585 IS
8586 l_log_module VARCHAR2(240);
8587 BEGIN
8588 IF g_log_enabled THEN
8589 l_log_module := C_DEFAULT_MODULE||'.analyze_aads';
8590 END IF;
8591
8592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8593 trace(p_msg => 'BEGIN of function analyze_aads',
8594 p_module => l_log_module,
8595 p_level => C_LEVEL_PROCEDURE);
8596 END IF;
8597
8598 IF (g_user_mode = 'C') THEN
8599 analyze_deleted_oracle_comps;
8600 compare_mapping_set_values;
8601 compare_mapping_sets;
8602 END IF;
8603
8604 -- compare journal entry setups
8605 compare_jlt_acct_attrs;
8606 compare_jlts;
8607
8608 compare_ac_sources;
8609 compare_ac_details;
8610 compare_acs;
8611
8612 compare_desc_priorities;
8613 compare_descs;
8614
8615 compare_adr_details;
8616 compare_adrs;
8617
8618 -- compare journal entry definition assignments
8619 compare_mpa_jlt_adr_assgns;
8620 compare_mpa_jlt_ac_assgns;
8621 compare_mpa_jlt_assgns;
8622 compare_mpa_hdr_ac_assgns;
8623 compare_mpa_hdr_assgns;
8624 compare_line_adr_assgns;
8625 compare_line_ac_assgns;
8626 compare_jld_jlt_assgns;
8627 compare_jlds;
8628
8629 -- compare header assignments
8630 compare_jld_assgns;
8631 compare_hdr_ac_assgns;
8632 compare_hdr_acct_attrs;
8633 compare_header_assgns;
8634
8635 -- compare aads
8636 compare_aads;
8637
8638 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8639 trace(p_msg => 'END of function analyze_aads',
8640 p_module => l_log_module,
8641 p_level => C_LEVEL_PROCEDURE);
8642 END IF;
8643
8644 EXCEPTION
8645 WHEN OTHERS THEN
8646 xla_aad_loader_util_pvt.stack_error
8647 (p_appli_s_name => 'XLA'
8648 ,p_msg_name => 'XLA_COMMON_ERROR'
8649 ,p_token_1 => 'LOCATION'
8650 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analyze_aads'
8651 ,p_token_2 => 'ERROR'
8652 ,p_value_2 => 'Unhandled exception');
8653 RAISE;
8654
8655 END analyze_aads;
8656
8657
8658
8659 --=============================================================================
8660 --
8661 -- Name: group_aads
8662 -- Description: This API groups the AAD with the same group number if they
8663 -- shares any commom components. The group number information is
8664 -- stored in the g_aad_groups global array.
8665 --
8666 --=============================================================================
8667 /*
8668 PROCEDURE group_aads
8669 IS
8670 l_curr_group_num INTEGER;
8671
8672 -- Cursor to return all AADs to be grouped
8673 CURSOR c_aad IS
8674 SELECT product_rule_type_code
8675 ,product_rule_code
8676 ,decode(min(decode(amb_context_code,g_amb_context_code,1,2)),1,'Y','N') required_flag
8677 FROM xla_product_rules_b
8678 WHERE application_id = g_application_id
8679 AND amb_context_code IN (g_amb_context_code,g_staging_context_code)
8680 GROUP BY product_rule_type_code, product_rule_code;
8681
8682 -- Cursor to return AADs that shares any common component with the AADs that
8683 -- was assigned with the group l_curr_group_num
8684 CURSOR c_aad_group IS
8685 SELECT h.product_rule_type_code, h.product_rule_code
8686 FROM xla_prod_acct_headers h
8687 WHERE h.application_id = g_application_id
8688 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8689 AND EXISTS (SELECT 1
8690 FROM xla_prod_acct_headers pah
8691 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8692 WHERE pah.application_id = g_application_id
8693 AND pah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8694 AND pah.description_type_code = h.description_type_code
8695 AND pah.description_code = h.description_code
8696 AND pah.product_rule_type_code = grp.product_rule_type_code
8697 AND pah.product_rule_code = grp.product_rule_code
8698 AND grp.group_num = l_curr_group_num
8699 UNION
8700 SELECT 1
8701 FROM xla_aad_line_defn_assgns xal
8702 ,xla_line_defn_jlt_assgns xjl
8703 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8704 WHERE xjl.application_id = g_application_id
8705 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8706 AND xjl.description_type_code = h.description_type_code
8707 AND xjl.description_code = h.description_code
8708 AND xal.application_id = g_application_id
8709 AND xal.amb_context_code = xjl.amb_context_code
8710 AND xal.product_rule_type_code = grp.product_rule_type_code
8711 AND xal.product_rule_code = grp.product_rule_code
8712 AND xal.event_class_code = xjl.event_class_code
8713 AND xal.event_type_code = xjl.event_type_code
8714 AND xal.line_definition_owner_code = xjl.line_definition_owner_code
8715 AND xal.line_definition_code = xjl.line_definition_code
8716 AND grp.group_num = l_curr_group_num)
8717 UNION
8718 SELECT xal.product_rule_type_code, xal.product_rule_code
8719 FROM xla_line_defn_jlt_assgns h
8720 ,xla_aad_line_defn_assgns xal
8721 WHERE h.application_id = xal.application_id
8722 AND h.amb_context_code = xal.amb_context_code
8723 AND h.event_class_code = xal.event_class_code
8724 AND h.event_type_code = xal.event_type_code
8725 AND h.line_definition_owner_code = xal.line_definition_owner_code
8726 AND h.line_definition_code = xal.line_definition_code
8727 AND h.application_id = g_application_id
8728 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8729 AND EXISTS (SELECT 1
8730 FROM xla_prod_acct_headers pah
8731 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8732 WHERE pah.application_id = g_application_id
8733 AND pah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8734 AND pah.description_type_code = h.description_type_code
8735 AND pah.description_code = h.description_code
8736 AND pah.product_rule_type_code = grp.product_rule_type_code
8737 AND pah.product_rule_code = grp.product_rule_code
8738 AND grp.group_num = l_curr_group_num
8739 UNION
8740 SELECT 1
8741 FROM xla_aad_line_defn_assgns xal
8742 ,xla_line_defn_jlt_assgns xjl
8743 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8744 WHERE xjl.application_id = g_application_id
8745 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8746 AND xjl.description_type_code = h.description_type_code
8747 AND xjl.description_code = h.description_code
8748 AND xal.application_id = xjl.application_id
8749 AND xal.amb_context_code = xjl.amb_context_code
8750 AND xal.product_rule_type_code = grp.product_rule_type_code
8751 AND xal.product_rule_code = grp.product_rule_code
8752 AND xal.event_class_code = xjl.event_class_code
8753 AND xal.event_type_code = xjl.event_type_code
8754 AND xal.line_definition_owner_code = xjl.line_definition_owner_code
8755 AND xal.line_definition_code = xjl.line_definition_code
8756 AND grp.group_num = l_curr_group_num)
8757 UNION
8758 SELECT xal.product_rule_type_code, xal.product_rule_code
8759 FROM xla_line_defn_jlt_assgns h
8760 ,xla_aad_line_defn_assgns xal
8761 WHERE h.application_id = xal.application_id
8762 AND h.amb_context_code = xal.amb_context_code
8763 AND h.event_class_code = xal.event_class_code
8764 AND h.event_type_code = xal.event_type_code
8765 AND h.line_definition_owner_code = xal.line_definition_owner_code
8766 AND h.line_definition_code = xal.line_definition_code
8767 AND h.application_id = g_application_id
8768 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8769 AND EXISTS (SELECT 1
8770 FROM xla_aad_line_defn_assgns xad
8771 ,xla_line_defn_jlt_assgns xjl
8772 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8773 WHERE xjl.application_id = g_application_id
8774 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8775 AND xjl.event_class_code = h.event_class_code
8776 AND xjl.accounting_line_type_code = h.accounting_line_type_code
8777 AND xjl.accounting_line_code = h.accounting_line_code
8778 AND xad.event_class_code = xjl.event_class_code
8779 AND xad.event_type_code = xjl.event_type_code
8780 AND xad.line_definition_owner_code = xjl.line_definition_owner_code
8781 AND xad.line_definition_code = xjl.line_definition_code
8782 AND xad.application_id = xjl.application_id
8783 AND xad.amb_context_code = xjl.amb_context_code
8784 AND xad.product_rule_type_code = grp.product_rule_type_code
8785 AND xad.product_rule_code = grp.product_rule_code
8786 AND grp.group_num = l_curr_group_num)
8787 UNION
8788 SELECT h.product_rule_type_code, h.product_rule_code
8789 FROM xla_aad_header_ac_assgns h
8790 WHERE h.application_id = g_application_id
8791 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8792 AND EXISTS (SELECT 1
8793 FROM xla_aad_header_ac_assgns xah
8794 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8795 WHERE xah.analytical_criterion_type_code = h.analytical_criterion_type_code
8796 AND xah.analytical_criterion_code = h.analytical_criterion_code
8797 AND xah.application_id = g_application_id
8798 AND xah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8799 AND xah.product_rule_type_code = grp.product_rule_type_code
8800 AND xah.product_rule_code = grp.product_rule_code
8801 AND grp.group_num = l_curr_group_num
8802 UNION
8803 SELECT 1
8804 FROM xla_line_defn_ac_assgns xac
8805 ,xla_aad_line_defn_assgns xal
8806 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8807 WHERE xac.analytical_criterion_type_code = h.analytical_criterion_type_code
8808 AND xac.analytical_criterion_code = h.analytical_criterion_code
8809 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8810 AND xac.application_id = g_application_id
8811 AND xac.event_class_code = xal.event_class_code
8812 AND xac.event_type_code = xal.event_type_code
8813 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8814 AND xac.line_definition_code = xal.line_definition_code
8815 AND xal.application_id = xac.application_id
8816 AND xal.amb_context_code = xac.amb_context_code
8817 AND xal.product_rule_type_code = grp.product_rule_type_code
8818 AND xal.product_rule_code = grp.product_rule_code
8819 AND grp.group_num = l_curr_group_num)
8820 UNION
8821 SELECT xad.product_rule_type_code, xad.product_rule_code
8822 FROM xla_line_defn_ac_assgns h
8823 ,xla_aad_line_defn_assgns xad
8824 WHERE h.application_id = xad.application_id
8825 AND h.amb_context_code = xad.amb_context_code
8826 AND h.event_class_code = xad.event_class_code
8827 AND h.event_type_code = xad.event_type_code
8828 AND h.line_definition_owner_code = xad.line_definition_owner_code
8829 AND h.line_definition_code = xad.line_definition_code
8830 AND xad.application_id = g_application_id
8831 AND xad.amb_context_code = g_amb_context_code
8832 AND EXISTS (SELECT 1
8833 FROM xla_aad_header_ac_assgns xah
8834 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8835 WHERE xah.analytical_criterion_type_code = h.analytical_criterion_type_code
8836 AND xah.analytical_criterion_code = h.analytical_criterion_code
8837 AND xah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8838 AND xah.application_id = g_application_id
8839 AND xah.product_rule_type_code = grp.product_rule_type_code
8840 AND xah.product_rule_code = grp.product_rule_code
8841 AND grp.group_num = l_curr_group_num
8842 UNION
8843 SELECT 1
8844 FROM xla_line_defn_ac_assgns xac
8845 ,xla_aad_line_defn_assgns xal
8846 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8847 WHERE xac.analytical_criterion_type_code = h.analytical_criterion_type_code
8848 AND xac.analytical_criterion_code = h.analytical_criterion_code
8849 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8850 AND xac.application_id = g_application_id
8851 AND xac.event_class_code = xal.event_class_code
8852 AND xac.event_type_code = xal.event_type_code
8853 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8854 AND xac.line_definition_code = xal.line_definition_code
8855 AND xal.application_id = xac.application_id
8856 AND xal.amb_context_code = xac.amb_context_code
8857 AND xal.product_rule_type_code = grp.product_rule_type_code
8858 AND xal.product_rule_code = grp.product_rule_code
8859 AND grp.group_num = l_curr_group_num)
8860 UNION
8861 SELECT xad.product_rule_type_code, xad.product_rule_code
8862 FROM xla_line_defn_adr_assgns h
8863 ,xla_aad_line_defn_assgns xad
8864 WHERE h.application_id = xad.application_id
8865 AND h.amb_context_code = xad.amb_context_code
8866 AND h.event_class_code = xad.event_class_code
8867 AND h.event_type_code = xad.event_type_code
8868 AND h.line_definition_owner_code = xad.line_definition_owner_code
8869 AND h.line_definition_code = xad.line_definition_code
8870 AND h.application_id = g_application_id
8871 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8872 AND EXISTS (SELECT 1
8873 FROM xla_line_defn_adr_assgns xac
8874 ,xla_aad_line_defn_assgns xal
8875 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8876 WHERE xac.application_id = g_application_id
8877 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8878 AND xac.segment_rule_type_code = h.segment_rule_type_code
8879 AND xac.segment_rule_code = h.segment_rule_code
8880 AND xac.event_class_code = xal.event_class_code
8881 AND xac.event_type_code = xal.event_type_code
8882 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8883 AND xac.line_definition_code = xal.line_definition_code
8884 AND xal.application_id = xac.application_id
8885 AND xal.amb_context_code = xac.amb_context_code
8886 AND xal.product_rule_type_code = grp.product_rule_type_code
8887 AND xal.product_rule_code = grp.product_rule_code
8888 AND grp.group_num = l_curr_group_num)
8889 UNION
8890 SELECT xal.product_rule_type_code, xal.product_rule_code
8891 FROM xla_line_defn_adr_assgns adr
8892 ,xla_aad_line_defn_assgns xal
8893 ,xla_seg_rule_details xsr
8894 WHERE xal.application_id = adr.application_id
8895 AND xal.amb_context_code = adr.amb_context_code
8896 AND xal.event_class_code = adr.event_class_code
8897 AND xal.event_type_code = adr.event_type_code
8898 AND xal.line_definition_owner_code = adr.line_definition_owner_code
8899 AND xal.line_definition_code = adr.line_definition_code
8900 AND adr.application_id = xsr.application_id
8901 AND adr.amb_context_code = xsr.amb_context_code
8902 AND adr.segment_rule_type_code = xsr.segment_rule_type_code
8903 AND adr.segment_rule_code = xsr.segment_rule_code
8904 AND xsr.application_id = g_application_id
8905 AND xsr.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8906 AND EXISTS (SELECT 1
8907 FROM xla_line_defn_adr_assgns adr2
8908 ,xla_aad_line_defn_assgns xal2
8909 ,xla_seg_rule_details xsr2
8910 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8911 WHERE xsr2.value_mapping_set_code = xsr.value_mapping_set_code
8912 AND xsr2.application_id = adr2.application_id
8913 AND xsr2.amb_context_code = adr2.amb_context_code
8914 AND xsr2.segment_rule_type_code = adr2.segment_rule_type_code
8915 AND xsr2.segment_rule_code = adr2.segment_rule_code
8916 AND adr2.application_id = xal2.application_id
8917 AND adr2.amb_context_code = xal2.amb_context_code
8918 AND adr2.event_class_code = xal2.event_class_code
8919 AND adr2.event_type_code = xal2.event_type_code
8920 AND adr2.line_definition_owner_code = xal2.line_definition_owner_code
8921 AND adr2.line_definition_code = xal2.line_definition_code
8922 AND xal2.application_id = g_application_id
8923 AND xal2.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8924 AND xal2.product_rule_type_code = grp.product_rule_type_code
8925 AND xal2.product_rule_code = grp.product_rule_code
8926 AND grp.group_num = l_curr_group_num);
8927
8928 -- Cursor to return the next AAD that is not grouped
8929 CURSOR c_next_aad IS
8930 SELECT product_rule_type_code, product_rule_code
8931 FROM TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type))
8932 WHERE group_num = 0;
8933
8934 l_aad_group xla_aad_group_rec_type;
8935 l_updated BOOLEAN;
8936 l_type_code VARCHAR2(30);
8937 l_code VARCHAR2(30);
8938 l_count INTEGER;
8939 l_log_module VARCHAR2(240);
8940 BEGIN
8941 IF g_log_enabled THEN
8942 l_log_module := C_DEFAULT_MODULE||'.group_aads';
8943 END IF;
8944
8945 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8946 trace(p_msg => 'BEGIN of procedure group_aads'
8947 ,p_level => C_LEVEL_PROCEDURE
8948 ,p_module => l_log_module);
8949 END IF;
8950
8951 g_aad_groups := xla_aad_group_tbl_type();
8952
8953 l_count := 0;
8954 l_curr_group_num := 1;
8955
8956 -- Initialize the AAD array
8957 IF (C_LEVEL_EVENT >= g_log_level) THEN
8958 trace(p_msg => 'BEGIN LOOP - retrieve AADs',
8959 p_module => l_log_module,
8960 p_level => C_LEVEL_EVENT);
8961 END IF;
8962
8963 FOR l_aad IN c_aad LOOP
8964 IF (C_LEVEL_ERROR >= g_log_level) THEN
8965 trace(p_msg => 'LOOP - AAD:'||
8966 ' product_rule_type_code='||l_aad.product_rule_type_code||
8967 ',product_rule_code='||l_aad.product_rule_code||
8968 ',required_flag='||l_aad.required_flag
8969 ,p_module => l_log_module
8970 ,p_level => C_LEVEL_ERROR);
8971 END IF;
8972
8973 l_aad_group := xla_aad_group_rec_type
8974 (l_aad.product_rule_type_code
8975 ,l_aad.product_rule_code
8976 ,0
8977 ,NULL
8978 ,NULL
8979 ,NULL
8980 ,l_aad.required_flag);
8981
8982 l_count := l_count + 1;
8983 g_aad_groups.EXTEND;
8984 g_aad_groups(l_count) := l_aad_group;
8985 END LOOP;
8986
8987 IF (C_LEVEL_EVENT >= g_log_level) THEN
8988 trace(p_msg => 'END LOOP - retrieve AADs',
8989 p_module => l_log_module,
8990 p_level => C_LEVEL_EVENT);
8991 END IF;
8992
8993 -- Assign group #1 to the first AAD
8994 IF (g_aad_groups.COUNT > 0) THEN
8995 g_aad_groups(1).group_num := l_curr_group_num;
8996 END IF;
8997
8998 --
8999 -- Loop until all application accounting definitions are assigned
9000 -- with a group number
9001 --
9002 LOOP
9003 IF (C_LEVEL_ERROR >= g_log_level) THEN
9004 trace(p_msg => 'LOOP - current group number = '||l_curr_group_num,
9005 p_module => l_log_module,
9006 p_level => C_LEVEL_ERROR);
9007 END IF;
9008 --
9009 -- Loop until no more new application accounting definitions is
9010 -- found to be sharing any journal entry setups with the
9011 -- definitions in the current group.
9012 --
9013 LOOP
9014 OPEN c_aad_group;
9015 l_updated := FALSE;
9016
9017 --
9018 -- Loop until all application accounting definitions that
9019 -- shares journal entry sets with the definitions in the
9020 -- current group are marked with the current group number.
9021 LOOP
9022 FETCH c_aad_group INTO l_type_code, l_code;
9023 EXIT WHEN c_aad_group%NOTFOUND;
9024
9025 IF (update_group_number(l_type_code
9026 ,l_code
9027 ,l_curr_group_num)) THEN
9028 l_updated := TRUE;
9029 END IF;
9030 END LOOP;
9031 CLOSE c_aad_group;
9032 IF (NOT l_updated) THEN
9033 EXIT;
9034 END IF;
9035 END LOOP;
9036
9037 OPEN c_next_aad;
9038 FETCH c_next_aad INTO l_type_code, l_code;
9039 EXIT WHEN c_next_aad%NOTFOUND;
9040
9041 CLOSE c_next_aad;
9042 l_curr_group_num := l_curr_group_num + 1;
9043 l_updated := update_group_number(l_type_code
9044 ,l_code
9045 ,l_curr_group_num);
9046 END LOOP;
9047 CLOSE c_next_aad;
9048
9049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9050 FOR i IN 1 .. g_aad_groups.COUNT LOOP
9051 trace(p_msg => 'group='||g_aad_groups(i).group_num||
9052 ' '||g_aad_groups(i).product_rule_code
9053 ,p_module => l_log_module
9054 ,p_level => C_LEVEL_PROCEDURE);
9055 END LOOP;
9056 END IF;
9057
9058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9059 trace(p_msg => 'END of procedure group_aads'
9060 ,p_module => l_log_module
9061 ,p_level => C_LEVEL_PROCEDURE);
9062 END IF;
9063 EXCEPTION
9064 WHEN xla_exceptions_pkg.application_exception THEN
9065 RAISE;
9066
9067 WHEN OTHERS THEN
9068 xla_exceptions_pkg.raise_message
9069 (p_location => 'xla_aad_merge_analysis_pvt.group_aads');
9070
9071 END group_aads;
9072
9073
9074 --=============================================================================
9075 --
9076 -- Name:
9077 -- Description:
9078 --
9079 --=============================================================================
9080 PROCEDURE analyze_merge_dependency
9081 (p_application_id INTEGER
9082 ,p_amb_context_code VARCHAR2)
9083 IS
9084 l_log_module VARCHAR2(240);
9085 BEGIN
9086 IF g_log_enabled THEN
9087 l_log_module := C_DEFAULT_MODULE||'.analyze_merge_dependency';
9088 END IF;
9089
9090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9091 trace(p_msg => 'BEGIN of procedure analyze_merge_dependency',
9092 p_module => l_log_module,
9093 p_level => C_LEVEL_PROCEDURE);
9094 END IF;
9095
9096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9097 trace(p_msg => 'END of procedure analyze_merge_dependency',
9098 p_module => l_log_module,
9099 p_level => C_LEVEL_PROCEDURE);
9100 END IF;
9101
9102 EXCEPTION
9103 WHEN xla_exceptions_pkg.application_exception THEN
9104 RAISE;
9105
9106 WHEN OTHERS THEN
9107 xla_exceptions_pkg.raise_message
9108 (p_location => 'xla_aad_merge_analysis_pvt.analyze_merge_dependency');
9109
9110 END analyze_merge_dependency;
9111 */
9112
9113 --=============================================================================
9114 ---- Name:
9115 -- Description:
9116 --
9117 --=============================================================================
9118 PROCEDURE post_analysis
9119 IS
9120 l_merge_impact VARCHAR2(30);
9121 l_log_module VARCHAR2(240);
9122 BEGIN
9123 IF g_log_enabled THEN
9124 l_log_module := C_DEFAULT_MODULE||'.post_analysis';
9125 END IF;
9126
9127 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9128 trace(p_msg => 'BEGIN of procedure post_analysis',
9129 p_module => l_log_module,
9130 p_level => C_LEVEL_PROCEDURE);
9131 END IF;
9132
9133 INSERT INTO xla_amb_updated_comps
9134 (amb_updated_comp_id
9135 ,application_id
9136 ,amb_context_code
9137 ,component_type_code
9138 ,component_key
9139 ,parent_component_type_code
9140 ,parent_component_key
9141 ,merge_impact_code
9142 ,event_class_code
9143 ,event_type_code
9144 ,component_owner_code
9145 ,component_code
9146 ,parent_component_owner_code
9147 ,parent_component_code
9148 ,property_code
9149 ,old_value
9150 ,old_source_app_id
9151 ,old_source_type_code
9152 ,old_source_code
9153 ,new_value
9154 ,new_source_app_id
9155 ,new_source_type_code
9156 ,new_source_code
9157 ,lookup_type
9158 ,merge_enabled_flag
9159 ,object_version_number
9160 ,creation_date
9161 ,created_by
9162 ,last_update_date
9163 ,last_updated_by
9164 ,last_update_login
9165 ,program_update_date
9166 ,program_application_id
9167 ,program_id
9168 ,request_id)
9169 SELECT xla_amb_updated_comps_s.nextval
9170 ,g_application_id
9171 ,g_amb_context_code
9172 ,component_type
9173 ,component_key
9174 ,parent_component_type
9175 ,parent_component_key
9176 ,merge_impact
9177 ,event_class_code
9178 ,event_type_code
9179 ,component_owner_code
9180 ,component_code
9181 ,parent_component_owner_code
9182 ,parent_component_code
9183 ,property
9184 ,old_value
9185 ,old_source_app_id
9186 ,old_source_type_code
9187 ,old_source_code
9188 ,new_value
9189 ,new_source_app_id
9190 ,new_source_type_code
9191 ,new_source_code
9192 ,lookup_type
9193 ,'N'
9194 ,1
9195 ,sysdate
9196 ,xla_environment_pkg.g_usr_id
9197 ,sysdate
9198 ,xla_environment_pkg.g_usr_id
9199 ,xla_environment_pkg.g_login_id
9200 ,sysdate
9201 ,xla_environment_pkg.g_prog_appl_id
9202 ,xla_environment_pkg.g_prog_id
9203 ,xla_environment_pkg.g_req_Id
9204 FROM (SELECT component_type
9205 ,component_key
9206 ,parent_component_type
9207 ,parent_component_key
9208 ,merge_impact
9209 ,event_class_code
9210 ,event_type_code
9211 ,component_owner_code
9212 ,component_code
9213 ,parent_component_owner_code
9214 ,parent_component_code
9215 ,NULL property
9216 ,NULL old_value
9217 ,NULL old_source_app_id
9218 ,NULL old_source_type_code
9219 ,NULL old_source_code
9220 ,NULL new_value
9221 ,NULL new_source_app_id
9222 ,NULL new_source_type_code
9223 ,NULL new_source_code
9224 ,NULL lookup_type
9225 FROM TABLE(CAST(g_updated_comps AS xla_amb_updated_comp_tbl_type))
9226 UNION
9227 SELECT NULL
9228 ,NULL
9229 ,component_type
9230 ,component_key
9231 ,C_MERGE_IMPACT_UPDATED
9232 ,NULL
9233 ,NULL
9234 ,NULL
9235 ,NULL
9236 ,NULL
9237 ,NULL
9238 ,property
9239 ,old_value
9240 ,old_source_app_id
9241 ,old_source_type_code
9242 ,old_source_code
9243 ,new_value
9244 ,new_source_app_id
9245 ,new_source_type_code
9246 ,new_source_code
9247 ,lookup_type
9248 FROM TABLE(CAST(g_updated_props AS xla_amb_updated_prop_tbl_type)));
9249
9250 IF (SQL%ROWCOUNT > 0) THEN
9251 l_merge_impact := C_MERGE_IMPACT_UPDATED;
9252 ELSE
9253 l_merge_impact := C_MERGE_IMPACT_UNCHANGED;
9254 END IF;
9255
9256 INSERT INTO xla_amb_updated_comps
9257 (amb_updated_comp_id
9258 ,application_id
9259 ,amb_context_code
9260 ,component_type_code
9261 ,component_key
9262 ,merge_impact_code
9263 ,merge_enabled_flag
9264 ,object_version_number
9265 ,creation_date
9266 ,created_by
9267 ,last_update_date
9268 ,last_updated_by
9269 ,last_update_login
9270 ,program_update_date
9271 ,program_application_id
9272 ,program_id
9273 ,request_id)
9274 SELECT xla_amb_updated_comps_s.nextval
9275 ,g_application_id
9276 ,g_amb_context_code
9277 ,'APPLICATION'
9278 ,TO_CHAR(g_application_id)
9279 ,l_merge_impact
9280 ,'N'
9281 ,1
9282 ,sysdate
9283 ,xla_environment_pkg.g_usr_id
9284 ,sysdate
9285 ,xla_environment_pkg.g_usr_id
9286 ,xla_environment_pkg.g_login_id
9287 ,sysdate
9288 ,xla_environment_pkg.g_prog_appl_id
9289 ,xla_environment_pkg.g_prog_id
9290 ,xla_environment_pkg.g_req_Id
9291 FROM DUAL;
9292
9293 UPDATE xla_appli_amb_contexts
9294 SET updated_flag = 'N'
9295 , batch_name = g_batch_name
9296 , last_analyzed_date = sysdate
9297 , last_update_date = sysdate
9298 , last_updated_by = xla_environment_pkg.g_usr_id
9299 , last_update_login = xla_environment_pkg.g_login_id
9300 WHERE application_id = g_application_id
9301 AND amb_context_code = g_amb_context_code;
9302
9303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9304 trace(p_msg => 'END of procedure post_analysis',
9305 p_module => l_log_module,
9306 p_level => C_LEVEL_PROCEDURE);
9307 END IF;
9308
9309 EXCEPTION
9310 WHEN xla_exceptions_pkg.application_exception THEN
9311 RAISE;
9312
9313 WHEN OTHERS THEN
9314 xla_exceptions_pkg.raise_message
9315 (p_location => 'xla_aad_merge_analysis_pvt.post_analysis');
9316
9317 END post_analysis;
9318
9319 --=============================================================================
9320 --
9321 --
9322 --
9323 --
9324 --
9325 -- *********** public procedures and functions **********
9326 --
9327 --
9328 --
9329 --
9330 --
9331 --=============================================================================
9332
9333 --=============================================================================
9334 --
9335 -- Name:
9336 -- Description:
9337 --
9338 --=============================================================================
9339 PROCEDURE analysis
9340 (p_api_version IN NUMBER
9341 ,x_return_status IN OUT NOCOPY VARCHAR2
9342 ,p_application_id INTEGER
9343 ,p_amb_context_code VARCHAR2
9344 ,p_batch_name VARCHAR2
9345 ,x_analysis_status IN OUT NOCOPY VARCHAR2)
9346 IS
9347 l_api_name CONSTANT VARCHAR2(30) := 'analysis';
9348 l_api_version CONSTANT NUMBER := 1.0;
9349
9350 l_staging_context_code VARCHAR2(30);
9351 l_retcode VARCHAR2(30);
9352 l_log_module VARCHAR2(240);
9353 BEGIN
9354 IF g_log_enabled THEN
9355 l_log_module := C_DEFAULT_MODULE||'.analysis';
9356 END IF;
9357
9358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9359 trace(p_msg => 'BEGIN of function analysis: '||
9360 'p_batch_name = '||p_batch_name,
9361 p_module => l_log_module,
9362 p_level => C_LEVEL_PROCEDURE);
9363 END IF;
9364
9365 l_staging_context_code := xla_aad_loader_util_pvt.get_staging_context_code
9366 (p_application_id => p_application_id
9367 ,p_amb_context_code => p_amb_context_code);
9368
9369 xla_aad_merge_analysis_pvt.analysis
9370 (p_api_version => p_api_version
9371 ,x_return_status => x_return_status
9372 ,p_application_id => p_application_id
9373 ,p_amb_context_code => p_amb_context_code
9374 ,p_staging_context_code => l_staging_context_code
9375 ,p_batch_name => p_batch_name
9376 ,x_analysis_status => x_analysis_status);
9377
9378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9379 trace(p_msg => 'END of function analysis - Return value = '||x_analysis_status,
9380 p_module => l_log_module,
9381 p_level => C_LEVEL_PROCEDURE);
9382 END IF;
9383
9384 EXCEPTION
9385 WHEN FND_API.G_EXC_ERROR THEN
9386 RAISE;
9387 x_return_status := FND_API.G_RET_STS_ERROR ;
9388 x_analysis_status := 'ERROR';
9389
9390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9391 ROLLBACK;
9392 RAISE;
9393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9394 x_analysis_status := 'ERROR';
9395
9396 WHEN OTHERS THEN
9397 ROLLBACK;
9398 RAISE;
9399 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9400 x_analysis_status := 'ERROR';
9401
9402 xla_aad_loader_util_pvt.stack_error
9403 (p_appli_s_name => 'XLA'
9404 ,p_msg_name => 'XLA_COMMON_ERROR'
9405 ,p_token_1 => 'LOCATION'
9406 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analysis'
9407 ,p_token_2 => 'ERROR'
9408 ,p_value_2 => 'unhandled exception');
9409
9410
9411 END analysis;
9412
9413
9414 --=============================================================================
9415 --
9416 -- Name:
9417 -- Description:
9418 --
9419 --=============================================================================
9420 PROCEDURE analysis
9421 (p_api_version IN NUMBER
9422 ,x_return_status IN OUT NOCOPY VARCHAR2
9423 ,p_application_id INTEGER
9424 ,p_amb_context_code VARCHAR2
9425 ,p_staging_context_code VARCHAR2
9426 ,p_batch_name VARCHAR2
9427 ,x_analysis_status IN OUT NOCOPY VARCHAR2)
9428 IS
9429 l_api_name CONSTANT VARCHAR2(30) := 'analysis';
9430 l_api_version CONSTANT NUMBER := 1.0;
9431
9432 l_retcode VARCHAR2(30);
9433 l_log_module VARCHAR2(240);
9434 BEGIN
9435 IF g_log_enabled THEN
9436 l_log_module := C_DEFAULT_MODULE||'.analysis';
9437 END IF;
9438
9439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9440 trace(p_msg => 'BEGIN of function analysis: '||
9441 'p_batch_name = '||p_batch_name,
9442 p_module => l_log_module,
9443 p_level => C_LEVEL_PROCEDURE);
9444 END IF;
9445
9446 -- Standard call to check for call compatibility.
9447 IF (NOT xla_aad_loader_util_pvt.compatible_api_call
9448 (p_current_version_number => l_api_version
9449 ,p_caller_version_number => p_api_version
9450 ,p_api_name => l_api_name
9451 ,p_pkg_name => C_DEFAULT_MODULE))
9452 THEN
9453 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
9454 END IF;
9455
9456 -- Initialize global variables
9457 x_return_status := FND_API.G_RET_STS_SUCCESS;
9458
9459 g_application_id := p_application_id;
9460 g_amb_context_code := p_amb_context_code;
9461 g_staging_context_code := p_staging_context_code;
9462 g_batch_name := p_batch_name;
9463 g_user_mode := NVL(fnd_profile.value('XLA_SETUP_USER_MODE'),'C');
9464
9465 g_num_updated_comps := 0;
9466 g_num_updated_props := 0;
9467
9468 -- API Logic
9469 x_analysis_status := pre_analysis;
9470 IF (x_analysis_status = 'ERROR') THEN
9471 RAISE FND_API.G_EXC_ERROR;
9472 END IF;
9473
9474 x_analysis_status := validation;
9475 IF (x_analysis_status = 'ERROR') THEN
9476 RAISE FND_API.G_EXC_ERROR;
9477 END IF;
9478
9479 analyze_aads;
9480 post_analysis;
9481
9482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9483 trace(p_msg => 'END of function analysis - Return value = '||x_analysis_status,
9484 p_module => l_log_module,
9485 p_level => C_LEVEL_PROCEDURE);
9486 END IF;
9487
9488 EXCEPTION
9489 WHEN FND_API.G_EXC_ERROR THEN
9490 RAISE;
9491 x_return_status := FND_API.G_RET_STS_ERROR ;
9492 x_analysis_status := 'ERROR';
9493
9494 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9495 ROLLBACK;
9496 RAISE;
9497 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9498 x_analysis_status := 'ERROR';
9499
9500 WHEN OTHERS THEN
9501 ROLLBACK;
9502 RAISE;
9503 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9504 x_analysis_status := 'ERROR';
9505
9506 xla_aad_loader_util_pvt.stack_error
9507 (p_appli_s_name => 'XLA'
9508 ,p_msg_name => 'XLA_COMMON_ERROR'
9509 ,p_token_1 => 'LOCATION'
9510 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analysis'
9511 ,p_token_2 => 'ERROR'
9512 ,p_value_2 => 'unhandled exception');
9513
9514
9515 END analysis;
9516
9517 --=============================================================================
9518 --
9519 -- Following code is executed when the package body is referenced for the first
9520 -- time
9521 --
9522 --=============================================================================
9523 BEGIN
9524 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9525 g_log_enabled := fnd_log.test
9526 (log_level => g_log_level
9527 ,module => C_DEFAULT_MODULE);
9528
9529 IF NOT g_log_enabled THEN
9530 g_log_level := C_LEVEL_LOG_DISABLED;
9531 END IF;
9532
9533 END xla_aad_merge_analysis_pvt;