[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.20 2011/05/24 06:46:35 sgullape 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(240); --Modified from size 30 to 240 for bug 8463447 by krsankar
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
372 ,p_old_source_app_id INTEGER
369 ,p_component_key VARCHAR2
370 ,p_property VARCHAR2
371 ,p_old_value VARCHAR2
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 --
511 ,p_parent_component_key VARCHAR2
508 --=============================================================================
509 PROCEDURE record_updated_component
510 (p_parent_component_type 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);
650 l_log_module := C_DEFAULT_MODULE||'.record_updated_aad';
647 l_log_module VARCHAR2(240);
648 BEGIN
649 IF g_log_enabled THEN
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
791
788 IF g_log_enabled THEN
789 l_log_module := C_DEFAULT_MODULE||'.record_updated_jld_assgn';
790 END IF;
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
924 (p_location => l_log_module);
921 RAISE;
922 WHEN OTHERS THEN
923 xla_exceptions_pkg.raise_message
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
1057 (p_event_class_code => p_event_class_code
1054 ,p_component_code => NULL);
1055
1056 record_updated_line_assgn
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
1187 l_log_module VARCHAR2(240);
1184 ,p_merge_impact IN VARCHAR2
1185 ,x_parent_key IN OUT NOCOPY VARCHAR2)
1186 IS
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
1313 WHERE w.amb_context_code = g_amb_context_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
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
1437
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;
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
1569
1566 (p_location => l_log_module);
1567 END record_updated_jlt_acct_attr;
1568
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
1689 xla_exceptions_pkg.raise_message
1686 WHEN xla_exceptions_pkg.application_exception THEN
1687 RAISE;
1688 WHEN OTHERS THEN
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
1825 , w.line_definition_code
1822 , w.event_class_code
1823 , w.event_type_code
1824 , w.line_definition_owner_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,
1939
1936 p_module => l_log_module,
1937 p_level => C_LEVEL_PROCEDURE);
1938 END IF;
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
2058 AND j.accounting_line_type_code = w.accounting_line_type_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
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'
2179 ,p_component_type => 'AMB_ADR_DETAIL'
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
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||
2321 ', p_effective_date_to = '||p_effective_date_to||
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||
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;
2431 RAISE;
2428
2429 EXCEPTION
2430 WHEN xla_exceptions_pkg.application_exception THEN
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
2555 AND w.amb_context_code = g_amb_context_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
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
2680 AND w.amb_context_code = g_amb_context_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
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
2793
2790 ,p_component_code => p_description_code);
2791
2792 END LOOP;
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
2931 AND b.accounting_line_code = w.accounting_line_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
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
3053 --=============================================================================
3050 (p_location => l_log_module);
3051 END record_updated_ac;
3052
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
3173 s.line_definition_owner_code IS NOT NULL);
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
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
3310 -- Description: This API update the product rule in global aad group arry with
3307 --=============================================================================
3308 --
3309 -- Name: update_group_number
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
3465 END IF;
3462 trace(p_msg => 'END LOOP: deleted oracle aads',
3463 p_module => l_log_module,
3464 p_level => C_LEVEL_PROCEDURE);
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
3605 AND b.segment_rule_code = w.segment_rule_code
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
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
3737 (SELECT 1
3734 AND w.amb_context_code = g_amb_context_code
3735 AND w.analytical_criterion_type_code = C_OWNER_ORACLE
3736 AND NOT EXISTS
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,
3875 record_deleted_desc
3872 p_level => C_LEVEL_PROCEDURE);
3873 END IF;
3874
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
4009 ,p_accounting_attribute_code => l_comp.accounting_attribute_code
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
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',
4137
4134 p_module => l_log_module,
4135 p_level => C_LEVEL_PROCEDURE);
4136 END IF;
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
4269 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id,C_NUM) OR
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
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;
4391 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
4388
4389 record_updated_ms
4390 (p_mapping_set_code => l_comp.mapping_set_code
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
4522 ,p_input_value_constant => l_comp.input_value_constant
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
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'
4647 ,p_new_value => l_comp.s_description);
4644 ,p_component_key => l_key
4645 ,p_property => 'DESCRIPTION'
4646 ,p_old_value => l_comp.w_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
4768 ,s.input_source_code s_input_source_code
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
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'
4869 ,p_old_source_app_id => NVL(l_comp.w_value_source_app_id,
4866 ,p_component_key => l_key
4867 ,p_property => 'VALUE'
4868 ,p_old_value => '#VALUE_TYPE_CODE#='||l_comp.w_value_type_code
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
4985 ,bs.enabled_flag s_enabled_flag
4982 ,tw.description w_description
4983 ,bs.transaction_coa_id s_transaction_coa_id
4984 ,bw.transaction_coa_id w_transaction_coa_id
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
5116 ,s.description_code
5113 IS
5114 CURSOR c_comp IS
5115 SELECT s.description_type_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(32767); --Bug 12416268 Increased length from 2000 to 32767
5169 l_working_condition VARCHAR2(32767); --Bug 12416268 Increased length from 2000 to 32767
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 -- Bug 1241628
5218 -- The variable can't exceed 32767, so we are restricting the same below.
5219 l_working_condition := substr(xla_conditions_pkg.display_condition
5220 (p_description_prio_id => l_comp.w_description_prio_id
5221 ,p_chart_of_accounts_id => l_comp.w_transaction_coa_id
5222 ,p_context => 'D'), 1, 32767);
5223
5224 -- Bug 1241628
5225 -- The variable can't exceed 32767, so we are restricting the same below.
5226 l_staging_condition := substr(xla_conditions_pkg.display_condition
5227 (p_description_prio_id => l_comp.s_description_prio_id
5228 ,p_chart_of_accounts_id => l_comp.s_transaction_coa_id
5229 ,p_context => 'D'), 1, 32767);
5230
5231 IF (l_working_condition <> l_staging_condition) THEN
5232 l_updated := TRUE;
5233 record_updated_property
5237 ,p_old_value => l_working_condition
5234 (p_component_type => 'AMB_DESC_PRIO'
5235 ,p_component_key => l_key
5236 ,p_property => 'CONDITION'
5238 ,p_new_value => l_staging_condition);
5239 END IF;
5240
5241 IF (l_updated) THEN
5242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5243 trace(p_msg => 'LOOP: updated desc prio '||
5244 '- description_type_code = '||l_comp.description_type_code||
5245 ', description_code = '||l_comp.description_code||
5246 ', user_sequence = '||l_comp.user_sequence||
5247 ', merge_impact = '||C_MERGE_IMPACT_UPDATED,
5248 p_module => l_log_module,
5249 p_level => C_LEVEL_PROCEDURE);
5250 END IF;
5251
5252 l_updated := FALSE;
5253 record_updated_desc_priority
5254 (p_description_type_code => l_comp.description_type_code
5255 ,p_description_code => l_comp.description_code
5256 ,p_user_sequence => l_comp.user_sequence
5257 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5258 END IF;
5259 ELSE
5260
5261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5262 trace(p_msg => 'LOOP: updated desc prio '||
5263 '- description_type_code = '||l_comp.description_type_code||
5264 ', description_code = '||l_comp.description_code||
5265 ', user_sequence = '||l_comp.user_sequence||
5266 ', merge_impact = '||l_comp.merge_impact,
5267 p_module => l_log_module,
5268 p_level => C_LEVEL_PROCEDURE);
5269 END IF;
5270
5271 record_updated_desc_priority
5272 (p_description_type_code => l_comp.description_type_code
5273 ,p_description_code => l_comp.description_code
5274 ,p_user_sequence => l_comp.user_sequence
5275 ,p_merge_impact => l_comp.merge_impact);
5276 END IF;
5277 END LOOP;
5278
5279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5280 trace(p_msg => 'END LOOP: updated desc priorities',
5281 p_module => l_log_module,
5282 p_level => C_LEVEL_PROCEDURE);
5283 END IF;
5284
5285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5286 trace(p_msg => 'END of function compare_desc_priorities',
5287 p_module => l_log_module,
5288 p_level => C_LEVEL_PROCEDURE);
5289 END IF;
5290
5291 EXCEPTION
5292 WHEN xla_exceptions_pkg.application_exception THEN
5293 RAISE;
5294 WHEN OTHERS THEN
5295 xla_exceptions_pkg.raise_message
5296 (p_location => l_log_module);
5297 END compare_desc_priorities;
5298
5299
5300 --=============================================================================
5301 --
5302 -- Name: compare_acs
5303 -- Description:
5304 --
5305 --=============================================================================
5306 PROCEDURE compare_acs
5307 IS
5308 CURSOR c_comp IS
5309 SELECT ts.analytical_criterion_type_code
5310 ,ts.analytical_criterion_code
5311 ,ts.name s_name
5312 ,tw.name w_name
5313 ,ts.description s_description
5314 ,tw.description w_description
5315 ,bs.balancing_flag s_balancing_flag
5316 ,bw.balancing_flag w_balancing_flag
5317 ,bs.display_order s_display_order
5318 ,bw.display_order w_display_order
5319 ,bs.enabled_flag s_enabled_flag
5320 ,bw.enabled_flag w_enabled_flag
5321 ,bs.year_end_carry_forward_code s_year_end_carry_forward_code
5322 ,bw.year_end_carry_forward_code w_year_end_carry_forward_code
5323 ,bs.display_in_inquiries_flag s_display_in_inquiries_flag
5324 ,bw.display_in_inquiries_flag w_display_in_inquiries_flag
5325 ,bs.criterion_value_code s_criterion_value_code
5326 ,bw.criterion_value_code w_criterion_value_code
5327 FROM xla_analytical_hdrs_b bs
5328 JOIN xla_analytical_hdrs_tl ts
5329 ON ts.amb_context_code = bs.amb_context_code
5330 AND ts.analytical_criterion_type_code = bs.analytical_criterion_type_code
5331 AND ts.analytical_criterion_code = bs.analytical_criterion_code
5332 AND ts.language = USERENV('LANG')
5333 JOIN xla_analytical_hdrs_b bw
5334 ON bw.amb_context_code = g_amb_context_code
5335 AND bw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5336 AND bw.analytical_criterion_code = bs.analytical_criterion_code
5337 JOIN xla_analytical_hdrs_tl tw
5338 ON tw.amb_context_code = bw.amb_context_code
5339 AND tw.analytical_criterion_type_code = bw.analytical_criterion_type_code
5340 AND tw.analytical_criterion_code = bw.analytical_criterion_code
5341 AND tw.language = USERENV('LANG')
5342 WHERE bs.amb_context_code = g_staging_context_code
5343 AND (ts.name <> tw.name OR
5344 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
5345 bs.balancing_flag <> bw.balancing_flag OR
5346 bs.display_order <> bw.display_order OR
5347 bs.enabled_flag <> bw.enabled_flag OR
5348 NVL(bs.year_end_carry_forward_code,C_CHAR) <>
5349 NVL(bw.year_end_carry_forward_code,C_CHAR) OR
5353 l_key VARCHAR2(240);
5350 bs.display_in_inquiries_flag <> bw.display_in_inquiries_flag OR
5351 bs.criterion_value_code <> bw.criterion_value_code);
5352
5354 l_log_module VARCHAR2(240);
5355 BEGIN
5356 IF g_log_enabled THEN
5357 l_log_module := C_DEFAULT_MODULE||'.compare_acs';
5358 END IF;
5359
5360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5361 trace(p_msg => 'BEGIN of function compare_acs',
5362 p_module => l_log_module,
5363 p_level => C_LEVEL_PROCEDURE);
5364 END IF;
5365
5366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5367 trace(p_msg => 'BEGIN LOOP: updated acs',
5368 p_module => l_log_module,
5369 p_level => C_LEVEL_PROCEDURE);
5370 END IF;
5371
5372 FOR l_comp in c_comp LOOP
5373
5374 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5375 l_comp.analytical_criterion_code;
5376
5377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5378 trace(p_msg => 'LOOP: updated ac - '||l_key,
5379 p_module => l_log_module,
5380 p_level => C_LEVEL_PROCEDURE);
5381 END IF;
5382
5383 IF (l_comp.s_name <> l_comp.w_name) THEN
5384 record_updated_property
5385 (p_component_type => 'AMB_AC'
5386 ,p_component_key => l_key
5387 ,p_property => 'NAME'
5388 ,p_old_value => l_comp.w_name
5389 ,p_new_value => l_comp.s_name);
5390 END IF;
5391
5392 IF (l_comp.s_description <> l_comp.w_description) THEN
5393 record_updated_property
5394 (p_component_type => 'AMB_AC'
5395 ,p_component_key => l_key
5396 ,p_property => 'DESCRIPTION'
5397 ,p_old_value => l_comp.w_description
5398 ,p_new_value => l_comp.s_description);
5399 END IF;
5400
5401 IF (l_comp.s_balancing_flag <> l_comp.w_balancing_flag) THEN
5402 record_updated_property
5403 (p_component_type => 'AMB_AC'
5404 ,p_component_key => l_key
5405 ,p_property => 'MAINTAIN_BALANCE'
5406 ,p_old_value => l_comp.w_balancing_flag
5407 ,p_new_value => l_comp.s_balancing_flag);
5408 END IF;
5409
5410 IF (l_comp.s_display_order <> l_comp.w_display_order) THEN
5411 record_updated_property
5412 (p_component_type => 'AMB_AC'
5413 ,p_component_key => l_key
5414 ,p_property => 'DISPLAY_ORDER'
5415 ,p_old_value => l_comp.w_display_order
5416 ,p_new_value => l_comp.s_display_order);
5417 END IF;
5418
5419 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
5420 record_updated_property
5421 (p_component_type => 'AMB_AC'
5422 ,p_component_key => l_key
5423 ,p_property => 'ENABLED'
5424 ,p_old_value => l_comp.w_enabled_flag
5425 ,p_new_value => l_comp.s_enabled_flag
5426 ,p_lookup_type => 'XLA_YES_NO');
5427 END IF;
5428
5429 IF (NVL(l_comp.s_year_end_carry_forward_code,C_CHAR) <>
5430 NVL(l_comp.w_year_end_carry_forward_code,C_CHAR)) THEN
5431 record_updated_property
5432 (p_component_type => 'AMB_AC'
5433 ,p_component_key => l_key
5434 ,p_property => 'YEAR_END_CARRY_FORWARD'
5435 ,p_old_value => l_comp.w_year_end_carry_forward_code
5436 ,p_new_value => l_comp.s_year_end_carry_forward_code
5437 ,p_lookup_type => 'XLA_YEAR_END_CARRY_FORWARD');
5438 END IF;
5439
5440 IF (l_comp.s_display_in_inquiries_flag <> l_comp.w_display_in_inquiries_flag) THEN
5441 record_updated_property
5442 (p_component_type => 'AMB_AC'
5443 ,p_component_key => l_key
5444 ,p_property => 'DISPLAY_IN_INQUIRIES_FLAG'
5445 ,p_old_value => l_comp.w_display_in_inquiries_flag
5446 ,p_new_value => l_comp.s_display_in_inquiries_flag
5447 ,p_lookup_type => 'XLA_YES_NO');
5448 END IF;
5449
5450 IF (l_comp.s_criterion_value_code <> l_comp.w_criterion_value_code) THEN
5451 record_updated_property
5452 (p_component_type => 'AMB_AC'
5453 ,p_component_key => l_key
5454 ,p_property => 'CRITERION_VALUE_CODE'
5455 ,p_old_value => l_comp.w_criterion_value_code
5456 ,p_new_value => l_comp.s_criterion_value_code);
5457 END IF;
5458
5459 record_updated_ac(p_ac_type_code => l_comp.analytical_criterion_type_code
5460 ,p_ac_code => l_comp.analytical_criterion_code
5461 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5462
5463 END LOOP;
5464
5465 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5466 trace(p_msg => 'END LOOP: updated acs',
5467 p_module => l_log_module,
5468 p_level => C_LEVEL_PROCEDURE);
5469 END IF;
5470
5471 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5472 trace(p_msg => 'END of function compare_acs',
5473 p_module => l_log_module,
5474 p_level => C_LEVEL_PROCEDURE);
5475 END IF;
5476
5477 EXCEPTION
5478 WHEN xla_exceptions_pkg.application_exception THEN
5479 RAISE;
5480 WHEN OTHERS THEN
5481 xla_exceptions_pkg.raise_message
5482 (p_location => l_log_module);
5483 END compare_acs;
5484
5485
5489 -- Description:
5486 --=============================================================================
5487 --
5488 -- Name: compare_ac_details
5490 --
5491 --=============================================================================
5492 PROCEDURE compare_ac_details
5493 IS
5494 CURSOR c_comp IS
5495 SELECT ts.analytical_criterion_type_code
5496 ,ts.analytical_criterion_code
5497 ,ts.analytical_detail_code
5498 ,CASE WHEN bw.analytical_detail_code IS NULL
5499 THEN C_MERGE_IMPACT_NEW
5500 ELSE C_MERGE_IMPACT_UPDATED
5501 END merge_impact
5502 ,ts.name s_name
5503 ,tw.name w_name
5504 ,ts.description s_description
5505 ,tw.description w_description
5506 ,bs.grouping_order s_grouping_order
5507 ,bw.grouping_order w_grouping_order
5508 ,bs.data_type_code s_data_type_code
5509 ,bw.data_type_code w_data_type_code
5510 FROM xla_analytical_dtls_b bs
5511 JOIN xla_analytical_hdrs_b hw
5512 ON hw.amb_context_code = g_amb_context_code
5513 AND hw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5514 AND hw.analytical_criterion_code = bs.analytical_criterion_code
5515 JOIN xla_analytical_dtls_tl ts
5516 ON ts.amb_context_code = bs.amb_context_code
5517 AND ts.analytical_criterion_type_code = bs.analytical_criterion_type_code
5518 AND ts.analytical_criterion_code = bs.analytical_criterion_code
5519 AND ts.analytical_detail_code = bs.analytical_detail_code
5520 AND ts.language = USERENV('LANG')
5521 LEFT OUTER JOIN xla_analytical_dtls_b bw
5522 ON bw.amb_context_code = g_amb_context_code
5523 AND bw.analytical_criterion_type_code = bs.analytical_criterion_type_code
5524 AND bw.analytical_criterion_code = bs.analytical_criterion_code
5525 AND bw.analytical_detail_code = bs.analytical_detail_code
5526 LEFT OUTER JOIN xla_analytical_dtls_tl tw
5527 ON tw.amb_context_code = bw.amb_context_code
5528 AND tw.analytical_criterion_type_code = bw.analytical_criterion_type_code
5529 AND tw.analytical_criterion_code = bw.analytical_criterion_code
5530 AND tw.analytical_detail_code = bw.analytical_detail_code
5531 AND tw.language = USERENV('LANG')
5532 WHERE bs.amb_context_code = g_staging_context_code
5533 AND (bw.analytical_detail_code IS NULL OR
5534 NVL(ts.name,C_CHAR) <> NVL(tw.name,C_CHAR) OR
5535 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
5536 NVL(bs.grouping_order,C_NUM) <> NVL(bw.grouping_order,C_NUM) OR
5537 NVL(bs.data_type_code,C_CHAR) <> NVL(bw.data_type_code,C_CHAR));
5538
5539 l_key VARCHAR2(240);
5540 l_log_module VARCHAR2(240);
5541 BEGIN
5542 IF g_log_enabled THEN
5543 l_log_module := C_DEFAULT_MODULE||'.compare_ac_details';
5544 END IF;
5545
5546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5547 trace(p_msg => 'BEGIN of function compare_ac_details',
5548 p_module => l_log_module,
5549 p_level => C_LEVEL_PROCEDURE);
5550 END IF;
5551
5552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5553 trace(p_msg => 'BEGIN LOOP: updated ac details',
5554 p_module => l_log_module,
5555 p_level => C_LEVEL_PROCEDURE);
5556 END IF;
5557
5558 FOR l_comp in c_comp LOOP
5559
5560 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5561 trace(p_msg => 'LOOP: updated ac detail - '||
5562 l_comp.analytical_criterion_type_code||C_CHAR||
5563 l_comp.analytical_criterion_code||C_CHAR||
5564 l_comp.analytical_detail_code||C_CHAR||
5565 l_comp.merge_impact,
5566 p_module => l_log_module,
5567 p_level => C_LEVEL_PROCEDURE);
5568 END IF;
5569
5570 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
5571
5572 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5573 l_comp.analytical_criterion_code||C_CHAR||
5574 l_comp.analytical_detail_code;
5575
5576 IF (l_comp.s_name <> l_comp.w_name) THEN
5577 record_updated_property
5578 (p_component_type => 'AMB_AC_DETAIL'
5579 ,p_component_key => l_key
5580 ,p_property => 'NAME'
5581 ,p_old_value => l_comp.w_name
5582 ,p_new_value => l_comp.s_name);
5583 END IF;
5584
5585 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
5586 record_updated_property
5587 (p_component_type => 'AMB_AC_DETAIL'
5588 ,p_component_key => l_key
5589 ,p_property => 'DESCRIPTION'
5590 ,p_old_value => l_comp.w_description
5591 ,p_new_value => l_comp.s_description);
5592 END IF;
5593
5594 IF (l_comp.s_grouping_order <> l_comp.w_grouping_order) THEN
5595 record_updated_property
5596 (p_component_type => 'AMB_AC_DETAIL'
5597 ,p_component_key => l_key
5598 ,p_property => 'GROUPING_ORDER'
5599 ,p_old_value => l_comp.w_grouping_order
5600 ,p_new_value => l_comp.s_grouping_order);
5601 END IF;
5602
5606 ,p_component_key => l_key
5603 IF (NVL(l_comp.s_data_type_code,C_CHAR) <> NVL(l_comp.w_data_type_code,C_CHAR)) THEN
5604 record_updated_property
5605 (p_component_type => 'AMB_AC_DETAIL'
5607 ,p_property => 'DATA_TYPE'
5608 ,p_old_value => l_comp.w_data_type_code
5609 ,p_new_value => l_comp.s_data_type_code
5610 ,p_lookup_type => 'XLA_DATA_TYPE');
5611 END IF;
5612
5613 END IF;
5614
5615 record_updated_ac_detail
5616 (p_ac_type_code => l_comp.analytical_criterion_type_code
5617 ,p_ac_code => l_comp.analytical_criterion_code
5618 ,p_ac_detail_code => l_comp.analytical_detail_code
5619 ,p_merge_impact => l_comp.merge_impact);
5620
5621 END LOOP;
5622
5623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5624 trace(p_msg => 'END LOOP: updated ac details',
5625 p_module => l_log_module,
5626 p_level => C_LEVEL_PROCEDURE);
5627 END IF;
5628
5629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5630 trace(p_msg => 'END of function compare_ac_details',
5631 p_module => l_log_module,
5632 p_level => C_LEVEL_PROCEDURE);
5633 END IF;
5634
5635 EXCEPTION
5636 WHEN xla_exceptions_pkg.application_exception THEN
5637 RAISE;
5638 WHEN OTHERS THEN
5639 xla_exceptions_pkg.raise_message
5640 (p_location => l_log_module);
5641 END compare_ac_details;
5642
5643 --=============================================================================
5644 --
5645 -- Name: compare_ac_sources
5646 -- Description:
5647 --
5648 --=============================================================================
5649 PROCEDURE compare_ac_sources
5650 IS
5651 CURSOR c_comp IS
5652 SELECT s.analytical_criterion_type_code
5653 , s.analytical_criterion_code
5654 , s.analytical_detail_code
5655 , s.entity_code
5656 , s.event_class_code
5657 , s.application_id
5658 , s.source_type_code s_source_type_code
5659 , s.source_code s_source_code
5660 , s.source_application_id s_source_application_id
5661 , w.source_type_code w_source_type_code
5662 , w.source_code w_source_code
5663 , w.source_application_id w_source_application_id
5664 FROM xla_analytical_sources s
5665 JOIN xla_analytical_dtls_b b
5666 ON b.amb_context_code = g_amb_context_code
5667 AND b.analytical_criterion_type_code = s.analytical_criterion_type_code
5668 AND b.analytical_criterion_code = s.analytical_criterion_code
5669 AND b.analytical_detail_code = s.analytical_detail_code
5670 LEFT OUTER JOIN xla_analytical_sources w
5671 ON w.amb_context_code = g_amb_context_code
5672 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
5673 AND w.analytical_criterion_code = s.analytical_criterion_code
5674 AND w.analytical_detail_code = s.analytical_detail_code
5675 AND w.entity_code = s.entity_code
5676 AND w.event_class_code = s.event_class_code
5677 AND w.application_id = s.application_id
5678 WHERE s.amb_context_code = g_staging_context_code
5679 AND (w.source_application_id IS NULL OR
5680 NVL(w.source_type_code,C_CHAR) <> NVL(s.source_type_code,C_CHAR) OR
5681 NVL(w.source_code,C_CHAR) <> NVL(s.source_code,C_CHAR) OR
5682 NVL(w.source_application_id,C_NUM) <> NVL(s.source_application_id,C_NUM))
5683 UNION
5684 SELECT w.analytical_criterion_type_code
5685 , w.analytical_criterion_code
5686 , w.analytical_detail_code
5687 , w.entity_code
5688 , w.event_class_code
5689 , w.application_id
5690 , NULL
5691 , NULL
5692 , NULL
5693 , w.source_type_code
5694 , w.source_code
5695 , w.source_application_id
5696 FROM xla_analytical_sources w
5697 , xla_analytical_dtls_b b
5698 WHERE w.amb_context_code = g_amb_context_code
5699 AND b.amb_context_code = g_staging_context_code
5700 AND b.analytical_criterion_type_code = w.analytical_criterion_type_code
5701 AND b.analytical_criterion_code = w.analytical_criterion_code
5702 AND b.analytical_detail_code = w.analytical_detail_code
5703 AND NOT EXISTS
5704 (SELECT 1
5705 FROM xla_analytical_sources s
5706 WHERE s.amb_context_code = g_staging_context_code
5707 AND s.analytical_criterion_type_code = w.analytical_criterion_type_code
5708 AND s.analytical_criterion_code = w.analytical_criterion_code
5709 AND s.analytical_detail_code = w.analytical_detail_code
5710 AND s.entity_code = w.entity_code
5711 AND s.event_class_code = w.event_class_code
5712 AND s.application_id = w.application_id);
5713
5714 l_key VARCHAR2(4000);
5715 l_parent_key VARCHAR2(240);
5716 l_log_module VARCHAR2(240);
5717 BEGIN
5718 IF g_log_enabled THEN
5719 l_log_module := C_DEFAULT_MODULE||'.compare_ac_sources';
5720 END IF;
5721
5722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5723 trace(p_msg => 'BEGIN of function compare_ac_sources',
5724 p_module => l_log_module,
5725 p_level => C_LEVEL_PROCEDURE);
5726 END IF;
5727
5728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5732 END IF;
5729 trace(p_msg => 'BEGIN LOOP: updated ac sources',
5730 p_module => l_log_module,
5731 p_level => C_LEVEL_PROCEDURE);
5733
5734 FOR l_comp IN c_comp LOOP
5735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5736 trace(p_msg => 'LOOP 1: updated ac sources - '||l_comp.analytical_criterion_type_code,
5737 p_module => l_log_module,
5738 p_level => C_LEVEL_PROCEDURE);
5739 END IF;
5740
5741 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
5742 l_comp.analytical_criterion_code||C_CHAR||
5743 l_comp.analytical_detail_code||C_CHAR||
5744 l_comp.entity_code||C_CHAR||
5745 l_comp.event_class_code||C_CHAR||
5746 l_comp.application_id;
5747
5748 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5749 trace(p_msg => 'LOOP: updated ac sources - '||l_key,
5750 p_module => l_log_module,
5751 p_level => C_LEVEL_PROCEDURE);
5752 END IF;
5753
5754 record_updated_source(p_component_type => 'AMB_AC_SOURCE'
5755 ,p_component_key => l_key
5756 ,p_property => 'SOURCE_CODE'
5757 ,p_old_source_app_id => l_comp.w_source_application_id
5758 ,p_old_source_type_code => l_comp.w_source_type_code
5759 ,p_old_source_code => l_comp.w_source_code
5760 ,p_new_source_app_id => l_comp.s_source_application_id
5761 ,p_new_source_type_code => l_comp.s_source_type_code
5762 ,p_new_source_code => l_comp.s_source_code);
5763
5764 record_updated_component
5765 (p_parent_component_type => 'AMB_AC_DETAIL'
5766 ,p_parent_component_key => l_comp.analytical_criterion_type_code||C_CHAR||
5767 l_comp.analytical_criterion_code||C_CHAR||
5768 l_comp.analytical_detail_code
5769 ,p_component_type => 'AMB_AC_SOURCE'
5770 ,p_component_key => l_key
5771 ,p_merge_impact => C_MERGE_IMPACT_UPDATED
5772 ,p_event_class_code => l_comp.event_class_code
5773 ,p_event_type_code => NULL
5774 ,p_component_owner_code => NULL
5775 ,p_component_code => l_comp.event_class_code);
5776
5777 record_updated_ac_detail
5778 (p_ac_type_code => l_comp.analytical_criterion_type_code
5779 ,p_ac_code => l_comp.analytical_criterion_code
5780 ,p_ac_detail_code => l_comp.analytical_detail_code
5781 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
5782
5783 END LOOP;
5784
5785 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5786 trace(p_msg => 'END LOOP: updated ac sources',
5787 p_module => l_log_module,
5788 p_level => C_LEVEL_PROCEDURE);
5789 END IF;
5790
5791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5792 trace(p_msg => 'END of function compare_ac_sources',
5793 p_module => l_log_module,
5794 p_level => C_LEVEL_PROCEDURE);
5795 END IF;
5796
5797 EXCEPTION
5798 WHEN xla_exceptions_pkg.application_exception THEN
5799 RAISE;
5800 WHEN OTHERS THEN
5801 xla_exceptions_pkg.raise_message
5802 (p_location => l_log_module);
5803 END compare_ac_sources;
5804
5805 --=============================================================================
5806 --
5807 -- Name: compare_jlt_acct_attrs
5808 -- Description:
5809 --
5810 --=============================================================================
5811 PROCEDURE compare_jlt_acct_attrs
5812 IS
5813 CURSOR c_comp IS
5814 SELECT s.event_class_code
5815 , s.accounting_line_type_code
5816 , s.accounting_line_code
5817 , s.accounting_attribute_code
5818 , CASE WHEN w.application_id IS NULL
5819 THEN C_MERGE_IMPACT_NEW
5820 ELSE C_MERGE_IMPACT_UPDATED
5821 END merge_impact
5822 , s.source_application_id s_source_application_id
5823 , w.source_application_id w_source_application_id
5824 , s.source_type_code s_source_type_code
5825 , w.source_type_code w_source_type_code
5826 , s.source_code s_source_code
5827 , w.source_code w_source_code
5828 , s.event_class_default_flag s_event_class_default_flag
5829 , w.event_class_default_flag w_event_class_default_flag
5830 FROM xla_jlt_acct_attrs s
5831 JOIN xla_acct_line_types_b b
5832 ON b.application_id = g_application_id
5833 AND b.amb_context_code = g_amb_context_code
5834 AND b.event_class_code = s.event_class_code
5835 AND b.accounting_line_type_code = s.accounting_line_type_code
5836 AND b.accounting_line_code = s.accounting_line_code
5837 LEFT OUTER JOIN xla_jlt_acct_attrs w
5838 ON w.application_id = g_application_id
5839 AND w.amb_context_code = g_amb_context_code
5840 AND w.event_class_code = s.event_class_code
5841 AND w.accounting_line_type_code = s.accounting_line_type_code
5842 AND w.accounting_line_code = s.accounting_line_code
5843 AND w.accounting_attribute_code = s.accounting_attribute_code
5844 WHERE s.application_id = g_application_id
5845 AND s.amb_context_code = g_staging_context_code
5846 AND (w.application_id IS NULL OR
5847 NVL(s.event_class_default_flag,C_CHAR) <> NVL(w.event_class_default_flag,C_CHAR) OR
5848 NVL(s.source_application_id,C_NUM) <> NVL(w.source_application_id,C_NUM) OR
5852 l_key VARCHAR2(240);
5849 NVL(s.source_type_code,C_CHAR) <> NVL(w.source_type_code,C_CHAR) OR
5850 NVL(s.source_code,C_CHAR) <> NVL(w.source_code,C_CHAR));
5851
5853 l_log_module VARCHAR2(240);
5854 BEGIN
5855 IF g_log_enabled THEN
5856 l_log_module := C_DEFAULT_MODULE||'.compare_jlt_acct_attrs';
5857 END IF;
5858
5859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5860 trace(p_msg => 'BEGIN of function compare_jlt_acct_attrs',
5861 p_module => l_log_module,
5862 p_level => C_LEVEL_PROCEDURE);
5863 END IF;
5864
5865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5866 trace(p_msg => 'BEGIN LOOP: updated jlt acct attrs',
5867 p_module => l_log_module,
5868 p_level => C_LEVEL_PROCEDURE);
5869 END IF;
5870
5871 FOR l_comp IN c_comp LOOP
5872
5873 l_key := l_comp.event_class_code||C_CHAR||
5874 l_comp.accounting_line_type_code||C_CHAR||
5875 l_comp.accounting_line_code||C_CHAR||
5876 l_comp.accounting_attribute_code;
5877
5878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5879 trace(p_msg => 'LOOP: updated jlt acct attr - '||l_comp.merge_impact,
5880 p_module => l_log_module,
5881 p_level => C_LEVEL_PROCEDURE);
5882 trace(p_msg => 'l_key = '||l_key,
5883 p_module => l_log_module,
5884 p_level => C_LEVEL_PROCEDURE);
5885 END IF;
5886
5887 record_updated_jlt_acct_attr
5888 (p_event_class_code => l_comp.event_class_code
5889 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
5890 ,p_accounting_line_code => l_comp.accounting_line_code
5891 ,p_accounting_attribute_code => l_comp.accounting_attribute_code
5892 ,p_merge_impact => l_comp.merge_impact);
5893
5894 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
5895
5896 IF (l_comp.s_event_class_default_flag <> l_comp.w_event_class_default_flag) THEN
5897 record_updated_property
5898 (p_component_type => 'AMB_JLT_ACCT_ATTR'
5899 ,p_component_key => l_key
5900 ,p_property => 'EVENT_CLASS_DEFAULT_FLAG'
5901 ,p_old_value => l_comp.w_event_class_default_flag
5902 ,p_new_value => l_comp.s_event_class_default_flag
5903 ,p_lookup_type => 'XLA_YES_NO');
5904 END IF;
5905
5906 IF (NVL(l_comp.w_source_application_id,C_NUM) <> NVL(l_comp.s_source_application_id,C_NUM) OR
5907 NVL(l_comp.w_source_type_code,C_CHAR) <> NVL(l_comp.s_source_type_code,C_CHAR) OR
5908 NVL(l_comp.w_source_code,C_CHAR) <> NVL(l_comp.s_source_code,C_CHAR)) THEN
5909 record_updated_source(p_component_type => 'AMB_JLT_ACCT_ATTR'
5910 ,p_component_key => l_key
5911 ,p_property => 'SOURCE_CODE'
5912 ,p_old_source_app_id => l_comp.w_source_application_id
5913 ,p_old_source_type_code => l_comp.w_source_type_code
5914 ,p_old_source_code => l_comp.w_source_code
5915 ,p_new_source_app_id => l_comp.s_source_application_id
5916 ,p_new_source_type_code => l_comp.s_source_type_code
5917 ,p_new_source_code => l_comp.s_source_code);
5918 END IF;
5919 END IF;
5920
5921 END LOOP;
5922
5923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5924 trace(p_msg => 'END LOOP: updated jlt acct attrs',
5925 p_module => l_log_module,
5926 p_level => C_LEVEL_PROCEDURE);
5927 END IF;
5928
5929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5930 trace(p_msg => 'END of function compare_jlt_acct_attrs',
5931 p_module => l_log_module,
5932 p_level => C_LEVEL_PROCEDURE);
5933 END IF;
5934
5935 EXCEPTION
5936 WHEN xla_exceptions_pkg.application_exception THEN
5937 RAISE;
5938 WHEN OTHERS THEN
5939 xla_exceptions_pkg.raise_message
5940 (p_location => l_log_module);
5941 END compare_jlt_acct_attrs;
5942
5943 --=============================================================================
5944 --
5945 -- Name: compare_jlts
5946 -- Description:
5947 --
5948 --=============================================================================
5949 PROCEDURE compare_jlts
5950 IS
5951 CURSOR c_comp IS
5952 SELECT ts.entity_code
5953 ,ts.event_class_code
5954 ,ts.accounting_line_type_code acct_line_type_code
5955 ,ts.accounting_line_code acct_line_code
5956 ,ts.name s_name
5957 ,tw.name w_name
5958 ,ts.description s_description
5959 ,tw.description w_description
5960 ,s.accounting_class_code s_acct_class_code
5961 ,w.accounting_class_code w_acct_class_code
5962 ,s.enabled_flag s_enabled_flag
5963 ,w.enabled_flag w_enabled_flag
5964 ,s.accounting_entry_type_code s_ae_type_code
5965 ,w.accounting_entry_type_code w_ae_type_code
5966 ,s.natural_side_code s_natural_side_code
5967 ,w.natural_side_code w_natural_side_code
5968 ,s.switch_side_flag s_switch_side_flag
5969 ,w.switch_side_flag w_switch_side_flag
5970 ,s.merge_duplicate_code s_merge_duplicate_code
5971 ,w.merge_duplicate_code w_merge_duplicate_code
5972 ,s.transaction_coa_id s_trx_coa_id
5973 ,w.transaction_coa_id w_trx_coa_id
5974 ,s.gl_transfer_mode_code s_gl_transfer_mode_code
5978 ,s.business_class_code s_business_class_code
5975 ,w.gl_transfer_mode_code w_gl_transfer_mode_code
5976 ,s.business_method_code s_business_method_code
5977 ,w.business_method_code w_business_method_code
5979 ,w.business_class_code w_business_class_code
5980 ,s.rounding_class_code s_rounding_class_code
5981 ,w.rounding_class_code w_rounding_class_code
5982 ,s.encumbrance_type_id s_encumbrance_type_id
5983 ,w.encumbrance_type_id w_encumbrance_type_id
5984 ,s.mpa_option_code s_mpa_option_code
5985 ,w.mpa_option_code w_mpa_option_code
5986 FROM xla_acct_line_types_b s
5987 JOIN xla_acct_line_types_tl ts
5988 ON ts.application_id = s.application_id
5989 AND ts.amb_context_code = s.amb_context_code
5990 AND ts.entity_code = s.entity_code
5991 AND ts.event_class_code = s.event_class_code
5992 AND ts.accounting_line_type_code = s.accounting_line_type_code
5993 AND ts.accounting_line_code = s.accounting_line_code
5994 AND ts.accounting_line_code = s.accounting_line_code
5995 AND ts.language = USERENV('LANG')
5996 JOIN xla_acct_line_types_b w
5997 ON w.application_id = s.application_id
5998 AND w.entity_code = s.entity_code
5999 AND w.event_class_code = s.event_class_code
6000 AND w.accounting_line_type_code = s.accounting_line_type_code
6001 AND w.accounting_line_code = s.accounting_line_code
6002 JOIN xla_acct_line_types_tl tw
6003 ON tw.application_id = w.application_id
6004 AND tw.amb_context_code = w.amb_context_code
6005 AND tw.entity_code = w.entity_code
6006 AND tw.event_class_code = w.event_class_code
6007 AND tw.accounting_line_type_code = w.accounting_line_type_code
6008 AND tw.accounting_line_code = w.accounting_line_code
6009 AND tw.language = USERENV('LANG')
6010 WHERE s.amb_context_code = g_staging_context_code
6011 AND w.amb_context_code = g_amb_context_code;
6012
6013 l_key VARCHAR2(240);
6014 l_staging_condition VARCHAR2(32767); --Bug 12416268 Increased length from 2000 to 32767
6015 l_working_condition VARCHAR2(32767); --Bug 12416268 Increased length from 2000 to 32767
6016 l_updated BOOLEAN;
6017
6018 l_log_module VARCHAR2(240);
6019 BEGIN
6020 IF g_log_enabled THEN
6021 l_log_module := C_DEFAULT_MODULE||'.compare_jlts';
6022 END IF;
6023
6024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6025 trace(p_msg => 'BEGIN of function compare_jlts',
6026 p_module => l_log_module,
6027 p_level => C_LEVEL_PROCEDURE);
6028 END IF;
6029
6030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6031 trace(p_msg => 'BEGIN LOOP: updated jlt',
6032 p_module => l_log_module,
6033 p_level => C_LEVEL_PROCEDURE);
6034 END IF;
6035
6036 l_updated := FALSE;
6037 FOR l_comp in c_comp LOOP
6038
6039 l_key := l_comp.event_class_code||C_CHAR||
6040 l_comp.acct_line_type_code||C_CHAR||
6041 l_comp.acct_line_code;
6042
6043 IF (l_comp.s_name <> l_comp.w_name) THEN
6044 l_updated := TRUE;
6045 record_updated_property
6046 (p_component_type => 'AMB_JLT'
6047 ,p_component_key => l_key
6048 ,p_property => 'NAME'
6049 ,p_old_value => l_comp.w_name
6050 ,p_new_value => l_comp.s_name);
6051 END IF;
6052
6053 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
6054 l_updated := TRUE;
6055 record_updated_property
6056 (p_component_type => 'AMB_JLT'
6057 ,p_component_key => l_key
6058 ,p_property => 'DESCRIPTION'
6059 ,p_old_value => l_comp.w_description
6060 ,p_new_value => l_comp.s_description);
6061 END IF;
6062
6063 IF (l_comp.s_acct_class_code <> l_comp.w_acct_class_code) THEN
6064 l_updated := TRUE;
6065 record_updated_property
6066 (p_component_type => 'AMB_JLT'
6067 ,p_component_key => l_key
6068 ,p_property => 'ACCOUNTING_CLASS'
6069 ,p_old_value => l_comp.w_acct_class_code
6070 ,p_new_value => l_comp.s_acct_class_code
6071 ,p_lookup_type => 'XLA_ACCOUNTING_CLASS');
6072 END IF;
6073
6074 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
6075 l_updated := TRUE;
6076 record_updated_property
6077 (p_component_type => 'AMB_JLT'
6078 ,p_component_key => l_key
6079 ,p_property => 'ENABLED'
6080 ,p_old_value => l_comp.w_enabled_flag
6081 ,p_new_value => l_comp.s_enabled_flag
6082 ,p_lookup_type => 'XLA_YES_NO');
6083 END IF;
6084
6085 IF (l_comp.s_ae_type_code <> l_comp.w_ae_type_code) THEN
6086 l_updated := TRUE;
6087 record_updated_property
6088 (p_component_type => 'AMB_JLT'
6089 ,p_component_key => l_key
6090 ,p_property => 'ACCOUNTING_ENTRY_TYPE'
6091 ,p_old_value => l_comp.w_ae_type_code
6092 ,p_new_value => l_comp.s_ae_type_code
6093 ,p_lookup_type => 'XLA_BALANCE_TYPE');
6094 END IF;
6095
6099 (p_component_type => 'AMB_JLT'
6096 IF (l_comp.s_natural_side_code <> l_comp.w_natural_side_code) THEN
6097 l_updated := TRUE;
6098 record_updated_property
6100 ,p_component_key => l_key
6101 ,p_property => 'NATURAL_SIDE'
6102 ,p_old_value => l_comp.w_natural_side_code
6103 ,p_new_value => l_comp.s_natural_side_code
6104 ,p_lookup_type => 'XLA_ACCT_NATURAL_SIDE');
6105 END IF;
6106
6107 IF (NVL(l_comp.s_switch_side_flag,C_CHAR) <> NVL(l_comp.w_switch_side_flag,C_CHAR)) THEN
6108 l_updated := TRUE;
6109 record_updated_property
6110 (p_component_type => 'AMB_JLT'
6111 ,p_component_key => l_key
6112 ,p_property => 'SWITCH_SIDE'
6113 ,p_old_value => l_comp.w_switch_side_flag
6114 ,p_new_value => l_comp.s_switch_side_flag
6115 ,p_lookup_type => 'XLA_YES_NO');
6116 END IF;
6117
6118 IF (l_comp.s_merge_duplicate_code <> l_comp.w_merge_duplicate_code) THEN
6119 l_updated := TRUE;
6120 record_updated_property
6121 (p_component_type => 'AMB_JLT'
6122 ,p_component_key => l_key
6123 ,p_property => 'MERGE_DUPLICATE'
6124 ,p_old_value => l_comp.w_merge_duplicate_code
6125 ,p_new_value => l_comp.s_merge_duplicate_code
6126 ,p_lookup_type => 'XLA_MERGE_MATCHING_TYPE');
6127 END IF;
6128
6129 IF (NVL(l_comp.s_trx_coa_id,C_NUM) <> NVL(l_comp.w_trx_coa_id,C_NUM)) THEN
6130 l_updated := TRUE;
6131 record_updated_property
6132 (p_component_type => 'AMB_JLT'
6133 ,p_component_key => l_key
6134 ,p_property => 'TRANSACTION_COA'
6135 ,p_old_value => l_comp.w_trx_coa_id
6136 ,p_new_value => l_comp.s_trx_coa_id);
6137 END IF;
6138
6139 IF (l_comp.s_gl_transfer_mode_code <> l_comp.w_gl_transfer_mode_code) THEN
6140 l_updated := TRUE;
6141 record_updated_property
6142 (p_component_type => 'AMB_JLT'
6143 ,p_component_key => l_key
6144 ,p_property => 'GL_TRANSFER_MODE'
6145 ,p_old_value => l_comp.w_gl_transfer_mode_code
6146 ,p_new_value => l_comp.s_gl_transfer_mode_code
6147 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6148 END IF;
6149
6150 IF (l_comp.s_business_method_code <> l_comp.w_business_method_code) THEN
6151 l_updated := TRUE;
6152 record_updated_property
6153 (p_component_type => 'AMB_JLT'
6154 ,p_component_key => l_key
6155 ,p_property => 'BUSINESS_METHOD'
6156 ,p_old_value => l_comp.w_business_method_code
6157 ,p_new_value => l_comp.s_business_method_code
6158 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6159 END IF;
6160
6161 IF (NVL(l_comp.s_business_class_code,C_CHAR) <> NVL(l_comp.w_business_class_code,C_CHAR)) THEN
6162 l_updated := TRUE;
6163 record_updated_property
6164 (p_component_type => 'AMB_JLT'
6165 ,p_component_key => l_key
6166 ,p_property => 'BUSINESS_CLASS'
6167 ,p_old_value => l_comp.w_business_class_code
6168 ,p_new_value => l_comp.s_business_class_code
6169 ,p_lookup_type => 'XLA_ACCT_TRANSFER_MODE');
6170 END IF;
6171
6172 IF (NVL(l_comp.s_encumbrance_type_id,C_NUM) <> NVL(l_comp.w_encumbrance_type_id,C_NUM)) THEN
6173 l_updated := TRUE;
6174 record_updated_property
6175 (p_component_type => 'AMB_JLT'
6176 ,p_component_key => l_key
6177 ,p_property => 'ENCUMBRANCE_TYPE'
6178 ,p_old_value => l_comp.w_encumbrance_type_id
6179 ,p_new_value => l_comp.s_encumbrance_type_id);
6180 END IF;
6181
6182 IF (NVL(l_comp.s_mpa_option_code,C_CHAR) <> NVL(l_comp.w_mpa_option_code,C_CHAR)) THEN
6183 l_updated := TRUE;
6184 record_updated_property
6185 (p_component_type => 'AMB_JLT'
6186 ,p_component_key => l_key
6187 ,p_property => 'MPA_OPTION_CODE'
6188 ,p_old_value => l_comp.w_mpa_option_code
6189 ,p_new_value => l_comp.s_mpa_option_code
6190 ,p_lookup_type => 'XLA_MPA_OPTION');
6191 END IF;
6192
6193 IF (NVL(l_comp.s_rounding_class_code,C_CHAR) <> NVL(l_comp.w_rounding_class_code,C_CHAR)) THEN
6194 l_updated := TRUE;
6195 record_updated_property
6196 (p_component_type => 'AMB_JLT'
6197 ,p_component_key => l_key
6198 ,p_property => 'ROUNDING_CLASS'
6199 ,p_old_value => l_comp.w_rounding_class_code
6200 ,p_new_value => l_comp.s_rounding_class_code
6201 ,p_lookup_type => 'XLA_ACCOUNTING_CLASS');
6202 END IF;
6203
6204 -- Bug 1241628
6205 -- The variable can't exceed 32767, so we are restricting the same below.
6206 l_working_condition := substr(xla_conditions_pkg.display_condition
6207 (p_application_id => g_application_id
6208 ,p_amb_context_code => g_amb_context_code
6209 ,p_entity_code => l_comp.entity_code
6210 ,p_event_class_code => l_comp.event_class_code
6211 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6212 ,p_accounting_line_code => l_comp.acct_line_code
6216 -- Bug 1241628
6213 ,p_chart_of_accounts_id => l_comp.w_trx_coa_id
6214 ,p_context => 'A'),1, 32767);
6215
6217 -- The variable can't exceed 32767, so we are restricting the same below.
6218 l_staging_condition := substr(xla_conditions_pkg.display_condition
6219 (p_application_id => g_application_id
6220 ,p_amb_context_code => g_staging_context_code
6221 ,p_entity_code => l_comp.entity_code
6222 ,p_event_class_code => l_comp.event_class_code
6223 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6224 ,p_accounting_line_code => l_comp.acct_line_code
6225 ,p_chart_of_accounts_id => l_comp.s_trx_coa_id
6226 ,p_context => 'A'),1, 32767);
6227
6228 IF (l_working_condition <> l_staging_condition) THEN
6229 l_updated := TRUE;
6230 record_updated_property
6231 (p_component_type => 'AMB_JLT'
6232 ,p_component_key => l_key
6233 ,p_property => 'CONDITION'
6234 ,p_old_value => l_working_condition
6235 ,p_new_value => l_staging_condition);
6236 END IF;
6237
6238 IF (l_updated) THEN
6239 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6240 trace(p_msg => 'LOOP: updated ac sources - '||l_key,
6241 p_module => l_log_module,
6242 p_level => C_LEVEL_PROCEDURE);
6243 END IF;
6244
6245 record_updated_jlt(p_event_class_code => l_comp.event_class_code
6246 ,p_accounting_line_type_code => l_comp.acct_line_type_code
6247 ,p_accounting_line_code => l_comp.acct_line_code);
6248
6249 l_updated := FALSE;
6250 END IF;
6251
6252 END LOOP;
6253
6254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6255 trace(p_msg => 'END LOOP: updated jlt',
6256 p_module => l_log_module,
6257 p_level => C_LEVEL_PROCEDURE);
6258 END IF;
6259
6260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6261 trace(p_msg => 'END of function compare_jlts',
6262 p_module => l_log_module,
6263 p_level => C_LEVEL_PROCEDURE);
6264 END IF;
6265
6266 EXCEPTION
6267 WHEN xla_exceptions_pkg.application_exception THEN
6268 RAISE;
6269 WHEN OTHERS THEN
6270 xla_exceptions_pkg.raise_message
6271 (p_location => l_log_module);
6272 END compare_jlts;
6273
6274 --=============================================================================
6275 --
6276 -- Name: compare_line_adr_assgns
6277 -- Description:
6278 --
6279 --=============================================================================
6280 PROCEDURE compare_line_adr_assgns
6281 IS
6282 CURSOR c_comp IS
6283 SELECT s.event_class_code
6284 , s.event_type_code
6285 , s.line_definition_owner_code
6286 , s.line_definition_code
6287 , s.accounting_line_type_code
6288 , s.accounting_line_code
6289 , s.flexfield_segment_code
6290 , s.side_code
6291 , l.accounting_coa_id
6292 , CASE WHEN w.application_id IS NULL
6293 THEN C_MERGE_IMPACT_NEW
6294 ELSE C_MERGE_IMPACT_UPDATED
6295 END merge_impact
6296 , s.segment_rule_appl_id s_segment_rule_appl_id
6297 , w.segment_rule_appl_id w_segment_rule_appl_id
6298 , s.segment_rule_type_code s_segment_rule_type_code
6299 , w.segment_rule_type_code w_segment_rule_type_code
6300 , s.segment_rule_code s_segment_rule_code
6301 , w.segment_rule_code w_segment_rule_code
6302 , s.inherit_adr_flag s_inherit_adr_flag
6303 , w.inherit_adr_flag w_inherit_adr_flag
6304 FROM xla_line_defn_adr_assgns s
6305 JOIN xla_line_definitions_b l
6306 ON l.application_id = g_application_id
6307 AND l.amb_context_code = g_amb_context_code
6308 AND l.event_class_code = s.event_class_code
6309 AND l.event_type_code = s.event_type_code
6310 AND l.line_definition_owner_code = s.line_definition_owner_code
6311 AND l.line_definition_code = s.line_definition_code
6312 JOIN xla_line_defn_jlt_assgns b
6313 ON b.application_id = g_application_id
6314 AND b.amb_context_code = g_amb_context_code
6315 AND b.event_class_code = s.event_class_code
6316 AND b.event_type_code = s.event_type_code
6317 AND b.line_definition_owner_code = s.line_definition_owner_code
6318 AND b.line_definition_code = s.line_definition_code
6319 AND b.accounting_line_type_code = s.accounting_line_type_code
6320 AND b.accounting_line_code = s.accounting_line_code
6321 LEFT OUTER JOIN xla_line_defn_adr_assgns w
6322 ON w.application_id = g_application_id
6323 AND w.amb_context_code = g_amb_context_code
6324 AND w.event_class_code = s.event_class_code
6325 AND w.event_type_code = s.event_type_code
6326 AND w.line_definition_owner_code = s.line_definition_owner_code
6327 AND w.line_definition_code = s.line_definition_code
6328 AND w.accounting_line_type_code = s.accounting_line_type_code
6329 AND w.accounting_line_code = s.accounting_line_code
6330 AND w.flexfield_segment_code = s.flexfield_segment_code
6331 --Bug 11783068 : Added side_code condition.
6332 AND w.side_code = s.side_code
6333 WHERE s.application_id = g_application_id
6337 NVL(s.segment_rule_appl_id,C_NUM) <> NVL(w.segment_rule_appl_id,C_NUM) OR
6334 AND s.amb_context_code = g_staging_context_code
6335 AND (w.application_id IS NULL OR
6336 s.inherit_adr_flag <> w.inherit_adr_flag OR
6338 NVL(s.segment_rule_type_code,C_CHAR) <> NVL(w.segment_rule_type_code,C_CHAR) OR
6339 NVL(s.segment_rule_code,C_CHAR) <> NVL(w.segment_rule_code,C_CHAR));
6340
6341 l_key VARCHAR2(240);
6342 l_parent_key VARCHAR2(240);
6343 l_log_module VARCHAR2(240);
6344 BEGIN
6345 IF g_log_enabled THEN
6346 l_log_module := C_DEFAULT_MODULE||'.compare_line_adr_assgns';
6347 END IF;
6348
6349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6350 trace(p_msg => 'BEGIN of function compare_line_adr_assgns',
6351 p_module => l_log_module,
6352 p_level => C_LEVEL_PROCEDURE);
6353 END IF;
6354
6355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6356 trace(p_msg => 'BEGIN LOOP: updated line adr assgns',
6357 p_module => l_log_module,
6358 p_level => C_LEVEL_PROCEDURE);
6359 END IF;
6360
6361 FOR l_comp IN c_comp LOOP
6362
6363 l_parent_key := l_comp.event_class_code||C_CHAR||
6364 l_comp.event_type_code||C_CHAR||
6365 l_comp.line_definition_owner_code||C_CHAR||
6366 l_comp.line_definition_code||C_CHAR||
6367 l_comp.accounting_line_type_code||C_CHAR||
6368 l_comp.accounting_line_code;
6369
6370 l_key := l_parent_key||C_CHAR||
6371 l_comp.flexfield_segment_code||C_CHAR||
6372 l_comp.side_code;
6373
6374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6375 trace(p_msg => 'LOOP: updated line adr assgn - '||l_key,
6376 p_module => l_log_module,
6377 p_level => C_LEVEL_PROCEDURE);
6378 END IF;
6379
6380 IF (NOT key_exists('LNADR'||C_CHAR||l_key)) THEN
6381 record_updated_component
6382 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
6383 ,p_parent_component_key => l_parent_key
6384 ,p_component_type => 'AMB_ADR_ASSGN'
6385 ,p_component_key => l_key
6386 ,p_merge_impact => l_comp.merge_impact
6387 ,p_component_owner_code => l_comp.accounting_coa_id
6388 ,p_component_code => l_comp.flexfield_segment_code);
6389
6390 record_updated_line_assgn
6391 (p_event_class_code => l_comp.event_class_code
6392 ,p_event_type_code => l_comp.event_type_code
6393 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6394 ,p_line_definition_code => l_comp.line_definition_code
6395 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6396 ,p_accounting_line_code => l_comp.accounting_line_code
6397 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6398
6399 END IF;
6400
6401 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
6402
6403 IF (l_comp.w_inherit_adr_flag <> l_comp.s_inherit_adr_flag) THEN
6404 record_updated_property
6405 (p_component_type => 'AMB_ADR_ASSGN'
6406 ,p_component_key => l_key
6407 ,p_property => 'INHERIT_ADR_FLAG'
6408 ,p_old_value => l_comp.w_inherit_adr_flag
6409 ,p_new_value => l_comp.s_inherit_adr_flag
6410 ,p_lookup_type => 'XLA_YES_NO');
6411
6412 END IF;
6413
6414 IF (NVL(l_comp.w_segment_rule_appl_id,C_NUM) <> NVL(l_comp.s_segment_rule_appl_id,C_NUM) OR
6415 NVL(l_comp.w_segment_rule_type_code,C_CHAR) <> NVL(l_comp.s_segment_rule_type_code,C_CHAR) OR
6416 NVL(l_comp.w_segment_rule_code,C_CHAR) <> NVL(l_comp.s_segment_rule_code,C_CHAR)) THEN
6417
6418 l_parent_key := l_key;
6419
6420 IF (l_comp.s_segment_rule_code IS NOT NULL) THEN
6421
6422 record_updated_component
6423 (p_parent_component_type => 'AMB_ADR_ASSGN'
6424 ,p_parent_component_key => l_parent_key
6425 ,p_component_type => 'AMB_ADR'
6426 ,p_component_key => l_comp.s_segment_rule_type_code||C_CHAR||
6427 l_comp.s_segment_rule_code
6428 ,p_merge_impact => C_MERGE_IMPACT_NEW
6429 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
6430 ,p_component_owner_code => l_comp.s_segment_rule_type_code
6431 ,p_component_code => l_comp.s_segment_rule_code);
6432 END IF;
6433
6434 IF (l_comp.w_segment_rule_code IS NOT NULL) THEN
6435
6436 record_updated_component
6437 (p_parent_component_type => 'AMB_ADR_ASSGN'
6438 ,p_parent_component_key => l_parent_key
6439 ,p_component_type => 'AMB_ADR'
6440 ,p_component_key => l_comp.w_segment_rule_type_code||C_CHAR||
6441 l_comp.w_segment_rule_code
6442 ,p_merge_impact => C_MERGE_IMPACT_DELETED
6443 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
6444 ,p_component_owner_code => l_comp.w_segment_rule_type_code
6445 ,p_component_code => l_comp.w_segment_rule_code);
6446 END IF;
6447 END IF;
6448 END IF;
6449
6450 END LOOP;
6451
6452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6453 trace(p_msg => 'END LOOP: updated line adr assgns',
6454 p_module => l_log_module,
6455 p_level => C_LEVEL_PROCEDURE);
6456 END IF;
6457
6461 p_level => C_LEVEL_PROCEDURE);
6458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6459 trace(p_msg => 'END of function compare_line_adr_assgns',
6460 p_module => l_log_module,
6462 END IF;
6463
6464 EXCEPTION
6465 WHEN xla_exceptions_pkg.application_exception THEN
6466 RAISE;
6467 WHEN OTHERS THEN
6468 xla_exceptions_pkg.raise_message
6469 (p_location => l_log_module);
6470 END compare_line_adr_assgns;
6471
6472
6473 --=============================================================================
6474 --
6475 -- Name: compare_line_ac_assgns
6476 -- Description:
6477 --
6478 --=============================================================================
6479 PROCEDURE compare_line_ac_assgns
6480 IS
6481 CURSOR c_comp IS
6482 SELECT s.event_class_code
6483 , s.event_type_code
6484 , s.line_definition_owner_code
6485 , s.line_definition_code
6486 , s.accounting_line_type_code
6487 , s.accounting_line_code
6488 , s.analytical_criterion_type_code
6489 , s.analytical_criterion_code
6490 , C_MERGE_IMPACT_NEW merge_impact
6491 FROM xla_line_defn_ac_assgns s
6492 , xla_line_defn_jlt_assgns b
6493 WHERE s.application_id = g_application_id
6494 AND s.amb_context_code = g_staging_context_code
6495 AND b.application_id = g_application_id
6496 AND b.amb_context_code = g_amb_context_code
6497 AND b.event_class_code = s.event_class_code
6498 AND b.event_type_code = s.event_type_code
6499 AND b.line_definition_owner_code = s.line_definition_owner_code
6500 AND b.line_definition_code = s.line_definition_code
6501 AND b.accounting_line_type_code = s.accounting_line_type_code
6502 AND b.accounting_line_code = s.accounting_line_code
6503 AND NOT EXISTS
6504 (SELECT 1
6505 FROM xla_line_defn_ac_assgns w
6506 WHERE w.application_id = g_application_id
6507 AND w.amb_context_code = g_amb_context_code
6508 AND w.event_class_code = s.event_class_code
6509 AND w.event_type_code = s.event_type_code
6510 AND w.line_definition_owner_code = s.line_definition_owner_code
6511 AND w.line_definition_code = s.line_definition_code
6512 AND w.accounting_line_type_code = s.accounting_line_type_code
6513 AND w.accounting_line_code = s.accounting_line_code
6514 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
6515 AND w.analytical_criterion_code = s.analytical_criterion_code);
6516
6517 l_parent_key VARCHAR2(240);
6518 l_key VARCHAR2(240);
6519 l_log_module VARCHAR2(240);
6520 BEGIN
6521 IF g_log_enabled THEN
6522 l_log_module := C_DEFAULT_MODULE||'.compare_line_ac_assgns';
6523 END IF;
6524
6525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6526 trace(p_msg => 'BEGIN of function compare_line_ac_assgns',
6527 p_module => l_log_module,
6528 p_level => C_LEVEL_PROCEDURE);
6529 END IF;
6530
6531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6532 trace(p_msg => 'BEGIN LOOP: updated line ac assgns',
6533 p_module => l_log_module,
6534 p_level => C_LEVEL_PROCEDURE);
6535 END IF;
6536
6537 FOR l_comp IN c_comp LOOP
6538
6539 l_parent_key := l_comp.event_class_code||C_CHAR||
6540 l_comp.event_type_code||C_CHAR||
6541 l_comp.line_definition_owner_code||C_CHAR||
6542 l_comp.line_definition_code||C_CHAR||
6543 l_comp.accounting_line_type_code||C_CHAR||
6544 l_comp.accounting_line_code;
6545
6546 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
6547 l_comp.analytical_criterion_code;
6548
6549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6550 trace(p_msg => 'LOOP: updated line ac assgn',
6551 p_module => l_log_module,
6552 p_level => C_LEVEL_PROCEDURE);
6553 trace(p_msg => 'l_parent_key = '||l_parent_key,
6554 p_module => l_log_module,
6555 p_level => C_LEVEL_PROCEDURE);
6556 trace(p_msg => 'l_key = '||l_key,
6557 p_module => l_log_module,
6558 p_level => C_LEVEL_PROCEDURE);
6559 END IF;
6560
6561 record_updated_component
6562 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
6563 ,p_parent_component_key => l_parent_key
6564 ,p_component_type => 'AMB_AC'
6565 ,p_component_key => l_key
6566 ,p_merge_impact => l_comp.merge_impact
6567 ,p_component_owner_code => l_comp.analytical_criterion_type_code
6568 ,p_component_code => l_comp.analytical_criterion_code);
6569
6570 record_updated_line_assgn
6571 (p_event_class_code => l_comp.event_class_code
6572 ,p_event_type_code => l_comp.event_type_code
6573 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6574 ,p_line_definition_code => l_comp.line_definition_code
6575 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6576 ,p_accounting_line_code => l_comp.accounting_line_code
6577 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6578
6579 END LOOP;
6580
6581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6582 trace(p_msg => 'END LOOP: updated line ac assgns',
6583 p_module => l_log_module,
6584 p_level => C_LEVEL_PROCEDURE);
6585 END IF;
6586
6587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6591 END IF;
6588 trace(p_msg => 'END of function compare_line_ac_assgns',
6589 p_module => l_log_module,
6590 p_level => C_LEVEL_PROCEDURE);
6592
6593 EXCEPTION
6594 WHEN xla_exceptions_pkg.application_exception THEN
6595 RAISE;
6596 WHEN OTHERS THEN
6597 xla_exceptions_pkg.raise_message
6598 (p_location => l_log_module);
6599 END compare_line_ac_assgns;
6600
6601
6602 --=============================================================================
6603 --
6604 -- Name: compare_mpa_hdr_ac_assgns
6605 -- Description:
6606 --
6607 --=============================================================================
6608 PROCEDURE compare_mpa_hdr_ac_assgns
6609 IS
6610 CURSOR c_comp IS
6611 SELECT s.event_class_code
6612 , s.event_type_code
6613 , s.line_definition_owner_code
6614 , s.line_definition_code
6615 , s.accounting_line_type_code
6616 , s.accounting_line_code
6617 , s.analytical_criterion_type_code
6618 , s.analytical_criterion_code
6619 , C_MERGE_IMPACT_NEW merge_impact
6620 FROM xla_mpa_header_ac_assgns s
6621 , xla_line_defn_jlt_assgns b
6622 WHERE s.application_id = g_application_id
6623 AND s.amb_context_code = g_staging_context_code
6624 AND b.application_id = g_application_id
6625 AND b.amb_context_code = g_amb_context_code
6626 AND b.event_class_code = s.event_class_code
6627 AND b.event_type_code = s.event_type_code
6628 AND b.line_definition_owner_code = s.line_definition_owner_code
6629 AND b.line_definition_code = s.line_definition_code
6630 AND b.accounting_line_type_code = s.accounting_line_type_code
6631 AND b.accounting_line_code = s.accounting_line_code
6632 AND NOT EXISTS
6633 (SELECT 1
6634 FROM xla_mpa_header_ac_assgns w
6635 WHERE w.application_id = g_application_id
6636 AND w.amb_context_code = g_amb_context_code
6637 AND w.event_class_code = s.event_class_code
6638 AND w.event_type_code = s.event_type_code
6639 AND w.line_definition_owner_code = s.line_definition_owner_code
6640 AND w.line_definition_code = s.line_definition_code
6641 AND w.accounting_line_type_code = s.accounting_line_type_code
6642 AND w.accounting_line_code = s.accounting_line_code
6643 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
6644 AND w.analytical_criterion_code = s.analytical_criterion_code);
6645
6646 l_parent_key VARCHAR2(240);
6647 l_key VARCHAR2(240);
6648 l_log_module VARCHAR2(240);
6649 BEGIN
6650 IF g_log_enabled THEN
6651 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_hdr_ac_assgns';
6652 END IF;
6653
6654 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6655 trace(p_msg => 'BEGIN of function compare_mpa_hdr_ac_assgns',
6656 p_module => l_log_module,
6657 p_level => C_LEVEL_PROCEDURE);
6658 END IF;
6659
6660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6661 trace(p_msg => 'BEGIN LOOP: updated mpa header ac assgns',
6662 p_module => l_log_module,
6663 p_level => C_LEVEL_PROCEDURE);
6664 END IF;
6665
6666 FOR l_comp IN c_comp LOOP
6667
6668 l_parent_key := l_comp.event_class_code||C_CHAR||
6669 l_comp.event_type_code||C_CHAR||
6670 l_comp.line_definition_owner_code||C_CHAR||
6671 l_comp.line_definition_code||C_CHAR||
6672 l_comp.accounting_line_type_code||C_CHAR||
6673 l_comp.accounting_line_code||C_CHAR||
6674 'MPA';
6675
6676 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
6677 l_comp.analytical_criterion_code;
6678
6679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6680 trace(p_msg => 'LOOP: updated mpa header ac assgn',
6681 p_module => l_log_module,
6682 p_level => C_LEVEL_PROCEDURE);
6683 trace(p_msg => 'l_parent_key = '||l_parent_key,
6684 p_module => l_log_module,
6685 p_level => C_LEVEL_PROCEDURE);
6686 trace(p_msg => 'l_key = '||l_key,
6687 p_module => l_log_module,
6688 p_level => C_LEVEL_PROCEDURE);
6689 END IF;
6690
6691 record_updated_component
6692 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6693 ,p_parent_component_key => l_parent_key
6694 ,p_component_type => 'AMB_AC'
6695 ,p_component_key => l_key
6696 ,p_merge_impact => l_comp.merge_impact
6697 ,p_component_owner_code => l_comp.analytical_criterion_type_code
6698 ,p_component_code => l_comp.analytical_criterion_code);
6699
6700 record_updated_mpa_assgn
6701 (p_event_class_code => l_comp.event_class_code
6702 ,p_event_type_code => l_comp.event_type_code
6703 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6704 ,p_line_definition_code => l_comp.line_definition_code
6705 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6706 ,p_accounting_line_code => l_comp.accounting_line_code
6707 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
6708
6709 END LOOP;
6710
6711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6712 trace(p_msg => 'END LOOP: updated mpa header ac assgns',
6713 p_module => l_log_module,
6714 p_level => C_LEVEL_PROCEDURE);
6715 END IF;
6716
6720 p_level => C_LEVEL_PROCEDURE);
6717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6718 trace(p_msg => 'END of function compare_mpa_hdr_ac_assgns',
6719 p_module => l_log_module,
6721 END IF;
6722
6723 EXCEPTION
6724 WHEN xla_exceptions_pkg.application_exception THEN
6725 RAISE;
6726 WHEN OTHERS THEN
6727 xla_exceptions_pkg.raise_message
6728 (p_location => l_log_module);
6729 END compare_mpa_hdr_ac_assgns;
6730
6731 --=============================================================================
6732 --
6733 -- Name: compare_mpa_hdr_assgns
6734 -- Description:
6735 --
6736 --=============================================================================
6737 PROCEDURE compare_mpa_hdr_assgns
6738 IS
6739 CURSOR c_comp IS
6740 SELECT s.event_class_code
6741 , s.event_type_code
6742 , s.line_definition_owner_code
6743 , s.line_definition_code
6744 , s.accounting_line_type_code
6745 , s.accounting_line_code
6746 , CASE WHEN sl.mpa_option_code = 'NONE'
6747 THEN C_MERGE_IMPACT_DELETED
6748 WHEN wl.mpa_option_code = 'NONE'
6749 THEN C_MERGE_IMPACT_NEW
6750 ELSE C_MERGE_IMPACT_UPDATED
6751 END merge_impact
6752 , s.mpa_header_desc_type_code s_mpa_header_desc_type_code
6753 , w.mpa_header_desc_type_code w_mpa_header_desc_type_code
6754 , s.mpa_header_desc_code s_mpa_header_desc_code
6755 , w.mpa_header_desc_code w_mpa_header_desc_code
6756 , s.mpa_num_je_code s_mpa_num_je_code
6757 , w.mpa_num_je_code w_mpa_num_je_code
6758 , s.mpa_gl_dates_code s_mpa_gl_dates_code
6759 , w.mpa_gl_dates_code w_mpa_gl_dates_code
6760 , s.mpa_proration_code s_mpa_proration_code
6761 , w.mpa_proration_code w_mpa_proration_code
6762 FROM xla_line_defn_jlt_assgns s
6763 JOIN xla_line_defn_jlt_assgns w
6764 ON w.application_id = g_application_id
6765 AND w.amb_context_code = g_amb_context_code
6766 AND w.event_class_code = s.event_class_code
6767 AND w.event_type_code = s.event_type_code
6768 AND w.line_definition_owner_code = s.line_definition_owner_code
6769 AND w.line_definition_code = s.line_definition_code
6770 AND w.accounting_line_type_code = s.accounting_line_type_code
6771 AND w.accounting_line_code = s.accounting_line_code
6772 JOIN xla_acct_line_types_b sl
6773 ON sl.application_id = s.application_id
6774 AND sl.amb_context_code = s.amb_context_code
6775 AND sl.event_class_code = s.event_class_code
6776 AND sl.accounting_line_type_code = s.accounting_line_type_code
6777 AND sl.accounting_line_code = s.accounting_line_code
6778 JOIN xla_acct_line_types_b wl
6779 ON wl.application_id = w.application_id
6780 AND wl.amb_context_code = w.amb_context_code
6781 AND wl.event_class_code = w.event_class_code
6782 AND wl.accounting_line_type_code = w.accounting_line_type_code
6783 AND wl.accounting_line_code = w.accounting_line_code
6784 --AND sl.mpa_option_code <> wl.mpa_option_code
6785 WHERE s.application_id = g_application_id
6786 AND s.amb_context_code = g_staging_context_code
6787 AND (sl.mpa_option_code = 'ACCRUAL' OR
6788 wl.mpa_option_code = 'ACCRUAL')
6789 AND (NVL(s.mpa_header_desc_type_code,C_CHAR) <> NVL(w.mpa_header_desc_type_code,C_CHAR) OR
6790 NVL(s.mpa_header_desc_code,C_CHAR) <> NVL(w.mpa_header_desc_code,C_CHAR) OR
6791 NVL(s.mpa_num_je_code,C_CHAR) <> NVL(w.mpa_num_je_code,C_CHAR) OR
6792 NVL(s.mpa_gl_dates_code,C_CHAR) <> NVL(w.mpa_gl_dates_code,C_CHAR) OR
6793 NVL(s.mpa_proration_code,C_CHAR) <> NVL(w.mpa_proration_code,C_CHAR));
6794
6795 l_parent_key VARCHAR2(240);
6796 l_key VARCHAR2(240);
6797 l_log_module VARCHAR2(240);
6798 BEGIN
6799 IF g_log_enabled THEN
6800 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_hdr_assgns';
6801 END IF;
6802
6803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6804 trace(p_msg => 'BEGIN of function compare_mpa_hdr_assgns',
6805 p_module => l_log_module,
6806 p_level => C_LEVEL_PROCEDURE);
6807 END IF;
6808
6809 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6810 trace(p_msg => 'BEGIN LOOP: updated mpa header assgns',
6811 p_module => l_log_module,
6812 p_level => C_LEVEL_PROCEDURE);
6813 END IF;
6814
6815 FOR l_comp IN c_comp LOOP
6816
6817 l_parent_key := l_comp.event_class_code||C_CHAR||
6818 l_comp.event_type_code||C_CHAR||
6819 l_comp.line_definition_owner_code||C_CHAR||
6820 l_comp.line_definition_code||C_CHAR||
6821 l_comp.accounting_line_type_code||C_CHAR||
6822 l_comp.accounting_line_code||C_CHAR||
6823 'MPA';
6824
6825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6826 trace(p_msg => 'LOOP: updated mpa header assgn - ',
6827 p_module => l_log_module,
6828 p_level => C_LEVEL_PROCEDURE);
6829 trace(p_msg => 'l_parent_key = '||l_parent_key,
6830 p_module => l_log_module,
6831 p_level => C_LEVEL_PROCEDURE);
6832 END IF;
6833
6834 record_updated_mpa_assgn
6835 (p_event_class_code => l_comp.event_class_code
6836 ,p_event_type_code => l_comp.event_type_code
6840 ,p_accounting_line_code => l_comp.accounting_line_code
6837 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
6838 ,p_line_definition_code => l_comp.line_definition_code
6839 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
6841 ,p_merge_impact => l_comp.merge_impact);
6842
6843 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
6844
6845 IF (l_comp.s_mpa_header_desc_type_code IS NOT NULL AND
6846 l_comp.w_mpa_header_desc_type_code IS NULL) OR
6847 (NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) OR
6848 NVL(l_comp.w_mpa_header_desc_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_code,C_CHAR)) THEN
6849
6850 l_key := l_comp.s_mpa_header_desc_type_code||C_CHAR||
6851 l_comp.s_mpa_header_desc_code;
6852
6853 record_updated_component
6854 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6855 ,p_parent_component_key => l_parent_key
6856 ,p_component_type => 'AMB_DESCRIPTION'
6857 ,p_component_key => l_key
6858 ,p_merge_impact => C_MERGE_IMPACT_NEW
6859 ,p_component_owner_code => l_comp.s_mpa_header_desc_type_code
6860 ,p_component_code => l_comp.s_mpa_header_desc_code);
6861
6862 ELSIF (l_comp.w_mpa_header_desc_type_code IS NOT NULL AND
6863 l_comp.s_mpa_header_desc_type_code IS NULL) OR
6864 (NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_type_code,C_CHAR) OR
6865 NVL(l_comp.w_mpa_header_desc_code,C_CHAR) <> NVL(l_comp.s_mpa_header_desc_code,C_CHAR)) THEN
6866
6867 l_key := l_comp.w_mpa_header_desc_type_code||C_CHAR||
6868 l_comp.w_mpa_header_desc_code;
6869
6870 record_updated_component
6871 (p_parent_component_type => 'AMB_MPA_ASSIGNMENT'
6872 ,p_parent_component_key => l_parent_key
6873 ,p_component_type => 'AMB_DESCRIPTION'
6874 ,p_component_key => l_key
6875 ,p_merge_impact => C_MERGE_IMPACT_DELETED
6876 ,p_component_owner_code => l_comp.s_mpa_header_desc_type_code
6877 ,p_component_code => l_comp.s_mpa_header_desc_code);
6878 END IF;
6879
6880 IF (l_comp.w_mpa_num_je_code <> l_comp.s_mpa_num_je_code) THEN
6881 record_updated_property
6882 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6883 ,p_component_key => l_parent_key
6884 ,p_property => 'MPA_NUM_JE'
6885 ,p_old_value => l_comp.w_mpa_num_je_code
6886 ,p_new_value => l_comp.s_mpa_num_je_code
6887 ,p_lookup_type => 'XLA_MPA_NUM_OF_ENTRIES');
6888 END IF;
6889
6890 IF (l_comp.w_mpa_gl_dates_code <> l_comp.s_mpa_gl_dates_code) THEN
6891 record_updated_property
6892 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6893 ,p_component_key => l_parent_key
6894 ,p_property => 'MPA_GL_DATES'
6895 ,p_old_value => l_comp.w_mpa_gl_dates_code
6896 ,p_new_value => l_comp.s_mpa_gl_dates_code
6897 ,p_lookup_type => 'XLA_MPA_GL_DATE');
6898 END IF;
6899
6900 IF (NVL(l_comp.w_mpa_proration_code,C_CHAR) <> NVL(l_comp.s_mpa_proration_code,C_CHAR)) THEN
6901 record_updated_property
6902 (p_component_type => 'AMB_MPA_ASSIGNMENT'
6903 ,p_component_key => l_parent_key
6904 ,p_property => 'MPA_PRORATION'
6905 ,p_old_value => l_comp.w_mpa_proration_code
6906 ,p_new_value => l_comp.s_mpa_proration_code
6907 ,p_lookup_type => 'XLA_MPA_PRORATION');
6908 END IF;
6909
6910 END IF;
6911 END LOOP;
6912
6913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6914 trace(p_msg => 'END LOOP: updated mpa header assgns',
6915 p_module => l_log_module,
6916 p_level => C_LEVEL_PROCEDURE);
6917 END IF;
6918
6919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6920 trace(p_msg => 'END of function compare_mpa_hdr_assgns',
6921 p_module => l_log_module,
6922 p_level => C_LEVEL_PROCEDURE);
6923 END IF;
6924
6925 EXCEPTION
6926 WHEN xla_exceptions_pkg.application_exception THEN
6927 RAISE;
6928 WHEN OTHERS THEN
6929 xla_exceptions_pkg.raise_message
6930 (p_location => l_log_module);
6931 END compare_mpa_hdr_assgns;
6932
6933 --=============================================================================
6934 --
6935 -- Name: compare_mpa_jlt_adr_assgns
6936 -- Description:
6937 --
6938 --=============================================================================
6939 PROCEDURE compare_mpa_jlt_adr_assgns
6940 IS
6941 CURSOR c_comp IS
6942 SELECT s.event_class_code
6943 , s.event_type_code
6944 , s.line_definition_owner_code
6945 , s.line_definition_code
6946 , s.accounting_line_type_code
6947 , s.accounting_line_code
6948 , s.mpa_accounting_line_type_code
6949 , s.mpa_accounting_line_code
6950 , s.flexfield_segment_code
6951 , l.accounting_coa_id
6952 , CASE WHEN w.application_id IS NULL
6953 THEN C_MERGE_IMPACT_NEW
6954 ELSE C_MERGE_IMPACT_UPDATED
6955 END merge_impact
6956 , s.segment_rule_appl_id s_segment_rule_appl_id
6957 , w.segment_rule_appl_id w_segment_rule_appl_id
6958 , s.segment_rule_type_code s_segment_rule_type_code
6959 , w.segment_rule_type_code w_segment_rule_type_code
6963 , w.inherit_adr_flag w_inherit_adr_flag
6960 , s.segment_rule_code s_segment_rule_code
6961 , w.segment_rule_code w_segment_rule_code
6962 , s.inherit_adr_flag s_inherit_adr_flag
6964 FROM xla_mpa_jlt_adr_assgns s
6965 JOIN xla_line_definitions_b l
6966 ON l.application_id = g_application_id
6967 AND l.amb_context_code = g_amb_context_code
6968 AND l.event_class_code = s.event_class_code
6969 AND l.event_type_code = s.event_type_code
6970 AND l.line_definition_owner_code = s.line_definition_owner_code
6971 AND l.line_definition_code = s.line_definition_code
6972 JOIN xla_mpa_jlt_assgns b
6973 ON b.application_id = g_application_id
6974 AND b.amb_context_code = g_amb_context_code
6975 AND b.event_class_code = s.event_class_code
6976 AND b.event_type_code = s.event_type_code
6977 AND b.line_definition_owner_code = s.line_definition_owner_code
6978 AND b.line_definition_code = s.line_definition_code
6979 AND b.accounting_line_type_code = s.accounting_line_type_code
6980 AND b.accounting_line_code = s.accounting_line_code
6981 AND b.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
6982 AND b.mpa_accounting_line_code = s.mpa_accounting_line_code
6983 LEFT OUTER JOIN xla_mpa_jlt_adr_assgns w
6984 ON w.application_id = g_application_id
6985 AND w.amb_context_code = g_amb_context_code
6986 AND w.event_class_code = s.event_class_code
6987 AND w.event_type_code = s.event_type_code
6988 AND w.line_definition_owner_code = s.line_definition_owner_code
6989 AND w.line_definition_code = s.line_definition_code
6990 AND w.accounting_line_type_code = s.accounting_line_type_code
6991 AND w.accounting_line_code = s.accounting_line_code
6992 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
6993 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
6994 AND w.flexfield_segment_code = s.flexfield_segment_code
6995 WHERE s.application_id = g_application_id
6996 AND s.amb_context_code = g_staging_context_code
6997 AND (w.application_id IS NULL OR
6998 s.inherit_adr_flag <> w.inherit_adr_flag OR
6999 NVL(s.segment_rule_appl_id,C_NUM) <> NVL(w.segment_rule_appl_id,C_NUM) OR
7000 NVL(s.segment_rule_type_code,C_CHAR) <> NVL(w.segment_rule_type_code,C_CHAR) OR
7001 NVL(s.segment_rule_code,C_CHAR) <> NVL(w.segment_rule_code,C_CHAR));
7002
7003 l_parent_key VARCHAR2(240);
7004 l_key VARCHAR2(240);
7005 l_log_module VARCHAR2(240);
7006 BEGIN
7007 IF g_log_enabled THEN
7008 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_adr_assgns';
7009 END IF;
7010
7011 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7012 trace(p_msg => 'BEGIN of function compare_mpa_jlt_adr_assgns',
7013 p_module => l_log_module,
7014 p_level => C_LEVEL_PROCEDURE);
7015 END IF;
7016
7017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7018 trace(p_msg => 'BEGIN LOOP: updated mpa line adr assgns',
7019 p_module => l_log_module,
7020 p_level => C_LEVEL_PROCEDURE);
7021 END IF;
7022
7023 FOR l_comp IN c_comp LOOP
7024
7025 l_parent_key := l_comp.event_class_code||C_CHAR||
7026 l_comp.event_type_code||C_CHAR||
7027 l_comp.line_definition_owner_code||C_CHAR||
7028 l_comp.line_definition_code||C_CHAR||
7029 l_comp.accounting_line_type_code||C_CHAR||
7030 l_comp.accounting_line_code||C_CHAR||
7031 'MPA'||C_CHAR||
7032 l_comp.mpa_accounting_line_type_code||C_CHAR||
7033 l_comp.mpa_accounting_line_code;
7034
7035 l_key := l_parent_key||C_CHAR||
7036 l_comp.flexfield_segment_code;
7037
7038 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7039 trace(p_msg => 'LOOP: updated mpa line adr assgn',
7040 p_module => l_log_module,
7041 p_level => C_LEVEL_PROCEDURE);
7042 trace(p_msg => 'l_parent_key = '||l_key,
7043 p_module => l_log_module,
7044 p_level => C_LEVEL_PROCEDURE);
7045 trace(p_msg => 'l_key = '||l_key,
7046 p_module => l_log_module,
7047 p_level => C_LEVEL_PROCEDURE);
7048 END IF;
7049
7050 IF (NOT key_exists('LNADR'||C_CHAR||l_key)) THEN
7051 record_updated_component
7052 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7053 ,p_parent_component_key => l_parent_key
7054 ,p_component_type => 'AMB_MPA_ADR_ASSGN'
7055 ,p_component_key => l_key
7056 ,p_merge_impact => l_comp.merge_impact
7057 ,p_component_owner_code => l_comp.accounting_coa_id
7058 ,p_component_code => l_comp.flexfield_segment_code);
7059
7060 record_updated_mpa_line_assgn
7061 (p_event_class_code => l_comp.event_class_code
7062 ,p_event_type_code => l_comp.event_type_code
7063 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7064 ,p_line_definition_code => l_comp.line_definition_code
7065 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7066 ,p_accounting_line_code => l_comp.accounting_line_code
7067 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7071 END IF;
7068 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7069 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7070
7072
7073 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
7074
7075 IF (l_comp.w_inherit_adr_flag <> l_comp.s_inherit_adr_flag) THEN
7076 record_updated_property
7077 (p_component_type => 'AMB_MPA_ADR_ASSGN'
7078 ,p_component_key => l_key
7079 ,p_property => 'INHERIT_ADR_FLAG'
7080 ,p_old_value => l_comp.w_inherit_adr_flag
7081 ,p_new_value => l_comp.s_inherit_adr_flag
7082 ,p_lookup_type => 'XLA_YES_NO');
7083
7084 END IF;
7085
7086 IF (NVL(l_comp.w_segment_rule_appl_id,C_NUM) <> NVL(l_comp.s_segment_rule_appl_id,C_NUM) OR
7087 NVL(l_comp.w_segment_rule_type_code,C_CHAR) <> NVL(l_comp.s_segment_rule_type_code,C_CHAR) OR
7088 NVL(l_comp.w_segment_rule_code,C_CHAR) <> NVL(l_comp.s_segment_rule_code,C_CHAR)) THEN
7089
7090 l_parent_key := l_key;
7091
7092 IF (l_comp.s_segment_rule_code IS NOT NULL) THEN
7093
7094 record_updated_component
7095 (p_parent_component_type => 'AMB_MPA_ADR_ASSGN'
7096 ,p_parent_component_key => l_parent_key
7097 ,p_component_type => 'AMB_ADR'
7098 ,p_component_key => l_comp.s_segment_rule_type_code||C_CHAR||
7099 l_comp.s_segment_rule_code
7100 ,p_merge_impact => C_MERGE_IMPACT_NEW
7101 ,p_component_appl_id => l_comp.s_segment_rule_appl_id
7102 ,p_component_owner_code => l_comp.s_segment_rule_type_code
7103 ,p_component_code => l_comp.s_segment_rule_code);
7104 END IF;
7105
7106 IF (l_comp.w_segment_rule_code IS NOT NULL) THEN
7107
7108 record_updated_component
7109 (p_parent_component_type => 'AMB_MPA_ADR_ASSGN'
7110 ,p_parent_component_key => l_parent_key
7111 ,p_component_type => 'AMB_ADR'
7112 ,p_component_key => l_comp.w_segment_rule_type_code||C_CHAR||
7113 l_comp.w_segment_rule_code
7114 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7115 ,p_component_appl_id => l_comp.w_segment_rule_appl_id
7116 ,p_component_owner_code => l_comp.s_segment_rule_type_code
7117 ,p_component_code => l_comp.w_segment_rule_code);
7118 END IF;
7119 END IF;
7120 END IF;
7121
7122 END LOOP;
7123
7124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7125 trace(p_msg => 'END LOOP: updated mpa line adr assgns',
7126 p_module => l_log_module,
7127 p_level => C_LEVEL_PROCEDURE);
7128 END IF;
7129
7130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7131 trace(p_msg => 'END of function compare_mpa_jlt_adr_assgns',
7132 p_module => l_log_module,
7133 p_level => C_LEVEL_PROCEDURE);
7134 END IF;
7135
7136 EXCEPTION
7137 WHEN xla_exceptions_pkg.application_exception THEN
7138 RAISE;
7139 WHEN OTHERS THEN
7140 xla_exceptions_pkg.raise_message
7141 (p_location => l_log_module);
7142 END compare_mpa_jlt_adr_assgns;
7143
7144 --=============================================================================
7145 --
7146 -- Name: compare_mpa_jlt_ac_assgns
7147 -- Description:
7148 --
7149 --=============================================================================
7150 PROCEDURE compare_mpa_jlt_ac_assgns
7151 IS
7152 CURSOR c_comp IS
7153 SELECT s.event_class_code
7154 , s.event_type_code
7155 , s.line_definition_owner_code
7156 , s.line_definition_code
7157 , s.accounting_line_type_code
7158 , s.accounting_line_code
7159 , s.mpa_accounting_line_type_code
7160 , s.mpa_accounting_line_code
7161 , s.analytical_criterion_type_code
7162 , s.analytical_criterion_code
7163 , C_MERGE_IMPACT_NEW merge_impact
7164 FROM xla_mpa_jlt_ac_assgns s
7165 , xla_mpa_jlt_assgns b
7166 WHERE s.application_id = g_application_id
7167 AND s.amb_context_code = g_staging_context_code
7168 AND b.application_id = g_application_id
7169 AND b.amb_context_code = g_amb_context_code
7170 AND b.event_class_code = s.event_class_code
7171 AND b.event_type_code = s.event_type_code
7172 AND b.line_definition_owner_code = s.line_definition_owner_code
7173 AND b.line_definition_code = s.line_definition_code
7174 AND b.accounting_line_type_code = s.accounting_line_type_code
7175 AND b.accounting_line_code = s.accounting_line_code
7176 AND b.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7177 AND b.mpa_accounting_line_code = s.mpa_accounting_line_code
7178 AND NOT EXISTS
7179 (SELECT 1
7180 FROM xla_mpa_jlt_ac_assgns w
7181 WHERE w.application_id = g_application_id
7182 AND w.amb_context_code = g_amb_context_code
7183 AND w.event_class_code = s.event_class_code
7184 AND w.event_type_code = s.event_type_code
7185 AND w.line_definition_owner_code = s.line_definition_owner_code
7186 AND w.line_definition_code = s.line_definition_code
7187 AND w.accounting_line_type_code = s.accounting_line_type_code
7188 AND w.accounting_line_code = s.accounting_line_code
7192 AND w.analytical_criterion_code = s.analytical_criterion_code);
7189 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7190 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
7191 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
7193
7194 l_parent_key VARCHAR2(240);
7195 l_key VARCHAR2(240);
7196 l_log_module VARCHAR2(240);
7197 BEGIN
7198 IF g_log_enabled THEN
7199 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_ac_assgns';
7200 END IF;
7201
7202 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7203 trace(p_msg => 'BEGIN of function compare_mpa_jlt_ac_assgns',
7204 p_module => l_log_module,
7205 p_level => C_LEVEL_PROCEDURE);
7206 END IF;
7207
7208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7209 trace(p_msg => 'BEGIN LOOP: updated mpa line ac assgns',
7210 p_module => l_log_module,
7211 p_level => C_LEVEL_PROCEDURE);
7212 END IF;
7213
7214 FOR l_comp IN c_comp LOOP
7215
7216 l_parent_key := l_comp.event_class_code||C_CHAR||
7217 l_comp.event_type_code||C_CHAR||
7218 l_comp.line_definition_owner_code||C_CHAR||
7219 l_comp.line_definition_code||C_CHAR||
7220 l_comp.accounting_line_type_code||C_CHAR||
7221 l_comp.accounting_line_code||C_CHAR||
7222 'MPA'||C_CHAR||
7223 l_comp.mpa_accounting_line_type_code||C_CHAR||
7224 l_comp.mpa_accounting_line_code;
7225
7226 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
7227 l_comp.analytical_criterion_code;
7228
7229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7230 trace(p_msg => 'LOOP: updated mpa line ac assgn',
7231 p_module => l_log_module,
7232 p_level => C_LEVEL_PROCEDURE);
7233 trace(p_msg => 'l_parent_key = '||l_parent_key,
7234 p_module => l_log_module,
7235 p_level => C_LEVEL_PROCEDURE);
7236 trace(p_msg => 'l_key = '||l_key,
7237 p_module => l_log_module,
7238 p_level => C_LEVEL_PROCEDURE);
7239 END IF;
7240
7241 record_updated_component
7242 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7243 ,p_parent_component_key => l_parent_key
7244 ,p_component_type => 'AMB_AC'
7245 ,p_component_key => l_key
7246 ,p_merge_impact => l_comp.merge_impact
7247 ,p_component_owner_code => l_comp.analytical_criterion_type_code
7248 ,p_component_code => l_comp.analytical_criterion_code);
7249
7250 record_updated_mpa_line_assgn
7251 (p_event_class_code => l_comp.event_class_code
7252 ,p_event_type_code => l_comp.event_type_code
7253 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7254 ,p_line_definition_code => l_comp.line_definition_code
7255 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7256 ,p_accounting_line_code => l_comp.accounting_line_code
7257 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7258 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7259 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7260
7261 END LOOP;
7262
7263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7264 trace(p_msg => 'END LOOP: updated mpa line ac assgns',
7265 p_module => l_log_module,
7266 p_level => C_LEVEL_PROCEDURE);
7267 END IF;
7268
7269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7270 trace(p_msg => 'END of function compare_mpa_jlt_ac_assgns',
7271 p_module => l_log_module,
7272 p_level => C_LEVEL_PROCEDURE);
7273 END IF;
7274
7275 EXCEPTION
7276 WHEN xla_exceptions_pkg.application_exception THEN
7277 RAISE;
7278 WHEN OTHERS THEN
7279 xla_exceptions_pkg.raise_message
7280 (p_location => l_log_module);
7281 END compare_mpa_jlt_ac_assgns;
7282
7283 --=============================================================================
7284 --
7285 -- Name: compare_mpa_jlt_assgns
7286 -- Description:
7287 --
7288 --=============================================================================
7289 PROCEDURE compare_mpa_jlt_assgns
7290 IS
7291 CURSOR c_comp IS
7292 SELECT s.event_class_code
7293 , s.event_type_code
7294 , s.line_definition_owner_code
7295 , s.line_definition_code
7296 , s.accounting_line_type_code
7297 , s.accounting_line_code
7298 , s.mpa_accounting_line_type_code
7299 , s.mpa_accounting_line_code
7300 , CASE WHEN w.mpa_accounting_line_code IS NULL
7301 THEN C_MERGE_IMPACT_NEW
7302 ELSE C_MERGE_IMPACT_UPDATED
7303 END merge_impact
7304 , s.description_type_code s_description_type_code
7305 , w.description_type_code w_description_type_code
7306 , s.description_code s_description_code
7307 , w.description_code w_description_code
7308 FROM xla_mpa_jlt_assgns s
7309 JOIN xla_line_defn_jlt_assgns bw
7310 ON bw.application_id = g_application_id
7311 AND bw.amb_context_code = g_amb_context_code
7312 AND bw.event_class_code = s.event_class_code
7313 AND bw.event_type_code = s.event_type_code
7314 AND bw.line_definition_owner_code = s.line_definition_owner_code
7315 AND bw.line_definition_code = s.line_definition_code
7316 AND bw.accounting_line_type_code = s.accounting_line_type_code
7320 AND w.amb_context_code = g_amb_context_code
7317 AND bw.accounting_line_code = s.accounting_line_code
7318 LEFT OUTER JOIN xla_mpa_jlt_assgns w
7319 ON w.application_id = g_application_id
7321 AND w.event_class_code = s.event_class_code
7322 AND w.event_type_code = s.event_type_code
7323 AND w.line_definition_owner_code = s.line_definition_owner_code
7324 AND w.line_definition_code = s.line_definition_code
7325 AND w.accounting_line_type_code = s.accounting_line_type_code
7326 AND w.accounting_line_code = s.accounting_line_code
7327 AND w.mpa_accounting_line_type_code = s.mpa_accounting_line_type_code
7328 AND w.mpa_accounting_line_code = s.mpa_accounting_line_code
7329 WHERE s.application_id = g_application_id
7330 AND s.amb_context_code = g_staging_context_code
7331 AND (w.mpa_accounting_line_code IS NULL
7332 OR s.description_type_code <> w.description_type_code
7333 OR s.description_code <> w.description_code)
7334 UNION
7335 SELECT w.event_class_code
7336 , w.event_type_code
7337 , w.line_definition_owner_code
7338 , w.line_definition_code
7339 , w.accounting_line_type_code
7340 , w.accounting_line_code
7341 , w.mpa_accounting_line_type_code
7342 , w.mpa_accounting_line_code
7343 , C_MERGE_IMPACT_DELETED
7344 , NULL, NULL, NULL, NULL
7345 FROM xla_mpa_jlt_assgns w
7346 JOIN xla_line_defn_jlt_assgns bs
7347 ON bs.application_id = g_application_id
7348 AND bs.amb_context_code = g_staging_context_code
7349 AND bs.event_class_code = w.event_class_code
7350 AND bs.event_type_code = w.event_type_code
7351 AND bs.line_definition_owner_code = w.line_definition_owner_code
7352 AND bs.line_definition_code = w.line_definition_code
7353 AND bs.accounting_line_type_code = w.accounting_line_type_code
7354 AND bs.accounting_line_code = w.accounting_line_code
7355 LEFT OUTER JOIN xla_mpa_jlt_assgns s
7356 ON s.application_id = g_application_id
7357 AND s.amb_context_code = g_staging_context_code
7358 AND s.event_class_code = w.event_class_code
7359 AND s.event_type_code = w.event_type_code
7360 AND s.line_definition_owner_code = w.line_definition_owner_code
7361 AND s.line_definition_code = w.line_definition_code
7362 AND s.accounting_line_type_code = w.accounting_line_type_code
7363 AND s.accounting_line_code = w.accounting_line_code
7364 AND s.mpa_accounting_line_type_code = w.mpa_accounting_line_type_code
7365 AND s.mpa_accounting_line_code = w.mpa_accounting_line_code
7366 WHERE s.application_id = g_application_id
7367 AND s.amb_context_code = g_amb_context_code
7368 AND w.mpa_accounting_line_code IS NULL;
7369
7370 l_parent_key VARCHAR2(240);
7371 l_key VARCHAR2(240);
7372 l_log_module VARCHAR2(240);
7373 BEGIN
7374 IF g_log_enabled THEN
7375 l_log_module := C_DEFAULT_MODULE||'.compare_mpa_jlt_assgns';
7376 END IF;
7377
7378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7379 trace(p_msg => 'BEGIN of function compare_mpa_jlt_assgns',
7380 p_module => l_log_module,
7381 p_level => C_LEVEL_PROCEDURE);
7382 END IF;
7383
7384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7385 trace(p_msg => 'BEGIN LOOP: updated mpa jlt assgns',
7386 p_module => l_log_module,
7387 p_level => C_LEVEL_PROCEDURE);
7388 END IF;
7389
7390 FOR l_comp IN c_comp LOOP
7391
7392 l_parent_key := l_comp.event_class_code||C_CHAR||
7393 l_comp.event_type_code||C_CHAR||
7394 l_comp.line_definition_owner_code||C_CHAR||
7395 l_comp.line_definition_code||C_CHAR||
7396 l_comp.accounting_line_type_code||C_CHAR||
7397 l_comp.accounting_line_code||C_CHAR||
7398 'MPA'||C_CHAR||
7399 l_comp.mpa_accounting_line_type_code||C_CHAR||
7400 l_comp.mpa_accounting_line_code;
7401
7402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7403 trace(p_msg => 'LOOP: updated mpa jlt assgn - merge_impact = '||l_comp.merge_impact,
7404 p_module => l_log_module,
7405 p_level => C_LEVEL_PROCEDURE);
7406 trace(p_msg => 'l_parent_key = '||l_parent_key,
7407 p_module => l_log_module,
7408 p_level => C_LEVEL_PROCEDURE);
7409 END IF;
7410
7411 IF (l_comp.merge_impact IN (C_MERGE_IMPACT_NEW, C_MERGE_IMPACT_DELETED)) THEN
7412
7413 l_key := l_comp.mpa_accounting_line_type_code||C_CHAR||
7414 l_comp.mpa_accounting_line_code;
7415
7416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7417 trace(p_msg => 'l_key = '||l_key,
7418 p_module => l_log_module,
7419 p_level => C_LEVEL_PROCEDURE);
7420 END IF;
7421
7422 record_updated_component
7423 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7424 ,p_parent_component_key => l_parent_key
7425 ,p_component_type => 'AMB_JLT'
7426 ,p_component_key => l_key
7427 ,p_merge_impact => l_comp.merge_impact
7428 ,p_event_class_code => l_comp.event_class_code
7429 ,p_event_type_code => NULL
7430 ,p_component_owner_code => l_comp.mpa_accounting_line_type_code
7431 ,p_component_code => l_comp.mpa_accounting_line_code);
7432
7433 ELSE
7437 l_key := l_comp.s_description_type_code||C_CHAR||
7434
7435 IF (l_comp.s_description_type_code IS NOT NULL) THEN
7436
7438 l_comp.s_description_code;
7439
7440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7441 trace(p_msg => 'merge_impact = '||C_MERGE_IMPACT_NEW,
7442 p_module => l_log_module,
7443 p_level => C_LEVEL_PROCEDURE);
7444 trace(p_msg => 'l_key = '||l_key,
7445 p_module => l_log_module,
7446 p_level => C_LEVEL_PROCEDURE);
7447 END IF;
7448
7449 record_updated_component
7450 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7451 ,p_parent_component_key => l_parent_key
7452 ,p_component_type => 'AMB_DESCRIPTION'
7453 ,p_component_key => l_key
7454 ,p_merge_impact => C_MERGE_IMPACT_NEW
7455 ,p_component_owner_code => l_comp.s_description_type_code
7456 ,p_component_code => l_comp.s_description_code);
7457
7458 END IF;
7459
7460 IF (l_comp.w_description_type_code IS NOT NULL) THEN
7461
7462 l_key := l_comp.w_description_type_code||C_CHAR||
7463 l_comp.w_description_code;
7464
7465 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7466 trace(p_msg => 'merge_impact = '||C_MERGE_IMPACT_DELETED,
7467 p_module => l_log_module,
7468 p_level => C_LEVEL_PROCEDURE);
7469 trace(p_msg => 'l_key = '||l_key,
7470 p_module => l_log_module,
7471 p_level => C_LEVEL_PROCEDURE);
7472 END IF;
7473
7474 record_updated_component
7475 (p_parent_component_type => 'AMB_MPA_LINE_ASSIGNMENT'
7476 ,p_parent_component_key => l_parent_key
7477 ,p_component_type => 'AMB_DESCRIPTION'
7478 ,p_component_key => l_key
7479 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7480 ,p_component_owner_code => l_comp.w_description_type_code
7481 ,p_component_code => l_comp.w_description_code);
7482 END IF;
7483
7484 END IF;
7485
7486 record_updated_mpa_line_assgn
7487 (p_event_class_code => l_comp.event_class_code
7488 ,p_event_type_code => l_comp.event_type_code
7489 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7490 ,p_line_definition_code => l_comp.line_definition_code
7491 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7492 ,p_accounting_line_code => l_comp.accounting_line_code
7493 ,p_mpa_acct_line_type_code => l_comp.mpa_accounting_line_type_code
7494 ,p_mpa_acct_line_code => l_comp.mpa_accounting_line_code
7495 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
7496
7497 END LOOP;
7498
7499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7500 trace(p_msg => 'END LOOP: updated mpa jlt assgns',
7501 p_module => l_log_module,
7502 p_level => C_LEVEL_PROCEDURE);
7503 END IF;
7504
7505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7506 trace(p_msg => 'END of function compare_mpa_jlt_assgns',
7507 p_module => l_log_module,
7508 p_level => C_LEVEL_PROCEDURE);
7509 END IF;
7510
7511 EXCEPTION
7512 WHEN xla_exceptions_pkg.application_exception THEN
7513 RAISE;
7514 WHEN OTHERS THEN
7515 xla_exceptions_pkg.raise_message
7516 (p_location => l_log_module);
7517 END compare_mpa_jlt_assgns;
7518
7519
7520 --=============================================================================
7521 --
7522 -- Name: compare_jld_jlt_assgns
7523 -- Description:
7524 --
7525 --=============================================================================
7526 PROCEDURE compare_jld_jlt_assgns
7527 IS
7528 CURSOR c_comp IS
7529 SELECT s.event_class_code
7530 , s.event_type_code
7531 , s.line_definition_owner_code
7532 , s.line_definition_code
7533 , s.accounting_line_type_code
7534 , s.accounting_line_code
7535 , CASE WHEN w.application_id IS NULL
7536 THEN C_MERGE_IMPACT_NEW
7537 ELSE C_MERGE_IMPACT_UPDATED
7538 END merge_impact
7539 , s.active_flag s_active_flag
7540 , w.active_flag w_active_flag
7541 , s.description_type_code s_description_type_code
7542 , w.description_type_code w_description_type_code
7543 , s.description_code s_description_code
7544 , w.description_code w_description_code
7545 , s.inherit_desc_flag s_inherit_desc_flag
7546 , w.inherit_desc_flag w_inherit_desc_flag
7547 FROM xla_line_defn_jlt_assgns s
7548 JOIN xla_line_definitions_b b
7549 ON b.application_id = g_application_id
7550 AND b.amb_context_code = g_amb_context_code
7551 AND b.event_class_code = s.event_class_code
7552 AND b.event_type_code = s.event_type_code
7553 AND b.line_definition_owner_code = s.line_definition_owner_code
7554 AND b.line_definition_code = s.line_definition_code
7555 LEFT OUTER JOIN xla_line_defn_jlt_assgns w
7556 ON w.application_id = g_application_id
7557 AND w.amb_context_code = g_amb_context_code
7558 AND w.event_class_code = s.event_class_code
7559 AND w.event_type_code = s.event_type_code
7560 AND w.line_definition_owner_code = s.line_definition_owner_code
7561 AND w.line_definition_code = s.line_definition_code
7565 AND s.amb_context_code = g_staging_context_code
7562 AND w.accounting_line_type_code = s.accounting_line_type_code
7563 AND w.accounting_line_code = s.accounting_line_code
7564 WHERE s.application_id = g_application_id
7566 AND (w.application_id IS NULL
7567 OR NVL(s.active_flag,C_CHAR) <> NVL(w.active_flag,C_CHAR)
7568 OR NVL(s.inherit_desc_flag,C_CHAR) <> NVL(w.inherit_desc_flag,C_CHAR)
7569 OR NVL(s.description_type_code,C_CHAR) <> NVL(w.description_type_code,C_CHAR)
7570 OR NVL(s.description_code,C_CHAR) <> NVL(w.description_code,C_CHAR)
7571 );
7572
7573 l_parent_key VARCHAR2(240);
7574 l_key VARCHAR2(240);
7575 l_merge_impact VARCHAR2(30);
7576 l_log_module VARCHAR2(240);
7577 BEGIN
7578 IF g_log_enabled THEN
7579 l_log_module := C_DEFAULT_MODULE||'.compare_jld_jlt_assgns';
7580 END IF;
7581
7582 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7583 trace(p_msg => 'BEGIN of function compare_jld_jlt_assgns',
7584 p_module => l_log_module,
7585 p_level => C_LEVEL_PROCEDURE);
7586 END IF;
7587
7588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7589 trace(p_msg => 'END LOOP: updated jld jlt assgns',
7590 p_module => l_log_module,
7591 p_level => C_LEVEL_PROCEDURE);
7592 END IF;
7593
7594 FOR l_comp IN c_comp LOOP
7595
7596 record_updated_line_assgn
7597 (p_event_class_code => l_comp.event_class_code
7598 ,p_event_type_code => l_comp.event_type_code
7599 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7600 ,p_line_definition_code => l_comp.line_definition_code
7601 ,p_accounting_line_type_code => l_comp.accounting_line_type_code
7602 ,p_accounting_line_code => l_comp.accounting_line_code
7603 ,p_merge_impact => l_comp.merge_impact);
7604
7605 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
7606
7607 l_parent_key := l_comp.event_class_code||C_CHAR||
7608 l_comp.event_type_code||C_CHAR||
7609 l_comp.line_definition_owner_code||C_CHAR||
7610 l_comp.line_definition_code||C_CHAR||
7611 l_comp.accounting_line_type_code||C_CHAR||
7612 l_comp.accounting_line_code;
7613
7614 IF (l_comp.w_active_flag <> l_comp.s_active_flag) THEN
7615 record_updated_property
7616 (p_component_type => 'AMB_LINE_ASSIGNMENT'
7617 ,p_component_key => l_parent_key
7618 ,p_property => 'ACTIVE'
7619 ,p_old_value => l_comp.w_active_flag
7620 ,p_new_value => l_comp.s_active_flag
7621 ,p_lookup_type => 'XLA_YES_NO');
7622
7623 END IF;
7624
7625 IF (l_comp.w_inherit_desc_flag <> l_comp.s_inherit_desc_flag) THEN
7626 record_updated_property
7627 (p_component_type => 'AMB_LINE_ASSIGNMENT'
7628 ,p_component_key => l_parent_key
7629 ,p_property => 'INHERIT_DESC'
7630 ,p_old_value => l_comp.w_inherit_desc_flag
7631 ,p_new_value => l_comp.s_inherit_desc_flag
7632 ,p_lookup_type => 'XLA_YES_NO');
7633
7634 END IF;
7635
7636 IF (NVL(l_comp.w_description_type_code,C_CHAR) <> NVL(l_comp.s_description_type_code,C_CHAR) OR
7637 NVL(l_comp.w_description_code,C_CHAR) <> NVL(l_comp.s_description_code,C_CHAR)) THEN
7638
7639 IF (l_comp.s_description_code IS NOT NULL) THEN
7640
7641 l_key := l_comp.s_description_type_code||C_CHAR||
7642 l_comp.s_description_code;
7643
7644 IF (NOT key_exists('LDESC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
7645
7646 record_updated_component
7647 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
7648 ,p_parent_component_key => l_parent_key
7649 ,p_component_type => 'AMB_DESCRIPTION'
7650 ,p_component_key => l_key
7651 ,p_merge_impact => C_MERGE_IMPACT_NEW
7652 ,p_component_owner_code => l_comp.s_description_type_code
7653 ,p_component_code => l_comp.s_description_code);
7654 END IF;
7655 END IF;
7656
7657 IF (l_comp.w_description_code IS NOT NULL) THEN
7658
7659 l_key := l_comp.w_description_type_code||C_CHAR||
7660 l_comp.w_description_code;
7661
7662 IF (NOT key_exists('LDESC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
7663
7664 record_updated_component
7665 (p_parent_component_type => 'AMB_LINE_ASSIGNMENT'
7666 ,p_parent_component_key => l_parent_key
7667 ,p_component_type => 'AMB_DESCRIPTION'
7668 ,p_component_key => l_key
7669 ,p_merge_impact => C_MERGE_IMPACT_DELETED
7670 ,p_component_owner_code => l_comp.w_description_type_code
7671 ,p_component_code => l_comp.w_description_code);
7672 END IF;
7673 END IF;
7674 END IF; -- updated description
7675
7676 END IF; -- l_comp.merge_impact = C_MERGE_IMPACT_UPDATED
7677
7678 END LOOP;
7679
7680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7681 trace(p_msg => 'END LOOP: updated jld jlt assgns',
7682 p_module => l_log_module,
7683 p_level => C_LEVEL_PROCEDURE);
7684 END IF;
7685
7686 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7687 trace(p_msg => 'END of function compare_jld_jlt_assgns',
7688 p_module => l_log_module,
7689 p_level => C_LEVEL_PROCEDURE);
7690 END IF;
7694 RAISE;
7691
7692 EXCEPTION
7693 WHEN xla_exceptions_pkg.application_exception THEN
7695 WHEN OTHERS THEN
7696 xla_exceptions_pkg.raise_message
7697 (p_location => l_log_module);
7698 END compare_jld_jlt_assgns;
7699
7700
7701 --=============================================================================
7702 --
7703 -- Name: compare_jlds
7704 -- Description:
7705 --
7706 --=============================================================================
7707 PROCEDURE compare_jlds
7708 IS
7709 CURSOR c_comp IS
7710 SELECT ts.event_class_code
7711 ,ts.event_type_code
7712 ,ts.line_definition_owner_code
7713 ,ts.line_definition_code
7714 ,ts.name s_name
7715 ,tw.name w_name
7716 ,ts.description s_description
7717 ,tw.description w_description
7718 ,bs.enabled_flag s_enabled_flag
7719 ,bw.enabled_flag w_enabled_flag
7720 ,bs.accounting_coa_id s_acct_coa_id
7721 ,bw.accounting_coa_id w_acct_coa_id
7722 ,bs.transaction_coa_id s_trx_coa_id
7723 ,bw.transaction_coa_id w_trx_coa_id
7724 ,bs.budgetary_control_flag s_budgetary_control_flag
7725 ,bw.budgetary_control_flag w_budgetary_control_flag
7726 FROM xla_line_definitions_b bs
7727 JOIN xla_line_definitions_tl ts
7728 ON ts.application_id = bs.application_id
7729 AND ts.amb_context_code = bs.amb_context_code
7730 AND ts.event_class_code = bs.event_class_code
7731 AND ts.event_type_code = bs.event_type_code
7732 AND ts.line_definition_owner_code = bs.line_definition_owner_code
7733 AND ts.line_definition_code = bs.line_definition_code
7734 AND ts.language = USERENV('LANG')
7735 JOIN xla_line_definitions_b bw
7736 ON bw.application_id = bs.application_id
7737 AND bw.amb_context_code = g_amb_context_code
7738 AND bw.event_class_code = bs.event_class_code
7739 AND bw.event_type_code = bs.event_type_code
7740 AND bw.line_definition_owner_code = bs.line_definition_owner_code
7741 AND bw.line_definition_code = bs.line_definition_code
7742 JOIN xla_line_definitions_tl tw
7743 ON tw.application_id = bw.application_id
7744 AND tw.amb_context_code = bw.amb_context_code
7745 AND tw.event_class_code = bw.event_class_code
7746 AND tw.event_type_code = bw.event_type_code
7747 AND tw.line_definition_owner_code = bw.line_definition_owner_code
7748 AND tw.line_definition_code = bw.line_definition_code
7749 AND tw.language = USERENV('LANG')
7750 WHERE bs.amb_context_code = g_staging_context_code
7751 AND bw.amb_context_code = g_amb_context_code
7752 AND (ts.name <> tw.name OR
7753 NVL(ts.description,C_CHAR) <> NVL(tw.description,C_CHAR) OR
7754 bs.enabled_flag <> bw.enabled_flag OR
7755 bs.budgetary_control_flag <> bw.budgetary_control_flag OR
7756 NVL(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id,C_NUM) OR
7757 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id,C_NUM));
7758
7759 l_key VARCHAR2(240);
7760 l_log_module VARCHAR2(240);
7761 BEGIN
7762 IF g_log_enabled THEN
7763 l_log_module := C_DEFAULT_MODULE||'.compare_jlds';
7764 END IF;
7765
7766 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7767 trace(p_msg => 'BEGIN of function compare_jlds',
7768 p_module => l_log_module,
7769 p_level => C_LEVEL_PROCEDURE);
7770 END IF;
7771
7772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7773 trace(p_msg => 'BEGIN LOOP: updated jlds',
7774 p_module => l_log_module,
7775 p_level => C_LEVEL_PROCEDURE);
7776 END IF;
7777
7778 FOR l_comp in c_comp LOOP
7779
7780 l_key := l_comp.event_class_code||C_CHAR||
7781 l_comp.event_type_code||C_CHAR||
7782 l_comp.line_definition_owner_code||C_CHAR||
7783 l_comp.line_definition_code;
7784
7785 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7786 trace(p_msg => 'LOOP: updated jld - '||l_key,
7787 p_module => l_log_module,
7788 p_level => C_LEVEL_PROCEDURE);
7789 END IF;
7790
7791 record_updated_jld
7792 (p_event_class_code => l_comp.event_class_code
7793 ,p_event_type_code => l_comp.event_type_code
7794 ,p_line_definition_owner_code => l_comp.line_definition_owner_code
7795 ,p_line_definition_code => l_comp.line_definition_code);
7796
7797 IF (l_comp.s_name <> l_comp.w_name) THEN
7798 record_updated_property
7799 (p_component_type => 'AMB_JLD'
7800 ,p_component_key => l_key
7801 ,p_property => 'NAME'
7802 ,p_old_value => l_comp.w_name
7803 ,p_new_value => l_comp.s_name);
7804 END IF;
7805
7806 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
7807 record_updated_property
7808 (p_component_type => 'AMB_JLD'
7809 ,p_component_key => l_key
7810 ,p_property => 'DESCRIPTION'
7811 ,p_old_value => l_comp.w_description
7812 ,p_new_value => l_comp.s_description);
7813 END IF;
7814
7818 ,p_component_key => l_key
7815 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
7816 record_updated_property
7817 (p_component_type => 'AMB_JLD'
7819 ,p_property => 'ENABLED'
7820 ,p_old_value => l_comp.w_enabled_flag
7821 ,p_new_value => l_comp.s_enabled_flag
7822 ,p_lookup_type => 'XLA_YES_NO');
7823 END IF;
7824
7825 IF (l_comp.s_budgetary_control_flag <> l_comp.w_budgetary_control_flag) THEN
7826 record_updated_property
7827 (p_component_type => 'AMB_JLD'
7828 ,p_component_key => l_key
7829 ,p_property => 'BUDGETARY_CONTROL'
7830 ,p_old_value => l_comp.w_budgetary_control_flag
7831 ,p_new_value => l_comp.s_budgetary_control_flag
7832 ,p_lookup_type => 'XLA_YES_NO');
7833 END IF;
7834
7835 IF (NVL(l_comp.s_acct_coa_id,C_NUM) <> NVL(l_comp.w_acct_coa_id,C_NUM)) THEN
7836 record_updated_property
7837 (p_component_type => 'AMB_JLD'
7838 ,p_component_key => l_key
7839 ,p_property => 'ACCOUNTING_COA'
7840 ,p_old_value => l_comp.w_acct_coa_id
7841 ,p_new_value => l_comp.s_acct_coa_id);
7842 END IF;
7843
7844 IF (NVL(l_comp.s_trx_coa_id,C_NUM) <> NVL(l_comp.w_trx_coa_id,C_NUM)) THEN
7845 record_updated_property
7846 (p_component_type => 'AMB_JLD'
7847 ,p_component_key => l_key
7848 ,p_property => 'TRANSACTION_COA'
7849 ,p_old_value => l_comp.w_trx_coa_id
7850 ,p_new_value => l_comp.s_trx_coa_id);
7851 END IF;
7852
7853 END LOOP;
7854
7855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7856 trace(p_msg => 'END LOOP: updated jlds',
7857 p_module => l_log_module,
7858 p_level => C_LEVEL_PROCEDURE);
7859 END IF;
7860
7861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7862 trace(p_msg => 'END of function compare_jlds',
7863 p_module => l_log_module,
7864 p_level => C_LEVEL_PROCEDURE);
7865 END IF;
7866
7867 EXCEPTION
7868 WHEN xla_exceptions_pkg.application_exception THEN
7869 RAISE;
7870 WHEN OTHERS THEN
7871 xla_exceptions_pkg.raise_message
7872 (p_location => l_log_module);
7873 END compare_jlds;
7874
7875
7876 --=============================================================================
7877 --
7878 -- Name: compare_jld_assgns
7879 -- Description:
7880 --
7881 --=============================================================================
7882 PROCEDURE compare_jld_assgns
7883 IS
7884 -- Retrieve new or deleted JLD assignment to the event class/evnet type
7885 CURSOR c_comp IS
7886 SELECT s.product_rule_type_code
7887 , s.product_rule_code
7888 , s.event_class_code
7889 , s.event_type_code
7890 , s.line_definition_owner_code
7891 , s.line_definition_code
7892 , C_MERGE_IMPACT_NEW merge_impact
7893 FROM xla_aad_line_defn_assgns s
7894 , xla_prod_acct_headers b
7895 WHERE s.application_id = g_application_id
7896 AND s.amb_context_code = g_staging_context_code
7897 AND b.application_id = g_application_id
7898 AND b.amb_context_code = g_amb_context_code
7899 AND b.product_rule_type_code = s.product_rule_type_code
7900 AND b.product_rule_code = s.product_rule_code
7901 AND b.event_class_code = s.event_class_code
7902 AND b.event_type_code = s.event_type_code
7903 AND NOT EXISTS
7904 (SELECT 1
7905 FROM xla_aad_line_defn_assgns w
7906 WHERE w.application_id = g_application_id
7907 AND w.amb_context_code = g_amb_context_code
7908 AND s.product_rule_type_code = w.product_rule_type_code
7909 AND s.product_rule_code = w.product_rule_code
7910 AND s.event_class_code = w.event_class_code
7911 AND s.event_type_code = w.event_type_code
7912 AND s.line_definition_owner_code = w.line_definition_owner_code
7913 AND s.line_definition_code = w.line_definition_code);
7914
7915 l_log_module VARCHAR2(240);
7916 BEGIN
7917 IF g_log_enabled THEN
7918 l_log_module := C_DEFAULT_MODULE||'.compare_jld_assgns';
7919 END IF;
7920
7921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7922 trace(p_msg => 'BEGIN of function compare_jld_assgns',
7923 p_module => l_log_module,
7924 p_level => C_LEVEL_PROCEDURE);
7925 END IF;
7926
7927 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7928 trace(p_msg => 'BEGIN LOOP: updated jld assgns',
7929 p_module => l_log_module,
7930 p_level => C_LEVEL_PROCEDURE);
7931 END IF;
7932
7933 FOR l_comp IN c_comp LOOP
7934
7935 record_updated_jld_assgn
7936 (p_product_rule_type_code => l_comp.product_rule_type_code
7937 ,p_product_rule_code => l_comp.product_rule_code
7938 ,p_event_class_code => l_comp.event_class_code
7939 ,p_event_type_code => l_comp.event_type_code
7940 ,p_line_defn_owner_code => l_comp.line_definition_owner_code
7941 ,p_line_defn_code => l_comp.line_definition_code
7942 ,p_merge_impact => l_comp.merge_impact);
7943
7944 END LOOP;
7945
7946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7947 trace(p_msg => 'END LOOP: updated jld assgns',
7948 p_module => l_log_module,
7952 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7949 p_level => C_LEVEL_PROCEDURE);
7950 END IF;
7951
7953 trace(p_msg => 'END of function compare_jld_assgns',
7954 p_module => l_log_module,
7955 p_level => C_LEVEL_PROCEDURE);
7956 END IF;
7957
7958 EXCEPTION
7959 WHEN xla_exceptions_pkg.application_exception THEN
7960 RAISE;
7961 WHEN OTHERS THEN
7962 xla_exceptions_pkg.raise_message
7963 (p_location => l_log_module);
7964 END compare_jld_assgns;
7965
7966 --=============================================================================
7967 --
7968 -- Name: compare_hdr_ac_assgns
7969 -- Description:
7970 --
7971 --=============================================================================
7972 PROCEDURE compare_hdr_ac_assgns
7973 IS
7974 CURSOR c_comp IS
7975 SELECT s.product_rule_type_code
7976 , s.product_rule_code
7977 , s.event_class_code
7978 , s.event_type_code
7979 , s.analytical_criterion_type_code
7980 , s.analytical_criterion_code
7981 , C_MERGE_IMPACT_NEW merge_impact
7982 FROM xla_aad_header_ac_assgns s
7983 , xla_prod_acct_headers b
7984 WHERE s.application_id = g_application_id
7985 AND s.amb_context_code = g_staging_context_code
7986 AND b.application_id = g_application_id
7987 AND b.amb_context_code = g_amb_context_code
7988 AND b.product_rule_type_code = s.product_rule_type_code
7989 AND b.product_rule_code = s.product_rule_code
7990 AND b.event_class_code = s.event_class_code
7991 AND b.event_type_code = s.event_type_code
7992 AND NOT EXISTS
7993 (SELECT 1
7994 FROM xla_aad_header_ac_assgns w
7995 WHERE w.application_id = g_application_id
7996 AND w.amb_context_code = g_amb_context_code
7997 AND w.product_rule_type_code = s.product_rule_type_code
7998 AND w.product_rule_code = s.product_rule_code
7999 AND w.event_class_code = s.event_class_code
8000 AND w.event_type_code = s.event_type_code
8001 AND w.analytical_criterion_type_code = s.analytical_criterion_type_code
8002 AND w.analytical_criterion_code = s.analytical_criterion_code);
8003
8004 l_parent_key VARCHAR2(240);
8005 l_key VARCHAR2(240);
8006 l_log_module VARCHAR2(240);
8007 BEGIN
8008 IF g_log_enabled THEN
8009 l_log_module := C_DEFAULT_MODULE||'.compare_hdr_ac_assgns';
8010 END IF;
8011
8012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8013 trace(p_msg => 'BEGIN of function compare_hdr_ac_assgns',
8014 p_module => l_log_module,
8015 p_level => C_LEVEL_PROCEDURE);
8016 END IF;
8017
8018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8019 trace(p_msg => 'BEGIN LOOP: updated header ac assgns',
8020 p_module => l_log_module,
8021 p_level => C_LEVEL_PROCEDURE);
8022 END IF;
8023
8024 FOR l_comp IN c_comp LOOP
8025
8026 l_parent_key := l_comp.product_rule_type_code||C_CHAR||
8027 l_comp.product_rule_code||C_CHAR||
8028 l_comp.event_class_code||C_CHAR||
8029 l_comp.event_type_code;
8030
8031 l_key := l_comp.analytical_criterion_type_code||C_CHAR||
8032 l_comp.analytical_criterion_code;
8033
8034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8035 trace(p_msg => 'LOOP: updated header ac assgn - '||l_key,
8036 p_module => l_log_module,
8037 p_level => C_LEVEL_PROCEDURE);
8038 END IF;
8039
8040 IF (NOT key_exists('HAC'||C_CHAR||l_parent_key||C_CHAR||l_key)) THEN
8041 record_updated_component
8042 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8043 ,p_parent_component_key => l_parent_key
8044 ,p_component_type => 'AMB_AC'
8045 ,p_component_key => l_key
8046 ,p_merge_impact => l_comp.merge_impact
8047 ,p_component_owner_code => l_comp.analytical_criterion_type_code
8048 ,p_component_code => l_comp.analytical_criterion_code);
8049
8050 record_updated_header_assgn
8051 (p_product_rule_type_code => l_comp.product_rule_type_code
8052 ,p_product_rule_code => l_comp.product_rule_code
8053 ,p_event_class_code => l_comp.event_class_code
8054 ,p_event_type_code => l_comp.event_type_code
8055 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
8056 END IF;
8057 END LOOP;
8058
8059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8060 trace(p_msg => 'END LOOP: updated header ac assgns',
8061 p_module => l_log_module,
8062 p_level => C_LEVEL_PROCEDURE);
8063 END IF;
8064
8065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8066 trace(p_msg => 'END of function compare_hdr_ac_assgns',
8067 p_module => l_log_module,
8068 p_level => C_LEVEL_PROCEDURE);
8069 END IF;
8070
8071 EXCEPTION
8072 WHEN xla_exceptions_pkg.application_exception THEN
8073 RAISE;
8074 WHEN OTHERS THEN
8075 xla_exceptions_pkg.raise_message
8076 (p_location => l_log_module);
8077 END compare_hdr_ac_assgns;
8078
8079
8080 --=============================================================================
8081 --
8082 -- Name: compare_hdr_acct_attrs
8083 -- Description:
8084 --
8085 --=============================================================================
8086 PROCEDURE compare_hdr_acct_attrs
8087 IS
8088 CURSOR c_comp IS
8092 , s.event_type_code
8089 SELECT s.product_rule_type_code
8090 , s.product_rule_code
8091 , s.event_class_code
8093 , s.accounting_attribute_code
8094 , CASE WHEN w.accounting_attribute_code IS NULL
8095 THEN C_MERGE_IMPACT_NEW
8096 ELSE C_MERGE_IMPACT_UPDATED END merge_impact
8097 ,s.event_class_default_flag s_event_class_default_flag
8098 ,w.event_class_default_flag w_event_class_default_flag
8099 ,s.source_application_id s_source_application_id
8100 ,w.source_application_id w_source_application_id
8101 ,s.source_type_code s_source_type_code
8102 ,w.source_type_code w_source_type_code
8103 ,s.source_code s_source_code
8104 ,w.source_code w_source_code
8105 FROM xla_aad_hdr_acct_attrs s
8106 JOIN xla_prod_acct_headers b
8107 ON b.application_id = g_application_id
8108 AND b.amb_context_code = g_amb_context_code
8109 AND b.product_rule_type_code = s.product_rule_type_code
8110 AND b.product_rule_code = s.product_rule_code
8111 AND b.event_class_code = s.event_class_code
8112 AND b.event_type_code = s.event_type_code
8113 LEFT OUTER JOIN xla_aad_hdr_acct_attrs w
8114 ON w.application_id = g_application_id
8115 AND w.amb_context_code = g_amb_context_code
8116 AND w.product_rule_type_code = s.product_rule_type_code
8117 AND w.product_rule_code = s.product_rule_code
8118 AND w.event_class_code = s.event_class_code
8119 AND w.event_type_code = s.event_type_code
8120 AND w.accounting_attribute_code = s.accounting_attribute_code
8121 WHERE s.application_id = g_application_id
8122 AND s.amb_context_code = g_staging_context_code
8123 AND (w.accounting_attribute_code IS NULL OR
8124 s.event_class_default_flag <> w.event_class_default_flag OR
8125 s.source_application_id <> w.source_application_id OR
8126 s.source_type_code <> w.source_type_code OR
8127 s.source_code <> w.source_code);
8128
8129 l_key VARCHAR2(240);
8130 l_log_module VARCHAR2(240);
8131 BEGIN
8132 IF g_log_enabled THEN
8133 l_log_module := C_DEFAULT_MODULE||'.compare_hdr_acct_attrs';
8134 END IF;
8135
8136 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8137 trace(p_msg => 'BEGIN of function compare_hdr_acct_attrs',
8138 p_module => l_log_module,
8139 p_level => C_LEVEL_PROCEDURE);
8140 END IF;
8141
8142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8143 trace(p_msg => 'BEGIN LOOP: updated header acct attrs',
8144 p_module => l_log_module,
8145 p_level => C_LEVEL_PROCEDURE);
8146 END IF;
8147
8148 FOR l_comp IN c_comp LOOP
8149
8150 l_key := l_comp.product_rule_type_code||C_CHAR||
8151 l_comp.product_rule_code||C_CHAR||
8152 l_comp.event_class_code||C_CHAR||
8153 l_comp.event_type_code||C_CHAR||
8154 l_comp.accounting_attribute_code;
8155
8156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8157 trace(p_msg => 'LOOP: updated header acct attr - '||l_key,
8158 p_module => l_log_module,
8159 p_level => C_LEVEL_PROCEDURE);
8160 END IF;
8161
8162 IF (NOT key_exists('HAA'||C_CHAR||l_key)) THEN
8163
8164 record_updated_header_assgn
8165 (p_product_rule_type_code => l_comp.product_rule_type_code
8166 ,p_product_rule_code => l_comp.product_rule_code
8167 ,p_event_class_code => l_comp.event_class_code
8168 ,p_event_type_code => l_comp.event_type_code
8169 ,p_merge_impact => C_MERGE_IMPACT_UPDATED);
8170
8171 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8172
8173 IF (l_comp.s_event_class_default_flag <> l_comp.w_event_class_default_flag) THEN
8174
8175 record_updated_property
8176 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8177 ,p_component_key => l_key
8178 ,p_property => 'ACCOUNTING_REQUIRED_FLAG'
8179 ,p_old_value => l_comp.w_event_class_default_flag
8180 ,p_new_value => l_comp.s_event_class_default_flag
8181 ,p_lookup_type => 'XLA_YES_NO');
8182
8183 END IF;
8184
8185 IF (l_comp.s_source_application_id <> l_comp.w_source_application_id OR
8186 l_comp.s_source_type_code <> l_comp.s_source_type_code OR
8187 l_comp.s_source_code <> l_comp.s_source_code) THEN
8188 record_updated_source
8189 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8190 ,p_component_key => l_key
8191 ,p_property => 'SOURCE_CODE'
8192 ,p_old_source_app_id => l_comp.w_source_application_id
8193 ,p_old_source_type_code => l_comp.w_source_type_code
8194 ,p_old_source_code => l_comp.w_source_code
8195 ,p_new_source_app_id => l_comp.s_source_application_id
8196 ,p_new_source_type_code => l_comp.s_source_type_code
8197 ,p_new_source_code => l_comp.s_source_code);
8198
8199 END IF;
8200 END IF;
8201
8202 END IF;
8203
8204 END LOOP;
8205
8206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8207 trace(p_msg => 'END LOOP: updated header acct attrs',
8208 p_module => l_log_module,
8209 p_level => C_LEVEL_PROCEDURE);
8210 END IF;
8211
8215 p_level => C_LEVEL_PROCEDURE);
8212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8213 trace(p_msg => 'END of function compare_hdr_acct_attrs',
8214 p_module => l_log_module,
8216 END IF;
8217
8218 EXCEPTION
8219 WHEN xla_exceptions_pkg.application_exception THEN
8220 RAISE;
8221 WHEN OTHERS THEN
8222 xla_exceptions_pkg.raise_message
8223 (p_location => l_log_module);
8224 END compare_hdr_acct_attrs;
8225
8226
8227
8228
8229 --=============================================================================
8230 --
8231 -- Name: compare_header_assgns
8232 -- Description:
8233 --
8234 --=============================================================================
8235 PROCEDURE compare_header_assgns
8236 IS
8237 CURSOR c_comp IS
8238 -- Retreive new, deleted, and updated event class/event type assignment
8239 SELECT s.product_rule_type_code
8240 , s.product_rule_code
8241 , s.event_class_code
8242 , s.event_type_code
8243 , CASE WHEN w.event_type_code IS NULL
8244 THEN C_MERGE_IMPACT_NEW
8245 ELSE C_MERGE_IMPACT_UPDATED
8246 END merge_impact
8247 , s.accounting_required_flag s_accounting_required_flag
8248 , w.accounting_required_flag w_accounting_required_flag
8249 , s.description_type_code s_description_type_code
8250 , w.description_type_code w_description_type_code
8251 , s.description_code s_description_code
8252 , w.description_code w_description_code
8253 FROM xla_prod_acct_headers s
8254 JOIN xla_product_rules_b b
8255 ON b.application_id = g_application_id
8256 AND b.amb_context_code = g_amb_context_code
8257 AND b.product_rule_type_code = s.product_rule_type_code
8258 AND b.product_rule_code = s.product_rule_code
8259 LEFT OUTER JOIN xla_prod_acct_headers w
8260 ON w.application_id = g_application_id
8261 AND w.amb_context_code = g_amb_context_code
8262 AND w.product_rule_type_code = s.product_rule_type_code
8263 AND w.product_rule_code = s.product_rule_code
8264 AND w.event_class_code = s.event_class_code
8265 AND w.event_type_code = s.event_type_code
8266 WHERE s.application_id = g_application_id
8267 AND s.amb_context_code = g_staging_context_code
8268 AND (w.event_type_code IS NULL OR
8269 NVL(s.accounting_required_flag,C_CHAR) <> NVL(w.accounting_required_flag,C_CHAR) OR
8270 NVL(s.description_type_code,C_CHAR) <> NVL(w.description_type_code,C_CHAR) OR
8271 NVL(s.description_code,C_CHAR) <> NVL(w.description_code,C_CHAR));
8272
8273 l_key VARCHAR2(240);
8274 l_parent_key VARCHAR2(240);
8275 l_log_module VARCHAR2(240);
8276 BEGIN
8277 IF g_log_enabled THEN
8278 l_log_module := C_DEFAULT_MODULE||'.compare_header_assgns';
8279 END IF;
8280
8281 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8282 trace(p_msg => 'BEGIN of function compare_header_assgns',
8283 p_module => l_log_module,
8284 p_level => C_LEVEL_PROCEDURE);
8285 END IF;
8286
8287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8288 trace(p_msg => 'BEGIN LOOP: updated header assgns',
8289 p_module => l_log_module,
8290 p_level => C_LEVEL_PROCEDURE);
8291 END IF;
8292
8293 FOR l_comp IN c_comp LOOP
8294
8295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8296 trace(p_msg => 'LOOP: updated header assgn - '||
8297 l_comp.product_rule_type_code||C_CHAR||
8298 l_comp.product_rule_code||C_CHAR||
8299 l_comp.event_class_code||C_CHAR||
8300 l_comp.event_type_code||C_CHAR||
8301 l_comp.merge_impact,
8302 p_module => l_log_module,
8303 p_level => C_LEVEL_PROCEDURE);
8304 END IF;
8305
8306 record_updated_header_assgn
8307 (p_product_rule_type_code => l_comp.product_rule_type_code
8308 ,p_product_rule_code => l_comp.product_rule_code
8309 ,p_event_class_code => l_comp.event_class_code
8310 ,p_event_type_code => l_comp.event_type_code
8311 ,p_merge_impact => l_comp.merge_impact);
8312
8313 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8314
8315 l_key := l_comp.product_rule_type_code||C_CHAR||
8316 l_comp.product_rule_code||C_CHAR||
8317 l_comp.event_class_code||C_CHAR||
8318 l_comp.event_type_code;
8319
8320 IF (l_comp.s_accounting_required_flag <> l_comp.w_accounting_required_flag) THEN
8321 record_updated_property
8322 (p_component_type => 'AMB_AAD_EVENT_TYPE'
8323 ,p_component_key => l_key
8324 ,p_property => 'ACCOUNTING_REQUIRED_FLAG'
8325 ,p_old_value => l_comp.w_accounting_required_flag
8326 ,p_new_value => l_comp.s_accounting_required_flag
8327 ,p_lookup_type => 'XLA_YES_NO');
8328 END IF;
8329
8330 IF (NVL(l_comp.s_description_type_code,C_CHAR) <> NVL(l_comp.w_description_type_code,C_CHAR) OR
8331 NVL(l_comp.s_description_code,C_CHAR) <> NVL(l_comp.w_description_code,C_CHAR)) THEN
8332
8333 IF (l_comp.s_description_code IS NOT NULL) THEN
8334 l_parent_key := l_key;
8335 l_key := l_comp.s_description_type_code||C_CHAR||
8336 l_comp.s_description_code;
8337
8338 IF (NOT key_exists('HDESC'||C_CHAR||l_key)) THEN
8339 record_updated_component
8343 ,p_component_key => l_key
8340 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8341 ,p_parent_component_key => l_parent_key
8342 ,p_component_type => 'AMB_DESCRIPTION'
8344 ,p_merge_impact => C_MERGE_IMPACT_NEW
8345 ,p_component_owner_code => l_comp.s_description_type_code
8346 ,p_component_code => l_comp.s_description_code);
8347 END IF;
8348 END IF;
8349
8350 IF (l_comp.w_description_code IS NOT NULL) THEN
8351 l_key := l_comp.s_description_type_code||C_CHAR||
8352 l_comp.s_description_code;
8353
8354 IF (NOT key_exists('HDESC'||C_CHAR||l_key)) THEN
8355 record_updated_component
8356 (p_parent_component_type => 'AMB_AAD_EVENT_TYPE'
8357 ,p_parent_component_key => l_parent_key
8358 ,p_component_type => 'AMB_DESCRIPTION'
8359 ,p_component_key => l_key
8360 ,p_merge_impact => C_MERGE_IMPACT_DELETED
8361 ,p_component_owner_code => l_comp.w_description_type_code
8362 ,p_component_code => l_comp.w_description_code);
8363 END IF;
8364 END IF;
8365 END IF;
8366
8367 END IF;
8368
8369 END LOOP;
8370
8371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8372 trace(p_msg => 'END LOOP: updated header assgns',
8373 p_module => l_log_module,
8374 p_level => C_LEVEL_PROCEDURE);
8375 END IF;
8376
8377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8378 trace(p_msg => 'END of function compare_header_assgns',
8379 p_module => l_log_module,
8380 p_level => C_LEVEL_PROCEDURE);
8381 END IF;
8382
8383 EXCEPTION
8384 WHEN xla_exceptions_pkg.application_exception THEN
8385 RAISE;
8386 WHEN OTHERS THEN
8387 xla_exceptions_pkg.raise_message
8388 (p_location => l_log_module);
8389 END compare_header_assgns;
8390
8391
8392 --=============================================================================
8393 --
8394 -- Name: compare_aads
8395 -- Description:
8396 --
8397 --=============================================================================
8398 PROCEDURE compare_aads
8399 IS
8400 -- Retrieve new, deleted, and updated AAD
8401 CURSOR c_comps IS
8402 SELECT bs.product_rule_type_code
8403 , bs.product_rule_code
8404 , CASE WHEN bw.application_id IS NULL
8405 THEN C_MERGE_IMPACT_NEW
8406 ELSE C_MERGE_IMPACT_UPDATED
8407 END merge_impact
8408 , ts.name s_name
8409 , tw.name w_name
8410 , ts.description s_description
8411 , tw.description w_description
8412 , bs.transaction_coa_id s_transaction_coa_id
8413 , bw.transaction_coa_id w_transaction_coa_id
8414 , bs.accounting_coa_id s_accounting_coa_id
8415 , bw.accounting_coa_id w_accounting_coa_id
8416 , bs.enabled_flag s_enabled_flag
8417 , bw.enabled_flag w_enabled_flag
8418 , bs.locking_status_flag s_locking_status_flag
8419 , bw.locking_status_flag w_locking_status_flag
8420 , bs.product_rule_version s_product_rule_version
8421 , bw.product_rule_version w_product_rule_version
8422 , bs.version_num s_version_num
8423 , bw.version_num w_version_num
8424 FROM xla_product_rules_b bs
8425 JOIN xla_product_rules_tl ts
8426 ON ts.application_id = bs.application_id
8427 AND ts.amb_context_code = bs.amb_context_code
8428 AND ts.product_rule_type_code = bs.product_rule_type_code
8429 AND ts.product_rule_code = bs.product_rule_code
8430 AND ts.language = USERENV('LANG')
8431 LEFT OUTER JOIN xla_product_rules_b bw
8432 ON bw.application_id = bs.application_id
8433 AND bw.amb_context_code = g_amb_context_code
8434 AND bw.product_rule_type_code = bs.product_rule_type_code
8435 AND bw.product_rule_code = bs.product_rule_code
8436 LEFT OUTER JOIN xla_product_rules_tl tw
8437 ON tw.application_id = bw.application_id
8438 AND tw.amb_context_code = bw.amb_context_code
8439 AND tw.product_rule_type_code = bw.product_rule_type_code
8440 AND tw.product_rule_code = bw.product_rule_code
8441 AND tw.language = USERENV('LANG')
8442 WHERE bs.application_id = g_application_id
8443 AND bs.amb_context_code = g_staging_context_code
8444 AND (bw.application_id IS NULL OR
8445 NVL(ts.name,C_CHAR) <> NVL(tw.name, C_CHAR) OR
8446 NVL(ts.description,C_CHAR) <> NVL(tw.description, C_CHAR) OR
8447 NVL(bs.transaction_coa_id,C_NUM) <> NVL(bw.transaction_coa_id, C_NUM) OR
8448 NVL(bs.accounting_coa_id,C_NUM) <> NVL(bw.accounting_coa_id, C_NUM) OR
8449 NVL(bs.enabled_flag,C_CHAR) <> NVL(bw.enabled_flag, C_CHAR) OR
8450 NVL(bs.locking_status_flag,C_CHAR) <> NVL(bw.locking_status_flag, C_CHAR) OR
8451 NVL(bs.product_rule_version,C_CHAR)<> NVL(bw.product_rule_version, C_CHAR) OR
8452 NVL(bs.version_num,C_NUM) <> NVL(bw.version_num, C_NUM));
8453
8454 l_key VARCHAR2(240);
8455 l_log_module VARCHAR2(240);
8456 BEGIN
8457 IF g_log_enabled THEN
8458 l_log_module := C_DEFAULT_MODULE||'.compare_aads';
8459 END IF;
8460
8461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8462 trace(p_msg => 'BEGIN of function compare_aads',
8466
8463 p_module => l_log_module,
8464 p_level => C_LEVEL_PROCEDURE);
8465 END IF;
8467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8468 trace(p_msg => 'BEGIN LOOP: updated aads',
8469 p_module => l_log_module,
8470 p_level => C_LEVEL_PROCEDURE);
8471 END IF;
8472
8473 FOR l_comp IN c_comps LOOP
8474
8475 l_key := l_comp.product_rule_type_code||C_CHAR||
8476 l_comp.product_rule_code;
8477
8478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8479 trace(p_msg => 'LOOP: updated aad - '||l_key,
8480 p_module => l_log_module,
8481 p_level => C_LEVEL_PROCEDURE);
8482 END IF;
8483
8484 record_updated_aad
8485 (p_product_rule_type_code => l_comp.product_rule_type_code
8486 ,p_product_rule_code => l_comp.product_rule_code
8487 ,p_merge_impact => l_comp.merge_impact);
8488
8489 IF (l_comp.merge_impact = C_MERGE_IMPACT_UPDATED) THEN
8490
8491 IF (l_comp.s_name <> l_comp.w_name) THEN
8492 record_updated_property
8493 (p_component_type => 'AMB_AAD'
8494 ,p_component_key => l_key
8495 ,p_property => 'NAME'
8496 ,p_old_value => l_comp.w_name
8497 ,p_new_value => l_comp.s_name);
8498 END IF;
8499
8500 IF (NVL(l_comp.s_description,C_CHAR) <> NVL(l_comp.w_description,C_CHAR)) THEN
8501 record_updated_property
8502 (p_component_type => 'AMB_AAD'
8503 ,p_component_key => l_key
8504 ,p_property => 'DESCRIPTION'
8505 ,p_old_value => l_comp.w_description
8506 ,p_new_value => l_comp.s_description);
8507 END IF;
8508
8509 IF (NVL(l_comp.s_transaction_coa_id,C_NUM) <> NVL(l_comp.w_transaction_coa_id,C_NUM)) THEN
8510 record_updated_property
8511 (p_component_type => 'AMB_AAD'
8512 ,p_component_key => l_key
8513 ,p_property => 'TRANSACTION_COA'
8514 ,p_old_value => l_comp.w_transaction_coa_id
8515 ,p_new_value => l_comp.s_transaction_coa_id);
8516 END IF;
8517
8518 IF (NVL(l_comp.s_accounting_coa_id,C_NUM) <> NVL(l_comp.w_accounting_coa_id,C_NUM)) THEN
8519 record_updated_property
8520 (p_component_type => 'AMB_AAD'
8521 ,p_component_key => l_key
8522 ,p_property => 'ACCOUNTING_COA'
8523 ,p_old_value => l_comp.w_accounting_coa_id
8524 ,p_new_value => l_comp.s_accounting_coa_id);
8525 END IF;
8526
8527 IF (l_comp.s_enabled_flag <> l_comp.w_enabled_flag) THEN
8528 record_updated_property
8529 (p_component_type => 'AMB_AAD'
8530 ,p_component_key => l_key
8531 ,p_property => 'ENABLED'
8532 ,p_old_value => l_comp.w_enabled_flag
8533 ,p_new_value => l_comp.s_enabled_flag
8534 ,p_lookup_type => 'XLA_YES_NO');
8535 END IF;
8536
8537 IF (l_comp.s_locking_status_flag <> l_comp.w_locking_status_flag) THEN
8538 record_updated_property
8539 (p_component_type => 'AMB_AAD'
8540 ,p_component_key => l_key
8541 ,p_property => 'LOCKED'
8542 ,p_old_value => l_comp.w_locking_status_flag
8543 ,p_new_value => l_comp.s_locking_status_flag
8544 ,p_lookup_type => 'XLA_YES_NO');
8545 END IF;
8546
8547 IF (NVL(l_comp.s_product_rule_version,C_CHAR) <> NVL(l_comp.w_product_rule_version,C_CHAR)) THEN
8548 record_updated_property
8549 (p_component_type => 'AMB_AAD'
8550 ,p_component_key => l_key
8551 ,p_property => 'PRODUCT_RULE_VERSION'
8552 ,p_old_value => l_comp.w_product_rule_version
8553 ,p_new_value => l_comp.s_product_rule_version);
8554 END IF;
8555
8556 IF (NVL(l_comp.s_version_num,C_NUM) <> NVL(l_comp.w_version_num,C_NUM)) THEN
8557 record_updated_property
8558 (p_component_type => 'AMB_AAD'
8559 ,p_component_key => l_key
8560 ,p_property => 'VERSION_NUM'
8561 ,p_old_value => l_comp.w_version_num
8562 ,p_new_value => l_comp.s_version_num);
8563 END IF;
8564
8565 END IF;
8566 END LOOP;
8567
8568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8569 trace(p_msg => 'END LOOP: updated aads',
8570 p_module => l_log_module,
8571 p_level => C_LEVEL_PROCEDURE);
8572 END IF;
8573
8574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8575 trace(p_msg => 'END of function compare_aads',
8576 p_module => l_log_module,
8577 p_level => C_LEVEL_PROCEDURE);
8578 END IF;
8579
8580 EXCEPTION
8581 WHEN xla_exceptions_pkg.application_exception THEN
8582 RAISE;
8583 WHEN OTHERS THEN
8584 xla_exceptions_pkg.raise_message
8585 (p_location => l_log_module);
8586 END compare_aads;
8587
8588 --=============================================================================
8589 --
8590 -- Name; analyze_aads
8591 -- Description:
8592 --
8593 --=============================================================================
8594 PROCEDURE analyze_aads
8595 IS
8596 l_log_module VARCHAR2(240);
8597 BEGIN
8598 IF g_log_enabled THEN
8599 l_log_module := C_DEFAULT_MODULE||'.analyze_aads';
8600 END IF;
8601
8605 p_level => C_LEVEL_PROCEDURE);
8602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8603 trace(p_msg => 'BEGIN of function analyze_aads',
8604 p_module => l_log_module,
8606 END IF;
8607
8608 IF (g_user_mode = 'C') THEN
8609 analyze_deleted_oracle_comps;
8610 compare_mapping_set_values;
8611 compare_mapping_sets;
8612 END IF;
8613
8614 -- compare journal entry setups
8615 compare_jlt_acct_attrs;
8616 compare_jlts;
8617
8618 compare_ac_sources;
8619 compare_ac_details;
8620 compare_acs;
8621
8622 compare_desc_priorities;
8623 compare_descs;
8624
8625 compare_adr_details;
8626 compare_adrs;
8627
8628 -- compare journal entry definition assignments
8629 compare_mpa_jlt_adr_assgns;
8630 compare_mpa_jlt_ac_assgns;
8631 compare_mpa_jlt_assgns;
8632 compare_mpa_hdr_ac_assgns;
8633 compare_mpa_hdr_assgns;
8634 compare_line_adr_assgns;
8635 compare_line_ac_assgns;
8636 compare_jld_jlt_assgns;
8637 compare_jlds;
8638
8639 -- compare header assignments
8640 compare_jld_assgns;
8641 compare_hdr_ac_assgns;
8642 compare_hdr_acct_attrs;
8643 compare_header_assgns;
8644
8645 -- compare aads
8646 compare_aads;
8647
8648 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8649 trace(p_msg => 'END of function analyze_aads',
8650 p_module => l_log_module,
8651 p_level => C_LEVEL_PROCEDURE);
8652 END IF;
8653
8654 EXCEPTION
8655 WHEN OTHERS THEN
8656 xla_aad_loader_util_pvt.stack_error
8657 (p_appli_s_name => 'XLA'
8658 ,p_msg_name => 'XLA_COMMON_ERROR'
8659 ,p_token_1 => 'LOCATION'
8660 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analyze_aads'
8661 ,p_token_2 => 'ERROR'
8662 ,p_value_2 => 'Unhandled exception');
8663 RAISE;
8664
8665 END analyze_aads;
8666
8667
8668
8669 --=============================================================================
8670 --
8671 -- Name: group_aads
8672 -- Description: This API groups the AAD with the same group number if they
8673 -- shares any commom components. The group number information is
8674 -- stored in the g_aad_groups global array.
8675 --
8676 --=============================================================================
8677 /*
8678 PROCEDURE group_aads
8679 IS
8680 l_curr_group_num INTEGER;
8681
8682 -- Cursor to return all AADs to be grouped
8683 CURSOR c_aad IS
8684 SELECT product_rule_type_code
8685 ,product_rule_code
8686 ,decode(min(decode(amb_context_code,g_amb_context_code,1,2)),1,'Y','N') required_flag
8687 FROM xla_product_rules_b
8688 WHERE application_id = g_application_id
8689 AND amb_context_code IN (g_amb_context_code,g_staging_context_code)
8690 GROUP BY product_rule_type_code, product_rule_code;
8691
8692 -- Cursor to return AADs that shares any common component with the AADs that
8693 -- was assigned with the group l_curr_group_num
8694 CURSOR c_aad_group IS
8695 SELECT h.product_rule_type_code, h.product_rule_code
8696 FROM xla_prod_acct_headers h
8697 WHERE h.application_id = g_application_id
8698 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8699 AND EXISTS (SELECT 1
8700 FROM xla_prod_acct_headers pah
8701 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8702 WHERE pah.application_id = g_application_id
8703 AND pah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8704 AND pah.description_type_code = h.description_type_code
8705 AND pah.description_code = h.description_code
8706 AND pah.product_rule_type_code = grp.product_rule_type_code
8707 AND pah.product_rule_code = grp.product_rule_code
8708 AND grp.group_num = l_curr_group_num
8709 UNION
8710 SELECT 1
8711 FROM xla_aad_line_defn_assgns xal
8712 ,xla_line_defn_jlt_assgns xjl
8713 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8714 WHERE xjl.application_id = g_application_id
8715 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8716 AND xjl.description_type_code = h.description_type_code
8717 AND xjl.description_code = h.description_code
8718 AND xal.application_id = g_application_id
8719 AND xal.amb_context_code = xjl.amb_context_code
8720 AND xal.product_rule_type_code = grp.product_rule_type_code
8721 AND xal.product_rule_code = grp.product_rule_code
8722 AND xal.event_class_code = xjl.event_class_code
8723 AND xal.event_type_code = xjl.event_type_code
8724 AND xal.line_definition_owner_code = xjl.line_definition_owner_code
8725 AND xal.line_definition_code = xjl.line_definition_code
8726 AND grp.group_num = l_curr_group_num)
8727 UNION
8728 SELECT xal.product_rule_type_code, xal.product_rule_code
8729 FROM xla_line_defn_jlt_assgns h
8730 ,xla_aad_line_defn_assgns xal
8731 WHERE h.application_id = xal.application_id
8732 AND h.amb_context_code = xal.amb_context_code
8733 AND h.event_class_code = xal.event_class_code
8734 AND h.event_type_code = xal.event_type_code
8738 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8735 AND h.line_definition_owner_code = xal.line_definition_owner_code
8736 AND h.line_definition_code = xal.line_definition_code
8737 AND h.application_id = g_application_id
8739 AND EXISTS (SELECT 1
8740 FROM xla_prod_acct_headers pah
8741 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8742 WHERE pah.application_id = g_application_id
8743 AND pah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8744 AND pah.description_type_code = h.description_type_code
8745 AND pah.description_code = h.description_code
8746 AND pah.product_rule_type_code = grp.product_rule_type_code
8747 AND pah.product_rule_code = grp.product_rule_code
8748 AND grp.group_num = l_curr_group_num
8749 UNION
8750 SELECT 1
8751 FROM xla_aad_line_defn_assgns xal
8752 ,xla_line_defn_jlt_assgns xjl
8753 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8754 WHERE xjl.application_id = g_application_id
8755 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8756 AND xjl.description_type_code = h.description_type_code
8757 AND xjl.description_code = h.description_code
8758 AND xal.application_id = xjl.application_id
8759 AND xal.amb_context_code = xjl.amb_context_code
8760 AND xal.product_rule_type_code = grp.product_rule_type_code
8761 AND xal.product_rule_code = grp.product_rule_code
8762 AND xal.event_class_code = xjl.event_class_code
8763 AND xal.event_type_code = xjl.event_type_code
8764 AND xal.line_definition_owner_code = xjl.line_definition_owner_code
8765 AND xal.line_definition_code = xjl.line_definition_code
8766 AND grp.group_num = l_curr_group_num)
8767 UNION
8768 SELECT xal.product_rule_type_code, xal.product_rule_code
8769 FROM xla_line_defn_jlt_assgns h
8770 ,xla_aad_line_defn_assgns xal
8771 WHERE h.application_id = xal.application_id
8772 AND h.amb_context_code = xal.amb_context_code
8773 AND h.event_class_code = xal.event_class_code
8774 AND h.event_type_code = xal.event_type_code
8775 AND h.line_definition_owner_code = xal.line_definition_owner_code
8776 AND h.line_definition_code = xal.line_definition_code
8777 AND h.application_id = g_application_id
8778 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8779 AND EXISTS (SELECT 1
8780 FROM xla_aad_line_defn_assgns xad
8781 ,xla_line_defn_jlt_assgns xjl
8782 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8783 WHERE xjl.application_id = g_application_id
8784 AND xjl.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8785 AND xjl.event_class_code = h.event_class_code
8786 AND xjl.accounting_line_type_code = h.accounting_line_type_code
8787 AND xjl.accounting_line_code = h.accounting_line_code
8788 AND xad.event_class_code = xjl.event_class_code
8789 AND xad.event_type_code = xjl.event_type_code
8790 AND xad.line_definition_owner_code = xjl.line_definition_owner_code
8791 AND xad.line_definition_code = xjl.line_definition_code
8792 AND xad.application_id = xjl.application_id
8793 AND xad.amb_context_code = xjl.amb_context_code
8794 AND xad.product_rule_type_code = grp.product_rule_type_code
8795 AND xad.product_rule_code = grp.product_rule_code
8796 AND grp.group_num = l_curr_group_num)
8797 UNION
8798 SELECT h.product_rule_type_code, h.product_rule_code
8799 FROM xla_aad_header_ac_assgns h
8800 WHERE h.application_id = g_application_id
8801 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8802 AND EXISTS (SELECT 1
8803 FROM xla_aad_header_ac_assgns xah
8804 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8805 WHERE xah.analytical_criterion_type_code = h.analytical_criterion_type_code
8806 AND xah.analytical_criterion_code = h.analytical_criterion_code
8807 AND xah.application_id = g_application_id
8808 AND xah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8809 AND xah.product_rule_type_code = grp.product_rule_type_code
8810 AND xah.product_rule_code = grp.product_rule_code
8811 AND grp.group_num = l_curr_group_num
8812 UNION
8813 SELECT 1
8814 FROM xla_line_defn_ac_assgns xac
8815 ,xla_aad_line_defn_assgns xal
8816 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8817 WHERE xac.analytical_criterion_type_code = h.analytical_criterion_type_code
8818 AND xac.analytical_criterion_code = h.analytical_criterion_code
8819 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8820 AND xac.application_id = g_application_id
8821 AND xac.event_class_code = xal.event_class_code
8825 AND xal.application_id = xac.application_id
8822 AND xac.event_type_code = xal.event_type_code
8823 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8824 AND xac.line_definition_code = xal.line_definition_code
8826 AND xal.amb_context_code = xac.amb_context_code
8827 AND xal.product_rule_type_code = grp.product_rule_type_code
8828 AND xal.product_rule_code = grp.product_rule_code
8829 AND grp.group_num = l_curr_group_num)
8830 UNION
8831 SELECT xad.product_rule_type_code, xad.product_rule_code
8832 FROM xla_line_defn_ac_assgns h
8833 ,xla_aad_line_defn_assgns xad
8834 WHERE h.application_id = xad.application_id
8835 AND h.amb_context_code = xad.amb_context_code
8836 AND h.event_class_code = xad.event_class_code
8837 AND h.event_type_code = xad.event_type_code
8838 AND h.line_definition_owner_code = xad.line_definition_owner_code
8839 AND h.line_definition_code = xad.line_definition_code
8840 AND xad.application_id = g_application_id
8841 AND xad.amb_context_code = g_amb_context_code
8842 AND EXISTS (SELECT 1
8843 FROM xla_aad_header_ac_assgns xah
8844 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8845 WHERE xah.analytical_criterion_type_code = h.analytical_criterion_type_code
8846 AND xah.analytical_criterion_code = h.analytical_criterion_code
8847 AND xah.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8848 AND xah.application_id = g_application_id
8849 AND xah.product_rule_type_code = grp.product_rule_type_code
8850 AND xah.product_rule_code = grp.product_rule_code
8851 AND grp.group_num = l_curr_group_num
8852 UNION
8853 SELECT 1
8854 FROM xla_line_defn_ac_assgns xac
8855 ,xla_aad_line_defn_assgns xal
8856 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8857 WHERE xac.analytical_criterion_type_code = h.analytical_criterion_type_code
8858 AND xac.analytical_criterion_code = h.analytical_criterion_code
8859 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8860 AND xac.application_id = g_application_id
8861 AND xac.event_class_code = xal.event_class_code
8862 AND xac.event_type_code = xal.event_type_code
8863 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8864 AND xac.line_definition_code = xal.line_definition_code
8865 AND xal.application_id = xac.application_id
8866 AND xal.amb_context_code = xac.amb_context_code
8867 AND xal.product_rule_type_code = grp.product_rule_type_code
8868 AND xal.product_rule_code = grp.product_rule_code
8869 AND grp.group_num = l_curr_group_num)
8870 UNION
8871 SELECT xad.product_rule_type_code, xad.product_rule_code
8872 FROM xla_line_defn_adr_assgns h
8873 ,xla_aad_line_defn_assgns xad
8874 WHERE h.application_id = xad.application_id
8875 AND h.amb_context_code = xad.amb_context_code
8876 AND h.event_class_code = xad.event_class_code
8877 AND h.event_type_code = xad.event_type_code
8878 AND h.line_definition_owner_code = xad.line_definition_owner_code
8879 AND h.line_definition_code = xad.line_definition_code
8880 AND h.application_id = g_application_id
8881 AND h.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8882 AND EXISTS (SELECT 1
8883 FROM xla_line_defn_adr_assgns xac
8884 ,xla_aad_line_defn_assgns xal
8885 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8886 WHERE xac.application_id = g_application_id
8887 AND xac.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8888 AND xac.segment_rule_type_code = h.segment_rule_type_code
8889 AND xac.segment_rule_code = h.segment_rule_code
8890 AND xac.event_class_code = xal.event_class_code
8891 AND xac.event_type_code = xal.event_type_code
8892 AND xac.line_definition_owner_code = xal.line_definition_owner_code
8893 AND xac.line_definition_code = xal.line_definition_code
8894 AND xal.application_id = xac.application_id
8895 AND xal.amb_context_code = xac.amb_context_code
8896 AND xal.product_rule_type_code = grp.product_rule_type_code
8897 AND xal.product_rule_code = grp.product_rule_code
8898 AND grp.group_num = l_curr_group_num)
8899 UNION
8900 SELECT xal.product_rule_type_code, xal.product_rule_code
8901 FROM xla_line_defn_adr_assgns adr
8902 ,xla_aad_line_defn_assgns xal
8903 ,xla_seg_rule_details xsr
8904 WHERE xal.application_id = adr.application_id
8905 AND xal.amb_context_code = adr.amb_context_code
8906 AND xal.event_class_code = adr.event_class_code
8907 AND xal.event_type_code = adr.event_type_code
8908 AND xal.line_definition_owner_code = adr.line_definition_owner_code
8909 AND xal.line_definition_code = adr.line_definition_code
8913 AND adr.segment_rule_code = xsr.segment_rule_code
8910 AND adr.application_id = xsr.application_id
8911 AND adr.amb_context_code = xsr.amb_context_code
8912 AND adr.segment_rule_type_code = xsr.segment_rule_type_code
8914 AND xsr.application_id = g_application_id
8915 AND xsr.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8916 AND EXISTS (SELECT 1
8917 FROM xla_line_defn_adr_assgns adr2
8918 ,xla_aad_line_defn_assgns xal2
8919 ,xla_seg_rule_details xsr2
8920 ,TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type)) grp
8921 WHERE xsr2.value_mapping_set_code = xsr.value_mapping_set_code
8922 AND xsr2.application_id = adr2.application_id
8923 AND xsr2.amb_context_code = adr2.amb_context_code
8924 AND xsr2.segment_rule_type_code = adr2.segment_rule_type_code
8925 AND xsr2.segment_rule_code = adr2.segment_rule_code
8926 AND adr2.application_id = xal2.application_id
8927 AND adr2.amb_context_code = xal2.amb_context_code
8928 AND adr2.event_class_code = xal2.event_class_code
8929 AND adr2.event_type_code = xal2.event_type_code
8930 AND adr2.line_definition_owner_code = xal2.line_definition_owner_code
8931 AND adr2.line_definition_code = xal2.line_definition_code
8932 AND xal2.application_id = g_application_id
8933 AND xal2.amb_context_code IN (g_amb_context_code,g_staging_context_code)
8934 AND xal2.product_rule_type_code = grp.product_rule_type_code
8935 AND xal2.product_rule_code = grp.product_rule_code
8936 AND grp.group_num = l_curr_group_num);
8937
8938 -- Cursor to return the next AAD that is not grouped
8939 CURSOR c_next_aad IS
8940 SELECT product_rule_type_code, product_rule_code
8941 FROM TABLE(CAST(g_aad_groups AS xla_aad_group_tbl_type))
8942 WHERE group_num = 0;
8943
8944 l_aad_group xla_aad_group_rec_type;
8945 l_updated BOOLEAN;
8946 l_type_code VARCHAR2(30);
8947 l_code VARCHAR2(30);
8948 l_count INTEGER;
8949 l_log_module VARCHAR2(240);
8950 BEGIN
8951 IF g_log_enabled THEN
8952 l_log_module := C_DEFAULT_MODULE||'.group_aads';
8953 END IF;
8954
8955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8956 trace(p_msg => 'BEGIN of procedure group_aads'
8957 ,p_level => C_LEVEL_PROCEDURE
8958 ,p_module => l_log_module);
8959 END IF;
8960
8961 g_aad_groups := xla_aad_group_tbl_type();
8962
8963 l_count := 0;
8964 l_curr_group_num := 1;
8965
8966 -- Initialize the AAD array
8967 IF (C_LEVEL_EVENT >= g_log_level) THEN
8968 trace(p_msg => 'BEGIN LOOP - retrieve AADs',
8969 p_module => l_log_module,
8970 p_level => C_LEVEL_EVENT);
8971 END IF;
8972
8973 FOR l_aad IN c_aad LOOP
8974 IF (C_LEVEL_ERROR >= g_log_level) THEN
8975 trace(p_msg => 'LOOP - AAD:'||
8976 ' product_rule_type_code='||l_aad.product_rule_type_code||
8977 ',product_rule_code='||l_aad.product_rule_code||
8978 ',required_flag='||l_aad.required_flag
8979 ,p_module => l_log_module
8980 ,p_level => C_LEVEL_ERROR);
8981 END IF;
8982
8983 l_aad_group := xla_aad_group_rec_type
8984 (l_aad.product_rule_type_code
8985 ,l_aad.product_rule_code
8986 ,0
8987 ,NULL
8988 ,NULL
8989 ,NULL
8990 ,l_aad.required_flag);
8991
8992 l_count := l_count + 1;
8993 g_aad_groups.EXTEND;
8994 g_aad_groups(l_count) := l_aad_group;
8995 END LOOP;
8996
8997 IF (C_LEVEL_EVENT >= g_log_level) THEN
8998 trace(p_msg => 'END LOOP - retrieve AADs',
8999 p_module => l_log_module,
9000 p_level => C_LEVEL_EVENT);
9001 END IF;
9002
9003 -- Assign group #1 to the first AAD
9004 IF (g_aad_groups.COUNT > 0) THEN
9005 g_aad_groups(1).group_num := l_curr_group_num;
9006 END IF;
9007
9008 --
9009 -- Loop until all application accounting definitions are assigned
9010 -- with a group number
9011 --
9012 LOOP
9013 IF (C_LEVEL_ERROR >= g_log_level) THEN
9014 trace(p_msg => 'LOOP - current group number = '||l_curr_group_num,
9015 p_module => l_log_module,
9016 p_level => C_LEVEL_ERROR);
9017 END IF;
9018 --
9019 -- Loop until no more new application accounting definitions is
9020 -- found to be sharing any journal entry setups with the
9021 -- definitions in the current group.
9022 --
9023 LOOP
9024 OPEN c_aad_group;
9025 l_updated := FALSE;
9026
9027 --
9028 -- Loop until all application accounting definitions that
9029 -- shares journal entry sets with the definitions in the
9030 -- current group are marked with the current group number.
9031 LOOP
9032 FETCH c_aad_group INTO l_type_code, l_code;
9033 EXIT WHEN c_aad_group%NOTFOUND;
9034
9035 IF (update_group_number(l_type_code
9036 ,l_code
9037 ,l_curr_group_num)) THEN
9038 l_updated := TRUE;
9039 END IF;
9040 END LOOP;
9041 CLOSE c_aad_group;
9042 IF (NOT l_updated) THEN
9043 EXIT;
9047 OPEN c_next_aad;
9044 END IF;
9045 END LOOP;
9046
9048 FETCH c_next_aad INTO l_type_code, l_code;
9049 EXIT WHEN c_next_aad%NOTFOUND;
9050
9051 CLOSE c_next_aad;
9052 l_curr_group_num := l_curr_group_num + 1;
9053 l_updated := update_group_number(l_type_code
9054 ,l_code
9055 ,l_curr_group_num);
9056 END LOOP;
9057 CLOSE c_next_aad;
9058
9059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9060 FOR i IN 1 .. g_aad_groups.COUNT LOOP
9061 trace(p_msg => 'group='||g_aad_groups(i).group_num||
9062 ' '||g_aad_groups(i).product_rule_code
9063 ,p_module => l_log_module
9064 ,p_level => C_LEVEL_PROCEDURE);
9065 END LOOP;
9066 END IF;
9067
9068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9069 trace(p_msg => 'END of procedure group_aads'
9070 ,p_module => l_log_module
9071 ,p_level => C_LEVEL_PROCEDURE);
9072 END IF;
9073 EXCEPTION
9074 WHEN xla_exceptions_pkg.application_exception THEN
9075 RAISE;
9076
9077 WHEN OTHERS THEN
9078 xla_exceptions_pkg.raise_message
9079 (p_location => 'xla_aad_merge_analysis_pvt.group_aads');
9080
9081 END group_aads;
9082
9083
9084 --=============================================================================
9085 --
9086 -- Name:
9087 -- Description:
9088 --
9089 --=============================================================================
9090 PROCEDURE analyze_merge_dependency
9091 (p_application_id INTEGER
9092 ,p_amb_context_code VARCHAR2)
9093 IS
9094 l_log_module VARCHAR2(240);
9095 BEGIN
9096 IF g_log_enabled THEN
9097 l_log_module := C_DEFAULT_MODULE||'.analyze_merge_dependency';
9098 END IF;
9099
9100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9101 trace(p_msg => 'BEGIN of procedure analyze_merge_dependency',
9102 p_module => l_log_module,
9103 p_level => C_LEVEL_PROCEDURE);
9104 END IF;
9105
9106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9107 trace(p_msg => 'END of procedure analyze_merge_dependency',
9108 p_module => l_log_module,
9109 p_level => C_LEVEL_PROCEDURE);
9110 END IF;
9111
9112 EXCEPTION
9113 WHEN xla_exceptions_pkg.application_exception THEN
9114 RAISE;
9115
9116 WHEN OTHERS THEN
9117 xla_exceptions_pkg.raise_message
9118 (p_location => 'xla_aad_merge_analysis_pvt.analyze_merge_dependency');
9119
9120 END analyze_merge_dependency;
9121 */
9122
9123 --=============================================================================
9124 ---- Name:
9125 -- Description:
9126 --
9127 --=============================================================================
9128 PROCEDURE post_analysis
9129 IS
9130 l_merge_impact VARCHAR2(30);
9131 l_log_module VARCHAR2(240);
9132 BEGIN
9133 IF g_log_enabled THEN
9134 l_log_module := C_DEFAULT_MODULE||'.post_analysis';
9135 END IF;
9136
9137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9138 trace(p_msg => 'BEGIN of procedure post_analysis',
9139 p_module => l_log_module,
9140 p_level => C_LEVEL_PROCEDURE);
9141 END IF;
9142
9143 INSERT INTO xla_amb_updated_comps
9144 (amb_updated_comp_id
9145 ,application_id
9146 ,amb_context_code
9147 ,component_type_code
9148 ,component_key
9149 ,parent_component_type_code
9150 ,parent_component_key
9151 ,merge_impact_code
9152 ,event_class_code
9153 ,event_type_code
9154 ,component_owner_code
9155 ,component_code
9156 ,parent_component_owner_code
9157 ,parent_component_code
9158 ,property_code
9159 ,old_value
9160 ,old_source_app_id
9161 ,old_source_type_code
9162 ,old_source_code
9163 ,new_value
9164 ,new_source_app_id
9165 ,new_source_type_code
9166 ,new_source_code
9167 ,lookup_type
9168 ,merge_enabled_flag
9169 ,object_version_number
9170 ,creation_date
9171 ,created_by
9172 ,last_update_date
9173 ,last_updated_by
9174 ,last_update_login
9175 ,program_update_date
9176 ,program_application_id
9177 ,program_id
9178 ,request_id)
9179 SELECT xla_amb_updated_comps_s.nextval
9180 ,g_application_id
9181 ,g_amb_context_code
9182 ,component_type
9183 ,component_key
9184 ,parent_component_type
9185 ,parent_component_key
9186 ,merge_impact
9187 ,event_class_code
9188 ,event_type_code
9189 ,component_owner_code
9190 ,component_code
9191 ,parent_component_owner_code
9192 ,parent_component_code
9193 ,property
9194 ,substr(old_value,1,2000)
9195 ,old_source_app_id
9196 ,old_source_type_code
9197 ,old_source_code
9198 ,substr(new_value,1,2000)
9199 ,new_source_app_id
9200 ,new_source_type_code
9201 ,new_source_code
9202 ,lookup_type
9203 ,'N'
9204 ,1
9205 ,sysdate
9206 ,xla_environment_pkg.g_usr_id
9207 ,sysdate
9208 ,xla_environment_pkg.g_usr_id
9209 ,xla_environment_pkg.g_login_id
9210 ,sysdate
9211 ,xla_environment_pkg.g_prog_appl_id
9212 ,xla_environment_pkg.g_prog_id
9213 ,xla_environment_pkg.g_req_Id
9214 FROM (SELECT component_type
9215 ,component_key
9219 ,event_class_code
9216 ,parent_component_type
9217 ,parent_component_key
9218 ,merge_impact
9220 ,event_type_code
9221 ,component_owner_code
9222 ,component_code
9223 ,parent_component_owner_code
9224 ,parent_component_code
9225 ,NULL property
9226 ,NULL old_value
9227 ,NULL old_source_app_id
9228 ,NULL old_source_type_code
9229 ,NULL old_source_code
9230 ,NULL new_value
9231 ,NULL new_source_app_id
9232 ,NULL new_source_type_code
9233 ,NULL new_source_code
9234 ,NULL lookup_type
9235 FROM TABLE(CAST(g_updated_comps AS xla_amb_updated_comp_tbl_type))
9236 UNION
9237 SELECT NULL
9238 ,NULL
9239 ,component_type
9240 ,component_key
9241 ,C_MERGE_IMPACT_UPDATED
9242 ,NULL
9243 ,NULL
9244 ,NULL
9245 ,NULL
9246 ,NULL
9247 ,NULL
9248 ,property
9249 ,old_value
9250 ,old_source_app_id
9251 ,old_source_type_code
9252 ,old_source_code
9253 ,new_value
9254 ,new_source_app_id
9255 ,new_source_type_code
9256 ,new_source_code
9257 ,lookup_type
9258 FROM TABLE(CAST(g_updated_props AS xla_amb_updated_prop_tbl_type)));
9259
9260 IF (SQL%ROWCOUNT > 0) THEN
9261 l_merge_impact := C_MERGE_IMPACT_UPDATED;
9262 ELSE
9263 l_merge_impact := C_MERGE_IMPACT_UNCHANGED;
9264 END IF;
9265
9266 INSERT INTO xla_amb_updated_comps
9267 (amb_updated_comp_id
9268 ,application_id
9269 ,amb_context_code
9270 ,component_type_code
9271 ,component_key
9272 ,merge_impact_code
9273 ,merge_enabled_flag
9274 ,object_version_number
9275 ,creation_date
9276 ,created_by
9277 ,last_update_date
9278 ,last_updated_by
9279 ,last_update_login
9280 ,program_update_date
9281 ,program_application_id
9282 ,program_id
9283 ,request_id)
9284 SELECT xla_amb_updated_comps_s.nextval
9285 ,g_application_id
9286 ,g_amb_context_code
9287 ,'APPLICATION'
9288 ,TO_CHAR(g_application_id)
9289 ,l_merge_impact
9290 ,'N'
9291 ,1
9292 ,sysdate
9293 ,xla_environment_pkg.g_usr_id
9294 ,sysdate
9295 ,xla_environment_pkg.g_usr_id
9296 ,xla_environment_pkg.g_login_id
9297 ,sysdate
9298 ,xla_environment_pkg.g_prog_appl_id
9299 ,xla_environment_pkg.g_prog_id
9300 ,xla_environment_pkg.g_req_Id
9301 FROM DUAL;
9302
9303 UPDATE xla_appli_amb_contexts
9304 SET updated_flag = 'N'
9305 , batch_name = g_batch_name
9306 , last_analyzed_date = sysdate
9307 , last_update_date = sysdate
9308 , last_updated_by = xla_environment_pkg.g_usr_id
9309 , last_update_login = xla_environment_pkg.g_login_id
9310 WHERE application_id = g_application_id
9311 AND amb_context_code = g_amb_context_code;
9312
9313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9314 trace(p_msg => 'END of procedure post_analysis',
9315 p_module => l_log_module,
9316 p_level => C_LEVEL_PROCEDURE);
9317 END IF;
9318
9319 EXCEPTION
9320 WHEN xla_exceptions_pkg.application_exception THEN
9321 RAISE;
9322
9323 WHEN OTHERS THEN
9324 xla_exceptions_pkg.raise_message
9325 (p_location => 'xla_aad_merge_analysis_pvt.post_analysis');
9326
9327 END post_analysis;
9328
9329 --=============================================================================
9330 --
9331 --
9332 --
9333 --
9334 --
9335 -- *********** public procedures and functions **********
9336 --
9337 --
9338 --
9339 --
9340 --
9341 --=============================================================================
9342
9343 --=============================================================================
9344 --
9345 -- Name:
9346 -- Description:
9347 --
9348 --=============================================================================
9349 PROCEDURE analysis
9350 (p_api_version IN NUMBER
9351 ,x_return_status IN OUT NOCOPY VARCHAR2
9352 ,p_application_id INTEGER
9353 ,p_amb_context_code VARCHAR2
9354 ,p_batch_name VARCHAR2
9355 ,x_analysis_status IN OUT NOCOPY VARCHAR2)
9356 IS
9357 l_api_name CONSTANT VARCHAR2(30) := 'analysis';
9358 l_api_version CONSTANT NUMBER := 1.0;
9359
9360 l_staging_context_code VARCHAR2(30);
9361 l_retcode VARCHAR2(30);
9362 l_log_module VARCHAR2(240);
9363 BEGIN
9364 IF g_log_enabled THEN
9365 l_log_module := C_DEFAULT_MODULE||'.analysis';
9366 END IF;
9367
9368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9369 trace(p_msg => 'BEGIN of function analysis: '||
9370 'p_batch_name = '||p_batch_name,
9371 p_module => l_log_module,
9372 p_level => C_LEVEL_PROCEDURE);
9373 END IF;
9374
9375 l_staging_context_code := xla_aad_loader_util_pvt.get_staging_context_code
9379 xla_aad_merge_analysis_pvt.analysis
9376 (p_application_id => p_application_id
9377 ,p_amb_context_code => p_amb_context_code);
9378
9380 (p_api_version => p_api_version
9381 ,x_return_status => x_return_status
9382 ,p_application_id => p_application_id
9383 ,p_amb_context_code => p_amb_context_code
9384 ,p_staging_context_code => l_staging_context_code
9385 ,p_batch_name => p_batch_name
9386 ,x_analysis_status => x_analysis_status);
9387
9388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9389 trace(p_msg => 'END of function analysis - Return value = '||x_analysis_status,
9390 p_module => l_log_module,
9391 p_level => C_LEVEL_PROCEDURE);
9392 END IF;
9393
9394 EXCEPTION
9395 WHEN FND_API.G_EXC_ERROR THEN
9396 RAISE;
9397 x_return_status := FND_API.G_RET_STS_ERROR ;
9398 x_analysis_status := 'ERROR';
9399
9400 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9401 ROLLBACK;
9402 RAISE;
9403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9404 x_analysis_status := 'ERROR';
9405
9406 WHEN OTHERS THEN
9407 ROLLBACK;
9408 RAISE;
9409 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9410 x_analysis_status := 'ERROR';
9411
9412 xla_aad_loader_util_pvt.stack_error
9413 (p_appli_s_name => 'XLA'
9414 ,p_msg_name => 'XLA_COMMON_ERROR'
9415 ,p_token_1 => 'LOCATION'
9416 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analysis'
9417 ,p_token_2 => 'ERROR'
9418 ,p_value_2 => 'unhandled exception');
9419
9420
9421 END analysis;
9422
9423
9424 --=============================================================================
9425 --
9426 -- Name:
9427 -- Description:
9428 --
9429 --=============================================================================
9430 PROCEDURE analysis
9431 (p_api_version IN NUMBER
9432 ,x_return_status IN OUT NOCOPY VARCHAR2
9433 ,p_application_id INTEGER
9434 ,p_amb_context_code VARCHAR2
9435 ,p_staging_context_code VARCHAR2
9436 ,p_batch_name VARCHAR2
9437 ,x_analysis_status IN OUT NOCOPY VARCHAR2)
9438 IS
9439 l_api_name CONSTANT VARCHAR2(30) := 'analysis';
9440 l_api_version CONSTANT NUMBER := 1.0;
9441
9442 l_retcode VARCHAR2(30);
9443 l_log_module VARCHAR2(240);
9444 BEGIN
9445 IF g_log_enabled THEN
9446 l_log_module := C_DEFAULT_MODULE||'.analysis';
9447 END IF;
9448
9449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9450 trace(p_msg => 'BEGIN of function analysis: '||
9451 'p_batch_name = '||p_batch_name,
9452 p_module => l_log_module,
9453 p_level => C_LEVEL_PROCEDURE);
9454 END IF;
9455
9456 -- Standard call to check for call compatibility.
9457 IF (NOT xla_aad_loader_util_pvt.compatible_api_call
9458 (p_current_version_number => l_api_version
9459 ,p_caller_version_number => p_api_version
9460 ,p_api_name => l_api_name
9461 ,p_pkg_name => C_DEFAULT_MODULE))
9462 THEN
9463 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
9464 END IF;
9465
9466 -- Initialize global variables
9467 x_return_status := FND_API.G_RET_STS_SUCCESS;
9468
9469 g_application_id := p_application_id;
9470 g_amb_context_code := p_amb_context_code;
9471 g_staging_context_code := p_staging_context_code;
9472 g_batch_name := p_batch_name;
9473 g_user_mode := NVL(fnd_profile.value('XLA_SETUP_USER_MODE'),'C');
9474
9475 g_num_updated_comps := 0;
9476 g_num_updated_props := 0;
9477
9478 -- API Logic
9479 x_analysis_status := pre_analysis;
9480 IF (x_analysis_status = 'ERROR') THEN
9481 RAISE FND_API.G_EXC_ERROR;
9482 END IF;
9483
9484 x_analysis_status := validation;
9485 IF (x_analysis_status = 'ERROR') THEN
9486 RAISE FND_API.G_EXC_ERROR;
9487 END IF;
9488
9489 analyze_aads;
9490 post_analysis;
9491
9492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9493 trace(p_msg => 'END of function analysis - Return value = '||x_analysis_status,
9494 p_module => l_log_module,
9495 p_level => C_LEVEL_PROCEDURE);
9496 END IF;
9497
9498 EXCEPTION
9499 WHEN FND_API.G_EXC_ERROR THEN
9500 RAISE;
9501 x_return_status := FND_API.G_RET_STS_ERROR ;
9502 x_analysis_status := 'ERROR';
9503
9504 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9505 ROLLBACK;
9506 RAISE;
9507 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9508 x_analysis_status := 'ERROR';
9509
9510 WHEN OTHERS THEN
9511 ROLLBACK;
9512 RAISE;
9513 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9514 x_analysis_status := 'ERROR';
9515
9516 xla_aad_loader_util_pvt.stack_error
9517 (p_appli_s_name => 'XLA'
9518 ,p_msg_name => 'XLA_COMMON_ERROR'
9519 ,p_token_1 => 'LOCATION'
9520 ,p_value_1 => 'xla_aad_merge_analysis_pvt.analysis'
9521 ,p_token_2 => 'ERROR'
9522 ,p_value_2 => 'unhandled exception');
9523
9524
9525 END analysis;
9526
9527 --=============================================================================
9528 --
9529 -- Following code is executed when the package body is referenced for the first
9530 -- time
9531 --
9535 g_log_enabled := fnd_log.test
9532 --=============================================================================
9533 BEGIN
9534 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9536 (log_level => g_log_level
9537 ,module => C_DEFAULT_MODULE);
9538
9539 IF NOT g_log_enabled THEN
9540 g_log_level := C_LEVEL_LOG_DISABLED;
9541 END IF;
9542
9543 END xla_aad_merge_analysis_pvt;