[Home] [Help]
PACKAGE BODY: APPS.CN_SCA_INTERFACE_MAP_PVT
Source
1 PACKAGE BODY cn_sca_interface_map_pvt AS
2 -- $Header: cnvmpgnb.pls 120.3 2005/11/29 22:20:46 vensrini noship $
3
4 PROCEDURE get_min ( p_min IN OUT NOCOPY number, p_max number) IS
5 BEGIN
6 IF p_min =0 and p_max <> 0
7 THEN
8 p_min := p_max;
9 ELSIF p_min <> 0 and p_max <> 0
10 THEN
11 IF p_min > p_max
12 THEN
13 p_min := p_max;
14 END IF;
15 END IF;
16 END;
17
18 -- search the next occurence of delimiter '+ - * / ( ) ' in sql_select portion and return the position
19 FUNCTION search_delimiter_select ( p_input_str varchar2, p_start number)
20 RETURN number IS
21 l_position_min NUMBER ;
22 l_position NUMBER;
23 BEGIN
24 l_position_min := instr( p_input_str, '*', p_start) ;
25 l_position := instr(p_input_str, '-', p_start);
26 get_min(l_position_min, l_position);
27
28 l_position := instr(p_input_str, '+', p_start);
29 get_min(l_position_min, l_position);
30
31 l_position := instr(p_input_str, '/', p_start);
32 get_min(l_position_min, l_position);
33
34 l_position := instr(p_input_str, '(', p_start);
35 get_min(l_position_min, l_position);
36
37 l_position := instr(p_input_str, ')', p_start);
38 get_min(l_position_min, l_position);
39
40 l_position := instr(p_input_str, ',', p_start);
41 get_min(l_position_min, l_position);
42
43 return l_position_min;
44 END;
45
46
47 -- search the next occurence of delimiter ', ' in sql_from portion and return the position
48 FUNCTION search_delimiter_from ( p_input_str varchar2, p_start number) RETURN
49 NUMBER IS
50 l_position_min NUMBER :=0;
51 l_position NUMBER;
52 BEGIN
53 l_position := instr(p_input_str, ',', p_start);
54 get_min(l_position_min, l_position);
55 return l_position_min;
56 END;
57
58 -- search the next occurence of delimiter 'and ' in sql_where portion and return the position
59 FUNCTION search_delimiter_where ( p_input_str varchar2, p_start number)
60 RETURN number IS
61 l_position_min NUMBER :=0;
62 l_position NUMBER;
63 BEGIN
64 l_position := instr(p_input_str, 'and', p_start);
65 get_min(l_position_min, l_position);
66 return l_position_min;
67 END;
68
69 -- search the next occurence of delimiter empty space in COMMENT and return the position
70 FUNCTION search_delimiter_comment ( p_input_str varchar2, p_start number)
71 RETURN number IS
72 l_position_min NUMBER :=0;
73 l_position NUMBER;
74 BEGIN
75 l_position := instr(p_input_str, ' ', p_start);
76 get_min(l_position_min, l_position);
77 return l_position_min;
78 END search_delimiter_comment ;
79
80 PROCEDURE split_long_sql ( body_code IN OUT NOCOPY cn_utils.code_type,
81 p_input_str VARCHAR2 ,
82 sql_type VARCHAR2) --,
83 -- p_org_id IN NUMBER ) -- MOAC Change
84 IS
85 l_length NUMBER; /* total length of input string */
86 l_start NUMBER; /* the start position of current split */
87 l_next NUMBER; /* position of next delimiter */
88 l_next_prev NUMBER; /* position of previous delimiter */
89 l_limit NUMBER; /* the upper boundary of current split */
90
91 l_sql_segment_length NUMBER := 80;
92 BEGIN
93
94 DBMS_APPLICATION_INFO.SET_ACTION('inside SPLIT LONG ' );
95
96 -- Set org Id for CN_UTILS package
97 -- cn_utils.set_org_id( p_org_id ); -- MOAC Change
98
99 l_start := 1;
100 l_limit := l_start + l_sql_segment_length;
101
102 l_length := Length(p_input_str);
103 l_next := l_start;
104 l_next_prev := l_start;
105
106 WHILE l_limit < l_length
107 LOOP
108 WHILE l_next < l_limit
109 LOOP
110
111 /* the postion of l_next delimiter is not beyong the upper boudary yet */
112
113 l_next_prev := l_next;
114
115 IF sql_type = 'SELECT'
116 THEN
117 l_next := search_delimiter_select(p_input_str, l_next_prev+1 );
118 ELSIF sql_type = 'FROM'
119 THEN
120 l_next := NVL(search_delimiter_from(p_input_str, l_next_prev+1 ),0);
121 ELSIF sql_type = 'WHERE'
122 THEN
123 l_next := search_delimiter_where(p_input_str, l_next_prev+1 );
124 ELSIF sql_type = 'COMMENT'
125 THEN
126 l_next := search_delimiter_comment(p_input_str, l_next_prev+1 );
127 END IF;
128
129 IF l_next = 0
130 THEN /* no more delimiter */
131 EXIT;
132 END IF;
133
134 IF l_next >= l_limit
135 THEN
136 l_next_prev := l_next;
137 END IF;
138
139
140 END LOOP;
141
142 IF sql_type = 'COMMENT'
143 THEN
144 cn_utils.appindcr(body_code, '-- ' || substr(p_input_str, l_start,
145 l_next_prev - l_start) );
146 ELSE
147 cn_utils.appindcr(body_code, substr(p_input_str, l_start,
148 l_next_prev - l_start));
149 END IF;
150
151 l_start := l_next_prev ;
152 l_limit := l_start + l_sql_segment_length;
153
154 IF l_next = 0
155 THEN /* no more delimiter */
156 EXIT;
157 END IF;
158 END LOOP;
159
160 IF sql_type = 'COMMENT'
161 THEN
162 cn_utils.appindcr(body_code, '--' || substr(p_input_str, l_start,
163 l_length - l_start + 1));
164 ELSE
165 cn_utils.appindcr(body_code, substr(p_input_str, l_start,
166 l_length - l_start + 1));
167 END IF;
168
169 -- Unset org_id in CN_UTILS package
170 -- cn_utils.unset_org_id( ); -- MOAC Change
171 END split_long_sql;
172
173
174 PROCEDURE pkg_init_boilerplate (
175 code IN OUT NOCOPY cn_utils.code_type,
176 package_name IN cn_obj_packages_v.name%TYPE,
177 description IN cn_obj_packages_v.description%TYPE,
178 object_type IN VARCHAR2) --,
179 -- p_org_id IN NUMBER) -- MOAC Change
180 IS
181 x_userid VARCHAR2(20);
182 BEGIN
183 SELECT user
184 INTO x_userid
185 FROM sys.dual;
186
187 -- Set org id in cn_utils package
188 -- cn_utils.set_org_id( p_org_id ); -- MOAC Change
189
190 cn_utils.appendcr(code, '--+============================================================================+');
191 cn_utils.appendcr(code, '-- Copyright (c) 1993 Oracle Corporation');
192 cn_utils.appendcr(code, '-- Redwood Shores, California, USA');
193 cn_utils.appendcr(code, '-- All rights reserved.');
194 cn_utils.appendcr(code, '--+============================================================================+');
195 cn_utils.appendcr(code, '-- Package Name');
196 cn_utils.appendcr(code, '-- '||package_name);
197 cn_utils.appendcr(code, '-- Purpose');
198 cn_utils.appendcr(code, '-- '||description);
199 cn_utils.appendcr(code, '-- History');
200 cn_utils.appendcr(code, '-- '||SYSDATE||' '||x_userid ||' Created');
201 cn_utils.appendcr(code, '--+============================================================================+');
202
203 ----+
204 -- Check For Package type, based on PKS(spec) or PKB(body) generate init section
205 -- Of your code accordingly
206 ----+
207 IF (object_type = 'PKS')
208 THEN
209 cn_utils.appendcr(code, 'CREATE OR REPLACE PACKAGE ' ||package_name||' AS');
210 ELSE
211 cn_utils.appendcr(code, 'CREATE OR REPLACE PACKAGE BODY ' ||package_name||' AS');
212 END IF;
213
214 cn_utils.appendcr(code);
215
216 -- Unset org id in cn_utils package
217 -- cn_utils.unset_org_id(); -- MOAC Change
218 END pkg_init_boilerplate;
219
220 PROCEDURE check_create_object(
221 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
222 p_commit IN VARCHAR2 := FND_API.G_FALSE,
223 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
224 p_name IN cn_objects.name%TYPE,
225 p_object_type IN cn_objects.object_type%TYPE,
226 p_object_id IN OUT NOCOPY cn_objects.object_id%TYPE,
227 p_repository_id IN cn_repositories.repository_id%TYPE,
228 p_org_id IN cn_repositories.org_id%TYPE, -- MOAC Change
229 x_return_status OUT NOCOPY VARCHAR2,
230 x_msg_count OUT NOCOPY NUMBER,
231 x_msg_data OUT NOCOPY VARCHAR2)
232 IS
233 dummy NUMBER;
234 x_rowid ROWID;
235
236 BEGIN
237
238 SAVEPOINT check_create_object;
239
240 IF FND_API.to_Boolean( p_init_msg_list )
241 THEN
242 FND_MSG_PUB.initialize;
243 END IF;
244
245 x_return_status := FND_API.G_RET_STS_SUCCESS;
246
247 ------+
248 -- check whether Mapping Package exist in cn_objects
249 ------+
250
251 SELECT COUNT(*)
252 INTO dummy
253 FROM cn_objects
254 WHERE name = P_NAME
255 AND object_type = P_OBJECT_TYPE
256 AND org_id = p_org_id; -- MOAC Change
257
258 IF dummy = 0
259 THEN
260 P_OBJECT_ID := cn_utils.get_object_id;
261
262 cn_objects_pkg.insert_row(
263 x_org_id => p_org_id, -- MOAC Change
264 x_rowid => x_rowid,
265 x_object_id => p_object_id,
266 x_dependency_map_complete => 'n',
267 x_name => p_name,
268 x_description => null,
269 x_object_type => p_object_type,
270 x_repository_id => p_repository_id,
271 x_next_synchronization_date => NULL,
272 x_synchronization_frequency => NULL,
273 x_object_status => 'a',
274 x_object_value => NULL );
275
276 ELSIF dummy = 1
277 THEN
278 SELECT object_id
279 INTO P_OBJECT_ID
280 FROM cn_objects
281 WHERE name = P_NAME
282 AND object_type = P_OBJECT_TYPE
283 AND org_id = p_org_id; -- MOAC Change
284 END IF;
285
286 FND_MSG_PUB.Count_And_Get
287 (p_count => x_msg_count,
288 p_data => x_msg_data,
289 p_encoded => FND_API.G_FALSE);
290
291 EXCEPTION
292
293 WHEN FND_API.G_EXC_ERROR
294 THEN
295 ROLLBACK TO check_create_object;
296 x_return_status := FND_API.G_RET_STS_ERROR ;
297 FND_MSG_PUB.Add_Exc_Msg( P_NAME ,'check_create_object' );
298 FND_MSG_PUB.Count_And_Get
299 (p_count => x_msg_count,
300 p_data => x_msg_data,
301 p_encoded => FND_API.G_FALSE);
302
303 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
304 THEN
305 ROLLBACK TO check_create_object;
306 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
307 FND_MSG_PUB.Add_Exc_Msg( P_NAME ,'check_create_object' );
308 FND_MSG_PUB.Count_And_Get
309 (p_count => x_msg_count,
310 p_data => x_msg_data,
311 p_encoded => FND_API.G_FALSE);
312 WHEN OTHERS THEN
313 ROLLBACK TO check_create_object;
314 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
315
316 FND_MSG_PUB.ADD_EXC_MSG( P_NAME ,'check_create_object');
317
318 FND_MSG_PUB.Count_And_Get
319 (p_count => x_msg_count,
320 p_data => x_msg_data,
321 p_encoded => FND_API.G_FALSE);
322
323
324 END check_create_object;
325
326 PROCEDURE pkg_init (
327 module_id cn_modules.module_id%TYPE,
328 package_name cn_obj_packages_v.name%TYPE,
329 package_spec_id IN OUT NOCOPY cn_obj_packages_v.package_id%TYPE,
330 package_body_id IN OUT NOCOPY cn_obj_packages_v.package_id%TYPE,
331 package_spec_desc IN OUT NOCOPY cn_obj_packages_v.description%TYPE,
332 package_body_desc IN OUT NOCOPY cn_obj_packages_v.description%TYPE,
333 spec_code IN OUT NOCOPY cn_utils.code_type,
334 body_code IN OUT NOCOPY cn_utils.code_type,
335 p_org_id IN NUMBER) IS -- MOAC Change
336
337 x_rowid ROWID;
338 null_id NUMBER;
339
340 BEGIN
341 -- Set org_id in cn_utils
342 -- cn_utils.set_org_id( p_org_id ); -- MOAC Change
343
344 -- Find the package objects
345 cn_utils.find_object(package_name,'PKS',package_spec_id, package_spec_desc, p_org_id); -- MOAC Change
346 cn_utils.find_object(package_name,'PKB',package_body_id, package_body_desc, p_org_id); -- MOAC Change
347
348 -- Delete module source code from cn_source
349 -- Delete module object dependencies for this module
350 cn_utils.delete_module(module_id, package_spec_id, package_body_id, p_org_id); -- MOAC Change
351
352 cn_utils.init_code (package_spec_id, spec_code);
353 cn_utils.init_code (package_body_id, body_code);
354
355 pkg_init_boilerplate(spec_code, package_name, package_spec_desc, 'PKS');
356 pkg_init_boilerplate(body_code, package_name, package_body_desc, 'PKB');
357
358 cn_utils.indent(spec_code, 1);
359 cn_utils.indent(body_code, 1);
360
361 -- Unset org id in cn_utils
362 -- cn_utils.unset_org_id(); -- MOAC Change
363 END pkg_init;
364
365 PROCEDURE install_package_object(
366 p_object_name IN VARCHAR2,
367 p_org_id IN cn_objects.org_id%TYPE, -- MOAC Change
368 x_compile_status OUT NOCOPY VARCHAR2,
369 x_return_status OUT NOCOPY VARCHAR2,
370 x_msg_count OUT NOCOPY NUMBER,
371 x_msg_data OUT NOCOPY VARCHAR2)
372 IS
373 l_user_id NUMBER(15) := fnd_global.user_id;
374 l_login_id NUMBER(15) := fnd_global.login_id;
375 l_object_name VARCHAR2(80) := p_object_name;
376 l_line_length NUMBER;
377 l_send_position NUMBER;
378 l_pkg_object_id NUMBER;
379 l_sqlstring dbms_sql.varchar2s;
380 l_empty_sqlstring dbms_sql.varchar2s;
381 i INTEGER;
382 j INTEGER;
383 l_cur INTEGER;
384 l_new_line_flag BOOLEAN := TRUE;
385 l_retval NUMBER;
386 l_error_count NUMBER;
387
388
389
390 BEGIN
391
392 SAVEPOINT install_package_object;
393 ----+
394 -- Get Object id of the package Body
395 ----+
396 SELECT object_id
397 INTO l_pkg_object_id
398 FROM cn_objects
399 WHERE UPPER(name) = UPPER(p_object_name)
400 AND object_type = 'PKS'
401 AND org_id = p_org_id; -- MOAC Change
402 ----+
403 -- Store The Code For Package Specification in l_sqlstring
404 ----+
405 SELECT text BULK COLLECT
406 INTO l_sqlstring
407 FROM cn_source
408 WHERE object_id = l_pkg_object_id
409 AND org_id = p_org_id -- MOAC Change
410 ORDER BY source_id;
411 ----+--+
412 -- Compile Package Specification
413 ------+
414 i := 1;
415
416 j := l_sqlstring.count;
417
418 l_cur:= DBMS_SQL.OPEN_CURSOR;
419
420 DBMS_SQL.PARSE(l_cur, l_sqlstring, i, j, l_new_line_flag, DBMS_SQL.V7);
421
422 l_retval:= DBMS_SQL.EXECUTE(l_cur);
423
424 DBMS_SQL.CLOSE_CURSOR(l_cur);
425
426 l_sqlstring := l_empty_sqlstring;
427 ------+
428 -- Get Object id of the package Body
429 ------+
430 SELECT object_id
431 INTO l_pkg_object_id
432 FROM cn_objects
433 WHERE UPPER(name) = UPPER(p_object_name)
434 AND object_type = 'PKB'
435 AND org_id = p_org_id; -- MOAC Change
436 ------+
437 -- Store The Code For Package Body in l_sqlstring
438 ------+
439 SELECT text BULK COLLECT
440 INTO l_sqlstring
441 FROM cn_source
442 WHERE object_id = l_pkg_object_id
443 AND org_id = p_org_id -- MOAC Change
444 ORDER BY source_id;
445 ------+
446 -- Compile Package Body
447 ------+
448 i := 1;
449
450 j := l_sqlstring.count;
451
452 l_cur := DBMS_SQL.OPEN_CURSOR;
453
454 DBMS_SQL.PARSE(l_cur, l_sqlstring, i, j, l_new_line_flag, DBMS_SQL.V7);
455
456 l_retval:= DBMS_SQL.EXECUTE(l_cur);
457
458 DBMS_SQL.CLOSE_CURSOR(l_cur);
459
460 l_sqlstring := l_empty_sqlstring;
461 ------+
462 -- Check Whether Package Compiled Successfully
463 ------+
464 SELECT COUNT(ROWNUM)
465 INTO l_error_count
466 FROM user_errors
467 WHERE name = p_object_name
468 AND type IN ('PACKAGE', 'PACKAGE BODY');
469
470
471 IF (l_error_count > 0)
472 THEN
473 x_compile_status := 'INCOMPLETE';
474 ELSE
475 x_compile_status := 'COMPLETE';
476 END IF;
477
478 FND_MSG_PUB.Count_And_Get
479 (p_count => x_msg_count,
480 p_data => x_msg_data,
481 p_encoded => FND_API.G_FALSE);
482
483 EXCEPTION
484 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
485 THEN
486 ROLLBACK TO install_package_object;
487 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488 x_compile_status := 'INCOMPLETE';
489 FND_MSG_PUB.Count_And_Get
490 (p_count => x_msg_count,
491 p_data => x_msg_data);
492 WHEN OTHERS
493 THEN
494 ROLLBACK TO install_package_object;
495 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496 x_compile_status := 'INCOMPLETE';
497 FND_MSG_PUB.Count_And_Get
498 (p_count => x_msg_count,
499 p_data => x_msg_data);
500 END install_package_object;
501
502 PROCEDURE GENERATE (
503 p_api_version IN NUMBER,
504 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
505 p_commit IN VARCHAR2 := fnd_api.g_false,
506 p_validation_level IN VARCHAR2 := fnd_api.g_valid_level_full,
507 p_org_id IN NUMBER, -- MOAC Change
508 x_return_status OUT NOCOPY VARCHAR2,
509 x_msg_count OUT NOCOPY NUMBER,
510 x_msg_data OUT NOCOPY VARCHAR2)
511 AS
512 l_module_id cn_modules.module_id%TYPE;
513 l_object_id cn_objects.object_id%TYPE;
514 l_org_id VARCHAR2(5);
515 l_pkg_spec_id cn_obj_packages_v.package_id%TYPE;
516 l_pkg_body_id cn_obj_packages_v.package_id%TYPE;
517 l_spec_code cn_utils.code_type;
518 l_body_code cn_utils.code_type;
519 l_pkg_spec_desc cn_obj_packages_v.description%TYPE;
520 l_pkg_body_desc cn_obj_packages_v.description%TYPE;
521 l_pkg_name cn_obj_packages_v.NAME%TYPE;
522 l_creation_status BOOLEAN;
523 l_user VARCHAR2(15);
524 l_repository_id cn_repositories.repository_id%TYPE;
525
526 l_api_name CONSTANT VARCHAR2(10) := 'MAP';
527 l_api_version CONSTANT NUMBER := 1.0;
528 l_user_id NUMBER(15) := fnd_global.user_id;
529 l_login_id NUMBER(15) := fnd_global.login_id;
530
531 l_init_msg_list VARCHAR2(5) := fnd_api.g_false;
532 l_commit VARCHAR2(5) := fnd_api.g_false;
533 l_validation_level NUMBER := fnd_api.g_valid_level_full;
534
535 l_return_status VARCHAR2(20);
536 l_compile_status VARCHAR2(20);
537 l_msg_count NUMBER;
538 l_msg_data VARCHAR2(2000);
539
540 ------++
541 -- For Compiled Dynamic Generated Mapping Package Status
542 ------++
543 -- l_compile_status VARCHAR2(20);
544 ------++
545 -- Variables for CN_SCA_HEADERS_INTERFACE.SCA_TRX_TYPE
546 ------++
547 l_trx_type cn_sca_headers_interface.source_type%TYPE;
548 ------++
549 -- FOR CN_SCA_HEADERS_INTERFACE.TRANSACTION_SOURCE
550 ------++
551 l_trx_source VARCHAR2(10) := '''CN''';
552 ------++
553 -- List of arguments for MAP API.
554 ------++
555 l_proc_arg1 VARCHAR2(60) := ' p_sca_process_batch_id IN NUMBER';
556 l_proc_arg2 VARCHAR2(60) := ' p_start_date IN DATE';
557 l_proc_arg3 VARCHAR2(60) := ' p_end_date IN DATE';
558 l_proc_arg4 VARCHAR2(65) := ' p_api_version IN NUMBER';
559 l_proc_arg5 VARCHAR2(60) := ' p_init_msg_list IN VARCHAR2 := fnd_api.g_false';
560 l_proc_arg6 VARCHAR2(60) := ' p_commit IN VARCHAR2 := fnd_api.g_false';
561 l_proc_arg7 VARCHAR2(80) := ' p_validation_level IN NUMBER := fnd_api.g_valid_level_full';
562 l_proc_arg8 VARCHAR2(60) := ' p_org_id IN NUMBER';
563 l_proc_arg9 VARCHAR2(60) := ' x_return_status OUT NOCOPY VARCHAR2';
564 l_proc_arg10 VARCHAR2(60) := ' x_msg_count OUT NOCOPY NUMBER';
565 l_proc_arg11 VARCHAR2(60) := ' x_msg_data OUT NOCOPY VARCHAR2';
566 ------++
567 -- Variable declaration for few loop counters
568 ------++
569 l_loop_cntr1 INTEGER := 0;
570 l_loop_cntr2 INTEGER := 1;
571 l_loop_cntr3 INTEGER := 1;
572 ------++
573 -- PL/SQL Table type and Variable declaration for
574 -- CN_SCA_RULE_ATTRIBUTES.SRC_COLUMN_NAME
575 ------++
576 TYPE src_column_name
577 IS TABLE OF VARCHAR2(4000)
578 INDEX BY BINARY_INTEGER;
579 l_src_column_name src_column_name;
580 ------++
581 -- PL/SQL Table type and Variable declaration for
582 -- CN_SCA_RULE_ATTRIBUTES.TRX_SRC_COLUMN_NAME
583 ------++
584 TYPE trx_src_column_name
585 IS TABLE OF VARCHAR2(4000)
586 INDEX BY BINARY_INTEGER;
587 l_trx_src_column_name trx_src_column_name;
588 ------++
589 -- Cursor and Variable declaration to get SOURCE and
590 -- TRANSACTION SOURCE Mapping column names from CN_SCA_RULE_ATTRIBUTES
591 ------++
592 CURSOR cn_sca_rule_attr_cur
593 IS
594 SELECT sca_rule_attribute_id,
595 LOWER(src_column_name) src_column_name,
596 LOWER(user_column_name) user_column_name,
597 LOWER(trx_src_column_name) trx_src_column_name
598 FROM cn_sca_rule_attributes
599 WHERE transaction_source = 'CN'
600 AND org_id = p_org_id -- MOAC Change
601 ORDER BY src_column_name;
602
603 cnracv cn_sca_rule_attr_cur%ROWTYPE;
604 BEGIN
605
606 SAVEPOINT generate_map_package;
607 ------++
608 -- Initialize message list if p_init_msg_list is set to TRUE.
609 ------++
610 IF FND_API.to_Boolean( p_init_msg_list )
611 THEN
612 FND_MSG_PUB.initialize;
613 END IF;
614 ------++
615 -- Initialize API return status to success
616 ------++
617 x_return_status := FND_API.G_RET_STS_SUCCESS;
618 ------++
619 -- Get Values for repository_id and org_id
620 ------++
621 SELECT repository_id, org_id
622 INTO l_repository_id, l_org_id
623 FROM cn_repositories
624 WHERE org_id = p_org_id; -- MOAC Change
625 ------++
626 -- Get Value For module_id
627 ------++
628 SELECT module_id
629 INTO l_module_id
630 FROM cn_modules
631 WHERE NAME = 'Collection'
632 AND org_id = p_org_id; -- MOAC Change
633 ------++
634 -- Get Vaule For module_id
635 ------++
636 SELECT USER
637 INTO l_user
638 FROM dual;
639 ------++
640 -- Process cn_sca_rule_attr_cur to get values for runtime call to
641 -- INSERT INTO SCA HEADERS AS SELECT FROM OIC API
642 ------++
643 ------++
644 -- Append ORG_ID to the dynamic package name
645 ------++
646 l_pkg_name := 'CN_SCA_MAP_CN_'||l_org_id;
647
648
649 FOR cnracv
650 IN cn_sca_rule_attr_cur
651 LOOP
652 IF NOT cn_sca_rule_attr_cur%NOTFOUND
653 THEN
654 l_loop_cntr1 := l_loop_cntr1 + 1;
655 l_src_column_name(l_loop_cntr1) := cnracv.src_column_name;
656 l_trx_src_column_name(l_loop_cntr1) := cnracv.trx_src_column_name;
657 ELSE
658 x_return_status := fnd_api.g_ret_sts_error;
659 FND_MESSAGE.SET_NAME('CN','CN_SCA_NO_ATTR_MAP');
660 FND_MSG_PUB.Add_Exc_Msg( 'CN_SCA_INTERFACE_MAP_PVT' ,'GENERATE');
661 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
662 END IF;
663
664 END LOOP;
665 ------++
666 -- Loop to convert src_column_name values in comma seperated row format
667 ------++
668 FOR l_loop_cntr2
669 IN 2..l_src_column_name.COUNT
670 LOOP
671 l_src_column_name(l_loop_cntr3) :=
672 l_src_column_name(l_loop_cntr3)||','||l_src_column_name(l_loop_cntr2);
673
674 END LOOP;
675 ------++
676 -- Loop to convert trx_src_column_name values in comma seperated row format
677 ------++
678 FOR l_loop_cntr2
679 IN 2..l_trx_src_column_name.COUNT
680 LOOP
681 l_trx_src_column_name(l_loop_cntr3) :=
682 l_trx_src_column_name(l_loop_cntr3)||','||l_trx_src_column_name(l_loop_cntr2);
683 END LOOP;
684 ------++
685 -- Dynamic Package Generation Code Starts Here
686 -- Call Check Create Object to Check whether Mappong Package Spec Already Exists
687 -- If it exists It will use the same object Id or create a new object using the
688 -- parameter values provided
689 -- This is For Package Specification.
690 ------++
691
692 --++ Set org_id for cn_utils package
693 cn_utils.set_org_id( p_org_id );
694
695 check_create_object(
696 p_init_msg_list => l_init_msg_list,
697 p_commit => l_commit,
698 p_validation_level => l_validation_level,
699 p_name => l_pkg_name,
700 p_object_type => 'PKS',
701 p_object_id => l_object_id,
702 p_repository_id => l_repository_id,
703 p_org_id => p_org_id, -- MOAC Change
704 x_return_status => l_return_status,
705 x_msg_count => l_msg_count,
706 x_msg_data => l_msg_data);
707
708 ------++
709 -- Store Package Spec Id in l_pkg_spec_id
710 ------++
711 l_pkg_spec_id := l_object_id;
712 ------++
713 -- This is For Package Body
714 ------++
715 check_create_object(
716 p_init_msg_list => l_init_msg_list,
717 p_commit => l_commit,
718 p_validation_level => l_validation_level,
719 p_name => l_pkg_name,
720 p_object_type => 'PKB',
721 p_object_id => l_object_id,
722 p_repository_id => l_repository_id,
723 p_org_id => p_org_id, -- MOAC Change
724 x_return_status => l_return_status,
725 x_msg_count => l_msg_count,
726 x_msg_data => l_msg_data);
727 ------++
728 -- Store Package Body Id in l_pkg_spec_id
729 ------++
730 l_pkg_body_id := l_object_id;
731 ------++
732 -- Assign Value to l_pkg_spec_desc and l_pkg_body_desc
733 ------++
734 l_pkg_spec_desc := 'Package Specification For SCA Interface Mapping Package';
735 l_pkg_body_desc := 'Package Body For SCA Interface Mapping Package';
736 ------++
737 -- Call cn_utils.pkg_init to create a new package and do initialization
738 ------++
739 pkg_init(
740 module_id => l_module_id,
741 package_name => l_pkg_name,
742 package_spec_id => l_pkg_spec_id,
743 package_body_id => l_pkg_body_id,
744 package_spec_desc => l_pkg_spec_desc,
745 package_body_desc => l_pkg_body_desc,
746 spec_code => l_spec_code,
747 body_code => l_body_code,
748 p_org_id => p_org_id); -- MOAC Change
749 ------++
750 -- Call cn_utils.init_code to populate object_id, line, ident and text of
751 -- record type cn_utils.code_type
752 -- This will populate value of l_pkg_spec_id into x_object_id and use
753 -- package spec id to store package spec code into cn_source.
754 ------++
755 cn_utils.init_code (
756 x_object_id => l_pkg_spec_id,
757 code => l_spec_code);
758 ------++
759 -- This code will write package specification code for dynamic mapping package
760 -- All the arbuments for MAP API.
761 ------++
762
763 cn_utils.appendcr(l_spec_code,'-- Package Specification For Interface Mapping Package ');
764 cn_utils.appendcr(l_spec_code,' PROCEDURE map ('||l_proc_arg1||',');
765 cn_utils.appendcr(l_spec_code,l_proc_arg2||',');
766 cn_utils.appendcr(l_spec_code,l_proc_arg3||',');
767 cn_utils.appendcr(l_spec_code,l_proc_arg4||',');
768 cn_utils.appendcr(l_spec_code,l_proc_arg5||',');
769 cn_utils.appendcr(l_spec_code,l_proc_arg6||',');
770 cn_utils.appendcr(l_spec_code,l_proc_arg7||',');
771 cn_utils.appendcr(l_spec_code,l_proc_arg8||',');
772 cn_utils.appendcr(l_spec_code,l_proc_arg9||',');
773 cn_utils.appendcr(l_spec_code,l_proc_arg10||',');
774 cn_utils.appendcr(l_spec_code,l_proc_arg11||');');
775 cn_utils.appendcr(l_spec_code);
776 cn_utils.appendcr(l_spec_code,'END '||l_pkg_name||';');
777
778 ------++
779 -- Call cn_utils.init_code to populate object_id, line, ident and text of
780 -- record type cn_utils.code_type
781 -- This will populate value of l_pkg_spec_id into x_object_id and use
782 -- package body id to store package body code into cn_source.
783 ------++
784 cn_utils.init_code (
785 x_object_id => l_pkg_body_id,
786 code => l_body_code);
787 ------++
788 -- This code will write package body code for dynamic mapping package
789 -- All the arbuments for MAP API
790 ------++
791 ------++
792 -- Procedure Debug Message
793 ------++
794 cn_utils.appendcr(l_body_code,'PROCEDURE debugmsg(msg VARCHAR2) IS');
795 cn_utils.appendcr(l_body_code,'BEGIN');
796 cn_utils.appendcr(l_body_code,' IF fnd_profile.value(''CN_DEBUG'') = ''Y'' ');
797 cn_utils.appendcr(l_body_code,' THEN');
798 cn_utils.appendcr(l_body_code,' cn_message_pkg.debug(substr(msg,1,254));');
799 cn_utils.appendcr(l_body_code,' ELSE');
800 cn_utils.appendcr(l_body_code,' NULL;');
801 cn_utils.appendcr(l_body_code,' END IF;');
802 cn_utils.appendcr(l_body_code,' END debugmsg;');
803
804 cn_utils.appendcr(l_body_code,'FUNCTION get_adjusted_by(p_sca_process_batch_id cn_sca_process_batches.sca_process_batch_id%TYPE,');
805 cn_utils.appendcr(l_body_code,' p_org_id cn_sca_process_batches.org_id%TYPE)');
806 cn_utils.appendcr(l_body_code,' RETURN VARCHAR2 IS');
807 cn_utils.appendcr(l_body_code,' l_adjusted_by VARCHAR2(100) := ''0'';');
808 cn_utils.appendcr(l_body_code,'BEGIN');
809 cn_utils.appendcr(l_body_code,' SELECT user_name');
810 cn_utils.appendcr(l_body_code,' INTO l_adjusted_by');
811 cn_utils.appendcr(l_body_code,' FROM fnd_user');
812 cn_utils.appendcr(l_body_code,' WHERE user_id = (SELECT created_by');
813 cn_utils.appendcr(l_body_code,' FROM cn_sca_process_batches');
814 cn_utils.appendcr(l_body_code,' WHERE sca_process_batch_id = p_sca_process_batch_id');
815 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id);');
816 cn_utils.appendcr(l_body_code,' RETURN l_adjusted_by;');
817 cn_utils.appendcr(l_body_code,'EXCEPTION');
818 cn_utils.appendcr(l_body_code,' WHEN OTHERS THEN');
819 cn_utils.appendcr(l_body_code,' RETURN l_adjusted_by;');
820 cn_utils.appendcr(l_body_code,'END get_adjusted_by;');
821 ------++
822 -- Procedure get_init_values Initiates the l_trx_type, l_start_id and l_end_id Variables
823 ------++
824 cn_utils.appendcr(l_body_code,' PROCEDURE get_init_values(');
825 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
826 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := fnd_api.g_false,');
827 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := fnd_api.g_false,');
828 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id IN cn_sca_process_batches.sca_process_batch_id%TYPE,');
829 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
830 cn_utils.appendcr(l_body_code,' x_trx_type OUT NOCOPY cn_sca_process_batches.type%TYPE,');
831 cn_utils.appendcr(l_body_code,' x_start_id OUT NOCOPY cn_sca_process_batches.start_id%TYPE,');
832 cn_utils.appendcr(l_body_code,' x_end_id OUT NOCOPY cn_sca_process_batches.end_id%TYPE,');
833 cn_utils.appendcr(l_body_code,' x_return_status OUT VARCHAR2,');
834 cn_utils.appendcr(l_body_code,' x_msg_count OUT NUMBER,');
835 cn_utils.appendcr(l_body_code,' x_msg_data OUT VARCHAR2)');
836 cn_utils.appendcr(l_body_code,' IS');
837 cn_utils.appendcr(l_body_code,' sca_proc_batch_id_error EXCEPTION;');
838 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''get_init_values'';');
839 cn_utils.appendcr(l_body_code,' l_api_version CONSTANT NUMBER := 1.0;');
840
841 cn_utils.appendcr(l_body_code,' BEGIN');
842
843 cn_utils.appendcr(l_body_code,' SAVEPOINT get_init_values;');
844
845 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
846 cn_utils.appendcr(l_body_code,' l_api_version,');
847 cn_utils.appendcr(l_body_code,' l_api_version,');
848 cn_utils.appendcr(l_body_code,' l_api_name,');
849 cn_utils.appendcr(l_body_code,' NULL)');
850 cn_utils.appendcr(l_body_code,' THEN');
851 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_UNEXPECTED_ERROR;');
852 cn_utils.appendcr(l_body_code,' END IF;');
853
854 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list )');
855 cn_utils.appendcr(l_body_code,' THEN');
856 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
857 cn_utils.appendcr(l_body_code,' END IF;');
858
859 cn_utils.appendcr(l_body_code,' -- Initialize API return status to success');
860 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
861
862 cn_utils.appendcr(l_body_code,' SELECT start_id, end_id, type');
863 cn_utils.appendcr(l_body_code,' INTO x_start_id, x_end_id, x_trx_type');
864 cn_utils.appendcr(l_body_code,' FROM cn_sca_process_batches');
865 cn_utils.appendcr(l_body_code,' WHERE sca_process_batch_id = p_sca_process_batch_id');
866 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
867 cn_utils.appendcr(l_body_code,' IF ((x_start_id IS NULL) OR (x_end_id IS NULL))');
868 cn_utils.appendcr(l_body_code,' THEN');
869 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
870 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_SCA_INVALID_BATCH_ID'');');
871 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
872 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
873 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
874 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
875 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
876 cn_utils.appendcr(l_body_code,' END IF;');
877
878 cn_utils.appendcr(l_body_code,' EXCEPTION');
879 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_ERROR');
880 cn_utils.appendcr(l_body_code,' THEN');
881 cn_utils.appendcr(l_body_code,' ROLLBACK TO get_init_values;');
882 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
883 cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure GET_INIT_VALUES'');');
884 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
885 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
886 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
887 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
888 cn_utils.appendcr(l_body_code,' THEN');
889 cn_utils.appendcr(l_body_code,' ROLLBACK TO get_init_values;');
890 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
891 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure GET_INIT_VALUES''||SQLERRM);');
892 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
893 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
894 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
895 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
896 cn_utils.appendcr(l_body_code,' THEN ');
897 cn_utils.appendcr(l_body_code,' ROLLBACK TO get_init_values;');
898 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
899 cn_utils.appendcr(l_body_code,' debugmsg(''Unhandled Error In Procedure GET_INIT_VALUES''||SQLERRM);');
900 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
901 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
902 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
903 cn_utils.appendcr(l_body_code,' END get_init_values;');
904
905 ------++
906 -- Procedure check_update_revenue_error Updates cn_comm_lines_api's Adjust Status to SCA_REVENUE_ERROR
907 -- for all the orders / invoices that are submitted to SCA Engine and having invalid REVENUE_TYPE
908 ------++
909 cn_utils.appendcr(l_body_code,' PROCEDURE check_reset_error_normal(');
910 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
911 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,');
912 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := FND_API.G_FALSE,');
913 cn_utils.appendcr(l_body_code,' p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,');
914 cn_utils.appendcr(l_body_code,' p_start_date IN cn_comm_lines_api.processed_Date%TYPE,');
915 cn_utils.appendcr(l_body_code,' p_end_date IN cn_comm_lines_api.processed_Date%TYPE,');
916 cn_utils.appendcr(l_body_code,' p_trx_type IN cn_comm_lines_api.trx_type%TYPE,');
917 cn_utils.appendcr(l_body_code,' p_start_id IN cn_sca_process_batches.start_id%TYPE,');
918 cn_utils.appendcr(l_body_code,' p_end_id IN cn_sca_process_batches.end_id%TYPE,');
919 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id IN cn_sca_process_batches.sca_process_batch_id%TYPE,');
920 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
921 cn_utils.appendcr(l_body_code,' x_reset_ord_recs OUT NOCOPY NUMBER,');
922 cn_utils.appendcr(l_body_code,' x_reset_inv_recs OUT NOCOPY NUMBER,');
923 cn_utils.appendcr(l_body_code,' x_return_status OUT NOCOPY VARCHAR2,');
924 cn_utils.appendcr(l_body_code,' x_msg_count OUT NOCOPY NUMBER,');
925 cn_utils.appendcr(l_body_code,' x_msg_data OUT NOCOPY VARCHAR2)');
926 cn_utils.appendcr(l_body_code,' IS');
927 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_revenue_error'';');
928 cn_utils.appendcr(l_body_code,' l_user_id NUMBER := fnd_global.user_id;');
929 cn_utils.appendcr(l_body_code,' l_adj_by VARCHAR(100);');
930
931 cn_utils.appendcr(l_body_code,' CURSOR sca_reset_ord_err_cur');
932 cn_utils.appendcr(l_body_code,' IS');
933 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
934 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
935 cn_utils.appendcr(l_body_code,' WHERE (order_number BETWEEN TO_NUMBER(p_start_id) AND TO_NUMBER(p_end_id))');
936 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
937 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'')');
938 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
939 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
940 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
941 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
942
943 -- For Bug Fix : 3114337 Modified Typo From SCA_DISTINCT_ERRIR to SCA_DISTINCT_ERROR
944 cn_utils.appendcr(l_body_code,' AND (adjust_status in (''SCA_SRP_ERROR'',''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''));');
945
946 cn_utils.appendcr(l_body_code,' CURSOR sca_reset_inv_err_cur');
947 cn_utils.appendcr(l_body_code,' IS');
948 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
949 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
950 cn_utils.appendcr(l_body_code,' WHERE (invoice_number BETWEEN p_start_id AND p_end_id)');
951 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
952 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'')');
953 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
954 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
955 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
956
957 -- For Bug Fix : 3114337 Modified Typo From SCA_DISTINCT_ERRIR to SCA_DISTINCT_ERROR
958 cn_utils.appendcr(l_body_code,' AND (adjust_status in (''SCA_SRP_ERROR'',''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''));');
959
960 cn_utils.appendcr(l_body_code,' TYPE ccla_id_type IS');
961 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
962 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
963
964 cn_utils.appendcr(l_body_code,' ccla_id_var ccla_id_type;');
965
966 cn_utils.appendcr(l_body_code,' BEGIN');
967 cn_utils.appendcr(l_body_code,' SAVEPOINT check_reset_error_normal;');
968
969 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
970 cn_utils.appendcr(l_body_code,' p_api_version,');
971 cn_utils.appendcr(l_body_code,' p_api_version,');
972 cn_utils.appendcr(l_body_code,' l_api_name,');
973 cn_utils.appendcr(l_body_code,' NULL)');
974 cn_utils.appendcr(l_body_code,' THEN');
975 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_UNEXPECTED_ERROR;');
976 cn_utils.appendcr(l_body_code,' END IF;');
977
978 cn_utils.appendcr(l_body_code,' -----+');
979 cn_utils.appendcr(l_body_code,' -- Initialize message list if p_init_msg_list is set to TRUE.');
980 cn_utils.appendcr(l_body_code,' -----+');
981 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list ) THEN');
982 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
983 cn_utils.appendcr(l_body_code,' END IF;');
984
985 cn_utils.appendcr(l_body_code,' l_adj_by := get_adjusted_by(p_sca_process_batch_id, p_org_id);');
986
987 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
988
989 cn_utils.appendcr(l_body_code,' IF p_trx_type = ''ORD'' ');
990 cn_utils.appendcr(l_body_code,' THEN');
991 cn_utils.appendcr(l_body_code,' OPEN sca_reset_ord_err_cur;');
992 cn_utils.appendcr(l_body_code,' FETCH sca_reset_ord_err_cur');
993 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO ccla_id_var LIMIT 1000;');
994 cn_utils.appendcr(l_body_code,' CLOSE sca_reset_ord_err_cur;');
995
996 cn_utils.appendcr(l_body_code,' IF ccla_id_var.COUNT > 0');
997 cn_utils.appendcr(l_body_code,' THEN');
998 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_id_var.FIRST..ccla_id_var.LAST');
999 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1000 cn_utils.appendcr(l_body_code,' SET adjust_status = NULL,');
1001 cn_utils.appendcr(l_body_code,' adjust_comments = ''SCA_CHECK'',');
1002 cn_utils.appendcr(l_body_code,' adjust_date = SYSDATE,');
1003 cn_utils.appendcr(l_body_code,' adjusted_by = l_adj_by,');
1004 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1005 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1006 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_id_var(i)');
1007 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1008 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||'' Errored Records Of Type ORDER Are Updated To Process By SCA'');');
1009 cn_utils.appendcr(l_body_code,' x_reset_ord_recs := SQL%ROWCOUNT;');
1010 cn_utils.appendcr(l_body_code,' ELSE');
1011 cn_utils.appendcr(l_body_code,' debugmsg(''No Errored ORDER Records Are Present In This Batch For Reset'');');
1012 cn_utils.appendcr(l_body_code,' x_reset_ord_recs := 0;');
1013 cn_utils.appendcr(l_body_code,' END IF;');
1014
1015 cn_utils.appendcr(l_body_code,' ELSIF p_trx_type = ''INV'' ');
1016 cn_utils.appendcr(l_body_code,' THEN');
1017 cn_utils.appendcr(l_body_code,' OPEN sca_reset_inv_err_cur;');
1018 cn_utils.appendcr(l_body_code,' FETCH sca_reset_inv_err_cur');
1019 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO ccla_id_var LIMIT 1000;');
1020 cn_utils.appendcr(l_body_code,' CLOSE sca_reset_inv_err_cur;');
1021
1022 cn_utils.appendcr(l_body_code,' IF ccla_id_var.COUNT > 0');
1023 cn_utils.appendcr(l_body_code,' THEN');
1024 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_id_var.FIRST..ccla_id_var.LAST');
1025 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1026 cn_utils.appendcr(l_body_code,' SET adjust_status = NULL,');
1027 cn_utils.appendcr(l_body_code,' adjust_comments = ''SCA_CHECK'',');
1028 cn_utils.appendcr(l_body_code,' adjust_date = SYSDATE,');
1029 cn_utils.appendcr(l_body_code,' adjusted_by = l_adj_by,');
1030 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1031 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1032 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_id_var(i)');
1033 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1034 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||'' Errored Records Of Type INVOICE Are Updated To Process By SCA'');');
1035 cn_utils.appendcr(l_body_code,' x_reset_inv_recs := SQL%ROWCOUNT;');
1036 cn_utils.appendcr(l_body_code,' ELSE');
1037 cn_utils.appendcr(l_body_code,' debugmsg(''No Errored INVOICE Records Are Present In This Batch For Reset'');');
1038 cn_utils.appendcr(l_body_code,' x_reset_inv_recs := 0;');
1039 cn_utils.appendcr(l_body_code,' END IF;');
1040
1041 cn_utils.appendcr(l_body_code,' END IF;');
1042 cn_utils.appendcr(l_body_code,' EXCEPTION');
1043 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
1044 cn_utils.appendcr(l_body_code,' THEN');
1045 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_reset_error_normal;');
1046 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1047 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_RESET_ERROR_NORMAL''||SQLERRM);');
1048 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
1049 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1050 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1051 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
1052 cn_utils.appendcr(l_body_code,' THEN');
1053 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_reset_error_normal;');
1054 cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_RESET_ERROR_NORMAL''||SQLERRM);');
1055 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
1056 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
1057 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1058 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1059 cn_utils.appendcr(l_body_code,' END check_reset_error_normal;');
1060 cn_utils.appendcr(l_body_code,' PROCEDURE check_update_revenue_error(');
1061 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
1062 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,');
1063 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := FND_API.G_FALSE,');
1064 cn_utils.appendcr(l_body_code,' p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,');
1065 cn_utils.appendcr(l_body_code,' p_start_date IN cn_comm_lines_api.processed_Date%TYPE,');
1066 cn_utils.appendcr(l_body_code,' p_end_date IN cn_comm_lines_api.processed_Date%TYPE,');
1067 cn_utils.appendcr(l_body_code,' p_trx_type IN cn_comm_lines_api.trx_type%TYPE,');
1068 cn_utils.appendcr(l_body_code,' p_start_id IN cn_sca_process_batches.start_id%TYPE,');
1069 cn_utils.appendcr(l_body_code,' p_end_id IN cn_sca_process_batches.end_id%TYPE,');
1070 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
1071 cn_utils.appendcr(l_body_code,' x_ord_rev_recs OUT NOCOPY NUMBER,');
1072 cn_utils.appendcr(l_body_code,' x_inv_rev_recs OUT NOCOPY NUMBER,');
1073 cn_utils.appendcr(l_body_code,' x_return_status OUT NOCOPY VARCHAR2,');
1074 cn_utils.appendcr(l_body_code,' x_msg_count OUT NOCOPY NUMBER,');
1075 cn_utils.appendcr(l_body_code,' x_msg_data OUT NOCOPY VARCHAR2)');
1076 cn_utils.appendcr(l_body_code,' IS');
1077 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_revenue_error'';');
1078 cn_utils.appendcr(l_body_code,' l_user_id NUMBER := fnd_global.user_id;');
1079
1080 cn_utils.appendcr(l_body_code,' CURSOR rev_typ_all_ord_cur');
1081 cn_utils.appendcr(l_body_code,' IS');
1082 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
1083 cn_utils.appendcr(l_body_code,' FROM');
1084 cn_utils.appendcr(l_body_code,' (SELECT order_number, line_number, comm_lines_api_id');
1085 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1086 cn_utils.appendcr(l_body_code,' WHERE (load_status = ''UNLOADED'')');
1087 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1088 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1089 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1090 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1091 cn_utils.appendcr(l_body_code,' AND (order_number BETWEEN TO_NUMBER(p_start_id) AND TO_NUMBER(p_end_id))');
1092 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1093 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1094 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1095 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1096 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''ORD'') OR (trx_type = ''MAN''))) ord_tbl');
1097 cn_utils.appendcr(l_body_code,' WHERE NOT EXISTS');
1098 cn_utils.appendcr(l_body_code,' (SELECT 1');
1099 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1100 cn_utils.appendcr(l_body_code,' WHERE (load_status = ''UNLOADED'')');
1101 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1102 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1103 cn_utils.appendcr(l_body_code,' AND (order_number = ord_tbl.order_number)');
1104 cn_utils.appendcr(l_body_code,' AND (line_number = ord_tbl.line_number)');
1105 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1106 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1107 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1108 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1109 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''ORD'') OR (trx_type = ''MAN''))');
1110 cn_utils.appendcr(l_body_code,' AND (revenue_type = ''REVENUE''));');
1111
1112 cn_utils.appendcr(l_body_code,' CURSOR rev_typ_all_inv_cur');
1113 cn_utils.appendcr(l_body_code,' IS');
1114 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
1115 cn_utils.appendcr(l_body_code,' FROM');
1116 cn_utils.appendcr(l_body_code,' (SELECT invoice_number, line_number, comm_lines_api_id');
1117 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1118 cn_utils.appendcr(l_body_code,' WHERE (load_status = ''UNLOADED'')');
1119 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1120 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1121 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1122 cn_utils.appendcr(l_body_code,' AND (invoice_number BETWEEN p_start_id AND p_end_id)');
1123 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1124 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1125 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1126 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1127 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''INV'') OR (trx_type = ''MAN''))) inv_tbl');
1128 cn_utils.appendcr(l_body_code,' WHERE NOT EXISTS');
1129 cn_utils.appendcr(l_body_code,' (SELECT 1');
1130 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1131 cn_utils.appendcr(l_body_code,' WHERE (load_status = ''UNLOADED'')');
1132 cn_utils.appendcr(l_body_code,' AND (invoice_number = inv_tbl.invoice_number)');
1133 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1134 cn_utils.appendcr(l_body_code,' AND (line_number = inv_tbl.line_number)');
1135 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1136 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1137 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1138 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1139 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''INV'') OR (trx_type = ''MAN''))');
1140 cn_utils.appendcr(l_body_code,' AND (revenue_type = ''REVENUE''));');
1141
1142 cn_utils.appendcr(l_body_code,' TYPE ccla_id_type');
1143 cn_utils.appendcr(l_body_code,' IS TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
1144 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1145 cn_utils.appendcr(l_body_code,' ccla_id_var ccla_id_type;');
1146
1147 cn_utils.appendcr(l_body_code,' BEGIN');
1148 cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_revenue_error;');
1149
1150 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
1151 cn_utils.appendcr(l_body_code,' p_api_version,');
1152 cn_utils.appendcr(l_body_code,' p_api_version,');
1153 cn_utils.appendcr(l_body_code,' l_api_name,');
1154 cn_utils.appendcr(l_body_code,' NULL)');
1155 cn_utils.appendcr(l_body_code,' THEN');
1156 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_UNEXPECTED_ERROR;');
1157 cn_utils.appendcr(l_body_code,' END IF;');
1158
1159 cn_utils.appendcr(l_body_code,' -----+');
1160 cn_utils.appendcr(l_body_code,' -- Initialize message list if p_init_msg_list is set to TRUE.');
1161 cn_utils.appendcr(l_body_code,' -----+');
1162 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list ) THEN');
1163 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
1164 cn_utils.appendcr(l_body_code,' END IF;');
1165
1166 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
1167
1168 cn_utils.appendcr(l_body_code,' IF p_trx_type = ''ORD'' ');
1169 cn_utils.appendcr(l_body_code,' THEN');
1170 cn_utils.appendcr(l_body_code,' OPEN rev_typ_all_ord_cur;');
1171 cn_utils.appendcr(l_body_code,' FETCH rev_typ_all_ord_cur');
1172 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1173 cn_utils.appendcr(l_body_code,' ccla_id_var LIMIT 1000;');
1174 cn_utils.appendcr(l_body_code,' CLOSE rev_typ_all_ord_cur;');
1175
1176 cn_utils.appendcr(l_body_code,' IF (ccla_id_var.COUNT > 0)');
1177 cn_utils.appendcr(l_body_code,' THEN');
1178 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_id_var.FIRST..ccla_id_var.LAST');
1179 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1180 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_REVENUE_ERROR'',');
1181 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1182 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1183 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_id_var(i)');
1184 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1185
1186 cn_utils.appendcr(l_body_code,' IF (SQL%ROWCOUNT > 0)');
1187 cn_utils.appendcr(l_body_code,' THEN');
1188 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type ORDER Are Updated With Error SCA_REVENUE_ERROR'');');
1189 cn_utils.appendcr(l_body_code,' x_ord_rev_recs := SQL%ROWCOUNT;');
1190 cn_utils.appendcr(l_body_code,' ELSE');
1191 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type ORDER Are REVENUE Type Record(s).'');');
1192 cn_utils.appendcr(l_body_code,' x_ord_rev_recs := 0;');
1193 cn_utils.appendcr(l_body_code,' END IF;');
1194 cn_utils.appendcr(l_body_code,' END IF;');
1195
1196 cn_utils.appendcr(l_body_code,' ELSIF (p_trx_type = ''INV'')');
1197 cn_utils.appendcr(l_body_code,' THEN');
1198
1199 cn_utils.appendcr(l_body_code,' OPEN rev_typ_all_inv_cur;');
1200 cn_utils.appendcr(l_body_code,' FETCH rev_typ_all_inv_cur');
1201 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1202 cn_utils.appendcr(l_body_code,' ccla_id_var LIMIT 1000;');
1203 cn_utils.appendcr(l_body_code,' CLOSE rev_typ_all_inv_cur;');
1204
1205 cn_utils.appendcr(l_body_code,' IF (ccla_id_var.COUNT > 0)');
1206 cn_utils.appendcr(l_body_code,' THEN');
1207 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_id_var.FIRST..ccla_id_var.LAST');
1208 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1209 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_REVENUE_ERROR'',');
1210 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1211 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1212 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_id_var(i)');
1213 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1214
1215 cn_utils.appendcr(l_body_code,' IF (SQL%ROWCOUNT > 0)');
1216 cn_utils.appendcr(l_body_code,' THEN');
1217 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type INVOICE Are Updated With Error SCA_REVENUE_ERROR'');');
1218 cn_utils.appendcr(l_body_code,' x_ord_rev_recs := SQL%ROWCOUNT;');
1219 cn_utils.appendcr(l_body_code,' ELSE');
1220 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type INVOICE Are REVENUE Type Record(s).'');');
1221 cn_utils.appendcr(l_body_code,' x_ord_rev_recs := 0;');
1222 cn_utils.appendcr(l_body_code,' END IF;');
1223
1224 cn_utils.appendcr(l_body_code,' END IF;');
1225
1226 cn_utils.appendcr(l_body_code,' END IF;');
1227
1228 cn_utils.appendcr(l_body_code,' EXCEPTION');
1229 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
1230 cn_utils.appendcr(l_body_code,' THEN');
1231 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_revenue_error;');
1232 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1233 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_REVENUE_ERROR''||SQLERRM);');
1234 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
1235 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1236 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1237 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
1238 cn_utils.appendcr(l_body_code,' THEN');
1239 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_revenue_error;');
1240 cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_REVENUE_ERROR''||SQLERRM);');
1241 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
1242 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
1243 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1244 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1245 cn_utils.appendcr(l_body_code,' END check_update_revenue_error;');
1246
1247 ------++
1248 -- Procedure check_update_role_error Updates cn_comm_lines_api's Adjust Status to SCA_ROLE_ERROR
1249 -- for all the orders / invoices that are submitted to SCA Engine and not having valid ROLE_ID
1250 ------++
1251
1252 cn_utils.appendcr(l_body_code,' PROCEDURE check_update_role_error(');
1253 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
1254 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,');
1255 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := FND_API.G_FALSE,');
1256 cn_utils.appendcr(l_body_code,' p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,');
1257 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id IN cn_sca_process_batches.sca_process_batch_id%TYPE,');
1258 cn_utils.appendcr(l_body_code,' p_start_date IN cn_comm_lines_api.processed_Date%TYPE,');
1259 cn_utils.appendcr(l_body_code,' p_end_date IN cn_comm_lines_api.processed_Date%TYPE,');
1260 cn_utils.appendcr(l_body_code,' p_trx_type IN cn_comm_lines_api.trx_type%TYPE,');
1261 cn_utils.appendcr(l_body_code,' p_start_id IN cn_sca_process_batches.start_id%TYPE,');
1262 cn_utils.appendcr(l_body_code,' p_end_id IN cn_sca_process_batches.end_id%TYPE,');
1263 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
1264 cn_utils.appendcr(l_body_code,' x_ord_role_recs OUT NOCOPY NUMBER,');
1265 cn_utils.appendcr(l_body_code,' x_inv_role_recs OUT NOCOPY NUMBER,');
1266 cn_utils.appendcr(l_body_code,' x_return_status OUT NOCOPY VARCHAR2,');
1267 cn_utils.appendcr(l_body_code,' x_msg_count OUT NOCOPY NUMBER,');
1268 cn_utils.appendcr(l_body_code,' x_msg_data OUT NOCOPY VARCHAR2)');
1269 cn_utils.appendcr(l_body_code,' IS');
1270 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_role_error'';');
1271 cn_utils.appendcr(l_body_code,' l_user_id NUMBER := fnd_global.user_id;');
1272
1273 cn_utils.appendcr(l_body_code,' TYPE ccla_id_tbl IS');
1274 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
1275 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1276
1277 cn_utils.appendcr(l_body_code,' TYPE ccla_ord_tbl IS');
1278 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.order_number%TYPE');
1279 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1280
1281 cn_utils.appendcr(l_body_code,' TYPE ccla_inv_tbl IS');
1282 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.invoice_number%TYPE');
1283 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1284
1285 cn_utils.appendcr(l_body_code,' TYPE ccla_ord_rec IS RECORD');
1286 cn_utils.appendcr(l_body_code,' (id_col ccla_id_tbl,');
1287 cn_utils.appendcr(l_body_code,' ord_col ccla_ord_tbl);');
1288 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var ccla_ord_rec;');
1289
1290 cn_utils.appendcr(l_body_code,' TYPE ccla_inv_rec IS RECORD');
1291 cn_utils.appendcr(l_body_code,' (id_col ccla_id_tbl,');
1292 cn_utils.appendcr(l_body_code,' inv_col ccla_inv_tbl);');
1293 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var ccla_inv_rec;');
1294
1295 cn_utils.appendcr(l_body_code,' BEGIN');
1296
1297 cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_role_error;');
1298 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
1299 cn_utils.appendcr(l_body_code,' p_api_version,');
1300 cn_utils.appendcr(l_body_code,' p_api_version,');
1301 cn_utils.appendcr(l_body_code,' l_api_name,');
1302 cn_utils.appendcr(l_body_code,' NULL)');
1303 cn_utils.appendcr(l_body_code,' THEN');
1304 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_UNEXPECTED_ERROR;');
1305 cn_utils.appendcr(l_body_code,' END IF;');
1306 cn_utils.appendcr(l_body_code,' -- Initialize message list if p_init_msg_list is set to TRUE.');
1307 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list ) THEN');
1308 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
1309 cn_utils.appendcr(l_body_code,' END IF;');
1310
1311 cn_utils.appendcr(l_body_code,' -- Initialize API return status to success');
1312 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
1313 cn_utils.appendcr(l_body_code,' IF (p_trx_type = ''ORD'')');
1314 cn_utils.appendcr(l_body_code,' THEN');
1315 cn_utils.appendcr(l_body_code,' SELECT ccla.comm_lines_api_id,');
1316 cn_utils.appendcr(l_body_code,' ccla.order_number');
1317 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1318 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var.id_col,');
1319 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var.ord_col');
1320 cn_utils.appendcr(l_body_code,' FROM ');
1321 cn_utils.appendcr(l_body_code,' cn_comm_lines_api ccla');
1322
1323 cn_utils.appendcr(l_body_code,' WHERE (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1324 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'')');
1325 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1326 cn_utils.appendcr(l_body_code,' AND (ccla.order_number IS NOT NULL)');
1327 cn_utils.appendcr(l_body_code,' AND (ccla.line_number IS NOT NULL)');
1328 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number IS NULL)');
1329 cn_utils.appendcr(l_body_code,' AND ((ccla.adjust_status IS NULL) OR ccla.adjust_status NOT IN');
1330 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1331 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1332 cn_utils.appendcr(l_body_code,' AND (ccla.order_number BETWEEN TO_NUMBER(p_start_id) AND TO_NUMBER(p_end_id))');
1333 cn_utils.appendcr(l_body_code,' AND ((ccla.trx_type = ''ORD'') OR (ccla.trx_type = ''MAN''))');
1334 cn_utils.appendcr(l_body_code,' AND NOT EXISTS ');
1335 cn_utils.appendcr(l_body_code,' (SELECT 1 ');
1336 cn_utils.appendcr(l_body_code,' FROM cn_srp_roles csro ');
1337 cn_utils.appendcr(l_body_code,' WHERE (csro.ROLE_id = ccla.role_id)');
1338 cn_utils.appendcr(l_body_code,' AND (ccla.salesrep_id = csro.salesrep_id)');
1339 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = csro.org_id)');
1340 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(csro.start_date) AND NVL(TRUNC(csro.end_date), TRUNC(ccla.processed_date)))); ');
1341
1342 cn_utils.appendcr(l_body_code,' IF ccla_ord_rec_var.id_col.COUNT > 0');
1343 cn_utils.appendcr(l_body_code,' THEN');
1344 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_ord_rec_var.id_col.FIRST..ccla_ord_rec_var.id_col.LAST');
1345 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1346 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_ROLE_ERROR'',');
1347 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1348 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1349 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_ord_rec_var.id_col(i)');
1350 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1351 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type ORDER Updated To SCA_ROLE_ERROR In CN_COMM_LINES_API'');');
1352 cn_utils.appendcr(l_body_code,' x_ord_role_recs := SQL%ROWCOUNT;');
1353 cn_utils.appendcr(l_body_code,' ELSE');
1354 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type ORDER Are Having Valid Role Assigned.'');');
1355 cn_utils.appendcr(l_body_code,' x_ord_role_recs := 0;');
1356 cn_utils.appendcr(l_body_code,' END IF;');
1357
1358 cn_utils.appendcr(l_body_code,' ELSIF (p_trx_type = ''INV'')');
1359 cn_utils.appendcr(l_body_code,' THEN');
1360 cn_utils.appendcr(l_body_code,' SELECT ccla.comm_lines_api_id,');
1361 cn_utils.appendcr(l_body_code,' ccla.invoice_number');
1362 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1363 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var.id_col,');
1364 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var.inv_col');
1365 cn_utils.appendcr(l_body_code,' FROM ');
1366 cn_utils.appendcr(l_body_code,' cn_comm_lines_api ccla');
1367 cn_utils.appendcr(l_body_code,' WHERE (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1368 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'')');
1369 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1370 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number IS NOT NULL)');
1371 cn_utils.appendcr(l_body_code,' AND (ccla.line_number IS NOT NULL)');
1372 cn_utils.appendcr(l_body_code,' AND ((ccla.adjust_status IS NULL) OR ccla.adjust_status NOT IN');
1373 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1374 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1375 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number BETWEEN p_start_id AND p_end_id)');
1376 cn_utils.appendcr(l_body_code,' AND ((ccla.trx_type = ''INV'') OR (ccla.trx_type = ''MAN''))');
1377
1378 cn_utils.appendcr(l_body_code,' AND NOT EXISTS ');
1379 cn_utils.appendcr(l_body_code,' (SELECT 1 ');
1380 cn_utils.appendcr(l_body_code,' FROM cn_srp_roles csro ');
1381 cn_utils.appendcr(l_body_code,' WHERE (csro.ROLE_id = ccla.role_id)');
1382 cn_utils.appendcr(l_body_code,' AND (ccla.salesrep_id = csro.salesrep_id)');
1383 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = csro.org_id)');
1384 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(csro.start_date) AND NVL(TRUNC(csro.end_date), TRUNC(ccla.processed_date)))); ');
1385
1386 cn_utils.appendcr(l_body_code,' IF ccla_inv_rec_var.id_col.COUNT > 0');
1387 cn_utils.appendcr(l_body_code,' THEN');
1388 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_inv_rec_var.id_col.FIRST..ccla_inv_rec_var.id_col.LAST');
1389 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1390 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_ROLE_ERROR'',');
1391 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1392 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1393 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_inv_rec_var.id_col(i)');
1394 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1395 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type INVOICE Updated To SCA_ROLE_ERROR In CN_COMM_LINES_API'');');
1396 cn_utils.appendcr(l_body_code,' x_inv_role_recs := SQL%ROWCOUNT;');
1397 cn_utils.appendcr(l_body_code,' ELSE');
1398 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type INVOICE Are Having Valid Role Assigned.'');');
1399 cn_utils.appendcr(l_body_code,' x_inv_role_recs := 0;');
1400 cn_utils.appendcr(l_body_code,' END IF;');
1401 cn_utils.appendcr(l_body_code,' END IF;');
1402 cn_utils.appendcr(l_body_code,' EXCEPTION');
1403 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
1404 cn_utils.appendcr(l_body_code,' THEN');
1405 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_role_error;');
1406 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1407 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_ROLE_ERROR''||SQLERRM);');
1408 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
1409 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1410 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1411 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
1412 cn_utils.appendcr(l_body_code,' THEN');
1413 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_role_error;');
1414 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
1415 cn_utils.appendcr(l_body_code,' debugmsg(''Unhandled Error In Procedure CHECK_UPDATE_ROLE_ERROR''||SQLERRM);');
1416 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
1417 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1418 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1419 cn_utils.appendcr(l_body_code,' END check_update_role_error;');
1420 ------++
1421 -- Procedure check_update_resource_error Updates cn_comm_lines_api's Adjust Status to SCA_SRP_ERROR
1422 -- for all the orders / invoices that are submitted to SCA Engine and not having valid SALESREP_ID
1423 ------++
1424 cn_utils.appendcr(l_body_code,' PROCEDURE check_update_resource_error(');
1425 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
1426 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,');
1427 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := FND_API.G_FALSE,');
1428 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id IN cn_sca_process_batches.sca_process_batch_id%TYPE,');
1429 cn_utils.appendcr(l_body_code,' p_start_date IN cn_comm_lines_api.processed_Date%TYPE,');
1430 cn_utils.appendcr(l_body_code,' p_end_date IN cn_comm_lines_api.processed_Date%TYPE,');
1431 cn_utils.appendcr(l_body_code,' p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,');
1432 cn_utils.appendcr(l_body_code,' p_trx_type IN cn_sca_process_batches.type%TYPE,');
1433 cn_utils.appendcr(l_body_code,' p_start_id IN cn_sca_process_batches.start_id%TYPE,');
1434 cn_utils.appendcr(l_body_code,' p_end_id IN cn_sca_process_batches.end_id%TYPE,');
1435 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
1436 cn_utils.appendcr(l_body_code,' x_ord_res_recs OUT NOCOPY NUMBER,');
1437 cn_utils.appendcr(l_body_code,' x_inv_res_recs OUT NOCOPY NUMBER,');
1438 cn_utils.appendcr(l_body_code,' x_return_status OUT NOCOPY VARCHAR2,');
1439 cn_utils.appendcr(l_body_code,' x_msg_count OUT NOCOPY NUMBER,');
1440 cn_utils.appendcr(l_body_code,' x_msg_data OUT NOCOPY VARCHAR2)');
1441 cn_utils.appendcr(l_body_code,' IS');
1442 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(50) := ''check_update_resource_error'';');
1443 cn_utils.appendcr(l_body_code,' l_user_id NUMBER := fnd_global.user_id;');
1444
1445 cn_utils.appendcr(l_body_code,' TYPE ccla_id_tbl IS');
1446 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
1447 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1448
1449 cn_utils.appendcr(l_body_code,' TYPE ccla_ord_tbl IS');
1450 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.order_number%TYPE');
1451 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1452
1453 cn_utils.appendcr(l_body_code,' TYPE ccla_inv_tbl IS');
1454 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.invoice_number%TYPE');
1455 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1456
1457 cn_utils.appendcr(l_body_code,' TYPE ccla_ord_rec IS RECORD');
1458 cn_utils.appendcr(l_body_code,' (id_col ccla_id_tbl,');
1459 cn_utils.appendcr(l_body_code,' ord_col ccla_ord_tbl);');
1460 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var ccla_ord_rec;');
1461
1462 cn_utils.appendcr(l_body_code,' TYPE ccla_inv_rec IS RECORD');
1463 cn_utils.appendcr(l_body_code,' (id_col ccla_id_tbl,');
1464 cn_utils.appendcr(l_body_code,' inv_col ccla_inv_tbl);');
1465 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var ccla_inv_rec;');
1466
1467 cn_utils.appendcr(l_body_code,' BEGIN');
1468 cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_resource_error;');
1469 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
1470 cn_utils.appendcr(l_body_code,' p_api_version,');
1471 cn_utils.appendcr(l_body_code,' p_api_version,');
1472 cn_utils.appendcr(l_body_code,' l_api_name,');
1473 cn_utils.appendcr(l_body_code,' NULL)');
1474 cn_utils.appendcr(l_body_code,' THEN');
1475 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_UNEXPECTED_ERROR;');
1476 cn_utils.appendcr(l_body_code,' END IF;');
1477
1478 cn_utils.appendcr(l_body_code,' -- Initialize message list if p_init_msg_list is set to TRUE.');
1479 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list ) THEN');
1480 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
1481 cn_utils.appendcr(l_body_code,' END IF;');
1482
1483 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
1484
1485 cn_utils.appendcr(l_body_code,' IF (p_trx_type = ''ORD'')');
1486 cn_utils.appendcr(l_body_code,' THEN');
1487 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id,');
1488 cn_utils.appendcr(l_body_code,' order_number');
1489 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1490 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var.id_col,');
1491 cn_utils.appendcr(l_body_code,' ccla_ord_rec_var.ord_col');
1492 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1493 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id');
1494 cn_utils.appendcr(l_body_code,' IN');
1495 cn_utils.appendcr(l_body_code,' (SELECT ccla.comm_lines_api_id');
1496 cn_utils.appendcr(l_body_code,' FROM jtf_rs_salesreps jrs, cn_comm_lines_api ccla');
1497 cn_utils.appendcr(l_body_code,' WHERE (ccla.salesrep_id = jrs.salesrep_id(+))');
1498 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = jrs.org_id(+))');
1499 cn_utils.appendcr(l_body_code,' AND (ccla.salesrep_id IS NOT NULL)');
1500 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1501 cn_utils.appendcr(l_body_code,' AND (nvl(jrs.resource_id,0) = 0)');
1502 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1503 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'')');
1504 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1505 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1506 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1507 cn_utils.appendcr(l_body_code,' AND (ccla.order_number BETWEEN TO_NUMBER(p_start_id) AND TO_NUMBER(p_end_id))');
1508 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1509 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1510 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1511 cn_utils.appendcr(l_body_code,' AND ((ccla.trx_type = ''ORD'') OR (ccla.trx_type = ''MAN'')));');
1512
1513 cn_utils.appendcr(l_body_code,' IF ccla_ord_rec_var.id_col.COUNT > 0');
1514 cn_utils.appendcr(l_body_code,' THEN');
1515 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_ord_rec_var.id_col.FIRST..ccla_ord_rec_var.id_col.LAST');
1516 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1517 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_SRP_ERROR'',');
1518 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1519 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1520 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_ord_rec_var.id_col(i)');
1521 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1522 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type ORDER Updated To SCA_SRP_ERROR In CN_COMM_LINES_API.'');');
1523 cn_utils.appendcr(l_body_code,' x_ord_res_recs := SQL%ROWCOUNT;');
1524 cn_utils.appendcr(l_body_code,' ELSE');
1525 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type ORDER Are Having Valid Salesrep Id Assigned.'');');
1526 cn_utils.appendcr(l_body_code,' x_ord_res_recs := 0;');
1527 cn_utils.appendcr(l_body_code,' END IF;');
1528
1529 cn_utils.appendcr(l_body_code,' ELSIF (p_trx_type = ''INV'')');
1530 cn_utils.appendcr(l_body_code,' THEN');
1531 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id,');
1532 cn_utils.appendcr(l_body_code,' invoice_number');
1533 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
1534 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var.id_col,');
1535 cn_utils.appendcr(l_body_code,' ccla_inv_rec_var.inv_col');
1536 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1537 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id ');
1538 cn_utils.appendcr(l_body_code,' IN');
1539 cn_utils.appendcr(l_body_code,' (SELECT ccla.comm_lines_api_id');
1540 cn_utils.appendcr(l_body_code,' FROM jtf_rs_salesreps jrs, cn_comm_lines_api ccla');
1541 cn_utils.appendcr(l_body_code,' WHERE (ccla.salesrep_id = jrs.salesrep_id(+))');
1542 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = jrs.org_id(+))');
1543 cn_utils.appendcr(l_body_code,' AND (ccla.salesrep_id IS NOT NULL)');
1544 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1545 cn_utils.appendcr(l_body_code,' AND (nvl(jrs.resource_id,0) = 0)');
1546 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1547 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'') ');
1548 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1549 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1550 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number BETWEEN p_start_id AND p_end_id)');
1551 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1552 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1553 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1554 cn_utils.appendcr(l_body_code,' AND ((ccla.trx_type = ''INV'') OR (ccla.trx_type = ''MAN'')));');
1555
1556 cn_utils.appendcr(l_body_code,' IF ccla_inv_rec_var.id_col.COUNT > 0');
1557 cn_utils.appendcr(l_body_code,' THEN');
1558 cn_utils.appendcr(l_body_code,' FORALL i IN ccla_inv_rec_var.id_col.FIRST..ccla_inv_rec_var.id_col.LAST');
1559 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api ');
1560 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_SRP_ERROR'',');
1561 cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
1562 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
1563 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = ccla_inv_rec_var.id_col(i)');
1564 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
1565 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type INVOICE Updated To SCA_SRP_ERROR In CN_COMM_LINES_API'');');
1566 cn_utils.appendcr(l_body_code,' x_inv_res_recs := SQL%ROWCOUNT;');
1567 cn_utils.appendcr(l_body_code,' ELSE');
1568 cn_utils.appendcr(l_body_code,' debugmsg(''All Record(s) of Type INVOICE Are Having Valid Salesrep Id Assigned.'');');
1569 cn_utils.appendcr(l_body_code,' x_inv_res_recs := 0;');
1570 cn_utils.appendcr(l_body_code,' END IF;');
1571 cn_utils.appendcr(l_body_code,' END IF;');
1572 cn_utils.appendcr(l_body_code,' EXCEPTION');
1573 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
1574 cn_utils.appendcr(l_body_code,' THEN');
1575 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_resource_error;');
1576 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1577 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_RESOURCE_ERROR''||SQLERRM);');
1578 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
1579 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1580 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1581 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
1582 cn_utils.appendcr(l_body_code,' THEN');
1583 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_resource_error;');
1584 cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_RESOURCE_ERROR''||SQLERRM);');
1585 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
1586 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
1587 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1588 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1589 cn_utils.appendcr(l_body_code,' END check_update_resource_error;');
1590 ------++
1591 -- Procedure check_update_distinct_error Updates cn_comm_lines_api's Adjust Status to SCA_DISTINCT_ERROR
1592 -- for all the orders / invoices that are submitted to SCA Engine and not having distinct attribute values across
1593 -- order / invoice lines
1594 ------++
1595 cn_utils.appendcr(l_body_code,' PROCEDURE check_update_distinct_error(');
1596 cn_utils.appendcr(l_body_code,' p_api_version IN NUMBER,');
1597 cn_utils.appendcr(l_body_code,' p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,');
1598 cn_utils.appendcr(l_body_code,' p_commit IN VARCHAR2 := FND_API.G_FALSE,');
1599 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id IN cn_sca_process_batches.sca_process_batch_id%TYPE,');
1600 cn_utils.appendcr(l_body_code,' p_start_date IN cn_comm_lines_api.processed_Date%TYPE,');
1601 cn_utils.appendcr(l_body_code,' p_end_date IN cn_comm_lines_api.processed_Date%TYPE,');
1602 cn_utils.appendcr(l_body_code,' p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,');
1603 cn_utils.appendcr(l_body_code,' p_trx_type IN cn_sca_process_batches.type%TYPE,');
1604 cn_utils.appendcr(l_body_code,' p_start_id IN cn_sca_process_batches.start_id%TYPE,');
1605 cn_utils.appendcr(l_body_code,' p_end_id IN cn_sca_process_batches.end_id%TYPE,');
1606 cn_utils.appendcr(l_body_code,' p_org_id IN cn_sca_process_batches.org_id%TYPE,');
1607 cn_utils.appendcr(l_body_code,' x_ord_dist_recs OUT NOCOPY NUMBER,');
1608 cn_utils.appendcr(l_body_code,' x_inv_dist_recs OUT NOCOPY NUMBER,');
1609 cn_utils.appendcr(l_body_code,' x_return_status OUT NOCOPY VARCHAR2,');
1610 cn_utils.appendcr(l_body_code,' x_msg_count OUT NOCOPY NUMBER,');
1611 cn_utils.appendcr(l_body_code,' x_msg_data OUT NOCOPY VARCHAR2)');
1612 cn_utils.appendcr(l_body_code,' IS');
1613 cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_distinct_error'';');
1614 cn_utils.appendcr(l_body_code,' BEGIN');
1615 cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_distinct_error;');
1616 cn_utils.appendcr(l_body_code,' IF NOT FND_API.Compatible_API_Call (');
1617 cn_utils.appendcr(l_body_code,' p_api_version,');
1618 cn_utils.appendcr(l_body_code,' p_api_version,');
1619 cn_utils.appendcr(l_body_code,' l_api_name,');
1620 cn_utils.appendcr(l_body_code,' NULL)');
1621 cn_utils.appendcr(l_body_code,' THEN');
1622 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
1623 cn_utils.appendcr(l_body_code,' END IF;');
1624
1625 cn_utils.appendcr(l_body_code,' -- Initialize message list if p_init_msg_list is set to TRUE.');
1626 cn_utils.appendcr(l_body_code,' IF FND_API.to_Boolean( p_init_msg_list ) THEN');
1627 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.initialize;');
1628 cn_utils.appendcr(l_body_code,' END IF;');
1629
1630 cn_utils.appendcr(l_body_code,' -- Initialize API return status to success');
1631 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
1632
1633 cn_utils.appendcr(l_body_code,' IF (p_trx_type = ''ORD'')');
1634 cn_utils.appendcr(l_body_code,' THEN');
1635 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1636 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_DISTINCT_ERROR'' ');
1637 cn_utils.appendcr(l_body_code,' WHERE (comm_lines_api_id, trx_type) IN');
1638 cn_utils.appendcr(l_body_code,' (SELECT comm_lines_api_id, trx_type');
1639 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1640 cn_utils.appendcr(l_body_code,' WHERE (order_number, line_number)');
1641 cn_utils.appendcr(l_body_code,' IN');
1642 cn_utils.appendcr(l_body_code,' (SELECT ord_no, line_no');
1643 cn_utils.appendcr(l_body_code,' FROM');
1644 cn_utils.appendcr(l_body_code,' (SELECT distinct order_number ord_no,line_number line_no,');
1645
1646 split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
1647
1648 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1649 cn_utils.appendcr(l_body_code,' WHERE (order_number BETWEEN TO_NUMBER(p_start_id) AND TO_NUMBER(p_end_id))');
1650 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1651 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'')');
1652 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1653 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1654 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1655 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1656 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''ORD'') OR (trx_type = ''MAN''))');
1657 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1658 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1659 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')))');
1660 cn_utils.appendcr(l_body_code,' HAVING COUNT(ord_no) > 1');
1661 cn_utils.appendcr(l_body_code,' GROUP BY ord_no, line_no)');
1662 cn_utils.appendcr(l_body_code,' AND (trx_type IN (''ORD'',''MAN''))');
1663 cn_utils.appendcr(l_body_code,' AND (adjust_status NOT IN (''FROZEN'',''REVERSAL'') OR adjust_status IS NULL));');
1664
1665 cn_utils.appendcr(l_body_code,' IF SQL%ROWCOUNT > 0');
1666 cn_utils.appendcr(l_body_code,' THEN');
1667 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type ORDER Are Updated With Error SCA_DISTINCT_ERROR'');');
1668 cn_utils.appendcr(l_body_code,' x_ord_dist_recs := SQL%ROWCOUNT;');
1669 cn_utils.appendcr(l_body_code,' ELSE');
1670 cn_utils.appendcr(l_body_code,' debugmsg(''Each ORDER Is Having Distinct Attribute Values'');');
1671 cn_utils.appendcr(l_body_code,' x_ord_dist_recs := 0;');
1672 cn_utils.appendcr(l_body_code,' END IF;');
1673
1674 cn_utils.appendcr(l_body_code,' ELSIF (p_trx_type = ''INV'')');
1675 cn_utils.appendcr(l_body_code,' THEN');
1676 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
1677 cn_utils.appendcr(l_body_code,' SET adjust_status = ''SCA_DISTINCT_ERROR'' ');
1678 cn_utils.appendcr(l_body_code,' WHERE (comm_lines_api_id,trx_type) IN');
1679 cn_utils.appendcr(l_body_code,' (SELECT comm_lines_api_id, trx_type');
1680 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1681 cn_utils.appendcr(l_body_code,' WHERE (invoice_number, line_number)');
1682 cn_utils.appendcr(l_body_code,' IN');
1683 cn_utils.appendcr(l_body_code,' (SELECT inv_no, line_no');
1684 cn_utils.appendcr(l_body_code,' FROM');
1685 cn_utils.appendcr(l_body_code,' (SELECT distinct invoice_number inv_no,line_number line_no,');
1686
1687 split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
1688
1689 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1690 cn_utils.appendcr(l_body_code,' WHERE (invoice_number BETWEEN p_start_id AND p_end_id)');
1691 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1692 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'') ');
1693 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1694 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1695 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1696 cn_utils.appendcr(l_body_code,' AND ((trx_type = ''INV'') OR (trx_type = ''MAN''))');
1697 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1698 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1699 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')))');
1700 cn_utils.appendcr(l_body_code,' HAVING COUNT(inv_no) > 1');
1701 cn_utils.appendcr(l_body_code,' GROUP BY inv_no, line_no)');
1702 cn_utils.appendcr(l_body_code,' AND (trx_type IN (''INV'',''MAN''))');
1703 cn_utils.appendcr(l_body_code,' AND (adjust_status NOT IN (''FROZEN'',''REVERSAL'') OR adjust_status IS NULL));');
1704
1705 cn_utils.appendcr(l_body_code,' IF SQL%ROWCOUNT > 0');
1706 cn_utils.appendcr(l_body_code,' THEN');
1707 cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type INVOICE Are Updated With Error SCA_DISTINCT_ERROR'');');
1708 cn_utils.appendcr(l_body_code,' x_inv_dist_recs := SQL%ROWCOUNT;');
1709 cn_utils.appendcr(l_body_code,' ELSE');
1710 cn_utils.appendcr(l_body_code,' debugmsg(''Each INVOICE Is Having Distinct Attribute Values'');');
1711 cn_utils.appendcr(l_body_code,' x_inv_dist_recs := 0;');
1712 cn_utils.appendcr(l_body_code,' END IF;');
1713
1714 cn_utils.appendcr(l_body_code,' END IF;');
1715 cn_utils.appendcr(l_body_code,' EXCEPTION');
1716 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
1717 cn_utils.appendcr(l_body_code,' THEN');
1718 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_distinct_error;');
1719 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1720 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_DISTINCT_ERROR''||SQLERRM);');
1721 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
1722 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1723 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1724 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
1725 cn_utils.appendcr(l_body_code,' THEN');
1726 cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_distinct_error;');
1727 cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_DISTINCT_ERROR''||SQLERRM); ');
1728 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
1729 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
1730 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
1731 cn_utils.appendcr(l_body_code,' p_data => x_msg_data);');
1732 cn_utils.appendcr(l_body_code,' END check_update_distinct_error;');
1733
1734 cn_utils.appendcr(l_body_code,'------+');
1735 cn_utils.appendcr(l_body_code,'-- Package Body For Interface Mapping Package ');
1736 cn_utils.appendcr(l_body_code,'------+');
1737 cn_utils.appendcr(l_body_code,' PROCEDURE map (');
1738 cn_utils.appendcr(l_body_code, l_proc_arg1 ||',');
1739 cn_utils.appendcr(l_body_code, l_proc_arg2 ||',');
1740 cn_utils.appendcr(l_body_code, l_proc_arg3 ||',');
1741 cn_utils.appendcr(l_body_code, l_proc_arg4 ||',');
1742 cn_utils.appendcr(l_body_code, l_proc_arg5 ||',');
1743 cn_utils.appendcr(l_body_code, l_proc_arg6 ||',');
1744 cn_utils.appendcr(l_body_code, l_proc_arg7 ||',');
1745 cn_utils.appendcr(l_body_code, l_proc_arg8 ||',');
1746 cn_utils.appendcr(l_body_code, l_proc_arg9 ||',');
1747 cn_utils.appendcr(l_body_code, l_proc_arg10||',');
1748 cn_utils.appendcr(l_body_code, l_proc_arg11||')');
1749 cn_utils.appendcr(l_body_code,'IS ');
1750
1751 cn_utils.appendcr(l_body_code,'------+');
1752 cn_utils.appendcr(l_body_code,'-- To Store values to update WHO Columns');
1753 cn_utils.appendcr(l_body_code,'------+');
1754 cn_utils.appendcr(l_body_code,' l_user_id NUMBER(15) := fnd_global.user_id;');
1755 cn_utils.appendcr(l_body_code,' l_login_id NUMBER(15) := fnd_global.login_id;');
1756
1757 cn_utils.appendcr(l_body_code,'------+');
1758 cn_utils.appendcr(l_body_code,'-- To store values for start_id and end_id of CN_SCA_PROCESS_BATCHES');
1759 cn_utils.appendcr(l_body_code,'------+');
1760 cn_utils.appendcr(l_body_code,' l_start_id cn_sca_process_batches.start_id%TYPE;');
1761 cn_utils.appendcr(l_body_code,' l_end_id cn_sca_process_batches.end_id%TYPE;');
1762 cn_utils.appendcr(l_body_code,' l_trx_type cn_sca_headers_interface.source_type%TYPE;');
1763
1764 cn_utils.appendcr(l_body_code,' l_return_status VARCHAR2(50);');
1765 cn_utils.appendcr(l_body_code,' l_msg_count NUMBER;');
1766 cn_utils.appendcr(l_body_code,' l_msg_data VARCHAR2(2000);');
1767 cn_utils.appendcr(l_body_code,' l_upd_ccla VARCHAR2(1) := ''N''; ');
1768
1769 cn_utils.appendcr(l_body_code,' -----+');
1770 cn_utils.appendcr(l_body_code,' -- Variable Declarations To Hold Values Of Rows Effected By 5 Check Procedures');
1771 cn_utils.appendcr(l_body_code,' -----+');
1772 cn_utils.appendcr(l_body_code,' l_reset_ord_recs NUMBER := 0;');
1773 cn_utils.appendcr(l_body_code,' l_reset_inv_recs NUMBER := 0;');
1774 cn_utils.appendcr(l_body_code,' l_ord_role_recs NUMBER := 0;');
1775 cn_utils.appendcr(l_body_code,' l_inv_role_recs NUMBER := 0;');
1776 cn_utils.appendcr(l_body_code,' l_ord_res_recs NUMBER := 0;');
1777 cn_utils.appendcr(l_body_code,' l_inv_res_recs NUMBER := 0;');
1778 cn_utils.appendcr(l_body_code,' l_ord_dist_recs NUMBER := 0;');
1779 cn_utils.appendcr(l_body_code,' l_inv_dist_recs NUMBER := 0;');
1780 cn_utils.appendcr(l_body_code,' l_ord_rev_recs NUMBER := 0;');
1781 cn_utils.appendcr(l_body_code,' l_inv_rev_recs NUMBER := 0;');
1782 cn_utils.appendcr(l_body_code,' -----+');
1783 cn_utils.appendcr(l_body_code,' -- Variable Declarations To Hold Values Of Rows Inserted into CN_SCA_HEADERS_INTERFACE,');
1784 cn_utils.appendcr(l_body_code,' -- CN_SCA_LINES_INTERFACE And Rows Updated Into CN_COMM_LINES_API For Each ORDER and/or INVOICE');
1785 cn_utils.appendcr(l_body_code,' -----+');
1786
1787 cn_utils.appendcr(l_body_code,' l_ord_ccla_recs NUMBER := 0;');
1788 cn_utils.appendcr(l_body_code,' l_ord_cshi_recs NUMBER := 0;');
1789 cn_utils.appendcr(l_body_code,' l_ord_csli_recs NUMBER := 0;');
1790 cn_utils.appendcr(l_body_code,' l_inv_ccla_recs NUMBER := 0;');
1791 cn_utils.appendcr(l_body_code,' l_inv_csli_recs NUMBER := 0;');
1792 cn_utils.appendcr(l_body_code,' l_inv_cshi_recs NUMBER := 0;');
1793
1794 cn_utils.appendcr(l_body_code,' CURSOR sca_head_ord_cur');
1795 cn_utils.appendcr(l_body_code,' IS');
1796 cn_utils.appendcr(l_body_code,' SELECT trx_amt, comm_lines_api_id, order_number, line_number from ');
1797 cn_utils.appendcr(l_body_code,' (SELECT SUM(transaction_amount) trx_amt,');
1798 cn_utils.appendcr(l_body_code,' MAX(comm_lines_api_id) comm_lines_api_id,');
1799 cn_utils.appendcr(l_body_code,' order_number,');
1800 cn_utils.appendcr(l_body_code,' line_number');
1801 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api ccla');
1802 cn_utils.appendcr(l_body_code,' WHERE (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1803 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'')');
1804 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1805 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1806 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1807 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1808 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1809 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'',');
1810 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1811 cn_utils.appendcr(l_body_code,' AND (order_number BETWEEN TO_NUMBER(l_start_id) AND TO_NUMBER(l_end_id))');
1812 cn_utils.appendcr(l_body_code,' AND (trx_type = ''ORD'' OR trx_type = ''MAN'')');
1813 cn_utils.appendcr(l_body_code,' AND (revenue_type = ''REVENUE'')');
1814 cn_utils.appendcr(l_body_code,' GROUP BY order_number, line_number) ord_tbl');
1815 cn_utils.appendcr(l_body_code,' WHERE NOT EXISTS');
1816 cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
1817 cn_utils.appendcr(l_body_code,' WHERE order_number = ord_tbl.order_number');
1818 cn_utils.appendcr(l_body_code,' AND line_number = ord_tbl.line_number');
1819 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id');
1820 cn_utils.appendcr(l_body_code,' AND adjust_status IN (''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')); ');
1821
1822 cn_utils.appendcr(l_body_code,' CURSOR sca_line_ord_cur');
1823 cn_utils.appendcr(l_body_code,' IS');
1824 cn_utils.appendcr(l_body_code,' SELECT cshi.sca_headers_interface_id,');
1825 cn_utils.appendcr(l_body_code,' jrs.resource_id,');
1826 cn_utils.appendcr(l_body_code,' ccla.role_id,');
1827 cn_utils.appendcr(l_body_code,' ccla.comm_lines_api_id,');
1828 cn_utils.appendcr(l_body_code,' ccla.object_version_number');
1829 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api ccla,');
1830 cn_utils.appendcr(l_body_code,' jtf_rs_salesreps jrs,');
1831 cn_utils.appendcr(l_body_code,' cn_sca_headers_interface cshi');
1832 cn_utils.appendcr(l_body_code,' WHERE (ccla.salesrep_id = jrs.salesrep_id)');
1833 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'')');
1834 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1835 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1836 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = jrs.org_id)');
1837 cn_utils.appendcr(l_body_code,' AND (jrs.org_id = cshi.org_id)');
1838 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1839 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1840 cn_utils.appendcr(l_body_code,' AND (ccla.order_number BETWEEN TO_NUMBER(l_start_id) AND TO_NUMBER(l_end_id))');
1841 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1842 cn_utils.appendcr(l_body_code,' AND ((ccla.adjust_status IS NULL) OR ccla.adjust_status NOT IN');
1843 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'', ');
1844 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')) ');
1845 cn_utils.appendcr(l_body_code,' AND (ccla.order_number = cshi.source_id)');
1846 cn_utils.appendcr(l_body_code,' AND (ccla.line_number = cshi.source_line_id)');
1847 cn_utils.appendcr(l_body_code,' AND (ccla.trx_type = ''ORD'' OR ccla.trx_type = ''MAN'')');
1848 cn_utils.appendcr(l_body_code,' AND (cshi.source_type = ''ORD'');');
1849
1850 cn_utils.appendcr(l_body_code,' CURSOR sca_ord_ccla_cur');
1851 cn_utils.appendcr(l_body_code,' IS');
1852 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id ');
1853 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api ccla');
1854 cn_utils.appendcr(l_body_code,' WHERE (order_number BETWEEN TO_NUMBER(l_start_id) AND TO_NUMBER(l_end_id))');
1855 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1856 cn_utils.appendcr(l_body_code,' AND (load_Status = ''UNLOADED'')');
1857 cn_utils.appendcr(l_body_code,' AND (trx_type = ''ORD'' OR trx_type = ''MAN'')');
1858 cn_utils.appendcr(l_body_code,' AND (order_number IS NOT NULL)');
1859 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1860 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1861 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NULL)');
1862 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1863 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'', ');
1864 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1865 cn_utils.appendcr(l_body_code,' AND NOT EXISTS');
1866 cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
1867 cn_utils.appendcr(l_body_code,' WHERE order_number = ccla.order_number');
1868 cn_utils.appendcr(l_body_code,' AND line_number = ccla.line_number');
1869 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id');
1870 cn_utils.appendcr(l_body_code,' AND adjust_status IN (''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''));');
1871
1872 cn_utils.appendcr(l_body_code,' CURSOR sca_head_inv_cur');
1873 cn_utils.appendcr(l_body_code,' IS');
1874 cn_utils.appendcr(l_body_code,' SELECT trx_amt, comm_lines_api_id, invoice_number, line_number FROM');
1875 cn_utils.appendcr(l_body_code,' (SELECT SUM(transaction_amount) trx_amt,');
1876 cn_utils.appendcr(l_body_code,' MAX(comm_lines_api_id) comm_lines_api_id,');
1877 cn_utils.appendcr(l_body_code,' invoice_number,');
1878 cn_utils.appendcr(l_body_code,' line_number');
1879 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
1880 cn_utils.appendcr(l_body_code,' WHERE (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1881 cn_utils.appendcr(l_body_code,' AND (load_status = ''UNLOADED'') ');
1882 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id) ');
1883 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1884 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1885 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN ');
1886 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'', ');
1887 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')) ');
1888 cn_utils.appendcr(l_body_code,' AND (invoice_number BETWEEN l_start_id AND l_end_id) ');
1889 cn_utils.appendcr(l_body_code,' AND (trx_type = ''INV'' OR trx_type = ''MAN'') ');
1890 cn_utils.appendcr(l_body_code,' AND (revenue_type = ''REVENUE'')');
1891 cn_utils.appendcr(l_body_code,' GROUP BY invoice_number, line_number) inv_tbl');
1892 cn_utils.appendcr(l_body_code,' WHERE NOT EXISTS');
1893 cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
1894 cn_utils.appendcr(l_body_code,' WHERE invoice_number = inv_tbl.invoice_number');
1895 cn_utils.appendcr(l_body_code,' AND line_number = inv_tbl.line_number');
1896 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id');
1897 cn_utils.appendcr(l_body_code,' AND adjust_status IN (''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')); ');
1898
1899 cn_utils.appendcr(l_body_code,' CURSOR sca_line_inv_cur');
1900 cn_utils.appendcr(l_body_code,' IS');
1901 cn_utils.appendcr(l_body_code,' SELECT cshi.sca_headers_interface_id,');
1902 cn_utils.appendcr(l_body_code,' jrs.resource_id,');
1903 cn_utils.appendcr(l_body_code,' ccla.role_id,');
1904 cn_utils.appendcr(l_body_code,' ccla.comm_lines_api_id,');
1905 cn_utils.appendcr(l_body_code,' ccla.object_version_number');
1906 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api ccla,');
1907 cn_utils.appendcr(l_body_code,' jtf_rs_salesreps jrs,');
1908 cn_utils.appendcr(l_body_code,' cn_sca_headers_interface cshi');
1909 cn_utils.appendcr(l_body_code,' WHERE (ccla.salesrep_id = jrs.salesrep_id)');
1910 cn_utils.appendcr(l_body_code,' AND (ccla.load_status = ''UNLOADED'')');
1911 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1912 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = p_org_id)');
1913 cn_utils.appendcr(l_body_code,' AND (ccla.org_id = jrs.org_id)');
1914 cn_utils.appendcr(l_body_code,' AND (jrs.org_id = cshi.org_id)');
1915 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1916 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number BETWEEN l_start_id AND l_end_id)');
1917 cn_utils.appendcr(l_body_code,' AND (TRUNC(ccla.processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1918 cn_utils.appendcr(l_body_code,' AND ((ccla.adjust_status IS NULL) OR ccla.adjust_status NOT IN');
1919 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'', ');
1920 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR'')) ');
1921 cn_utils.appendcr(l_body_code,' AND (ccla.invoice_number = cshi.source_id)');
1922 cn_utils.appendcr(l_body_code,' AND (ccla.line_number = cshi.source_line_id)');
1923 cn_utils.appendcr(l_body_code,' AND (ccla.trx_type = ''INV'' OR ccla.trx_type = ''MAN'')');
1924 cn_utils.appendcr(l_body_code,' AND (cshi.source_type = ''INV'');');
1925
1926 cn_utils.appendcr(l_body_code,' CURSOR sca_inv_ccla_cur');
1927 cn_utils.appendcr(l_body_code,' IS');
1928 cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
1929 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api ccla');
1930
1931 cn_utils.appendcr(l_body_code,' WHERE (invoice_number BETWEEN l_start_id AND l_end_id)');
1932 cn_utils.appendcr(l_body_code,' AND (TRUNC(processed_date) BETWEEN TRUNC(p_start_date) AND TRUNC(p_end_date))');
1933 cn_utils.appendcr(l_body_code,' AND (load_Status = ''UNLOADED'')');
1934 cn_utils.appendcr(l_body_code,' AND (org_id = p_org_id)');
1935 cn_utils.appendcr(l_body_code,' AND (invoice_number IS NOT NULL)');
1936 cn_utils.appendcr(l_body_code,' AND (line_number IS NOT NULL)');
1937 cn_utils.appendcr(l_body_code,' AND (trx_type = ''INV'' OR trx_type = ''MAN'')');
1938 cn_utils.appendcr(l_body_code,' AND ((adjust_status IS NULL) OR adjust_status NOT IN');
1939 cn_utils.appendcr(l_body_code,' (''SCA_PENDING'', ''SCA_ALLOCATED'', ''SCA_NOT_ALLOCATED'',''SCA_NO_RULE'',''REVERSAL'',''FROZEN'', ');
1940 cn_utils.appendcr(l_body_code,' ''SCA_NOT_ELIGIBLE'',''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''))');
1941 cn_utils.appendcr(l_body_code,' AND NOT EXISTS');
1942 cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
1943 cn_utils.appendcr(l_body_code,' WHERE invoice_number = ccla.invoice_number');
1944 cn_utils.appendcr(l_body_code,' AND line_number = ccla.line_number');
1945 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id');
1946 cn_utils.appendcr(l_body_code,' AND adjust_status IN (''SCA_SRP_ERROR'', ''SCA_ROLE_ERROR'',''SCA_DISTINCT_ERROR'',''SCA_REVENUE_ERROR''));');
1947
1948 cn_utils.appendcr(l_body_code,' TYPE ord_num_tbl IS');
1949 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.order_number%TYPE');
1950 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1951
1952 cn_utils.appendcr(l_body_code,' TYPE inv_num_tbl IS');
1953 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.invoice_number%TYPE');
1954 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1955
1956 cn_utils.appendcr(l_body_code,' TYPE line_num_tbl IS');
1957 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.line_number%TYPE');
1958 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1959
1960 cn_utils.appendcr(l_body_code,' TYPE trx_amt_sum_tbl IS');
1961 cn_utils.appendcr(l_body_code,' TABLE OF NUMBER');
1962 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1963
1964 cn_utils.appendcr(l_body_code,' TYPE ccla_id_tbl IS');
1965 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
1966 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1967
1968 cn_utils.appendcr(l_body_code,' TYPE sca_head_ord_rec IS RECORD(');
1969 cn_utils.appendcr(l_body_code,' ord_num ord_num_tbl,');
1970 cn_utils.appendcr(l_body_code,' line_num line_num_tbl,');
1971 cn_utils.appendcr(l_body_code,' amt_sum trx_amt_sum_tbl,');
1972 cn_utils.appendcr(l_body_code,' api_id ccla_id_tbl);');
1973 cn_utils.appendcr(l_body_code,' sca_head_ord_var sca_head_ord_rec;');
1974
1975 cn_utils.appendcr(l_body_code,' TYPE sca_head_inv_rec IS RECORD(');
1976 cn_utils.appendcr(l_body_code,' inv_num inv_num_tbl,');
1977 cn_utils.appendcr(l_body_code,' line_num line_num_tbl,');
1978 cn_utils.appendcr(l_body_code,' amt_sum trx_amt_sum_tbl,');
1979 cn_utils.appendcr(l_body_code,' api_id ccla_id_tbl);');
1980 cn_utils.appendcr(l_body_code,' sca_head_inv_var sca_head_inv_rec;');
1981
1982 cn_utils.appendcr(l_body_code,' TYPE cshi_id_tbl IS');
1983 cn_utils.appendcr(l_body_code,' TABLE OF cn_sca_headers_interface.sca_headers_interface_id%TYPE');
1984 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1985
1986 cn_utils.appendcr(l_body_code,' TYPE jrs_rs_id_tbl IS');
1987 cn_utils.appendcr(l_body_code,' TABLE OF jtf_rs_salesreps.resource_id%TYPE');
1988 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1989
1990 cn_utils.appendcr(l_body_code,' TYPE ccla_rl_id_tbl IS');
1991 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.role_id%TYPE');
1992 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1993
1994 cn_utils.appendcr(l_body_code,' TYPE ccla_api_id_tbl IS');
1995 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.comm_lines_api_id%TYPE');
1996 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
1997
1998 cn_utils.appendcr(l_body_code,' TYPE ccla_ovn_tbl IS');
1999 cn_utils.appendcr(l_body_code,' TABLE OF cn_comm_lines_api.object_version_number%TYPE');
2000 cn_utils.appendcr(l_body_code,' INDEX BY BINARY_INTEGER;');
2001
2002 cn_utils.appendcr(l_body_code,' TYPE sca_line_rec IS RECORD(');
2003 cn_utils.appendcr(l_body_code,' cshi_id cshi_id_tbl,');
2004 cn_utils.appendcr(l_body_code,' jrs_id jrs_rs_id_tbl,');
2005 cn_utils.appendcr(l_body_code,' role_id ccla_rl_id_tbl,');
2006 cn_utils.appendcr(l_body_code,' api_id ccla_api_id_tbl,');
2007 cn_utils.appendcr(l_body_code,' ovn_no ccla_ovn_tbl);');
2008
2009 cn_utils.appendcr(l_body_code,' sca_line_rec_var sca_line_rec;');
2010 cn_utils.appendcr(l_body_code,' sca_ccla_id_var ccla_id_tbl;');
2011
2012 cn_utils.appendcr(l_body_code,'BEGIN');
2013 cn_utils.appendcr(l_body_code,' SAVEPOINT map_package_savepoint;');
2014
2015
2016 cn_utils.appendcr(l_body_code,' get_init_values(');
2017 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2018 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id => p_sca_process_batch_id,');
2019 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2020 cn_utils.appendcr(l_body_code,' x_trx_type => l_trx_type,');
2021 cn_utils.appendcr(l_body_code,' x_start_id => l_start_id,');
2022 cn_utils.appendcr(l_body_code,' x_end_id => l_end_id,');
2023 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2024 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2025 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2026
2027
2028 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2029 cn_utils.appendcr(l_body_code,' THEN');
2030 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2031 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_GET_INIT_VALUES_ERROR'');');
2032 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2033 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2034 cn_utils.appendcr(l_body_code,' END IF;');
2035
2036 cn_utils.appendcr(l_body_code,' check_reset_error_normal(');
2037 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2038 cn_utils.appendcr(l_body_code,' p_start_date => p_start_date,');
2039 cn_utils.appendcr(l_body_code,' p_end_date => p_end_date,');
2040 cn_utils.appendcr(l_body_code,' p_trx_type => l_trx_type,');
2041 cn_utils.appendcr(l_body_code,' p_start_id => l_start_id,');
2042 cn_utils.appendcr(l_body_code,' p_end_id => l_end_id,');
2043 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2044 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id => p_sca_process_batch_id,');
2045 cn_utils.appendcr(l_body_code,' x_reset_ord_recs => l_reset_ord_recs,');
2046 cn_utils.appendcr(l_body_code,' x_reset_inv_recs => l_reset_inv_recs,');
2047 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2048 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2049 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2050
2051 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2052 cn_utils.appendcr(l_body_code,' THEN');
2053 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2054 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_CHECK_RESET_ERROR_NORMAL'');');
2055 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2056 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2057 cn_utils.appendcr(l_body_code,' END IF;');
2058
2059 cn_utils.appendcr(l_body_code,' check_update_revenue_error(');
2060 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2061 cn_utils.appendcr(l_body_code,' p_start_date => p_start_date,');
2062 cn_utils.appendcr(l_body_code,' p_end_date => p_end_date,');
2063 cn_utils.appendcr(l_body_code,' p_trx_type => l_trx_type,');
2064 cn_utils.appendcr(l_body_code,' p_start_id => l_start_id,');
2065 cn_utils.appendcr(l_body_code,' p_end_id => l_end_id,');
2066 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2067 cn_utils.appendcr(l_body_code,' x_ord_rev_recs => l_ord_rev_recs,');
2068 cn_utils.appendcr(l_body_code,' x_inv_rev_recs => l_inv_rev_recs,');
2069 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2070 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2071 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2072
2073 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2074 cn_utils.appendcr(l_body_code,' THEN');
2075 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2076 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_CHK_REV_ERROR'');');
2077 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2078 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2079 cn_utils.appendcr(l_body_code,' END IF;');
2080
2081 cn_utils.appendcr(l_body_code,' check_update_role_error(');
2082 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2083 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id => p_sca_process_batch_id,');
2084 cn_utils.appendcr(l_body_code,' p_start_date => p_start_date,');
2085 cn_utils.appendcr(l_body_code,' p_end_date => p_end_date,');
2086 cn_utils.appendcr(l_body_code,' p_trx_type => l_trx_type,');
2087 cn_utils.appendcr(l_body_code,' p_start_id => l_start_id,');
2088 cn_utils.appendcr(l_body_code,' p_end_id => l_end_id,');
2089 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2090 cn_utils.appendcr(l_body_code,' x_ord_role_recs => l_ord_role_recs,');
2091 cn_utils.appendcr(l_body_code,' x_inv_role_recs => l_inv_role_recs,');
2092 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2093 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2094 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2095
2096 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2097 cn_utils.appendcr(l_body_code,' THEN');
2098 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2099 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_CHK_ROLE_ERROR'');');
2100 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2101 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2102 cn_utils.appendcr(l_body_code,' END IF;');
2103
2104 cn_utils.appendcr(l_body_code,' check_update_resource_error(');
2105 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2106 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id => p_sca_process_batch_id,');
2107 cn_utils.appendcr(l_body_code,' p_start_date => p_start_date,');
2108 cn_utils.appendcr(l_body_code,' p_end_date => p_end_date,');
2109 cn_utils.appendcr(l_body_code,' p_trx_type => l_trx_type,');
2110 cn_utils.appendcr(l_body_code,' p_start_id => l_start_id,');
2111 cn_utils.appendcr(l_body_code,' p_end_id => l_end_id,');
2112 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2113 cn_utils.appendcr(l_body_code,' x_ord_res_recs => l_ord_res_recs,');
2114 cn_utils.appendcr(l_body_code,' x_inv_res_recs => l_inv_res_recs,');
2115 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2116 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2117 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2118
2119 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2120 cn_utils.appendcr(l_body_code,' THEN');
2121 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2122 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_CHK_RES_ERROR'');');
2123 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2124 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2125 cn_utils.appendcr(l_body_code,' END IF;');
2126
2127 cn_utils.appendcr(l_body_code,' check_update_distinct_error(');
2128 cn_utils.appendcr(l_body_code,' p_api_version => 1.0,');
2129 cn_utils.appendcr(l_body_code,' p_sca_process_batch_id => p_sca_process_batch_id,');
2130 cn_utils.appendcr(l_body_code,' p_start_date => p_start_date,');
2131 cn_utils.appendcr(l_body_code,' p_end_date => p_end_date,');
2132 cn_utils.appendcr(l_body_code,' p_trx_type => l_trx_type,');
2133 cn_utils.appendcr(l_body_code,' p_start_id => l_start_id,');
2134 cn_utils.appendcr(l_body_code,' p_end_id => l_end_id,');
2135 cn_utils.appendcr(l_body_code,' p_org_id => p_org_id,');
2136 cn_utils.appendcr(l_body_code,' x_ord_dist_recs => l_ord_dist_recs,');
2137 cn_utils.appendcr(l_body_code,' x_inv_dist_recs => l_inv_dist_recs,');
2138 cn_utils.appendcr(l_body_code,' x_return_status => l_return_status,');
2139 cn_utils.appendcr(l_body_code,' x_msg_count => l_msg_count,');
2140 cn_utils.appendcr(l_body_code,' x_msg_data => l_msg_data);');
2141
2142 cn_utils.appendcr(l_body_code,' IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)');
2143 cn_utils.appendcr(l_body_code,' THEN');
2144 cn_utils.appendcr(l_body_code,' x_return_status := l_return_status;');
2145 cn_utils.appendcr(l_body_code,' FND_MESSAGE.SET_NAME(''CN'',''CN_CHK_DIST_ERROR'');');
2146 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.ADD;');
2147 cn_utils.appendcr(l_body_code,' RAISE FND_API.G_EXC_ERROR;');
2148 cn_utils.appendcr(l_body_code,' END IF;');
2149
2150 cn_utils.appendcr(l_body_code,' IF l_trx_type = ''ORD'' ');
2151 cn_utils.appendcr(l_body_code,' THEN');
2152 cn_utils.appendcr(l_body_code,' OPEN sca_head_ord_cur;');
2153
2154 cn_utils.appendcr(l_body_code,' FETCH sca_head_ord_cur ');
2155 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO ');
2156 cn_utils.appendcr(l_body_code,' sca_head_ord_var.amt_sum,');
2157 cn_utils.appendcr(l_body_code,' sca_head_ord_var.api_id,');
2158 cn_utils.appendcr(l_body_code,' sca_head_ord_var.ord_num,');
2159 cn_utils.appendcr(l_body_code,' sca_head_ord_var.line_num LIMIT 1000;');
2160 cn_utils.appendcr(l_body_code,' CLOSE sca_head_ord_cur;');
2161 cn_utils.appendcr(l_body_code,' IF sca_head_ord_var.api_id.COUNT > 0');
2162 cn_utils.appendcr(l_body_code,' THEN');
2163
2164 cn_utils.appendcr(l_body_code,' l_ord_cshi_recs := sca_head_ord_var.api_id.COUNT;');
2165
2166 cn_utils.appendcr(l_body_code,' l_upd_ccla := ''Y'';');
2167 cn_utils.appendcr(l_body_code,' FORALL i IN sca_head_ord_var.ord_num.FIRST..sca_head_ord_var.ord_num.LAST');
2168 cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_headers_interface');
2169 cn_utils.appendcr(l_body_code,' (sca_headers_interface_id, transaction_source, source_type,');
2170 cn_utils.appendcr(l_body_code,' source_id, source_line_id, transaction_amount,');
2171 cn_utils.appendcr(l_body_code,' object_version_number, processed_date, process_status, transaction_status,');
2172 cn_utils.appendcr(l_body_code,' created_by, creation_Date, org_id,');
2173
2174 split_long_sql(l_body_code,l_src_column_name(l_loop_cntr3),'SELECT');
2175 cn_utils.appendcr(l_body_code,')');
2176
2177 cn_utils.appendcr(l_body_code,' SELECT');
2178 cn_utils.appendcr(l_body_code,' cn_sca_headers_interface_s.NEXTVAL, ''CN'' ,''ORD'',');
2179 cn_utils.appendcr(l_body_code,' order_number, line_number, sca_head_ord_var.amt_sum(i),');
2180 cn_utils.appendcr(l_body_code,' object_version_number, processed_date, ''SCA_UNPROCESSED'' ,''SCA_UNPROCESSED'' ,');
2181 cn_utils.appendcr(l_body_code,' '||l_login_id||', SYSDATE, org_id,');
2182
2183 split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
2184
2185 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
2186 cn_utils.appendcr(l_body_code,' WHERE order_number = sca_head_ord_var.ord_num(i)');
2187 cn_utils.appendcr(l_body_code,' AND line_number = sca_head_ord_var.line_num(i)');
2188 cn_utils.appendcr(l_body_code,' AND comm_lines_api_id = sca_head_ord_var.api_id(i)');
2189 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
2190 cn_utils.appendcr(l_body_code,' ELSE');
2191 cn_utils.appendcr(l_body_code,' l_upd_ccla := ''N'';');
2192 cn_utils.appendcr(l_body_code,' END IF;');
2193
2194 cn_utils.appendcr(l_body_code,' IF l_upd_ccla = ''Y'' ');
2195 cn_utils.appendcr(l_body_code,' THEN');
2196 cn_utils.appendcr(l_body_code,' OPEN sca_line_ord_cur;');
2197 cn_utils.appendcr(l_body_code,' FETCH sca_line_ord_cur');
2198 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
2199 cn_utils.appendcr(l_body_code,' sca_line_rec_var.cshi_id,');
2200 cn_utils.appendcr(l_body_code,' sca_line_rec_var.jrs_id,');
2201 cn_utils.appendcr(l_body_code,' sca_line_rec_var.role_id,');
2202 cn_utils.appendcr(l_body_code,' sca_line_rec_var.api_id,');
2203 cn_utils.appendcr(l_body_code,' sca_line_rec_var.ovn_no LIMIT 1000;');
2204 cn_utils.appendcr(l_body_code,' CLOSE sca_line_ord_cur;');
2205
2206 cn_utils.appendcr(l_body_code,' l_ord_csli_recs := sca_line_rec_var.cshi_id.COUNT;');
2207
2208 cn_utils.appendcr(l_body_code,' FORALL j IN sca_line_rec_var.cshi_id.FIRST..sca_line_rec_var.cshi_id.LAST');
2209 cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_lines_interface');
2210 cn_utils.appendcr(l_body_code,' (sca_lines_interface_id, sca_headers_interface_id, resource_id, role_id,');
2211 cn_utils.appendcr(l_body_code,' source_trx_id,org_id, object_version_number, created_by, creation_date)');
2212 cn_utils.appendcr(l_body_code,' VALUES');
2213 cn_utils.appendcr(l_body_code,' (cn_sca_lines_interface_s.NEXTVAL, sca_line_rec_var.cshi_id(j), sca_line_rec_var.jrs_id(j), sca_line_rec_var.role_id(j),');
2214 cn_utils.appendcr(l_body_code,' sca_line_rec_var.api_id(j),'||l_org_id||' ,sca_line_rec_var.ovn_no(j),'||l_user_id||', SYSDATE);');
2215
2216 cn_utils.appendcr(l_body_code,' OPEN sca_ord_ccla_cur;');
2217 cn_utils.appendcr(l_body_code,' FETCH sca_ord_ccla_cur');
2218 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
2219 cn_utils.appendcr(l_body_code,' sca_ccla_id_var LIMIT 1000;');
2220 cn_utils.appendcr(l_body_code,' CLOSE sca_ord_ccla_cur;');
2221
2222 cn_utils.appendcr(l_body_code,' l_ord_ccla_recs := sca_ccla_id_var.COUNT;');
2223
2224 cn_utils.appendcr(l_body_code,' FORALL k in sca_ccla_id_var.FIRST..sca_ccla_id_var.LAST');
2225 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
2226 cn_utils.appendcr(l_body_code,' SET');
2227 cn_utils.appendcr(l_body_code,' adjust_status = ''SCA_PENDING'',');
2228 cn_utils.appendcr(l_body_code,' last_updated_by = '||l_user_id||',');
2229 cn_utils.appendcr(l_body_code,' last_update_login = '||l_login_id||',');
2230 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
2231 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = sca_ccla_id_var(k)');
2232 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
2233 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
2234 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
2235 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
2236 cn_utils.appendcr(l_body_code,' p_data => x_msg_data,');
2237 cn_utils.appendcr(l_body_code,' p_encoded => FND_API.G_TRUE);');
2238 cn_utils.appendcr(l_body_code,' END IF;');
2239
2240 cn_utils.appendcr(l_body_code,' ELSIF l_trx_type = ''INV'' ');
2241 cn_utils.appendcr(l_body_code,' THEN');
2242
2243 cn_utils.appendcr(l_body_code,' OPEN sca_head_inv_cur;');
2244 cn_utils.appendcr(l_body_code,' FETCH sca_head_inv_cur');
2245 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO ');
2246 cn_utils.appendcr(l_body_code,' sca_head_inv_var.amt_sum,');
2247 cn_utils.appendcr(l_body_code,' sca_head_inv_var.api_id,');
2248 cn_utils.appendcr(l_body_code,' sca_head_inv_var.inv_num,');
2249 cn_utils.appendcr(l_body_code,' sca_head_inv_var.line_num LIMIT 1000;');
2250 cn_utils.appendcr(l_body_code,' CLOSE sca_head_inv_cur;');
2251 cn_utils.appendcr(l_body_code,' IF sca_head_inv_var.api_id.COUNT > 0');
2252 cn_utils.appendcr(l_body_code,' THEN');
2253
2254 cn_utils.appendcr(l_body_code,' l_inv_cshi_recs := sca_head_inv_var.api_id.COUNT;');
2255
2256 cn_utils.appendcr(l_body_code,' l_upd_ccla := ''Y'';');
2257 cn_utils.appendcr(l_body_code,' FORALL i IN sca_head_inv_var.inv_num.FIRST..sca_head_inv_var.inv_num.LAST');
2258 cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_headers_interface');
2259 cn_utils.appendcr(l_body_code,' (sca_headers_interface_id, transaction_source, source_type,');
2260 cn_utils.appendcr(l_body_code,' source_id, source_line_id, transaction_amount,');
2261 cn_utils.appendcr(l_body_code,' object_version_number, processed_date, process_status, transaction_status,');
2262 cn_utils.appendcr(l_body_code,' created_by, creation_Date, org_id,');
2263
2264 split_long_sql(l_body_code,l_src_column_name(l_loop_cntr3),'SELECT');
2265 cn_utils.appendcr(l_body_code,')');
2266
2267 cn_utils.appendcr(l_body_code,' SELECT');
2268 cn_utils.appendcr(l_body_code,' cn_sca_headers_interface_s.NEXTVAL, ''CN'' ,''INV'',');
2269 cn_utils.appendcr(l_body_code,' invoice_number, line_number, sca_head_inv_var.amt_sum(i),');
2270 cn_utils.appendcr(l_body_code,' object_version_number, processed_date, ''SCA_UNPROCESSED'' ,''SCA_UNPROCESSED'' ,');
2271 cn_utils.appendcr(l_body_code,' '||l_login_id||', SYSDATE, org_id,');
2272
2273 split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
2274
2275 cn_utils.appendcr(l_body_code,' FROM cn_comm_lines_api');
2276 cn_utils.appendcr(l_body_code,' WHERE invoice_number = sca_head_inv_var.inv_num(i)');
2277 cn_utils.appendcr(l_body_code,' AND line_number = sca_head_inv_var.line_num(i)');
2278 cn_utils.appendcr(l_body_code,' AND comm_lines_api_id = sca_head_inv_var.api_id(i)');
2279 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
2280 cn_utils.appendcr(l_body_code,' ELSE');
2281 cn_utils.appendcr(l_body_code,' l_upd_ccla := ''N'';');
2282 cn_utils.appendcr(l_body_code,' END IF;');
2283
2284 cn_utils.appendcr(l_body_code,' IF l_upd_ccla = ''Y'' ');
2285 cn_utils.appendcr(l_body_code,' THEN');
2286 cn_utils.appendcr(l_body_code,' OPEN sca_line_inv_cur;');
2287 cn_utils.appendcr(l_body_code,' FETCH sca_line_inv_cur');
2288 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
2289 cn_utils.appendcr(l_body_code,' sca_line_rec_var.cshi_id,');
2290 cn_utils.appendcr(l_body_code,' sca_line_rec_var.jrs_id,');
2291 cn_utils.appendcr(l_body_code,' sca_line_rec_var.role_id,');
2292 cn_utils.appendcr(l_body_code,' sca_line_rec_var.api_id,');
2293 cn_utils.appendcr(l_body_code,' sca_line_rec_var.ovn_no LIMIT 1000;');
2294 cn_utils.appendcr(l_body_code,' CLOSE sca_line_inv_cur;');
2295
2296 cn_utils.appendcr(l_body_code,' l_inv_csli_recs := sca_line_rec_var.cshi_id.COUNT;');
2297
2298 cn_utils.appendcr(l_body_code,' FORALL j IN sca_line_rec_var.cshi_id.FIRST..sca_line_rec_var.cshi_id.LAST');
2299 cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_lines_interface');
2300 cn_utils.appendcr(l_body_code,' (sca_lines_interface_id, sca_headers_interface_id, resource_id, role_id,');
2301 cn_utils.appendcr(l_body_code,' source_trx_id,org_id, object_version_number, created_by, creation_date)');
2302 cn_utils.appendcr(l_body_code,' VALUES');
2303 cn_utils.appendcr(l_body_code,' (cn_sca_lines_interface_s.NEXTVAL, sca_line_rec_var.cshi_id(j), sca_line_rec_var.jrs_id(j), sca_line_rec_var.role_id(j),');
2304 cn_utils.appendcr(l_body_code,' sca_line_rec_var.api_id(j),'||l_org_id||' ,sca_line_rec_var.ovn_no(j),'||l_user_id||', SYSDATE);');
2305
2306 cn_utils.appendcr(l_body_code,' OPEN sca_inv_ccla_cur;');
2307 cn_utils.appendcr(l_body_code,' FETCH sca_inv_ccla_cur');
2308 cn_utils.appendcr(l_body_code,' BULK COLLECT INTO');
2309 cn_utils.appendcr(l_body_code,' sca_ccla_id_var LIMIT 1000;');
2310 cn_utils.appendcr(l_body_code,' CLOSE sca_inv_ccla_cur;');
2311
2312 cn_utils.appendcr(l_body_code,' l_inv_ccla_recs := sca_ccla_id_var.COUNT;');
2313
2314 cn_utils.appendcr(l_body_code,' FORALL k in sca_ccla_id_var.FIRST..sca_ccla_id_var.LAST');
2315 cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
2316 cn_utils.appendcr(l_body_code,' SET');
2317 cn_utils.appendcr(l_body_code,' adjust_status = ''SCA_PENDING'',');
2318 cn_utils.appendcr(l_body_code,' last_updated_by = '||l_user_id||',');
2319 cn_utils.appendcr(l_body_code,' last_update_login = '||l_login_id||',');
2320 cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
2321 cn_utils.appendcr(l_body_code,' WHERE comm_lines_api_id = sca_ccla_id_var(k)');
2322 cn_utils.appendcr(l_body_code,' AND org_id = p_org_id;');
2323 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_SUCCESS;');
2324 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
2325 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
2326 cn_utils.appendcr(l_body_code,' p_data => x_msg_data,');
2327 cn_utils.appendcr(l_body_code,' p_encoded => FND_API.G_TRUE);');
2328 cn_utils.appendcr(l_body_code,' END IF;');
2329 cn_utils.appendcr(l_body_code,'END IF;');
2330
2331 cn_utils.appendcr(l_body_code,' debugmsg(''***** START OF PROCESSED RECORD SUMMARY *****'');');
2332
2333 cn_utils.appendcr(l_body_code,' debugmsg(''*RESET RECORDS SUMMARY*'');');
2334 cn_utils.appendcr(l_body_code,' debugmsg(''-----------------------'');');
2335 cn_utils.appendcr(l_body_code,' debugmsg(''TRANSACTION TYPE*****|***RESET RECORD COUNT'');');
2336 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|---------------------'');');
2337 cn_utils.appendcr(l_body_code,' debugmsg(''ORDER TRANSACTION****|''||nvl(l_reset_ord_recs,0));');
2338 cn_utils.appendcr(l_body_code,' debugmsg(''INVOICE TRANSACTION**|''||nvl(l_reset_inv_recs,0));');
2339 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2340 cn_utils.appendcr(l_body_code,' debugmsg(''ERROR NAME***********|***TRANSACTION TYPE****|*****#OF RECORDS'');');
2341 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2342 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_ROLE_ERROR*******|***ORDER***************|''||nvl(l_ord_role_recs,0));');
2343 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_ROLE_ERROR*******|***INVOICE*************|''||nvl(l_inv_role_recs,0));');
2344 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2345 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_RESOURCE_ERROR***|***ORDER***************|''||nvl(l_ord_res_recs,0));');
2346 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_RESOURCE_ERROR***|***INVOICE*************|''||nvl(l_inv_res_recs,0));');
2347 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2348 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_DISTINCT_ERROR***|***ORDER***************|''||nvl(l_ord_dist_recs,0));');
2349 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_DISTINCT_ERROR***|***INVOICE*************|''||nvl(l_inv_dist_recs,0));');
2350 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2351 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_REVENUE_ERROR****|***ORDER***************|''||nvl(l_ord_rev_recs,0));');
2352 cn_utils.appendcr(l_body_code,' debugmsg(''SCA_REVENUE_ERROR****|***INVOICE*************|''||nvl(l_inv_rev_recs,0));');
2353 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|-----------------------|------------------'');');
2354
2355 cn_utils.appendcr(l_body_code,' debugmsg(''-------------------------|-----------------------|---------------'');');
2356 cn_utils.appendcr(l_body_code,' debugmsg(''RECORDS INSERTED INTO****|***TRANSACTION TYPE****|****#OF RECORDS'');');
2357 cn_utils.appendcr(l_body_code,' debugmsg(''-------------------------|-----------------------|---------------'');');
2358 cn_utils.appendcr(l_body_code,' debugmsg(''CN_SCA_HEADERS_INTERFACE*| ORDER*****************|''||nvl(l_ord_cshi_recs,0));');
2359 cn_utils.appendcr(l_body_code,' debugmsg(''CN_SCA_LINES_INTERFACE***| ORDER*****************|''||nvl(l_ord_csli_recs,0));');
2360 cn_utils.appendcr(l_body_code,' debugmsg(''CN_SCA_HEADERS_INTERFACE*| INVOICE***************|''||nvl(l_inv_cshi_recs,0));');
2361 cn_utils.appendcr(l_body_code,' debugmsg(''CN_SCA_LINES_INTERFACE***| INVOICE***************|''||nvl(l_inv_csli_recs,0));');
2362 cn_utils.appendcr(l_body_code,' debugmsg(''-------------------------|-----------------------|---------------'');');
2363
2364 cn_utils.appendcr(l_body_code,' debugmsg(''RECORDS UPDATED IN CN_COMM_LINES_INTERFACE WITH SCA_PENDING STATUS'');');
2365 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|---------------------'');');
2366 cn_utils.appendcr(l_body_code,' debugmsg(''TRANSACTION TYPE*****|*******#OF RECORDS'');');
2367 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|---------------------'');');
2368 cn_utils.appendcr(l_body_code,' debugmsg(''ORDER****************|''||l_ord_ccla_recs);');
2369 cn_utils.appendcr(l_body_code,' debugmsg(''INVOICE**************|''||l_inv_ccla_recs);');
2370 cn_utils.appendcr(l_body_code,' debugmsg(''---------------------|---------------------'');');
2371
2372 cn_utils.appendcr(l_body_code,' debugmsg(''***** END OF PROCESSED RECORD SUMMARY *****'');');
2373
2374 cn_utils.appendcr(l_body_code,'EXCEPTION');
2375 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_ERROR');
2376 cn_utils.appendcr(l_body_code,' THEN');
2377 cn_utils.appendcr(l_body_code,' ROLLBACK TO map_package_savepoint;');
2378 cn_utils.appendcr(l_body_code,' debugmsg(''User Error In Dynamic Mapping Package'');');
2379 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_ERROR;');
2380 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.count_and_get');
2381 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
2382 cn_utils.appendcr(l_body_code,' p_data => x_msg_data,');
2383 cn_utils.appendcr(l_body_code,' p_encoded => FND_API.G_TRUE);');
2384 cn_utils.appendcr(l_body_code,' WHEN FND_API.G_EXC_UNEXPECTED_ERROR');
2385 cn_utils.appendcr(l_body_code,' THEN');
2386 cn_utils.appendcr(l_body_code,' ROLLBACK TO map_package_savepoint;');
2387 cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Dynamic Mapping Package'');');
2388 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
2389 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
2390 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
2391 cn_utils.appendcr(l_body_code,' p_data => x_msg_data,');
2392 cn_utils.appendcr(l_body_code,' p_encoded => FND_API.G_TRUE);');
2393 cn_utils.appendcr(l_body_code,' WHEN OTHERS');
2394 cn_utils.appendcr(l_body_code,' THEN');
2395 cn_utils.appendcr(l_body_code,' ROLLBACK TO map_package_savepoint;');
2396 cn_utils.appendcr(l_body_code,' debugmsg(''Unhandled Error In Dynamic Mapping Package''||SQLCODE||'' ''||SQLERRM);');
2397 cn_utils.appendcr(l_body_code,' x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;');
2398 cn_utils.appendcr(l_body_code,' FND_MSG_PUB.Count_And_Get');
2399 cn_utils.appendcr(l_body_code,' (p_count => x_msg_count,');
2400 cn_utils.appendcr(l_body_code,' p_data => x_msg_data,');
2401 cn_utils.appendcr(l_body_code,' p_encoded => FND_API.G_TRUE);');
2402
2403 cn_utils.appendcr(l_body_code,'END map;');
2404 cn_utils.appendcr(l_body_code,'END '||l_pkg_name||';');
2405
2406
2407 -----+
2408 -- Call to install_package_object will pull out source code of CN_SCA_MAP_CN_204 package
2409 -- And compile it in the database
2410 -----+
2411 install_package_object(p_object_name => l_pkg_name,
2412 p_org_id => p_org_id,
2413 x_compile_status => l_compile_status,
2414 x_return_status => l_return_status,
2415 x_msg_count => l_msg_count,
2416 x_msg_data => l_msg_data);
2417
2418 IF (l_compile_status = 'COMPLETE')
2419 THEN
2420 x_return_status := FND_API.G_RET_STS_SUCCESS;
2421 FND_MSG_PUB.count_and_get
2422 (p_count => x_msg_count,
2423 p_data => x_msg_data,
2424 p_encoded => FND_API.G_TRUE);
2425 ELSE
2426 RAISE FND_API.G_EXC_ERROR;
2427 END IF;
2428
2429 --++ Unset org id for cn_utils package
2430 cn_utils.unset_org_id();
2431
2432 EXCEPTION
2433 WHEN FND_API.G_EXC_ERROR THEN
2434 -- ROLLBACK TO generate_map_package;
2435 x_return_status := FND_API.G_RET_STS_ERROR ;
2436 FND_MSG_PUB.Count_And_Get
2437 (p_count => x_msg_count,
2438 p_data => x_msg_data);
2439 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2440 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2441 FND_MSG_PUB.Count_And_Get
2442 (p_count => x_msg_count,
2443 p_data => x_msg_data);
2444 WHEN OTHERS THEN
2445 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2446 FND_MSG_PUB.Count_And_Get
2447 (p_count => x_msg_count,
2448 p_data => x_msg_data);
2449 END generate;
2450 END cn_sca_interface_map_pvt;