[Home] [Help]
PACKAGE BODY: APPS.QP_BULK_LOADER_PUB
Source
1 PACKAGE BODY QP_BULK_LOADER_PUB AS
2 /* $Header: QPXVBLKB.pls 120.24.12010000.5 2008/11/05 12:04:38 kdurgasi ship $ */
3
4 FUNCTION GET_NULL_DATE RETURN DATE IS
5 BEGIN
6 RETURN G_NULL_DATE;
7 END;
8
9 FUNCTION GET_NULL_CHAR RETURN VARCHAR2 IS
10 BEGIN
11 RETURN G_NULL_CHAR;
12 END;
13
14 FUNCTION GET_NULL_NUMBER RETURN NUMBER IS
15 BEGIN
16 RETURN G_NULL_NUMBER;
17 END;
18
19 PROCEDURE LOAD_PRICING_DATA
20 (
21 err_buff OUT NOCOPY VARCHAR2
22 ,retcode OUT NOCOPY NUMBER
23 ,p_entity VARCHAR2
24 ,p_entity_name VARCHAR2
25 ,p_process_id NUMBER
26 ,p_process_type VARCHAR2
27 ,p_process_parent VARCHAR2
28 ,p_no_of_threads NUMBER DEFAULT 1
29 ,p_spawned_request VARCHAR2
30 ,p_request_id NUMBER DEFAULT NULL
31 ,p_debug_on VARCHAR2
32 ,p_enable_dup_ln_check VARCHAR2
33 )
34 IS
35 BEGIN
36
37 --added for moac
38 --Initialize MOAC and set org context to Multiple
39
40 IF MO_GLOBAL.get_access_mode is null THEN
41 MO_GLOBAL.Init('QP');
42 -- MO_GLOBAL.set_policy_context('M', null);--commented as MO_GLOBAL.Init will set_policy_context to 'M' or 'S' based on profile settings
43 END IF;--MO_GLOBAL
44
45
46 -- ENH duplicate line check flag RAVI
47 G_QP_ENABLE_DUP_LINE_CHECK :=p_enable_dup_ln_check;
48 write_log('Duplicate Line Check: '||p_enable_dup_ln_check);
49
50 G_QP_DEBUG := p_debug_on;
51 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Debug On: '||G_QP_DEBUG);
52 FND_PROFILE.GET('QP_BATCH_SIZE_FOR_BULK_UPLOAD',g_qp_batch_size);
53 if g_qp_batch_size is NULL or g_qp_batch_size < 1 then
54 g_qp_batch_size := 1000;
55 end if;
56 write_log('Batch Size: '||to_char(g_qp_batch_size));
57
58 IF p_entity = 'PRL' THEN
59
60 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------Processing Price List Entity--------');
61
62 load_lists
63 ( err_buff=>err_buff
64 ,retcode=>retcode
65 ,p_entity_name=>p_entity_name
66 ,p_process_id=>p_process_id
67 ,p_process_type=>p_process_type
68 ,p_process_parent=>p_process_parent
69 ,p_no_of_threads=>p_no_of_threads
70 ,p_spawned_request=>p_spawned_request
71 ,p_request_id =>p_request_id);
72 ELSE
73 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Only Price List Entity processing allowed');
74 END IF;
75
76 END LOAD_PRICING_DATA;
77
78
79 PROCEDURE LOAD_LISTS
80 (
81 err_buff OUT NOCOPY VARCHAR2
82 ,retcode OUT NOCOPY NUMBER
83 ,p_entity_name VARCHAR2
84 ,p_process_id NUMBER
85 ,p_process_type VARCHAR2
86 ,p_process_parent VARCHAR2
87 ,p_no_of_threads NUMBER
88 ,p_spawned_request VARCHAR2
89 ,p_request_id NUMBER )
90 IS
91
92 l_rows NATURAL;
93 l_request_id NUMBER;
94 l_no_of_lines NUMBER:=0;
95 l_batch_size NUMBER:=0;
96 l_mod NUMBER:=0;
97 l_req_data VARCHAR2(10);
98 l_req_data_counter NUMBER;
99 l_new_request_id NUMBER;
100 l_no_of_threads NUMBER;
101 l_retcode NUMBER;
102 l_err_buff VARCHAR2(240);
103 l_min_hdr_id NUMBER;
104 l_max_hdr_id NUMBER;
105 l_min_list_line_id NUMBER;
106 l_max_list_line_id NUMBER;
107 l_list_header_id NUMBER;
108 l_process_parent VARCHAR2(50);
109 l_count NUMBER;
110 l_source_system_code VARCHAR2(30);
111 l_pte_code VARCHAR2(30);
112
113 l_suc_line NUMBER;
114 l_err_line NUMBER;
115 l_suc_pr_attr NUMBER;
116 l_err_pr_attr NUMBER;
117
118 l_start_time number;
119 l_end_time number;
120
121 --Bug#3604426 RAVI
122 l_msg_txt VARCHAR2(2000);
123
124 --ENH Update Functionality RAVI
125 /**
126 local variables for holding the number of headers and header qualifeirs
127 to be processed.
128 **/
129 l_header_count NUMBER:=0;
130 l_qualifier_count NUMBER:=0;
131
132 BEGIN
133
134 l_no_of_threads :=p_no_of_threads;
135 l_process_parent := p_process_parent;
136 /*-----------------------------------------------------------
137 HEADER PROCESSING
138 -------------------------------------------------------------*/
139
140 IF p_spawned_request = 'N' or p_spawned_request IS NULL
141 THEN
142
143 FND_PROFILE.Get('CONC_REQUEST_ID', l_request_id);
144 write_log('Parent Request Id: '||l_request_id);
145
146 IF p_no_of_threads IS NULL THEN
147 l_no_of_threads := 1;
148 END IF;
149
150 IF p_process_parent IS NULL THEN
151 l_process_parent := 'Y';
152 END IF;
153
154 l_req_data := fnd_conc_global.request_data;
155
156 IF ( l_req_data IS NOT NULL)
157 THEN
158 write_log( 'Second call');
159
160 select hsecs into l_start_time from v$timer;
161 write_log( 'Start time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
162
163 l_req_data_counter:=to_number(l_req_data) + 1;
164
165 select min(list_header_id), max(list_header_id)
166 into l_min_hdr_id, l_max_hdr_id
167 from qp_list_headers_b
168 where request_id = l_request_id;
169
170 write_log( 'LOW HEADER ID: '||l_min_hdr_id);
171 write_log( 'HIGH HEADER ID: '||l_max_hdr_id);
172
173 IF l_min_hdr_id IS NOT NULL AND l_max_hdr_id IS NOT NULL THEN
174 QP_Maintain_Denormalized_Data.Update_Qualifiers
175 (err_buff => l_err_buff,
176 retcode => l_retcode,
177 p_List_Header_Id => l_min_hdr_id,
178 p_List_Header_Id_high => l_max_hdr_id,
179 p_update_type => 'QUAL_IND'
180 );
181
182 Begin
183 update qp_pte_segments
184 set used_in_setup='Y'
185 where nvl(used_in_setup,'N')='N'
186 and segment_id in
187 (select a.segment_id
188 from qp_segments_b a, qp_prc_contexts_b b, qp_qualifiers c, qp_list_headers_b h
189 where h.list_header_id BETWEEN l_min_hdr_id and l_max_hdr_id
190 and h.active_flag = 'Y'
191 and c.list_header_id = h.list_header_id
192 and a.segment_mapping_column = c.qualifier_attribute
193 and a.prc_context_id = b.prc_context_id
194 and b.prc_context_type = 'QUALIFIER'
195 and b.prc_context_code = c.qualifier_context);
196
197 update qp_pte_segments
198 set used_in_setup='Y'
199 where nvl(used_in_setup,'N')='N'
200 and segment_id in
201 (select a.segment_id
202 from qp_segments_b a, qp_prc_contexts_b b, qp_pricing_attributes c, qp_list_headers_b h
203 where h.list_header_id BETWEEN l_min_hdr_id and l_max_hdr_id
204 and h.active_flag = 'Y'
205 and c.list_header_id = h.list_header_id
206 and a.segment_mapping_column = c.pricing_attribute
207 and a.prc_context_id = b.prc_context_id
208 and b.prc_context_type = 'PRICING_ATTRIBUTE'
209 and b.prc_context_code = c.pricing_attribute_context);
210
211 update qp_pte_segments
212 set used_in_setup='Y'
213 where nvl(used_in_setup,'N')='N'
214 and segment_id in
215 (select a.segment_id
216 from qp_segments_b a, qp_prc_contexts_b b, qp_pricing_attributes c, qp_list_headers_b h
217 where h.list_header_id BETWEEN l_min_hdr_id and l_max_hdr_id
218 and h.active_flag = 'Y'
219 and c.list_header_id = h.list_header_id
220 and a.segment_mapping_column = c.product_attribute
221 and a.prc_context_id = b.prc_context_id
222 and b.prc_context_type = 'PRODUCT'
223 and b.prc_context_code = c.product_attribute_context);
224 Exception
225 when others then
226 null;
227 End;
228
229 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
230 for l_list_header_id in l_min_hdr_id..l_max_hdr_id
231 loop
232 begin
233 select min(list_line_id), max(list_line_id)
234 into l_min_list_line_id, l_max_list_line_id
235 from qp_list_lines
236 where list_header_id = l_list_header_id;
237
238 QP_ATTR_GRP_PVT.Update_Qual_Segment_id(l_list_header_id,
239 null,
240 -1,
241 -1);
242 QP_ATTR_GRP_PVT.Update_Prod_Pric_Segment_id(l_list_header_id,
243 l_min_list_line_id,l_max_list_line_id);
244 QP_ATTR_GRP_PVT.generate_hp_atgrps(l_list_header_id,null);
245 QP_ATTR_GRP_PVT.update_pp_lines(l_list_header_id,
246 l_min_list_line_id,l_max_list_line_id);
247 exception
248 when others then
249 null;
250 end;
251 end loop;
252 END IF;
253 END IF;
254
255 IF l_retcode <> 0 THEN
256 retcode := 2;
257 write_log( 'Error in procedure QP_Maintain_Denormalized_Data.Update_Qualifiers');
258 END IF;
259
260 --clean up code
261 CLEAN_UP_CODE(l_request_id);
262
263 select hsecs into l_end_time from v$timer;
264 write_log( 'End time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
265 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Time taken for the header process 2 (sec):' ||(l_end_time - l_start_time)/100);
266 Return;
267 ELSE -- ( l_req_data IS NULL)
268 write_log( 'First Call');
269 l_req_data_counter:=1;
270
271 END IF; -- ( l_req_data IS NOT NULL)
272
273 ---- Header Started
274
275 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'-----------Bulk Pricelist Data Loader---------');
276 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Paremeters');
277 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Entity Name: '||p_entity_name);
278 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Process Id: '||p_process_id);
279 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Process Type:'||p_process_type);
280 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Process Parent: '||p_process_parent);
281 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Number Of Threads: '||p_no_of_threads);
282 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '------------------------------');
283
284 select hsecs into l_start_time from v$timer;
285 write_log( 'Start time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
286
287 FND_PROFILE.GET('QP_SOURCE_SYSTEM_CODE', l_source_system_code);
288 FND_PROFILE.GET('QP_PRICING_TRANSACTION_ENTITY',l_pte_code);
289
290 write_log('Source system code (Profile) :'||l_source_system_code);
291 write_log('PTE_Code (Profile) :'||l_pte_code);
292
293 IF p_entity_name IS NOT NULL
294 THEN
295
296 -- Bug#3604226 RAVI START
297 -- Orig_Sys_Hdr_ref has to be unique for insertion
298 fnd_message.set_name('QP', 'QP_HDR_REF_NOT_UNIQUE');
299 l_msg_txt := FND_MESSAGE.GET;
300
301 INSERT INTO QP_INTERFACE_ERRORS
302 (error_id,last_update_date, last_updated_by, creation_date,
303 created_by, last_update_login, request_id, program_application_id,
304 program_id, program_update_date, entity_type, table_name, column_name,
305 orig_sys_header_ref,orig_sys_line_ref,orig_sys_qualifier_ref,
306 orig_sys_pricing_attr_ref, error_message)
307 SELECT
308 qp_interface_errors_s.nextval, sysdate ,FND_GLOBAL.USER_ID, sysdate,
309 FND_GLOBAL.USER_ID, FND_GLOBAL.CONC_LOGIN_ID, l_request_id, 661,
310 NULL,NULL, 'PRL', 'QP_INTERFACE_LIST_HEADERS', 'ORIG_SYS_HEADER_REF',
311 qpih.orig_sys_header_ref,null,null,null,l_msg_txt
312 FROM QP_INTERFACE_LIST_HEADERS qpih
313 WHERE qpih.name = p_entity_name
314 AND qpih.process_status_flag ='P' --is null
315 AND qpih.interface_action_code ='INSERT'
316 AND EXISTS(
317 select 1 from qp_list_headers_b qplh
318 where qplh.orig_system_header_ref=qpih.orig_sys_header_ref
319 );
320 IF SQL%ROWCOUNT > 0 THEN
321 Write_Log('ERROR: Hdr_Ref not Unique');
322 END IF;
323 -- Bug#3604226 RAVI END
324
325
326 -- Bug 4958784 RAVI
327 /**
328 Load only if header with same orig_sys_hdr_ref is non existent
329 in qp tables for INSERT action
330 **/
331 UPDATE qp_interface_list_headers qpih
332 SET qpih.request_id = l_request_id, qpih.process_status_flag = 'P'
333 WHERE qpih.name = p_entity_name
334 AND (qpih.source_system_code IS NULL
335 or (qpih.source_system_code = nvl(l_source_system_code, qpih.source_system_code)))
336 AND (qpih.pte_code IS NULL or (qpih.pte_code = nvl(l_pte_code, qpih.pte_code)))
337 AND nvl(qpih.list_source_code, '*') <> 'BSO'
338 AND nvl(qpih.process_id,0) = nvl(p_process_id, nvl(qpih.process_id,0))
339 AND qpih.list_type_code = 'PRL'
340 AND qpih.process_flag = 'Y'
341 AND nvl(qpih.process_type,' ') = nvl(p_process_type, nvl(qpih.process_type,' '))
342 AND qpih.interface_action_code IN ('INSERT','UPDATE','DELETE')
343 -- Bug 5208480(5208112,4188784) RAVI
344 -- Should not be able to update list type code
345 AND NOT EXISTS(
346 select 1 from qp_list_headers qplh
347 where qpih.interface_action_code = 'UPDATE'
348 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
349 and qplh.list_type_code <> qpih.list_type_code
350 )
351 -- Should not be able to update list header id
352 AND NOT EXISTS(
353 select 1 from qp_list_headers qplh
354 where qpih.interface_action_code = 'UPDATE'
355 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
356 and qpih.list_header_id is not null
357 and qplh.list_header_id <> qpih.list_header_id
358 )
359 -- Should not be able to update rounding factor
360 --Bug#5208112 RAVI
361 --Validation shifted to QP_BULK_VALIDATE package.
362 /**
363 AND NOT EXISTS(
364 select 1 from qp_list_headers qplh
365 where qpih.interface_action_code = 'UPDATE'
366 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
367 and qpih.rounding_factor is not null
368 and qplh.rounding_factor <> qpih.rounding_factor
369 )
370 **/
371 -- Bug# 5246745 RAVI
372 -- Should not be able to update list source code
373 AND NOT EXISTS(
374 select 1 from qp_list_headers qplh
375 where qpih.interface_action_code = 'UPDATE'
376 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
377 and qpih.list_source_code is not null
378 and qplh.list_source_code <> qpih.list_source_code
379 )
380 -- Bug# 5246745 RAVI
381 -- Should not be able to update list source code
382 AND NOT EXISTS(
383 select 1 from qp_list_headers qplh
384 where qpih.interface_action_code = 'UPDATE'
385 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
386 and qpih.source_system_code is not null
387 and qplh.source_system_code <> qpih.source_system_code
388 )
389 -- Bug# 5246745 RAVI
390 -- Should not be able to update list source code
391 AND NOT EXISTS(
392 select 1 from qp_list_headers qplh
393 where qpih.interface_action_code = 'UPDATE'
394 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
395 and qpih.source_system_code is not null
396 and qplh.source_system_code <> qpih.source_system_code
397 )
398 AND NOT EXISTS(
402 /**
399 select 1 from qp_list_headers qplh
400 where qpih.interface_action_code = 'INSERT'
401 -- ENH undo alcoa changes RAVI
403 The key between interface and qp tables is only orig_sys_hdr_ref
404 (not list_header_id)
405 **/
406 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref);
407
408 --ENH Update Functionality RAVI
409 /**
410 The number of interface headers loaded for processing
411 (insert,update,delete)
412 **/
413 l_header_count:=SQL%ROWCOUNT;
414
415 --ENH Update Functionality RAVI
416 /**
417 If interface action is update then load all null value interface columns
418 with values from corresponding qp table columns
419 **/
420 UPDATE qp_interface_list_headers qpih
421 SET ( creation_date,
422 created_by,
423 program_application_id,
424 program_id,
425 program_update_date,
426 list_type_code,
427 start_date_active,
428 end_date_active,
429 source_lang,
430 automatic_flag,
431 name,
432 description,
433 currency_code,
434 version_no,
435 rounding_factor,
436 ship_method_code,
437 freight_terms_code,
438 terms_id,
439 comments,
440 discount_lines_flag,
441 gsa_indicator,
442 prorate_flag,
443 source_system_code,
444 ask_for_flag,
445 active_flag,
446 parent_list_header_id,
447 active_date_first_type,
448 start_date_active_first,
449 end_date_active_first,
450 active_date_second_type,
451 start_date_active_second,
452 end_date_active_second,
453 context,
454 attribute1,
455 attribute2,
456 attribute3,
457 attribute4,
458 attribute5,
459 attribute6,
460 attribute7,
461 attribute8,
462 attribute9,
463 attribute10,
464 attribute11,
465 attribute12,
466 attribute13,
467 attribute14,
468 attribute15,
469 language,
470 mobile_download,
471 currency_header_id,
472 orig_sys_header_ref,
473 orig_org_id,
474 global_flag
475 ) = ( select
476 decode(qpih.creation_date, null, qplh.creation_date,
477 decode(qpih.creation_date,
478 QP_BULK_LOADER_PUB.G_NULL_DATE,
479 null,
480 qpih.creation_date
481 )
482 ),
483 decode(qpih.created_by, null, qplh.created_by,
484 decode(qpih.created_by,
485 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
486 null,
487 qpih.created_by
488 )
489 ),
490 decode(qpih.program_application_id, null, qplh.program_application_id,
491 decode(qpih.program_application_id,
492 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
493 null,
494 qpih.program_application_id
495 )
496 ),
497 decode(qpih.program_id, null, qplh.program_id,
498 decode(qpih.program_id,
499 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
500 null,
501 qpih.program_id
502 )
503 ),
504 decode(qpih.program_update_date, null, qplh.program_update_date,
505 decode(qpih.program_update_date,
506 QP_BULK_LOADER_PUB.G_NULL_DATE,
507 null,
508 qpih.program_update_date
509 )
510 ),
511 decode(qpih.list_type_code, null, qplh.list_type_code,
512 decode(qpih.list_type_code,
513 QP_BULK_LOADER_PUB.G_NULL_CHAR,
514 null,
515 qpih.list_type_code
516 )
517 ),
518 --Bug# 5228368 RAVI
519 decode(qpih.start_date_active, null, to_char(qplh.start_date_active,'YYYY/MM/DD'),
520 decode(qpih.start_date_active,
521 QP_BULK_LOADER_PUB.G_NULL_CHAR,
522 null,
523 qpih.start_date_active
524 )
525 ),
526 --Bug# 5228368 RAVI
527 decode(qpih.end_date_active, null, to_char(qplh.end_date_active,'YYYY/MM/DD'),
528 decode(qpih.end_date_active,
529 QP_BULK_LOADER_PUB.G_NULL_CHAR,
530 null,
531 qpih.end_date_active
532 )
533 ),
534 decode(qpih.source_lang, null, userenv('lang'),
535 decode(qpih.source_lang,
536 QP_BULK_LOADER_PUB.G_NULL_CHAR,
537 null,
538 qpih.source_lang
539 )
540 ),
541 decode(qpih.automatic_flag, null, qplh.automatic_flag,
542 decode(qpih.automatic_flag,
543 QP_BULK_LOADER_PUB.G_NULL_CHAR,
544 null,
545 qpih.automatic_flag
546 )
547 ),
548 decode(qpih.name, null, qplh.name,
549 decode(qpih.name,
550 QP_BULK_LOADER_PUB.G_NULL_CHAR,
551 null,
552 qpih.name
553 )
554 ),
555 decode(qpih.description, null, qplh.description,
556 decode(qpih.description,
557 QP_BULK_LOADER_PUB.G_NULL_CHAR,
558 null,
559 qpih.description
560 )
561 ),
562 decode(qpih.currency_code, null, qplh.currency_code,
563 decode(qpih.currency_code,
564 QP_BULK_LOADER_PUB.G_NULL_CHAR,
565 null,
566 qpih.currency_code
567 )
568 ),
569 decode(qpih.version_no, null, qplh.version_no,
570 decode(qpih.version_no,
571 QP_BULK_LOADER_PUB.G_NULL_CHAR,
572 null,
573 qpih.version_no
574 )
575 ),
576 decode(qpih.rounding_factor, null, qplh.rounding_factor,
577 decode(qpih.rounding_factor,
578 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
579 null,
580 qpih.rounding_factor
581 )
582 ),
583 --Bug# 5412029 RAVI START
584 /**
585 * If VALUE=null then
586 * If ID=null update ID to existing data
587 * If ID=id update ID to id
588 * If ID=G_NULL update ID to null
589 * If VALUE<>null then
590 * If ID=null update ID to existing data
591 * If ID=id update ID to id
592 * If ID<>id update ID to null (conversion is done as required in ValueToId)
593 **/
594 decode(qpih.ship_method,
595 null,
596 decode(qpih.ship_method_code, null, qplh.ship_method_code,
597 decode(qpih.ship_method_code,
598 QP_BULK_LOADER_PUB.G_NULL_CHAR,
599 null,
600 qpih.ship_method_code
601 )
605 qpih.ship_method_code
602 ),
603 decode(qpih.ship_method_code, null, null,
604 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
606 )
607 ),
608 decode(qpih.freight_terms,
609 null,
610 decode(qpih.freight_terms_code, null, qplh.freight_terms_code,
611 decode(qpih.freight_terms_code,
612 QP_BULK_LOADER_PUB.G_NULL_CHAR,
613 null,
614 qpih.freight_terms_code
615 )
616 ),
617 decode(qpih.freight_terms_code, null, null,
618 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
619 qpih.freight_terms_code
620 )
621 ),
622 decode(qpih.terms,
623 null,
624 decode(qpih.terms_id, null, qplh.terms_id,
625 decode(qpih.terms_id,
626 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
627 null,
628 qpih.terms_id
629 )
630 ),
631 decode(qpih.terms_id, null, null,
632 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
633 qpih.terms_id
634 )
635 ),
636 --Bug# 5412029 RAVI END
637 decode(qpih.comments, null, qplh.comments,
638 decode(qpih.comments,
639 QP_BULK_LOADER_PUB.G_NULL_CHAR,
640 null,
641 qpih.comments
642 )
643 ),
644 decode(qpih.discount_lines_flag, null, qplh.discount_lines_flag,
645 decode(qpih.discount_lines_flag,
646 QP_BULK_LOADER_PUB.G_NULL_CHAR,
647 null,
648 qpih.discount_lines_flag
649 )
650 ),
651 decode(qpih.gsa_indicator, null, qplh.gsa_indicator,
652 decode(qpih.gsa_indicator,
653 QP_BULK_LOADER_PUB.G_NULL_CHAR,
654 null,
655 qpih.gsa_indicator
656 )
657 ),
658 decode(qpih.prorate_flag, null, qplh.prorate_flag,
659 decode(qpih.prorate_flag,
660 QP_BULK_LOADER_PUB.G_NULL_CHAR,
661 null,
662 qpih.prorate_flag
663 )
664 ),
665 decode(qpih.source_system_code, null, qplh.source_system_code,
666 decode(qpih.source_system_code,
667 QP_BULK_LOADER_PUB.G_NULL_CHAR,
668 null,
669 qpih.source_system_code
670 )
671 ),
672 decode(qpih.ask_for_flag, null, qplh.ask_for_flag,
673 decode(qpih.ask_for_flag,
674 QP_BULK_LOADER_PUB.G_NULL_CHAR,
675 null,
676 qpih.ask_for_flag
677 )
678 ),
679 decode(qpih.active_flag, null, qplh.active_flag,
680 decode(qpih.active_flag,
681 QP_BULK_LOADER_PUB.G_NULL_CHAR,
682 null,
683 qpih.active_flag
684 )
685 ),
686 decode(qpih.parent_list_header_id, null, qplh.parent_list_header_id,
687 decode(qpih.parent_list_header_id,
688 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
689 null,
690 qpih.parent_list_header_id
691 )
692 ),
693 decode(qpih.active_date_first_type, null, qplh.active_date_first_type,
694 decode(qpih.active_date_first_type,
695 QP_BULK_LOADER_PUB.G_NULL_CHAR,
696 null,
697 qpih.active_date_first_type
698 )
699 ),
703 null,
700 decode(qpih.start_date_active_first, null, qplh.start_date_active_first,
701 decode(qpih.start_date_active_first,
702 QP_BULK_LOADER_PUB.G_NULL_DATE,
704 qpih.start_date_active_first
705 )
706 ),
707 decode(qpih.end_date_active_first, null, qplh.end_date_active_first,
708 decode(qpih.end_date_active_first,
709 QP_BULK_LOADER_PUB.G_NULL_DATE,
710 null,
711 qpih.end_date_active_first
712 )
713 ),
714 decode(qpih.active_date_second_type, null, qplh.active_date_second_type,
715 decode(qpih.active_date_second_type,
716 QP_BULK_LOADER_PUB.G_NULL_CHAR,
717 null,
718 qpih.active_date_second_type
719 )
720 ),
721 decode(qpih.start_date_active_second, null, qplh.start_date_active_second,
722 decode(qpih.start_date_active_second,
723 QP_BULK_LOADER_PUB.G_NULL_DATE,
724 null,
725 qpih.start_date_active_second
726 )
727 ),
728 decode(qpih.end_date_active_second, null, qplh.end_date_active_second,
729 decode(qpih.end_date_active_second,
730 QP_BULK_LOADER_PUB.G_NULL_DATE,
731 null,
732 qpih.end_date_active_second
733 )
734 ),
735 decode(qpih.context, null, qplh.context,
736 decode(qpih.context,
737 QP_BULK_LOADER_PUB.G_NULL_CHAR,
738 null,
739 qpih.context
740 )
741 ),
742 decode(qpih.attribute1, null, qplh.attribute1,
743 decode(qpih.attribute1,
744 QP_BULK_LOADER_PUB.G_NULL_CHAR,
745 null,
746 qpih.attribute1
747 )
748 ),
749 decode(qpih.attribute2, null, qplh.attribute2,
750 decode(qpih.attribute2,
751 QP_BULK_LOADER_PUB.G_NULL_CHAR,
752 null,
753 qpih.attribute2
754 )
755 ),
756 decode(qpih.attribute3, null, qplh.attribute3,
757 decode(qpih.attribute3,
758 QP_BULK_LOADER_PUB.G_NULL_CHAR,
759 null,
760 qpih.attribute3
761 )
762 ),
763 decode(qpih.attribute4, null, qplh.attribute4,
764 decode(qpih.attribute4,
765 QP_BULK_LOADER_PUB.G_NULL_CHAR,
766 null,
767 qpih.attribute4
768 )
769 ),
770 decode(qpih.attribute5, null, qplh.attribute5,
771 decode(qpih.attribute5,
772 QP_BULK_LOADER_PUB.G_NULL_CHAR,
773 null,
774 qpih.attribute5
775 )
776 ),
777 decode(qpih.attribute6, null, qplh.attribute6,
778 decode(qpih.attribute6,
779 QP_BULK_LOADER_PUB.G_NULL_CHAR,
780 null,
781 qpih.attribute6
782 )
783 ),
784 decode(qpih.attribute7, null, qplh.attribute7,
785 decode(qpih.attribute7,
786 QP_BULK_LOADER_PUB.G_NULL_CHAR,
787 null,
788 qpih.attribute7
789 )
790 ),
791 decode(qpih.attribute8, null, qplh.attribute8,
792 decode(qpih.attribute8,
793 QP_BULK_LOADER_PUB.G_NULL_CHAR,
794 null,
795 qpih.attribute8
796 )
797 ),
801 null,
798 decode(qpih.attribute9, null, qplh.attribute9,
799 decode(qpih.attribute9,
800 QP_BULK_LOADER_PUB.G_NULL_CHAR,
802 qpih.attribute9
803 )
804 ),
805 decode(qpih.attribute10, null, qplh.attribute10,
806 decode(qpih.attribute10,
807 QP_BULK_LOADER_PUB.G_NULL_CHAR,
808 null,
809 qpih.attribute10
810 )
811 ),
812 decode(qpih.attribute11, null, qplh.attribute11,
813 decode(qpih.attribute11,
814 QP_BULK_LOADER_PUB.G_NULL_CHAR,
815 null,
816 qpih.attribute11
817 )
818 ),
819 decode(qpih.attribute12, null, qplh.attribute12,
820 decode(qpih.attribute12,
821 QP_BULK_LOADER_PUB.G_NULL_CHAR,
822 null,
823 qpih.attribute12
824 )
825 ),
826 decode(qpih.attribute13, null, qplh.attribute13,
827 decode(qpih.attribute13,
828 QP_BULK_LOADER_PUB.G_NULL_CHAR,
829 null,
830 qpih.attribute13
831 )
832 ),
833 decode(qpih.attribute14, null, qplh.attribute14,
834 decode(qpih.attribute14,
835 QP_BULK_LOADER_PUB.G_NULL_CHAR,
836 null,
837 qpih.attribute14
838 )
839 ),
840 decode(qpih.attribute15, null, qplh.attribute15,
841 decode(qpih.attribute15,
842 QP_BULK_LOADER_PUB.G_NULL_CHAR,
843 null,
844 qpih.attribute15
845 )
846 ),
847 decode(qpih.language, null, userenv('lang'),
848 decode(qpih.language,
849 QP_BULK_LOADER_PUB.G_NULL_CHAR,
850 null,
851 qpih.language
852 )
853 ),
854 decode(qpih.mobile_download, null, qplh.mobile_download,
855 decode(qpih.mobile_download,
856 QP_BULK_LOADER_PUB.G_NULL_CHAR,
857 null,
858 qpih.mobile_download
859 )
860 ),
861 --Bug# 5412029 RAVI START
862 /**
863 * If VALUE=null then
864 * If ID=null update ID to existing data
865 * If ID=id update ID to id
866 * If ID=G_NULL update ID to null
867 * If VALUE<>null then
868 * If ID=null update ID to existing data
869 * If ID=id update ID to id
870 * If ID<>id update ID to null (conversion is done as required in ValueToId)
871 **/
872 decode(qpih.currency_header,
873 null,
874 decode(qpih.currency_header_id, null, qplh.currency_header_id,
875 decode(qpih.currency_header_id,
876 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
877 null,
878 qpih.currency_header_id
879 )
880 ),
881 decode(qpih.currency_header_id, null, null,
882 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
883 qpih.currency_header_id
884 )
885 ),
886 --Bug# 5412029 RAVI END
887 decode(qpih.orig_sys_header_ref, null, qplh.orig_system_header_ref,
888 decode(qpih.orig_sys_header_ref,
889 QP_BULK_LOADER_PUB.G_NULL_CHAR,
890 null,
891 qpih.orig_sys_header_ref
892 )
893 ),
894 decode(qpih.orig_org_id, null, qplh.orig_org_id,
895 decode(qpih.orig_org_id,
899 )
896 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
897 null,
898 qpih.orig_org_id
900 ),
901 decode(qpih.global_flag, null, qplh.global_flag,
902 decode(qpih.global_flag,
903 QP_BULK_LOADER_PUB.G_NULL_CHAR,
904 null,
905 qpih.global_flag
906 )
907 )
908 from qp_list_headers qplh
909 where qplh.orig_system_header_ref=qpih.orig_sys_header_ref
910 )
911 where qpih.request_id = l_request_id
912 and qpih.process_status_flag = 'P'
913 and qpih.interface_action_code = 'UPDATE';
914
915 ELSE
916
917 -- Bug#3604226 RAVI START
918 -- Orig_Sys_Hdr_ref has to be unique for insertion
919
920 fnd_message.set_name('QP', 'QP_HDR_REF_NOT_UNIQUE');
921 l_msg_txt := FND_MESSAGE.GET;
922
923 INSERT INTO QP_INTERFACE_ERRORS
924 (error_id,last_update_date, last_updated_by, creation_date,
925 created_by, last_update_login, request_id, program_application_id,
926 program_id, program_update_date, entity_type, table_name, column_name,
927 orig_sys_header_ref,orig_sys_line_ref,orig_sys_qualifier_ref,
928 orig_sys_pricing_attr_ref, error_message)
929 SELECT
930 qp_interface_errors_s.nextval, sysdate ,FND_GLOBAL.USER_ID, sysdate,
931 FND_GLOBAL.USER_ID, FND_GLOBAL.CONC_LOGIN_ID, l_request_id, 661,
932 NULL,NULL, 'PRL', 'QP_INTERFACE_LIST_HEADERS', 'ORIG_SYS_HEADER_REF',
933 qpih.orig_sys_header_ref,null,null,null,l_msg_txt
934 FROM QP_INTERFACE_LIST_HEADERS qpih
935 WHERE nvl(qpih.process_type,' ') = nvl(p_process_type, nvl(qpih.process_type,' '))
936 AND nvl(qpih.process_id,0) = nvl(p_process_id, nvl(qpih.process_id,0))
937 AND qpih.process_status_flag ='P' --is null
938 AND qpih.interface_action_code ='INSERT'
939 AND EXISTS(
940 select 1 from qp_list_headers_b qplh
941 where qplh.orig_system_header_ref=qpih.orig_sys_header_ref
942 );
943 IF SQL%ROWCOUNT > 0 THEN
944 Write_Log('ERROR: Hdr_Ref not Unique');
945 END IF;
946 -- Bug#3604226 RAVI END
947
948 -- Bug 4958784 RAVI
949 /**
950 Load only if header with same orig_sys_hdr_ref is non existent
951 in qp tables for INSERT action
952 **/
953 write_log('Entity Name Is null');
954 UPDATE qp_interface_list_headers qpih
955 SET qpih.request_id = l_request_id
956 WHERE qpih.request_id is null
957 AND (qpih.source_system_code IS NULL
958 or (qpih.source_system_code = nvl(l_source_system_code, qpih.source_system_code)))
959 AND (qpih.pte_code IS NULL or (qpih.pte_code = nvl(l_pte_code, qpih.pte_code)))
960 AND nvl(qpih.list_source_code, '*') <> 'BSO'
961 AND process_status_flag = 'P'
962 AND nvl(qpih.process_id,0) = nvl(p_process_id, nvl(qpih.process_id,0))
963 AND qpih.list_type_code = 'PRL'
964 AND decode(p_process_id, null,qpih.process_flag,'Y') = 'Y'
965 AND nvl(qpih.process_type,' ') = nvl(p_process_type, nvl(qpih.process_type,' '))
966 AND qpih.interface_action_code IN ('INSERT','UPDATE','DELETE')
967 -- Bug 5208480(5208112,4188784) RAVI
968 AND NOT EXISTS(
969 select 1 from qp_list_headers qplh
970 where qpih.interface_action_code = 'UPDATE'
971 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
972 and qplh.list_type_code <> qpih.list_type_code
973 )
974 AND NOT EXISTS(
975 select 1 from qp_list_headers qplh
976 where qpih.interface_action_code = 'UPDATE'
977 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
978 and qpih.list_header_id is not null
979 and qplh.list_header_id <> qpih.list_header_id
980 )
981 AND NOT EXISTS(
982 select 1 from qp_list_headers qplh
983 where qpih.interface_action_code = 'UPDATE'
984 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
985 and qpih.rounding_factor is not null
986 and qplh.rounding_factor <> qpih.rounding_factor
987 )
988 -- Bug# 5246745 RAVI
989 -- Should not be able to update list source code
990 AND NOT EXISTS(
991 select 1 from qp_list_headers qplh
992 where qpih.interface_action_code = 'UPDATE'
993 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
994 and qpih.list_source_code is not null
995 and qplh.list_source_code <> qpih.list_source_code
996 )
997 -- Bug# 5246745 RAVI
998 -- Should not be able to update list source code
1002 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
999 AND NOT EXISTS(
1000 select 1 from qp_list_headers qplh
1001 where qpih.interface_action_code = 'UPDATE'
1003 and qpih.source_system_code is not null
1004 and qplh.source_system_code <> qpih.source_system_code
1005 )
1006 -- Bug# 5246745 RAVI
1007 -- Should not be able to update list source code
1008 AND NOT EXISTS(
1009 select 1 from qp_list_headers qplh
1010 where qpih.interface_action_code = 'UPDATE'
1011 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref
1012 and qpih.source_system_code is not null
1013 and qplh.source_system_code <> qpih.source_system_code
1014 )
1015 AND NOT EXISTS(
1016 select 1 from qp_list_headers qplh
1017 where qpih.interface_action_code = 'INSERT'
1018 -- ENH undo alcoa changes RAVI
1019 /**
1020 The key between interface and qp tables is only orig_sys_hdr_ref
1021 (not list_header_id)
1022 **/
1023 and qplh.orig_system_header_ref=qpih.orig_sys_header_ref);
1024
1025 --ENH Update Functionality RAVI
1026 /**
1027 The number of interface headers loaded for processing
1028 (insert,update,delete)
1029 **/
1030 l_header_count:=SQL%ROWCOUNT;
1031
1032 --ENH Update Functionality RAVI
1033 /**
1034 If interface action is update then load all null value interface columns
1035 with values from corresponding qp table columns
1036 **/
1037 UPDATE qp_interface_list_headers qpih
1038 SET ( creation_date,
1039 created_by,
1040 program_application_id,
1041 program_id,
1042 program_update_date,
1043 list_type_code,
1044 start_date_active,
1045 end_date_active,
1046 source_lang,
1047 automatic_flag,
1048 name,
1049 description,
1050 currency_code,
1051 version_no,
1052 rounding_factor,
1053 ship_method_code,
1054 freight_terms_code,
1055 terms_id,
1056 comments,
1057 discount_lines_flag,
1058 gsa_indicator,
1059 prorate_flag,
1060 source_system_code,
1061 ask_for_flag,
1062 active_flag,
1063 parent_list_header_id,
1064 active_date_first_type,
1065 start_date_active_first,
1066 end_date_active_first,
1067 active_date_second_type,
1068 start_date_active_second,
1069 end_date_active_second,
1070 context,
1071 attribute1,
1072 attribute2,
1073 attribute3,
1074 attribute4,
1075 attribute5,
1076 attribute6,
1077 attribute7,
1078 attribute8,
1079 attribute9,
1080 attribute10,
1081 attribute11,
1082 attribute12,
1083 attribute13,
1084 attribute14,
1085 attribute15,
1086 language,
1087 mobile_download,
1088 currency_header_id,
1089 orig_sys_header_ref,
1090 orig_org_id,
1091 global_flag
1092 ) = ( select
1093 decode(qpih.creation_date, null, qplh.creation_date,
1094 decode(qpih.creation_date,
1095 QP_BULK_LOADER_PUB.G_NULL_DATE,
1096 null,
1097 qpih.creation_date
1098 )
1099 ),
1100 decode(qpih.created_by, null, qplh.created_by,
1101 decode(qpih.created_by,
1102 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1103 null,
1104 qpih.created_by
1105 )
1106 ),
1107 decode(qpih.program_application_id, null, qplh.program_application_id,
1108 decode(qpih.program_application_id,
1109 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1110 null,
1111 qpih.program_application_id
1112 )
1113 ),
1114 decode(qpih.program_id, null, qplh.program_id,
1115 decode(qpih.program_id,
1116 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1117 null,
1118 qpih.program_id
1119 )
1120 ),
1121 decode(qpih.program_update_date, null, qplh.program_update_date,
1125 qpih.program_update_date
1122 decode(qpih.program_update_date,
1123 QP_BULK_LOADER_PUB.G_NULL_DATE,
1124 null,
1126 )
1127 ),
1128 decode(qpih.list_type_code, null, qplh.list_type_code,
1129 decode(qpih.list_type_code,
1130 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1131 null,
1132 qpih.list_type_code
1133 )
1134 ),
1135 --Bug# 5228368 RAVI
1136 decode(qpih.start_date_active, null, to_char(qplh.start_date_active,'YYYY/MM/DD'),
1137 decode(qpih.start_date_active,
1138 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1139 null,
1140 qpih.start_date_active
1141 )
1142 ),
1143 --Bug# 5228368 RAVI
1144 decode(qpih.end_date_active, null, to_char(qplh.end_date_active,'YYYY/MM/DD'),
1145 decode(qpih.end_date_active,
1146 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1147 null,
1148 qpih.end_date_active
1149 )
1150 ),
1151 decode(qpih.source_lang, null, userenv('lang'),
1152 decode(qpih.source_lang,
1153 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1154 null,
1155 qpih.source_lang
1156 )
1157 ),
1158 decode(qpih.automatic_flag, null, qplh.automatic_flag,
1159 decode(qpih.automatic_flag,
1160 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1161 null,
1162 qpih.automatic_flag
1163 )
1164 ),
1165 decode(qpih.name, null, qplh.name,
1166 decode(qpih.name,
1167 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1168 null,
1169 qpih.name
1170 )
1171 ),
1172 decode(qpih.description, null, qplh.description,
1173 decode(qpih.description,
1174 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1175 null,
1176 qpih.description
1177 )
1178 ),
1179 decode(qpih.currency_code, null, qplh.currency_code,
1180 decode(qpih.currency_code,
1181 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1182 null,
1183 qpih.currency_code
1184 )
1185 ),
1186 decode(qpih.version_no, null, qplh.version_no,
1187 decode(qpih.version_no,
1188 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1189 null,
1190 qpih.version_no
1191 )
1192 ),
1193 decode(qpih.rounding_factor, null, qplh.rounding_factor,
1194 decode(qpih.rounding_factor,
1195 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1196 null,
1197 qpih.rounding_factor
1198 )
1199 ),
1200 --Bug# 5412029 RAVI START
1201 /**
1202 * If VALUE=null then
1203 * If ID=null update ID to existing data
1204 * If ID=id update ID to id
1205 * If ID=G_NULL update ID to null
1206 * If VALUE<>null then
1207 * If ID=null update ID to existing data
1208 * If ID=id update ID to id
1209 * If ID<>id update ID to null (conversion is done as required in ValueToId)
1210 **/
1211 decode(qpih.ship_method,
1212 null,
1213 decode(qpih.ship_method_code, null, qplh.ship_method_code,
1214 decode(qpih.ship_method_code,
1215 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1216 null,
1217 qpih.ship_method_code
1218 )
1219 ),
1223 )
1220 decode(qpih.ship_method_code, null, null,
1221 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
1222 qpih.ship_method_code
1224 ),
1225 decode(qpih.freight_terms,
1226 null,
1227 decode(qpih.freight_terms_code, null, qplh.freight_terms_code,
1228 decode(qpih.freight_terms_code,
1229 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1230 null,
1231 qpih.freight_terms_code
1232 )
1233 ),
1234 decode(qpih.freight_terms_code, null, null,
1235 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
1236 qpih.freight_terms_code
1237 )
1238 ),
1239 decode(qpih.terms,
1240 null,
1241 decode(qpih.terms_id, null, qplh.terms_id,
1242 decode(qpih.terms_id,
1243 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1244 null,
1245 qpih.terms_id
1246 )
1247 ),
1248 decode(qpih.terms_id, null, null,
1249 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
1250 qpih.terms_id
1251 )
1252 ),
1253 --Bug# 5412029 RAVI END
1254 decode(qpih.comments, null, qplh.comments,
1255 decode(qpih.comments,
1256 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1257 null,
1258 qpih.comments
1259 )
1260 ),
1261 decode(qpih.discount_lines_flag, null, qplh.discount_lines_flag,
1262 decode(qpih.discount_lines_flag,
1263 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1264 null,
1265 qpih.discount_lines_flag
1266 )
1267 ),
1268 decode(qpih.gsa_indicator, null, qplh.gsa_indicator,
1269 decode(qpih.gsa_indicator,
1270 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1271 null,
1272 qpih.gsa_indicator
1273 )
1274 ),
1275 decode(qpih.prorate_flag, null, qplh.prorate_flag,
1276 decode(qpih.prorate_flag,
1277 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1278 null,
1279 qpih.prorate_flag
1280 )
1281 ),
1282 decode(qpih.source_system_code, null, qplh.source_system_code,
1283 decode(qpih.source_system_code,
1284 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1285 null,
1286 qpih.source_system_code
1287 )
1288 ),
1289 decode(qpih.ask_for_flag, null, qplh.ask_for_flag,
1290 decode(qpih.ask_for_flag,
1291 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1292 null,
1293 qpih.ask_for_flag
1294 )
1295 ),
1296 decode(qpih.active_flag, null, qplh.active_flag,
1297 decode(qpih.active_flag,
1298 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1299 null,
1300 qpih.active_flag
1301 )
1302 ),
1303 decode(qpih.parent_list_header_id, null, qplh.parent_list_header_id,
1304 decode(qpih.parent_list_header_id,
1305 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1306 null,
1307 qpih.parent_list_header_id
1308 )
1309 ),
1310 decode(qpih.active_date_first_type, null, qplh.active_date_first_type,
1311 decode(qpih.active_date_first_type,
1312 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1313 null,
1314 qpih.active_date_first_type
1315 )
1319 QP_BULK_LOADER_PUB.G_NULL_DATE,
1316 ),
1317 decode(qpih.start_date_active_first, null, qplh.start_date_active_first,
1318 decode(qpih.start_date_active_first,
1320 null,
1321 qpih.start_date_active_first
1322 )
1323 ),
1324 decode(qpih.end_date_active_first, null, qplh.end_date_active_first,
1325 decode(qpih.end_date_active_first,
1326 QP_BULK_LOADER_PUB.G_NULL_DATE,
1327 null,
1328 qpih.end_date_active_first
1329 )
1330 ),
1331 decode(qpih.active_date_second_type, null, qplh.active_date_second_type,
1332 decode(qpih.active_date_second_type,
1333 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1334 null,
1335 qpih.active_date_second_type
1336 )
1337 ),
1338 decode(qpih.start_date_active_second, null, qplh.start_date_active_second,
1339 decode(qpih.start_date_active_second,
1340 QP_BULK_LOADER_PUB.G_NULL_DATE,
1341 null,
1342 qpih.start_date_active_second
1343 )
1344 ),
1345 decode(qpih.end_date_active_second, null, qplh.end_date_active_second,
1346 decode(qpih.end_date_active_second,
1347 QP_BULK_LOADER_PUB.G_NULL_DATE,
1348 null,
1349 qpih.end_date_active_second
1350 )
1351 ),
1352 decode(qpih.context, null, qplh.context,
1353 decode(qpih.context,
1354 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1355 null,
1356 qpih.context
1357 )
1358 ),
1359 decode(qpih.attribute1, null, qplh.attribute1,
1360 decode(qpih.attribute1,
1361 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1362 null,
1363 qpih.attribute1
1364 )
1365 ),
1366 decode(qpih.attribute2, null, qplh.attribute2,
1367 decode(qpih.attribute2,
1368 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1369 null,
1370 qpih.attribute2
1371 )
1372 ),
1373 decode(qpih.attribute3, null, qplh.attribute3,
1374 decode(qpih.attribute3,
1375 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1376 null,
1377 qpih.attribute3
1378 )
1379 ),
1380 decode(qpih.attribute4, null, qplh.attribute4,
1381 decode(qpih.attribute4,
1382 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1383 null,
1384 qpih.attribute4
1385 )
1386 ),
1387 decode(qpih.attribute5, null, qplh.attribute5,
1388 decode(qpih.attribute5,
1389 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1390 null,
1391 qpih.attribute5
1392 )
1393 ),
1394 decode(qpih.attribute6, null, qplh.attribute6,
1395 decode(qpih.attribute6,
1396 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1397 null,
1398 qpih.attribute6
1399 )
1400 ),
1401 decode(qpih.attribute7, null, qplh.attribute7,
1402 decode(qpih.attribute7,
1403 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1404 null,
1405 qpih.attribute7
1406 )
1407 ),
1408 decode(qpih.attribute8, null, qplh.attribute8,
1409 decode(qpih.attribute8,
1410 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1411 null,
1412 qpih.attribute8
1416 decode(qpih.attribute9,
1413 )
1414 ),
1415 decode(qpih.attribute9, null, qplh.attribute9,
1417 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1418 null,
1419 qpih.attribute9
1420 )
1421 ),
1422 decode(qpih.attribute10, null, qplh.attribute10,
1423 decode(qpih.attribute10,
1424 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1425 null,
1426 qpih.attribute10
1427 )
1428 ),
1429 decode(qpih.attribute11, null, qplh.attribute11,
1430 decode(qpih.attribute11,
1431 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1432 null,
1433 qpih.attribute11
1434 )
1435 ),
1436 decode(qpih.attribute12, null, qplh.attribute12,
1437 decode(qpih.attribute12,
1438 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1439 null,
1440 qpih.attribute12
1441 )
1442 ),
1443 decode(qpih.attribute13, null, qplh.attribute13,
1444 decode(qpih.attribute13,
1445 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1446 null,
1447 qpih.attribute13
1448 )
1449 ),
1450 decode(qpih.attribute14, null, qplh.attribute14,
1451 decode(qpih.attribute14,
1452 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1453 null,
1454 qpih.attribute14
1455 )
1456 ),
1457 decode(qpih.attribute15, null, qplh.attribute15,
1458 decode(qpih.attribute15,
1459 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1460 null,
1461 qpih.attribute15
1462 )
1463 ),
1464 decode(qpih.language, null, userenv('lang'),
1465 decode(qpih.language,
1466 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1467 null,
1468 qpih.language
1469 )
1470 ),
1471 decode(qpih.mobile_download, null, qplh.mobile_download,
1472 decode(qpih.mobile_download,
1473 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1474 null,
1475 qpih.mobile_download
1476 )
1477 ),
1478 --Bug# 5412029 RAVI START
1479 /**
1480 * If VALUE=null then
1481 * If ID=null update ID to existing data
1482 * If ID=id update ID to id
1483 * If ID=G_NULL update ID to null
1484 * If VALUE<>null then
1485 * If ID=null update ID to existing data
1486 * If ID=id update ID to id
1487 * If ID<>id update ID to null (conversion is done as required in ValueToId)
1488 **/
1489 decode(qpih.currency_header,
1490 null,
1491 decode(qpih.currency_header_id, null, qplh.currency_header_id,
1492 decode(qpih.currency_header_id,
1493 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1494 null,
1495 qpih.currency_header_id
1496 )
1497 ),
1498 decode(qpih.currency_header_id, null, null,
1499 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
1500 qpih.currency_header_id
1501 )
1502 ),
1503 --Bug# 5412029 RAVI END
1504 decode(qpih.orig_sys_header_ref, null, qplh.orig_system_header_ref,
1505 decode(qpih.orig_sys_header_ref,
1506 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1507 null,
1508 qpih.orig_sys_header_ref
1509 )
1510 ),
1514 null,
1511 decode(qpih.orig_org_id, null, qplh.orig_org_id,
1512 decode(qpih.orig_org_id,
1513 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1515 qpih.orig_org_id
1516 )
1517 ),
1518 decode(qpih.global_flag, null, qplh.global_flag,
1519 decode(qpih.global_flag,
1520 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1521 null,
1522 qpih.global_flag
1523 )
1524 )
1525 from qp_list_headers qplh
1526 where qplh.orig_system_header_ref=qpih.orig_sys_header_ref
1527 )
1528 where qpih.request_id = l_request_id
1529 and qpih.process_status_flag = 'P'
1530 and qpih.interface_action_code = 'UPDATE';
1531
1532 END IF;
1533
1534 --ENH Update Functionality RAVI
1535 /**
1536 If number of interface headers loaded for processing
1537 (insert,update,delete) is zero then log a message and exit
1538 else log a message and process the header and related info
1539 **/
1540 IF l_header_count = 0
1541 THEN
1542 write_log( 'NO LIST HEADER RECORDS TO PROCESS');
1543 ELSE
1544 write_log('List Headers picked: '||l_header_count);
1545
1546 --Bug# 5412029
1547 --ID is to be got from Code
1548 --Value to ID conversion before validation
1549 QP_BULK_VALUE_TO_ID.Header(l_request_id);
1550
1551 -- Attribute level validation for headers
1552
1553 QP_BULK_VALIDATE.Attribute_Header(l_request_id);
1554
1555 --setting process_status_flag
1556 QP_BULK_VALIDATE.Mark_Errored_Interface_Record
1557 ( p_table_type=>'HEADER',
1558 p_request_id=>l_request_id);
1559
1560 --Value to ID conversion
1561 --QP_BULK_VALUE_TO_ID.Header(l_request_id);
1562
1563 --Insert Error messages into db caused by value-ID conversion
1564 QP_BULK_VALUE_TO_ID.Insert_Header_Error_Messages(l_request_id);
1565
1566
1567 --Bulk load into pl/sql table, entity-validation and Insert/Delete/Update operation
1568 Process_Header(l_request_id);
1569
1570 END IF;
1571
1572 -- Bug 5208480(5208112,4188784) RAVI
1573 UPDATE qp_interface_qualifiers qpiq
1574 SET qpiq.request_id = l_request_id
1575 WHERE qpiq.rowid IN
1576 (SELECT q.rowid
1577 FROM qp_interface_qualifiers q,qp_interface_list_headers h
1578 WHERE q.orig_sys_header_ref = h.orig_sys_header_ref
1579 AND q.request_id IS NULL
1580 AND q.process_status_flag = 'P'
1581 AND h.process_status_flag = 'I'
1582 AND nvl(q.process_id,0) = nvl(p_process_id, nvl(q.process_id,0))
1583 AND nvl(q.process_type,' ') = nvl(p_process_type, nvl(q.process_type,' '))
1584 AND decode(p_process_id, null,q.process_flag,'Y') = 'Y'
1585 AND q.interface_action_code IN ('INSERT','UPDATE','DELETE')
1586 )
1587 -- Bug 5208480(5208112,4188784) RAVI
1588 AND NOT EXISTS
1589 (
1590 select 1 from qp_qualifiers qpq
1591 where qpiq.interface_action_code = 'UPDATE'
1592 and qpiq.orig_sys_qualifier_ref = qpq.orig_sys_qualifier_ref
1593 and qpq.qualifier_id is not null
1594 and qpiq.qualifier_id <> qpq.qualifier_id
1595 )
1596 ;
1597
1598 --ENH Update Functionality RAVI
1599 /**
1600 The number of interface header qualifiers loaded for processing
1601 (insert,update,delete)
1602 **/
1603 l_qualifier_count:=SQL%ROWCOUNT;
1604
1605 --ENH Update Functionality RAVI
1606 /**
1607 If interface action is update then load all null value interface columns
1608 with values from corresponding qp table columns
1609 **/
1610 UPDATE qp_interface_qualifiers qpiq
1611 SET ( active_flag,
1612 attribute1,
1613 attribute10,
1614 attribute11,
1615 attribute12,
1616 attribute13,
1617 attribute14,
1618 attribute15,
1619 attribute2,
1620 attribute3,
1621 attribute4,
1622 attribute5,
1623 attribute6,
1624 attribute7,
1625 attribute8,
1626 attribute9,
1627 comparison_operator_code,
1628 context,
1629 created_by,
1630 created_from_rule_id,
1631 creation_date,
1632 distinct_row_count,
1633 end_date_active,
1634 excluder_flag,
1635 header_quals_exist_flag,
1636 list_header_id,
1640 orig_sys_line_ref,
1637 list_line_id,
1638 list_type_code,
1639 orig_sys_header_ref,
1641 orig_sys_qualifier_ref,
1642 program_application_id,
1643 program_id,
1644 program_update_date,
1645 qual_attr_value_from_number,
1646 qual_attr_value_to_number,
1647 qualifier_attr_value,
1648 qualifier_attribute,
1649 qualifier_context,
1650 qualifier_datatype,
1651 qualifier_group_cnt,
1652 qualifier_grouping_no,
1653 qualifier_id,
1654 qualifier_precedence,
1655 qualifier_rule_id,
1656 qualify_hier_descendents_flag,
1657 search_ind,
1658 start_date_active,
1659 --Bug# 5456164 RAVI
1660 qualifier_attr_value_code
1661 ) = ( select
1662 decode(qpiq.active_flag, null, qphq.active_flag,
1663 decode(qpiq.active_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1664 null,qpiq.active_flag
1665 )
1666 ),
1667 decode(qpiq.attribute1, null, qphq.attribute1,
1668 decode(qpiq.attribute1,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1669 null,qpiq.attribute1
1670 )
1671 ),
1672 decode(qpiq.attribute10, null, qphq.attribute10,
1673 decode(qpiq.attribute10,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1674 null,qpiq.attribute10
1675 )
1676 ),
1677 decode(qpiq.attribute11, null, qphq.attribute11,
1678 decode(qpiq.attribute11,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1679 null,qpiq.attribute11
1680 )
1681 ),
1682 decode(qpiq.attribute12, null, qphq.attribute12,
1683 decode(qpiq.attribute12,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1684 null,qpiq.attribute12
1685 )
1686 ),
1687 decode(qpiq.attribute13, null, qphq.attribute13,
1688 decode(qpiq.attribute13,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1689 null,qpiq.attribute13
1690 )
1691 ),
1692 decode(qpiq.attribute14, null, qphq.attribute14,
1693 decode(qpiq.attribute14,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1694 null,qpiq.attribute14
1695 )
1696 ),
1697 decode(qpiq.attribute15, null, qphq.attribute15,
1698 decode(qpiq.attribute15,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1699 null,qpiq.attribute15
1700 )
1701 ),
1702 decode(qpiq.attribute2, null, qphq.attribute2,
1703 decode(qpiq.attribute2,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1704 null,qpiq.attribute2
1705 )
1706 ),
1707 decode(qpiq.attribute3, null, qphq.attribute3,
1708 decode(qpiq.attribute3,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1709 null,qpiq.attribute3
1710 )
1711 ),
1712 decode(qpiq.attribute4, null, qphq.attribute4,
1713 decode(qpiq.attribute4,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1714 null,qpiq.attribute4
1715 )
1716 ),
1717 decode(qpiq.attribute5, null, qphq.attribute5,
1718 decode(qpiq.attribute5,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1719 null,qpiq.attribute5
1720 )
1721 ),
1722 decode(qpiq.attribute6, null, qphq.attribute6,
1723 decode(qpiq.attribute6,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1724 null,qpiq.attribute6
1725 )
1726 ),
1727 decode(qpiq.attribute7, null, qphq.attribute7,
1728 decode(qpiq.attribute7,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1729 null,qpiq.attribute7
1730 )
1731 ),
1732 decode(qpiq.attribute8, null, qphq.attribute8,
1733 decode(qpiq.attribute8,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1734 null,qpiq.attribute8
1735 )
1736 ),
1737 decode(qpiq.attribute9, null, qphq.attribute9,
1738 decode(qpiq.attribute9,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1739 null,qpiq.attribute9
1740 )
1741 ),
1742 decode(qpiq.comparison_operator_code, null, qphq.comparison_operator_code,
1743 decode(qpiq.comparison_operator_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1744 null,qpiq.comparison_operator_code
1745 )
1746 ),
1747 decode(qpiq.context, null, qphq.context,
1748 decode(qpiq.context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1749 null,qpiq.context
1750 )
1751 ),
1752 decode(qpiq.created_by, null, qphq.created_by,
1753 decode(qpiq.created_by,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1754 null,qpiq.created_by
1755 )
1756 ),
1757 --Bug# 5456164 RAVI START
1758 /**
1759 * If VALUE=null then
1760 * If ID=null update ID to existing data
1761 * If ID=id update ID to id
1762 * If ID=G_NULL update ID to null
1763 * If VALUE<>null then
1764 * If ID=null update ID to existing data
1765 * If ID=id update ID to id
1766 * If ID<>id update ID to null (conversion is done as required in ValueToId)
1767 **/
1771 decode(qpiq.created_from_rule_id,
1768 decode(qpiq.created_from_rule,
1769 null,
1770 decode(qpiq.created_from_rule_id, null, qphq.created_from_rule_id,
1772 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1773 null,
1774 qpiq.created_from_rule_id
1775 )
1776 ),
1777 decode(qpiq.created_from_rule_id, null, null,
1778 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
1779 qpiq.created_from_rule_id
1780 )
1781 ),
1782 --Bug# 5456164 RAVI END
1783 decode(qpiq.creation_date, null, qphq.creation_date,
1784 decode(qpiq.creation_date,QP_BULK_LOADER_PUB.G_NULL_DATE,
1785 null,qpiq.creation_date
1786 )
1787 ),
1788 decode(qpiq.distinct_row_count, null, qphq.distinct_row_count,
1789 decode(qpiq.distinct_row_count,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1790 null,qpiq.distinct_row_count
1791 )
1792 ),
1793 decode(qpiq.end_date_active, null, qphq.end_date_active,
1794 decode(qpiq.end_date_active,QP_BULK_LOADER_PUB.G_NULL_DATE,
1795 null,qpiq.end_date_active
1796 )
1797 ),
1798 decode(qpiq.excluder_flag, null, qphq.excluder_flag,
1799 decode(qpiq.excluder_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1800 null,qpiq.excluder_flag
1801 )
1802 ),
1803 decode(qpiq.header_quals_exist_flag, null, qphq.header_quals_exist_flag,
1804 decode(qpiq.header_quals_exist_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1805 null,qpiq.header_quals_exist_flag
1806 )
1807 ),
1808 decode(qpiq.list_header_id, null, qphq.list_header_id,
1809 decode(qpiq.list_header_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1810 null,qpiq.list_header_id
1811 )
1812 ),
1813 decode(qpiq.list_line_id, null, qphq.list_line_id,
1814 decode(qpiq.list_line_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1815 null,qpiq.list_line_id
1816 )
1817 ),
1818 decode(qpiq.list_type_code, null, qphq.list_type_code,
1819 decode(qpiq.list_type_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1820 null,qpiq.list_type_code
1821 )
1822 ),
1823 decode(qpiq.orig_sys_header_ref, null, qphq.orig_sys_header_ref,
1824 decode(qpiq.orig_sys_header_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1825 null,qpiq.orig_sys_header_ref
1826 )
1827 ),
1828 decode(qpiq.orig_sys_line_ref, null, qphq.orig_sys_line_ref,
1829 decode(qpiq.orig_sys_line_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1830 null,qpiq.orig_sys_line_ref
1831 )
1832 ),
1833 decode(qpiq.orig_sys_qualifier_ref, null, qphq.orig_sys_qualifier_ref,
1834 decode(qpiq.orig_sys_qualifier_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1835 null,qpiq.orig_sys_qualifier_ref
1836 )
1837 ),
1838 decode(qpiq.program_application_id, null, qphq.program_application_id,
1839 decode(qpiq.program_application_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1840 null,qpiq.program_application_id
1841 )
1842 ),
1843 decode(qpiq.program_id, null, qphq.program_id,
1844 decode(qpiq.program_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1845 null,qpiq.program_id
1846 )
1847 ),
1848 decode(qpiq.program_update_date, null, qphq.program_update_date,
1849 decode(qpiq.program_update_date,QP_BULK_LOADER_PUB.G_NULL_DATE,
1850 null,qpiq.program_update_date
1851 )
1852 ),
1853 decode(qpiq.qual_attr_value_from_number, null, qphq.qual_attr_value_from_number,
1854 decode(qpiq.qual_attr_value_from_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1855 null,qpiq.qual_attr_value_from_number
1856 )
1857 ),
1858 decode(qpiq.qual_attr_value_to_number, null, qphq.qual_attr_value_to_number,
1859 decode(qpiq.qual_attr_value_to_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1860 null,qpiq.qual_attr_value_to_number
1861 )
1862 ),
1863 --Bug# 5456164 RAVI START
1864 /**
1865 * If VALUE=null then
1866 * If ID=null update ID to existing data
1867 * If ID=id update ID to id
1868 * If ID=G_NULL update ID to null
1869 * If VALUE<>null then
1870 * If ID=null update ID to existing data
1871 * If ID=id update ID to id
1872 * If ID<>id update ID to null (conversion is done as required in ValueToId)
1873 **/
1874 decode(qpiq.qualifier_attr_value_code,
1875 null,
1876 decode(qpiq.qualifier_attr_value, null, qphq.qualifier_attr_value,
1877 decode(qpiq.qualifier_attr_value,
1878 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1879 null,
1880 qpiq.qualifier_attr_value
1881 )
1882 ),
1886 )
1883 decode(qpiq.qualifier_attr_value, null, null,
1884 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
1885 qpiq.qualifier_attr_value
1887 ),
1888 decode(qpiq.qualifier_attribute_code,
1889 null,
1890 decode(qpiq.qualifier_attribute, null, qphq.qualifier_attribute,
1891 decode(qpiq.qualifier_attribute,
1892 QP_BULK_LOADER_PUB.G_NULL_CHAR,
1893 null,
1894 qpiq.qualifier_attribute
1895 )
1896 ),
1897 decode(qpiq.qualifier_attribute, null, null,
1898 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
1899 qpiq.qualifier_attribute
1900 )
1901 ),
1902 --Bug# 5456164 RAVI END
1903 decode(qpiq.qualifier_context, null, qphq.qualifier_context,
1904 decode(qpiq.qualifier_context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1905 null,qpiq.qualifier_context
1906 )
1907 ),
1908 decode(qpiq.qualifier_datatype, null, qphq.qualifier_datatype,
1909 decode(qpiq.qualifier_datatype,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1910 null,qpiq.qualifier_datatype
1911 )
1912 ),
1913 decode(qpiq.qualifier_group_cnt, null, qphq.qualifier_group_cnt,
1914 decode(qpiq.qualifier_group_cnt,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1915 null,qpiq.qualifier_group_cnt
1916 )
1917 ),
1918 decode(qpiq.qualifier_grouping_no, null, qphq.qualifier_grouping_no,
1919 decode(qpiq.qualifier_grouping_no,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1920 null,qpiq.qualifier_grouping_no
1921 )
1922 ),
1923 decode(qpiq.qualifier_id, null, qphq.qualifier_id,
1924 decode(qpiq.qualifier_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1925 null,qpiq.qualifier_id
1926 )
1927 ),
1928 decode(qpiq.qualifier_precedence, null, qphq.qualifier_precedence,
1929 decode(qpiq.qualifier_precedence,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1930 null,qpiq.qualifier_precedence
1931 )
1932 ),
1933 --Bug# 5456164 RAVI START
1934 /**
1935 * If VALUE=null then
1936 * If ID=null update ID to existing data
1937 * If ID=id update ID to id
1938 * If ID=G_NULL update ID to null
1939 * If VALUE<>null then
1940 * If ID=null update ID to existing data
1941 * If ID=id update ID to id
1942 * If ID<>id update ID to null (conversion is done as required in ValueToId)
1943 **/
1944 decode(qpiq.qualifier_rule,
1945 null,
1946 decode(qpiq.qualifier_rule_id, null, qphq.qualifier_rule_id,
1947 decode(qpiq.qualifier_rule_id,
1948 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1949 null,
1950 qpiq.qualifier_rule_id
1951 )
1952 ),
1953 decode(qpiq.qualifier_rule_id, null, null,
1954 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
1955 qpiq.qualifier_rule_id
1956 )
1957 ),
1958 --Bug# 5456164 RAVI END
1959 decode(qpiq.qualify_hier_descendents_flag, null, qphq.qualify_hier_descendents_flag,
1960 decode(qpiq.qualify_hier_descendents_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
1961 null,qpiq.qualify_hier_descendents_flag
1962 )
1963 ),
1964 decode(qpiq.search_ind, null, qphq.search_ind,
1965 decode(qpiq.search_ind,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
1966 null,qpiq.search_ind
1967 )
1968 ),
1969 decode(qpiq.start_date_active, null, qphq.start_date_active,
1970 decode(qpiq.start_date_active,QP_BULK_LOADER_PUB.G_NULL_DATE,
1971 null,qpiq.start_date_active
1972 )
1973 ),
1974 --Bug# 5456164 RAVI
1975 decode(qpiq.qualifier_attr_value_code,
1976 QP_BULK_LOADER_PUB.G_NULL_CHAR, null,
1977 qpiq.qualifier_attr_value_code
1978 )
1979 from qp_qualifiers qphq,
1980 qp_list_headers_b qplh
1981 where -- CAUSES FTS AS NO INDEX ON LINE_REF
1982 qpiq.orig_sys_qualifier_ref = qphq.orig_sys_qualifier_ref
1983 and qphq.list_header_id = qplh.list_header_id
1984 and qplh.orig_system_header_ref=qpiq.orig_sys_header_ref
1985 )
1986 where qpiq.request_id = l_request_id
1987 and qpiq.process_status_flag = 'P'
1988 and qpiq.interface_action_code = 'UPDATE';
1989
1990 --ENH Update Functionality RAVI
1994 else log a message and process the header qualifier and related info
1991 /**
1992 If number of interface header qualifiers loaded for processing
1993 (insert,update,delete) is zero then log a message and exit
1995 **/
1996 IF l_qualifier_count = 0
1997 THEN
1998 write_log( 'NO QUALIFIER RECORDS TO PROCESS');
1999 ELSE
2000 write_log('Number of qualifier records picked: '||l_qualifier_count);
2001
2002 --Bug# 5412029
2003 --ID is to be got from Code
2004 --Value to ID conversion before validation
2005 QP_BULK_VALUE_TO_ID.Qualifier(l_request_id);
2006
2007 -- Attribute level validation for Qualifier
2008 QP_BULK_VALIDATE.Attribute_Qualifier(l_request_id);
2009
2010
2011 --setting process_status_flag
2012 QP_BULK_VALIDATE.Mark_Errored_Interface_Record
2013 ( p_table_type=>'QUALIFIER',
2014 p_request_id=>l_request_id);
2015
2016 --Insert Error messages into db caused by value-ID conversion
2017 QP_BULK_VALUE_TO_ID.Insert_Qual_Error_Message(l_request_id);
2018
2019 --Bulk load into pl/sql table, entity-validation and Insert/Delete/Update operation
2020 Process_Qualifier(l_request_id);
2021
2022 END IF;
2023
2024 --Delete all the inserted errored records
2025 Post_cleanup(l_request_id);
2026 write_log('----Header and qualifier processind complete----');
2027
2028 END IF; -- p_entity_name IS NOT NULL
2029 /*--------------------------- END PROCESSING HEADER----------------------------------*/
2030
2031
2032
2033 /*--------------------------------------------------------------------------------
2034 PROCESS LINES
2035 ---------------------------------------------------------------------------------*/
2036
2037 IF p_spawned_request = 'N' or p_spawned_request IS NULL THEN
2038
2039 -- Update the all the lines to be processed with request_id
2040 -- Bug 5208480(5208112,4188784) RAVI
2041 Update qp_interface_list_lines qpil
2042 Set qpil.request_id= l_request_id
2043 Where qpil.rowid IN
2044 (select l.rowid
2045 from qp_interface_list_lines l, qp_interface_list_headers h
2046 where h.process_status_flag='I'
2047 and l.process_status_flag = 'P'
2048 and l.request_id is null
2049 and h.request_id = l_request_id
2050 and h.orig_sys_header_ref=l.orig_sys_header_ref
2051 and decode(p_process_id, null,l.process_flag,'Y') = 'Y'
2052 and nvl(l.process_id,0) = nvl(p_process_id, nvl(l.process_id,0))
2053 and nvl(l.process_type,' ') = nvl(p_process_type, nvl(l.process_type,' '))
2054 and l.interface_action_code IN ('INSERT','UPDATE','DELETE') )
2055 -- Bug 5208480(5208112,4188784) RAVI
2056 AND NOT EXISTS
2057 (
2058 select 1 from qp_list_lines qpll
2059 where qpil.interface_action_code = 'UPDATE'
2060 and qpil.orig_sys_line_ref = qpll.orig_sys_line_ref
2061 and qpll.list_line_id is not null
2062 and qpil.list_line_id <> qpll.list_line_id
2063 )
2064 ;
2065
2066 write_log('Number of Lines picked: '||SQL%ROWCOUNT);
2067
2068
2069 --ENH Update Functionality RAVI
2070 /**
2071 If interface action is update then load all null value interface columns
2072 with values from corresponding qp table columns
2073 **/
2074 UPDATE qp_interface_list_lines qpil
2075 SET ( accrual_conversion_rate,
2076 accrual_flag,
2077 accrual_qty,
2078 accrual_uom_code,
2079 arithmetic_operator,
2080 attribute1,
2081 attribute10,
2082 attribute11,
2083 attribute12,
2084 attribute13,
2085 attribute14,
2086 attribute15,
2087 attribute2,
2088 attribute3,
2089 attribute4,
2090 attribute5,
2091 attribute6,
2092 attribute7,
2093 attribute8,
2094 attribute9,
2095 automatic_flag,
2096 base_qty,
2097 base_uom_code,
2098 benefit_limit,
2099 benefit_price_list_line_id,
2100 benefit_qty,
2101 benefit_uom_code,
2102 charge_subtype_code,
2103 charge_type_code,
2104 comments,
2105 context,
2106 continuous_price_break_flag,
2107 created_by,
2108 creation_date,
2109 effective_period_uom,
2110 end_date_active,
2111 estim_accrual_rate,
2112 estim_gl_value,
2113 expiration_date,
2114 expiration_period_start_date,
2115 expiration_period_uom,
2116 generate_using_formula_id,
2117 include_on_returns_flag,
2118 incompatibility_grp_code,
2119 inventory_item_id,
2120 list_header_id,
2124 list_price,
2121 list_line_id,
2122 list_line_no,
2123 list_line_type_code,
2125 list_price_uom_code,
2126 modifier_level_code,
2127 net_amount_flag,
2128 number_effective_periods,
2129 number_expiration_periods,
2130 operand,
2131 organization_id,
2132 orig_sys_header_ref,
2133 orig_sys_line_ref,
2134 override_flag,
2135 percent_price,
2136 price_break_header_ref,--change
2137 price_break_type_code,
2138 price_by_formula_id,
2139 pricing_group_sequence,
2140 pricing_phase_id,
2141 primary_uom_flag,
2142 print_on_invoice_flag,
2143 product_precedence,
2144 program_application_id,
2145 program_id,
2146 program_update_date,
2147 proration_type_code,
2148 qualification_ind,
2149 rebate_transaction_type_code,
2150 recurring_flag,
2151 recurring_value,
2152 related_item_id,
2153 relationship_type_id,
2154 reprice_flag,
2155 revision,
2156 revision_date,
2157 revision_reason_code,
2158 rltd_modifier_grp_type,--change
2159 start_date_active,
2160 substitution_attribute,
2161 substitution_context,
2162 substitution_value
2163 ) = ( select
2164 decode(qpil.accrual_conversion_rate, null, qpll.accrual_conversion_rate,
2165 decode(qpil.accrual_conversion_rate,
2166 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2167 null,
2168 qpil.accrual_conversion_rate
2169 )
2170 ),
2171 decode(qpil.accrual_flag, null, qpll.accrual_flag,
2172 decode(qpil.accrual_flag,
2173 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2174 null,
2175 qpil.accrual_flag
2176 )
2177 ),
2178 decode(qpil.accrual_qty, null, qpll.accrual_qty,
2179 decode(qpil.accrual_qty,
2180 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2181 null,
2182 qpil.accrual_qty
2183 )
2184 ),
2185 decode(qpil.accrual_uom_code, null, qpll.accrual_uom_code,
2186 decode(qpil.accrual_uom_code,
2187 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2188 null,
2189 qpil.accrual_uom_code
2190 )
2191 ),
2192 decode(qpil.arithmetic_operator, null, qpll.arithmetic_operator,
2193 decode(qpil.arithmetic_operator,
2194 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2195 null,
2196 qpil.arithmetic_operator
2197 )
2198 ),
2199 decode(qpil.attribute1, null, qpll.attribute1,
2200 decode(qpil.attribute1,
2201 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2202 null,
2203 qpil.attribute1
2204 )
2205 ),
2206 decode(qpil.attribute10, null, qpll.attribute10,
2207 decode(qpil.attribute10,
2208 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2209 null,
2210 qpil.attribute10
2211 )
2212 ),
2213 decode(qpil.attribute11, null, qpll.attribute11,
2214 decode(qpil.attribute11,
2215 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2216 null,
2217 qpil.attribute11
2218 )
2219 ),
2220 decode(qpil.attribute12, null, qpll.attribute12,
2221 decode(qpil.attribute12,
2222 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2223 null,
2224 qpil.attribute12
2225 )
2226 ),
2230 null,
2227 decode(qpil.attribute13, null, qpll.attribute13,
2228 decode(qpil.attribute13,
2229 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2231 qpil.attribute13
2232 )
2233 ),
2234 decode(qpil.attribute14, null, qpll.attribute14,
2235 decode(qpil.attribute14,
2236 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2237 null,
2238 qpil.attribute14
2239 )
2240 ),
2241 decode(qpil.attribute15, null, qpll.attribute15,
2242 decode(qpil.attribute15,
2243 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2244 null,
2245 qpil.attribute15
2246 )
2247 ),
2248 decode(qpil.attribute2, null, qpll.attribute2,
2249 decode(qpil.attribute2,
2250 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2251 null,
2252 qpil.attribute2
2253 )
2254 ),
2255 decode(qpil.attribute3, null, qpll.attribute3,
2256 decode(qpil.attribute3,
2257 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2258 null,
2259 qpil.attribute3
2260 )
2261 ),
2262 decode(qpil.attribute4, null, qpll.attribute4,
2263 decode(qpil.attribute4,
2264 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2265 null,
2266 qpil.attribute4
2267 )
2268 ),
2269 decode(qpil.attribute5, null, qpll.attribute5,
2270 decode(qpil.attribute5,
2271 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2272 null,
2273 qpil.attribute5
2274 )
2275 ),
2276 decode(qpil.attribute6, null, qpll.attribute6,
2277 decode(qpil.attribute6,
2278 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2279 null,
2280 qpil.attribute6
2281 )
2282 ),
2283 decode(qpil.attribute7, null, qpll.attribute7,
2284 decode(qpil.attribute7,
2285 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2286 null,
2287 qpil.attribute7
2288 )
2289 ),
2290 decode(qpil.attribute8, null, qpll.attribute8,
2291 decode(qpil.attribute8,
2292 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2293 null,
2294 qpil.attribute8
2295 )
2296 ),
2297 decode(qpil.attribute9, null, qpll.attribute9,
2298 decode(qpil.attribute9,
2299 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2300 null,
2301 qpil.attribute9
2302 )
2303 ),
2304 decode(qpil.automatic_flag, null, qpll.automatic_flag,
2305 decode(qpil.automatic_flag,
2306 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2307 null,
2308 qpil.automatic_flag
2309 )
2310 ),
2311 decode(qpil.base_qty, null, qpll.base_qty,
2312 decode(qpil.base_qty,
2313 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2314 null,
2315 qpil.base_qty
2316 )
2317 ),
2318 decode(qpil.base_uom_code, null, qpll.base_uom_code,
2319 decode(qpil.base_uom_code,
2320 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2321 null,
2322 qpil.base_uom_code
2326 decode(qpil.benefit_limit,
2323 )
2324 ),
2325 decode(qpil.benefit_limit, null, qpll.benefit_limit,
2327 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2328 null,
2329 qpil.benefit_limit
2330 )
2331 ),
2332 decode(qpil.benefit_price_list_line_id, null, qpll.benefit_price_list_line_id,
2333 decode(qpil.benefit_price_list_line_id,
2334 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2335 null,
2336 qpil.benefit_price_list_line_id
2337 )
2338 ),
2339 decode(qpil.benefit_qty, null, qpll.benefit_qty,
2340 decode(qpil.benefit_qty,
2341 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2342 null,
2343 qpil.benefit_qty
2344 )
2345 ),
2346 decode(qpil.benefit_uom_code, null, qpll.benefit_uom_code,
2347 decode(qpil.benefit_uom_code,
2348 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2349 null,
2350 qpil.benefit_uom_code
2351 )
2352 ),
2353 decode(qpil.charge_subtype_code, null, qpll.charge_subtype_code,
2354 decode(qpil.charge_subtype_code,
2355 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2356 null,
2357 qpil.charge_subtype_code
2358 )
2359 ),
2360 decode(qpil.charge_type_code, null, qpll.charge_type_code,
2361 decode(qpil.charge_type_code,
2362 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2363 null,
2364 qpil.charge_type_code
2365 )
2366 ),
2367 decode(qpil.comments, null, qpll.comments,
2368 decode(qpil.comments,
2369 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2370 null,
2371 qpil.comments
2372 )
2373 ),
2374 decode(qpil.context, null, qpll.context,
2375 decode(qpil.context,
2376 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2377 null,
2378 qpil.context
2379 )
2380 ),
2381 decode(qpil.continuous_price_break_flag, null, qpll.continuous_price_break_flag,
2382 decode(qpil.continuous_price_break_flag,
2383 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2384 null,
2385 qpil.continuous_price_break_flag
2386 )
2387 ),
2388 decode(qpil.created_by, null, qpll.created_by,
2389 decode(qpil.created_by,
2390 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2391 null,
2392 qpil.created_by
2393 )
2394 ),
2395 decode(qpil.creation_date, null, qpll.creation_date,
2396 decode(qpil.creation_date,
2397 QP_BULK_LOADER_PUB.G_NULL_DATE,
2398 null,
2399 qpil.creation_date
2400 )
2401 ),
2402 decode(qpil.effective_period_uom, null, qpll.effective_period_uom,
2403 decode(qpil.effective_period_uom,
2404 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2405 null,
2406 qpil.effective_period_uom
2407 )
2408 ),
2409 decode(qpil.end_date_active, null, qpll.end_date_active,
2410 decode(qpil.end_date_active,
2411 QP_BULK_LOADER_PUB.G_NULL_DATE,
2412 null,
2413 qpil.end_date_active
2414 )
2415 ),
2416 decode(qpil.estim_accrual_rate, null, qpll.estim_accrual_rate,
2420 qpil.estim_accrual_rate
2417 decode(qpil.estim_accrual_rate,
2418 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2419 null,
2421 )
2422 ),
2423 decode(qpil.estim_gl_value, null, qpll.estim_gl_value,
2424 decode(qpil.estim_gl_value,
2425 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2426 null,
2427 qpil.estim_gl_value
2428 )
2429 ),
2430 decode(qpil.expiration_date, null, qpll.expiration_date,
2431 decode(qpil.expiration_date,
2432 QP_BULK_LOADER_PUB.G_NULL_DATE,
2433 null,
2434 qpil.expiration_date
2435 )
2436 ),
2437 decode(qpil.expiration_period_start_date, null, qpll.expiration_period_start_date,
2438 decode(qpil.expiration_period_start_date,
2439 QP_BULK_LOADER_PUB.G_NULL_DATE,
2440 null,
2441 qpil.expiration_period_start_date
2442 )
2443 ),
2444 decode(qpil.expiration_period_uom, null, qpll.expiration_period_uom,
2445 decode(qpil.expiration_period_uom,
2446 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2447 null,
2448 qpil.expiration_period_uom
2449 )
2450 ),
2451 --Bug# 5412029 RAVI START
2452 /**
2453 * If VALUE=null then
2454 * If ID=null update ID to existing data
2455 * If ID=id update ID to id
2456 * If ID=G_NULL update ID to null
2457 * If VALUE<>null then
2458 * If ID=null update ID to existing data
2459 * If ID=id update ID to id
2460 * If ID<>id update ID to null (conversion is done as required in ValueToId)
2461 **/
2462 decode(qpil.generate_using_formula,
2463 null,
2464 decode(qpil.generate_using_formula_id, null, qpll.generate_using_formula_id,
2465 decode(qpil.generate_using_formula_id,
2466 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2467 null,
2468 qpil.generate_using_formula_id
2469 )
2470 ),
2471 decode(qpil.generate_using_formula_id, null, null,
2472 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
2473 qpil.generate_using_formula_id
2474 )
2475 ),
2476 --Bug# 5412029 RAVI END
2477 decode(qpil.include_on_returns_flag, null, qpll.include_on_returns_flag,
2478 decode(qpil.include_on_returns_flag,
2479 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2480 null,
2481 qpil.include_on_returns_flag
2482 )
2483 ),
2484 decode(qpil.incompatibility_grp_code, null, qpll.incompatibility_grp_code,
2485 decode(qpil.incompatibility_grp_code,
2486 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2487 null,
2488 qpil.incompatibility_grp_code
2489 )
2490 ),
2491 decode(qpil.inventory_item_id, null, qpll.inventory_item_id,
2492 decode(qpil.inventory_item_id,
2493 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2494 null,
2495 qpil.inventory_item_id
2496 )
2497 ),
2498 decode(qpil.list_header_id, null, qpll.list_header_id,
2499 decode(qpil.list_header_id,
2500 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2501 null,
2502 qpil.list_header_id
2503 )
2504 ),
2505 decode(qpil.list_line_id, null, qpll.list_line_id,
2509 qpil.list_line_id
2506 decode(qpil.list_line_id,
2507 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2508 null,
2510 )
2511 ),
2512 decode(qpil.list_line_no, null, qpll.list_line_no,
2513 decode(qpil.list_line_no,
2514 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2515 null,
2516 qpil.list_line_no
2517 )
2518 ),
2519 decode(qpil.list_line_type_code, null, qpll.list_line_type_code,
2520 decode(qpil.list_line_type_code,
2521 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2522 null,
2523 qpil.list_line_type_code
2524 )
2525 ),
2526 decode(qpil.list_price, null, qpll.list_price,
2527 decode(qpil.list_price,
2528 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2529 null,
2530 qpil.list_price
2531 )
2532 ),
2533 decode(qpil.list_price_uom_code, null, qpll.list_price_uom_code,
2534 decode(qpil.list_price_uom_code,
2535 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2536 null,
2537 qpil.list_price_uom_code
2538 )
2539 ),
2540 decode(qpil.modifier_level_code, null, qpll.modifier_level_code,
2541 decode(qpil.modifier_level_code,
2542 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2543 null,
2544 qpil.modifier_level_code
2545 )
2546 ),
2547 decode(qpil.net_amount_flag, null, qpll.net_amount_flag,
2548 decode(qpil.net_amount_flag,
2549 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2550 null,
2551 qpil.net_amount_flag
2552 )
2553 ),
2554 decode(qpil.number_effective_periods, null, qpll.number_effective_periods,
2555 decode(qpil.number_effective_periods,
2556 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2557 null,
2558 qpil.number_effective_periods
2559 )
2560 ),
2561 decode(qpil.number_expiration_periods, null, qpll.number_expiration_periods,
2562 decode(qpil.number_expiration_periods,
2563 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2564 null,
2565 qpil.number_expiration_periods
2566 )
2567 ),
2568 decode(qpil.operand, null, qpll.operand,
2569 decode(qpil.operand,
2570 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2571 null,
2572 qpil.operand
2573 )
2574 ),
2575 decode(qpil.organization_id, null, qpll.organization_id,
2576 decode(qpil.organization_id,
2577 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2578 null,
2579 qpil.organization_id
2580 )
2581 ),
2582 decode(qpil.orig_sys_header_ref, null, qpll.orig_sys_header_ref,
2583 decode(qpil.orig_sys_header_ref,
2584 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2585 null,
2586 qpil.orig_sys_header_ref
2587 )
2588 ),
2589 decode(qpil.orig_sys_line_ref, null, qpll.orig_sys_line_ref,
2590 decode(qpil.orig_sys_line_ref,
2591 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2592 null,
2593 qpil.orig_sys_line_ref
2594 )
2595 ),
2596 decode(qpil.override_flag, null, qpll.override_flag,
2597 decode(qpil.override_flag,
2598 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2602 ),
2599 null,
2600 qpil.override_flag
2601 )
2603 decode(qpil.percent_price, null, qpll.percent_price,
2604 decode(qpil.percent_price,
2605 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2606 null,
2607 qpil.percent_price
2608 )
2609 ),
2610 decode(qpil.price_break_header_ref, null,
2611 (select pll.orig_sys_line_ref
2612 from qp_list_lines pll, qp_rltd_modifiers rm
2613 where rm.to_rltd_modifier_id = qpll.list_line_id
2614 and rm.from_rltd_modifier_id = pll.list_line_id
2615 and rm.RLTD_MODIFIER_GRP_TYPE='PRICE BREAK'
2616 ),
2617 decode(qpil.price_break_header_ref,
2618 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2619 null,
2620 qpil.price_break_header_ref
2621 )
2622 ),
2623 decode(qpil.price_break_type_code, null, qpll.price_break_type_code,
2624 decode(qpil.price_break_type_code,
2625 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2626 null,
2627 qpil.price_break_type_code
2628 )
2629 ),
2630 --Bug# 5412029 RAVI START
2631 /**
2632 * If VALUE=null then
2633 * If ID=null update ID to existing data
2634 * If ID=id update ID to id
2635 * If ID=G_NULL update ID to null
2636 * If VALUE<>null then
2637 * If ID=null update ID to existing data
2638 * If ID=id update ID to id
2639 * If ID<>id update ID to null (conversion is done as required in ValueToId)
2640 **/
2641 decode(qpil.price_by_formula,
2642 null,
2643 decode(qpil.price_by_formula_id, null, qpll.price_by_formula_id,
2644 decode(qpil.price_by_formula_id,
2645 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2646 null,
2647 qpil.price_by_formula_id
2648 )
2649 ),
2650 decode(qpil.price_by_formula_id, null, null,
2651 QP_BULK_LOADER_PUB.G_NULL_NUMBER,null,
2652 qpil.price_by_formula_id
2653 )
2654 ),
2655 --Bug# 5412029 RAVI END
2656 decode(qpil.pricing_group_sequence, null, qpll.pricing_group_sequence,
2657 decode(qpil.pricing_group_sequence,
2658 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2659 null,
2660 qpil.pricing_group_sequence
2661 )
2662 ),
2663 decode(qpil.pricing_phase_id, null, qpll.pricing_phase_id,
2664 decode(qpil.pricing_phase_id,
2665 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2666 null,
2667 qpil.pricing_phase_id
2668 )
2669 ),
2670 decode(qpil.primary_uom_flag, null, qpll.primary_uom_flag,
2671 decode(qpil.primary_uom_flag,
2672 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2673 null,
2674 qpil.primary_uom_flag
2675 )
2676 ),
2677 decode(qpil.print_on_invoice_flag, null, qpll.print_on_invoice_flag,
2678 decode(qpil.print_on_invoice_flag,
2679 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2680 null,
2681 qpil.print_on_invoice_flag
2682 )
2683 ),
2684 decode(qpil.product_precedence, null, qpll.product_precedence,
2685 decode(qpil.product_precedence,
2686 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2687 null,
2688 qpil.product_precedence
2689 )
2693 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2690 ),
2691 decode(qpil.program_application_id, null, qpll.program_application_id,
2692 decode(qpil.program_application_id,
2694 null,
2695 qpil.program_application_id
2696 )
2697 ),
2698 decode(qpil.program_id, null, qpll.program_id,
2699 decode(qpil.program_id,
2700 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2701 null,
2702 qpil.program_id
2703 )
2704 ),
2705 decode(qpil.program_update_date, null, qpll.program_update_date,
2706 decode(qpil.program_update_date,
2707 QP_BULK_LOADER_PUB.G_NULL_DATE,
2708 null,
2709 qpil.program_update_date
2710 )
2711 ),
2712 decode(qpil.proration_type_code, null, qpll.proration_type_code,
2713 decode(qpil.proration_type_code,
2714 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2715 null,
2716 qpil.proration_type_code
2717 )
2718 ),
2719 decode(qpil.qualification_ind, null, qpll.qualification_ind,
2720 decode(qpil.qualification_ind,
2721 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2722 null,
2723 qpil.qualification_ind
2724 )
2725 ),
2726 decode(qpil.rebate_transaction_type_code, null, qpll.rebate_transaction_type_code,
2727 decode(qpil.rebate_transaction_type_code,
2728 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2729 null,
2730 qpil.rebate_transaction_type_code
2731 )
2732 ),
2733 decode(qpil.recurring_flag, null, qpll.recurring_flag,
2734 decode(qpil.recurring_flag,
2735 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2736 null,
2737 qpil.recurring_flag
2738 )
2739 ),
2740 decode(qpil.recurring_value, null, qpll.recurring_value,
2741 decode(qpil.recurring_value,
2742 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2743 null,
2744 qpil.recurring_value
2745 )
2746 ),
2747 decode(qpil.related_item_id, null, qpll.related_item_id,
2748 decode(qpil.related_item_id,
2749 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2750 null,
2751 qpil.related_item_id
2752 )
2753 ),
2754 decode(qpil.relationship_type_id, null, qpll.relationship_type_id,
2755 decode(qpil.relationship_type_id,
2756 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2757 null,
2758 qpil.relationship_type_id
2759 )
2760 ),
2761 decode(qpil.reprice_flag, null, qpll.reprice_flag,
2762 decode(qpil.reprice_flag,
2763 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2764 null,
2765 qpil.reprice_flag
2766 )
2767 ),
2768 decode(qpil.revision, null, qpll.revision,
2769 decode(qpil.revision,
2770 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2771 null,
2772 qpil.revision
2773 )
2774 ),
2775 decode(qpil.revision_date, null, qpll.revision_date,
2776 decode(qpil.revision_date,
2777 QP_BULK_LOADER_PUB.G_NULL_DATE,
2778 null,
2779 qpil.revision_date
2780 )
2781 ),
2782 decode(qpil.revision_reason_code, null, qpll.revision_reason_code,
2786 qpil.revision_reason_code
2783 decode(qpil.revision_reason_code,
2784 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2785 null,
2787 )
2788 ),
2789 decode(qpil.rltd_modifier_grp_type, null,
2790 (select rm.RLTD_MODIFIER_GRP_TYPE
2791 from qp_list_lines pll, qp_rltd_modifiers rm
2792 where rm.to_rltd_modifier_id = qpll.list_line_id
2793 and rm.from_rltd_modifier_id = pll.list_line_id
2794 and rm.RLTD_MODIFIER_GRP_TYPE='PRICE BREAK'
2795 ),
2796 decode(qpil.rltd_modifier_grp_type,
2797 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2798 null,
2799 qpil.rltd_modifier_grp_type
2800 )
2801 ),
2802 decode(qpil.start_date_active, null, qpll.start_date_active,
2803 decode(qpil.start_date_active,
2804 QP_BULK_LOADER_PUB.G_NULL_DATE,
2805 null,
2806 qpil.start_date_active
2807 )
2808 ),
2809 decode(qpil.substitution_attribute, null, qpll.substitution_attribute,
2810 decode(qpil.substitution_attribute,
2811 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2812 null,
2813 qpil.substitution_attribute
2814 )
2815 ),
2816 decode(qpil.substitution_context, null, qpll.substitution_context,
2817 decode(qpil.substitution_context,
2818 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2819 null,
2820 qpil.substitution_context
2821 )
2822 ),
2823 decode(qpil.substitution_value, null, qpll.substitution_value,
2824 decode(qpil.substitution_value,
2825 QP_BULK_LOADER_PUB.G_NULL_CHAR,
2826 null,
2827 qpil.substitution_value
2828 )
2829 )
2830 from qp_list_headers qplh,
2831 qp_list_lines qpll
2832 where -- CAUSES FTS AS NO INDEX ON LINE_REF
2833 qpil.orig_sys_line_ref = qpll.orig_sys_line_ref
2834 and qpll.list_header_id = qplh.list_header_id
2835 and qplh.orig_system_header_ref=qpil.orig_sys_header_ref
2836 )
2837 where qpil.request_id = l_request_id
2838 and qpil.process_status_flag = 'P'
2839 --Bug# 5236656
2840 -- The interface lines record should be updated in case of both update or delete action.
2841 and qpil.interface_action_code IN ('UPDATE','DELETE');
2842
2843
2844 -- Bug 5208480(5208112,4188784) RAVI
2845 UPDATE qp_interface_pricing_attribs qpip
2846 SET qpip.request_id = l_request_id
2847 WHERE qpip.rowid IN
2848 (SELECT pa.rowid
2849 FROM qp_interface_pricing_attribs pa, qp_interface_list_headers h
2850 WHERE h.process_status_flag='I'
2851 AND h.orig_sys_header_ref=pa.orig_sys_header_ref
2852 AND h.request_id = l_request_id
2853 AND pa.request_id IS NULL
2854 AND pa.process_status_flag = 'P'
2855 AND decode(p_process_id, null,pa.process_flag,'Y') = 'Y'
2856 AND nvl(pa.process_id,0) = nvl(p_process_id, nvl(pa.process_id,0))
2857 AND nvl(pa.process_type,' ') = nvl(p_process_type, nvl(pa.process_type,' '))
2858 AND pa.interface_action_code IN ('INSERT','UPDATE','DELETE') )
2859 -- Bug 5208480(5208112,4188784) RAVI
2860 AND NOT EXISTS
2861 (
2862 select 1 from qp_pricing_attributes qppa
2863 where qpip.interface_action_code = 'UPDATE'
2864 and qpip.orig_sys_line_ref = qppa.orig_sys_line_ref
2865 and qppa.list_line_id is not null
2866 and qpip.list_line_id <> qppa.list_line_id
2867 )
2868 -- Bug# 5246745 RAVI
2869 -- Should not be able to update product attribute context
2870 AND NOT EXISTS
2871 (
2872 select 1 from qp_pricing_attributes qppa
2873 where qpip.interface_action_code = 'UPDATE'
2874 and qpip.orig_sys_line_ref = qppa.orig_sys_line_ref
2875 and qppa.product_attribute_context is not null
2876 and qpip.product_attribute_context <> qppa.product_attribute_context
2877 )
2878 -- Bug# 5246745 RAVI
2879 -- Should not be able to update product attribute
2880 AND NOT EXISTS
2881 (
2885 and qppa.product_attribute is not null
2882 select 1 from qp_pricing_attributes qppa
2883 where qpip.interface_action_code = 'UPDATE'
2884 and qpip.orig_sys_line_ref = qppa.orig_sys_line_ref
2886 and qpip.product_attribute <> qppa.product_attribute
2887 )
2888 -- Bug# 5246745 RAVI
2889 -- Should not be able to update product attribute Value
2890 AND NOT EXISTS
2891 (
2892 select 1 from qp_pricing_attributes qppa
2893 where qpip.interface_action_code = 'UPDATE'
2894 and qpip.orig_sys_line_ref = qppa.orig_sys_line_ref
2895 and qppa.product_attr_value is not null
2896 and qpip.product_attr_value <> qppa.product_attr_value
2897 )
2898 ;
2899
2900 write_log('Number of Pricing Attributes picked: '||SQL%ROWCOUNT);
2901
2902 --ENH Update Functionality RAVI
2903 /**
2904 If interface action is update then load all null value interface columns
2905 with values from corresponding qp table columns
2906 **/
2907 UPDATE qp_interface_pricing_attribs qpip
2908 SET ( accumulate_flag,
2909 attribute_grouping_no,
2910 attribute1,
2911 attribute10,
2912 attribute11,
2913 attribute12,
2914 attribute13,
2915 attribute14,
2916 attribute15,
2917 attribute2,
2918 attribute3,
2919 attribute4,
2920 attribute5,
2921 attribute6,
2922 attribute7,
2923 attribute8,
2924 attribute9,
2925 comparison_operator_code,
2926 context,
2927 created_by,
2928 excluder_flag,
2929 list_header_id,
2930 list_line_id,
2931 orig_sys_header_ref,
2932 orig_sys_line_ref,
2933 orig_sys_pricing_attr_ref,
2934 pricing_attr_value_from,
2935 pricing_attr_value_from_number,
2936 pricing_attr_value_to,
2937 pricing_attr_value_to_number,
2938 pricing_attribute,
2939 pricing_attribute_context,
2940 pricing_attribute_datatype,
2941 pricing_attribute_id,
2942 pricing_phase_id,
2943 product_attr_value,
2944 product_attribute,
2945 product_attribute_context,
2946 product_attribute_datatype,
2947 product_uom_code,
2948 program_application_id,
2949 program_id,
2950 program_update_date,
2951 qualification_ind,
2952 --Bug#5456164 RAVI START
2953 --If ID in ID_to_VAL is G_CHAR then set it null
2954 product_attr_val_disp,
2955 pricing_attr_value_from_disp,
2956 pricing_attr_value_to_disp
2957 --Bug#5456164 RAVI START
2958 ) = ( select
2959 decode(qpip.accumulate_flag, null, qppa.accumulate_flag,
2960 decode(qpip.accumulate_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2961 null,qpip.accumulate_flag
2962 )
2963 ),
2964 decode(qpip.attribute_grouping_no, null, qppa.attribute_grouping_no,
2965 decode(qpip.attribute_grouping_no,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
2966 null,qpip.attribute_grouping_no
2967 )
2968 ),
2969 decode(qpip.attribute1, null, qppa.attribute1,
2970 decode(qpip.attribute1,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2971 null,qpip.attribute1
2972 )
2973 ),
2974 decode(qpip.attribute10, null, qppa.attribute10,
2975 decode(qpip.attribute10,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2976 null,qpip.attribute10
2977 )
2978 ),
2979 decode(qpip.attribute11, null, qppa.attribute11,
2980 decode(qpip.attribute11,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2981 null,qpip.attribute11
2982 )
2983 ),
2984 decode(qpip.attribute12, null, qppa.attribute12,
2985 decode(qpip.attribute12,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2986 null,qpip.attribute12
2987 )
2988 ),
2989 decode(qpip.attribute13, null, qppa.attribute13,
2990 decode(qpip.attribute13,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2991 null,qpip.attribute13
2992 )
2993 ),
2994 decode(qpip.attribute14, null, qppa.attribute14,
2995 decode(qpip.attribute14,QP_BULK_LOADER_PUB.G_NULL_CHAR,
2996 null,qpip.attribute14
2997 )
2998 ),
2999 decode(qpip.attribute15, null, qppa.attribute15,
3000 decode(qpip.attribute15,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3001 null,qpip.attribute15
3002 )
3003 ),
3004 decode(qpip.attribute2, null, qppa.attribute2,
3005 decode(qpip.attribute2,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3006 null,qpip.attribute2
3007 )
3008 ),
3009 decode(qpip.attribute3, null, qppa.attribute3,
3010 decode(qpip.attribute3,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3011 null,qpip.attribute3
3012 )
3013 ),
3014 decode(qpip.attribute4, null, qppa.attribute4,
3015 decode(qpip.attribute4,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3019 decode(qpip.attribute5, null, qppa.attribute5,
3016 null,qpip.attribute4
3017 )
3018 ),
3020 decode(qpip.attribute5,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3021 null,qpip.attribute5
3022 )
3023 ),
3024 decode(qpip.attribute6, null, qppa.attribute6,
3025 decode(qpip.attribute6,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3026 null,qpip.attribute6
3027 )
3028 ),
3029 decode(qpip.attribute7, null, qppa.attribute7,
3030 decode(qpip.attribute7,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3031 null,qpip.attribute7
3032 )
3033 ),
3034 decode(qpip.attribute8, null, qppa.attribute8,
3035 decode(qpip.attribute8,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3036 null,qpip.attribute8
3037 )
3038 ),
3039 decode(qpip.attribute9, null, qppa.attribute9,
3040 decode(qpip.attribute9,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3041 null,qpip.attribute9
3042 )
3043 ),
3044 decode(qpip.comparison_operator_code, null, qppa.comparison_operator_code,
3045 decode(qpip.comparison_operator_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3046 null,qpip.comparison_operator_code
3047 )
3048 ),
3049 decode(qpip.context, null, qppa.context,
3050 decode(qpip.context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3051 null,qpip.context
3052 )
3053 ),
3054 decode(qpip.created_by, null, qppa.created_by,
3055 decode(qpip.created_by,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3056 null,qpip.created_by
3057 )
3058 ),
3059 decode(qpip.excluder_flag, null, qppa.excluder_flag,
3060 decode(qpip.excluder_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3061 null,qpip.excluder_flag
3062 )
3063 ),
3064 decode(qpip.list_header_id, null, qppa.list_header_id,
3065 decode(qpip.list_header_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3066 null,qpip.list_header_id
3067 )
3068 ),
3069 decode(qpip.list_line_id, null, qppa.list_line_id,
3070 decode(qpip.list_line_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3071 null,qpip.list_line_id
3072 )
3073 ),
3074 decode(qpip.orig_sys_header_ref, null, qppa.orig_sys_header_ref,
3075 decode(qpip.orig_sys_header_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3076 null,qpip.orig_sys_header_ref
3077 )
3078 ),
3079 decode(qpip.orig_sys_line_ref, null, qppa.orig_sys_line_ref,
3080 decode(qpip.orig_sys_line_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3081 null,qpip.orig_sys_line_ref
3082 )
3083 ),
3084 decode(qpip.orig_sys_pricing_attr_ref, null, qppa.orig_sys_pricing_attr_ref,
3085 decode(qpip.orig_sys_pricing_attr_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3086 null,qpip.orig_sys_pricing_attr_ref
3087 )
3088 ),
3089 --Bug# 5456164 RAVI START
3090 /**
3091 * If VALUE=null then
3092 * If ID=null update ID to existing data
3093 * If ID=id update ID to id
3094 * If ID=G_NULL update ID to null
3095 * If VALUE<>null then
3096 * If ID=null update ID to existing data
3097 * If ID=id update ID to id
3098 * If ID<>id update ID to null (conversion is done as required in ValueToId)
3099 **/
3100 decode(qpip.pricing_attr_value_from_disp,
3101 null,
3102 decode(qpip.pricing_attr_value_from, null, qppa.pricing_attr_value_from,
3103 decode(qpip.pricing_attr_value_from,
3104 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3105 null,
3106 qpip.pricing_attr_value_from
3107 )
3108 ),
3109 decode(qpip.pricing_attr_value_from, null, null,
3110 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
3111 qpip.pricing_attr_value_from
3112 )
3113 ),
3114 --Bug# 5456164 RAVI END
3115 decode(qpip.pricing_attr_value_from_number, null, qppa.pricing_attr_value_from_number,
3116 decode(qpip.pricing_attr_value_from_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3117 null,qpip.pricing_attr_value_from_number
3118 )
3119 ),
3120 --Bug# 5456164 RAVI START
3121 /**
3122 * If VALUE=null then
3123 * If ID=null update ID to existing data
3124 * If ID=id update ID to id
3125 * If ID=G_NULL update ID to null
3126 * If VALUE<>null then
3127 * If ID=null update ID to existing data
3128 * If ID=id update ID to id
3129 * If ID<>id update ID to null (conversion is done as required in ValueToId)
3130 **/
3131 decode(qpip.pricing_attr_value_to_disp,
3132 null,
3133 decode(qpip.pricing_attr_value_to, null, qppa.pricing_attr_value_to,
3137 qpip.pricing_attr_value_to
3134 decode(qpip.pricing_attr_value_to,
3135 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3136 null,
3138 )
3139 ),
3140 decode(qpip.pricing_attr_value_to, null, null,
3141 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
3142 qpip.pricing_attr_value_to
3143 )
3144 ),
3145 --Bug# 5456164 RAVI END
3146 decode(qpip.pricing_attr_value_to_number, null, qppa.pricing_attr_value_to_number,
3147 decode(qpip.pricing_attr_value_to_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3148 null,qpip.pricing_attr_value_to_number
3149 )
3150 ),
3151 --Bug# 5456164 RAVI START
3152 /**
3153 * If VALUE=null then
3154 * If ID=null update ID to existing data
3155 * If ID=id update ID to id
3156 * If ID=G_NULL update ID to null
3157 * If VALUE<>null then
3158 * If ID=null update ID to existing data
3159 * If ID=id update ID to id
3160 * If ID<>id update ID to null (conversion is done as required in ValueToId)
3161 **/
3162 decode(qpip.pricing_attr_code,
3163 null,
3164 decode(qpip.pricing_attribute, null, qppa.pricing_attribute,
3165 decode(qpip.pricing_attribute,
3166 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3167 null,
3168 qpip.pricing_attribute
3169 )
3170 ),
3171 decode(qpip.pricing_attribute, null, null,
3172 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
3173 qpip.pricing_attribute
3174 )
3175 ),
3176 --Bug# 5456164 RAVI END
3177 decode(qpip.pricing_attribute_context, null, qppa.pricing_attribute_context,
3178 decode(qpip.pricing_attribute_context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3179 null,qpip.pricing_attribute_context
3180 )
3181 ),
3182 decode(qpip.pricing_attribute_datatype, null, qppa.pricing_attribute_datatype,
3183 decode(qpip.pricing_attribute_datatype,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3184 null,qpip.pricing_attribute_datatype
3185 )
3186 ),
3187 decode(qpip.pricing_attribute_id, null, qppa.pricing_attribute_id,
3188 decode(qpip.pricing_attribute_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3189 null,qpip.pricing_attribute_id
3190 )
3191 ),
3192 decode(qpip.pricing_phase_id, null, qppa.pricing_phase_id,
3193 decode(qpip.pricing_phase_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3194 null,qpip.pricing_phase_id
3195 )
3196 ),
3197 --Bug# 5456164 RAVI START
3198 /**
3199 * If VALUE=null then
3200 * If ID=null update ID to existing data
3201 * If ID=id update ID to id
3202 * If ID=G_NULL update ID to null
3203 * If VALUE<>null then
3204 * If ID=null update ID to existing data
3205 * If ID=id update ID to id
3206 * If ID<>id update ID to null (conversion is done as required in ValueToId)
3207 **/
3208 decode(qpip.product_attr_val_disp,
3209 null,
3210 decode(qpip.product_attr_value, null, qppa.product_attr_value,
3211 decode(qpip.product_attr_value,
3212 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3213 null,
3214 qpip.product_attr_value
3215 )
3216 ),
3217 decode(qpip.product_attr_value, null, null,
3218 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
3219 qpip.product_attr_value
3220 )
3221 ),
3222 decode(qpip.product_attr_code,
3223 null,
3224 decode(qpip.product_attribute, null, qppa.product_attribute,
3225 decode(qpip.product_attribute,
3226 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3227 null,
3228 qpip.product_attribute
3229 )
3230 ),
3231 decode(qpip.product_attribute, null, null,
3235 ),
3232 QP_BULK_LOADER_PUB.G_NULL_CHAR,null,
3233 qpip.product_attribute
3234 )
3236 --Bug# 5456164 RAVI END
3237 decode(qpip.product_attribute_context, null, qppa.product_attribute_context,
3238 decode(qpip.product_attribute_context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3239 null,qpip.product_attribute_context
3240 )
3241 ),
3242 decode(qpip.product_attribute_datatype, null, qppa.product_attribute_datatype,
3243 decode(qpip.product_attribute_datatype,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3244 null,qpip.product_attribute_datatype
3245 )
3246 ),
3247 decode(qpip.product_uom_code, null, qppa.product_uom_code,
3248 decode(qpip.product_uom_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
3249 null,qpip.product_uom_code
3250 )
3251 ),
3252 decode(qpip.program_application_id, null, qppa.program_application_id,
3253 decode(qpip.program_application_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3254 null,qpip.program_application_id
3255 )
3256 ),
3257 decode(qpip.program_id, null, qppa.program_id,
3258 decode(qpip.program_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3259 null,qpip.program_id
3260 )
3261 ),
3262 decode(qpip.program_update_date, null, qppa.program_update_date,
3263 decode(qpip.program_update_date,QP_BULK_LOADER_PUB.G_NULL_DATE,
3264 null,qpip.program_update_date
3265 )
3266 ),
3267 decode(qpip.qualification_ind, null, qppa.qualification_ind,
3268 decode(qpip.qualification_ind,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3269 null,qpip.qualification_ind
3270 )
3271 ),
3272 --Bug# 5456164 RAVI START
3273 --If ID in ID_to_VAL is G_CHAR then set it null
3274 decode(qpip.product_attr_val_disp,
3275 QP_BULK_LOADER_PUB.G_NULL_CHAR, null,
3276 qpip.product_attr_val_disp
3277 ),
3278 decode(qpip.pricing_attr_value_from_disp,
3279 QP_BULK_LOADER_PUB.G_NULL_CHAR, null,
3280 qpip.pricing_attr_value_from_disp
3281 ),
3282 decode(qpip.pricing_attr_value_to_disp,
3283 QP_BULK_LOADER_PUB.G_NULL_CHAR, null,
3284 qpip.pricing_attr_value_to_disp
3285 )
3286 --Bug# 5456164 RAVI END
3287 from qp_pricing_attributes qppa,
3288 qp_list_headers_b qplh
3289 where -- CAUSES FTS AS NO INDEX ON PRICNG_ATTR_REF
3290 qpip.orig_sys_pricing_attr_ref = qppa.orig_sys_pricing_attr_ref
3291 and qppa.list_header_id = qplh.list_header_id
3292 and qplh.orig_system_header_ref=qpip.orig_sys_header_ref
3293 )
3294 where qpip.request_id = l_request_id
3295 and qpip.process_status_flag = 'P'
3296 and qpip.interface_action_code IN ('UPDATE','DELETE');
3297
3298 --Highest Price Break Value To '9999...999' if it is null
3299 UPDATE qp_interface_pricing_attribs qpip
3300 SET qpip.pricing_attr_value_to = '999999999999999'
3301 WHERE qpip.request_id = l_request_id
3302 AND EXISTS (
3303 SELECT 'YES'
3304 FROM qp_interface_list_lines qpil
3305 WHERE qpil.request_id = qpip.request_id
3306 AND qpip.orig_sys_line_ref = qpil.orig_sys_line_ref
3307 AND qpil.price_break_header_ref is not null
3308 AND qpip.pricing_attr_value_to is null
3309 );
3310
3311 --Value to ID Conversion of lines and pricing attributes
3312 QP_BULK_VALUE_TO_ID.Line(l_request_id);
3313
3314 QP_BULK_VALUE_TO_ID.Insert_Line_Error_Message(l_request_id);
3315
3316 -- ENH duplicate line check flag RAVI
3317 IF G_QP_ENABLE_DUP_LINE_CHECK='Y' THEN
3318 QP_BULK_VALIDATE.Dup_line_Check(l_request_id);
3319 END IF;
3320
3321 write_log('After duplicate Line Check');
3322
3323 /*----------------Breaking the lines among the threads -----------------------------------*/
3324
3325 --Number of lines to be processed
3326
3327 SELECT count(*) INTO l_no_of_lines
3328 FROM qp_interface_list_lines
3329 WHERE request_id = l_request_id
3330 AND process_status_flag = 'P'
3331 AND price_break_header_ref is null
3332 AND rltd_modifier_grp_type is null;
3333
3334 write_log('No of Lines to be processed:'||l_no_of_lines);
3335
3336 IF l_no_of_lines = 0 THEN
3337
3338 SELECT count(*) INTO l_count
3339 FROM (SELECT 'Y'
3340 FROM qp_interface_list_lines
3341 WHERE request_id = l_request_id
3342 AND process_status_flag = 'P'
3343 UNION
3344 SELECT 'Y'
3345 FROM qp_interface_pricing_attribs
3346 WHERE request_id = l_request_id
3347 AND process_status_flag = 'P');
3348
3349 IF l_count > 0 THEN
3350 l_no_of_lines := 1;
3351 ELSE
3352 l_no_of_lines := 0;
3353 write_log( 'No Lines to process');
3354 END IF;
3355 END IF;
3356
3357 IF l_no_of_lines = 0
3358 THEN
3362 END IF;
3359 write_log( 'No Lines to Process');
3360 CLEAN_UP_CODE(l_request_id);
3361 Return;
3363
3364 IF p_no_of_threads > l_no_of_lines
3365 THEN
3366 l_no_of_threads:=l_no_of_lines;
3367 END IF;
3368
3369
3370 l_batch_size := floor(l_no_of_lines/l_no_of_threads);
3371 l_mod := mod(l_no_of_lines, l_no_of_threads);
3372
3373 write_log( 'Batch Size: '||l_batch_size);
3374 write_log( 'Mod: '||l_mod);
3375
3376 FOR I in 1..l_no_of_threads
3377 LOOP
3378
3379 -- ENH duplicate line check flag RAVI
3380 l_new_request_id := fnd_request.submit_request('QP','QPXVBLK','Pricelist Import'||
3381 l_req_data, NULL, TRUE,
3382 'PRL',
3383 p_entity_name,p_process_id, p_process_type -- Bug No: 6235177, change NULL to p_process_typ
3384 ,p_process_parent,l_no_of_threads,
3385 'Y',l_request_id,g_qp_debug, G_QP_ENABLE_DUP_LINE_CHECK);
3386 write_log( 'Child '||I||' request_id: '||l_new_request_id);
3387
3388 IF l_new_request_id=0
3389 THEN
3390 FND_FILE.put_line(FND_FILE.OUTPUT, 'Error in spawning child process');
3391 retcode := 2;
3392 err_buff := FND_MESSAGE.GET;
3393 Return;
3394 ELSE
3395 G_thread_info_table(I).request_id := l_new_request_id;
3396
3397 IF I=p_no_of_threads
3398 THEN
3399 UPDATE qp_interface_list_lines
3400 SET request_id = l_new_request_id
3401 WHERE request_id = l_request_id
3402 AND process_status_flag = 'P'
3403 AND price_break_header_ref IS NULL
3404 AND rltd_modifier_grp_type IS NULL
3405 AND rownum <= l_batch_size+l_mod;
3406 ELSE
3407 UPDATE qp_interface_list_lines
3408 SET request_id = l_new_request_id
3409 WHERE request_id = l_request_id
3410 AND process_status_flag = 'P'
3411 AND price_break_header_ref IS NULL
3412 AND rltd_modifier_grp_type IS NULL
3413 AND rownum <= l_batch_size;
3414 END IF;
3415 G_thread_info_table(I).total_lines := SQL%ROWCOUNT;
3416 COMMIT;
3417 END IF;
3418
3419 END LOOP;
3420
3421 select hsecs into l_end_time from v$timer;
3422 write_log( 'End time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
3423 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Time taken for the header process 1 (sec):' ||(l_end_time - l_start_time)/100);
3424
3425 --Parents waits untill all the threads complete
3426 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
3427 request_data =>to_char(l_req_data_counter));
3428
3429
3430
3431 write_log( 'Parent process waiting for childs to complete....');
3432
3433 ELSE
3434 /*------------------------------- Child Thread processing lines -----------------------*/
3435
3436 --child threads request id
3437 write_log( '-----Begining of Child Process-----');
3438
3439 FND_PROFILE.Get('CONC_REQUEST_ID', l_request_id);
3440
3441 write_log( 'Request ID: '||l_request_id);
3442
3443 -- Update PBH child lines with request id.
3444
3445 select hsecs into l_start_time from v$timer;
3446 write_log( 'Start time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
3447
3448 -- Bug 5208480(5208112,4188784) RAVI
3449 UPDATE qp_interface_list_lines qpil
3450 SET qpil.request_id = l_request_id
3451 WHERE qpil.rowid IN
3452 ((SELECT c.rowid
3453 FROM qp_interface_list_lines p,qp_interface_list_lines c
3454 WHERE p.request_id = l_request_id
3455 AND c.request_id = p_request_id
3456 AND c.price_break_header_ref = p.orig_sys_line_ref
3457 AND c.rltd_modifier_grp_type = 'PRICE BREAK'
3458 AND c.process_status_flag = 'P'
3459 AND p.process_status_flag = 'P' )
3460 UNION
3461 (SELECT c.rowid
3462 FROM qp_interface_list_lines p,qp_interface_list_lines c
3463 WHERE p.process_status_flag = 'I'
3464 AND c.request_id = p_request_id
3465 AND c.price_break_header_ref = p.orig_sys_line_ref
3466 AND c.rltd_modifier_grp_type = 'PRICE BREAK'
3467 AND c.process_status_flag = 'P'))
3468 -- Bug 5208480(5208112,4188784) RAVI
3469 AND NOT EXISTS
3470 (
3471 select 1 from qp_list_lines qpll
3472 where qpil.interface_action_code = 'UPDATE'
3473 and qpil.orig_sys_line_ref = qpll.orig_sys_line_ref
3474 and qpll.list_line_id is not null
3475 and qpil.list_line_id <> qpll.list_line_id
3476 )
3477 ;
3478
3479 write_log( 'Number of PBH child lines picked: '||SQL%ROWCOUNT);
3480
3481 --ENH Update Functionality RAVI
3482 /**
3483 If interface action is update then load all null value interface columns
3484 with values from corresponding qp table columns
3485 **/
3486 -- Bug#5353889 RAVI START
3487 -- Comment the update as the updates are already done.
3488 /**
3489 UPDATE qp_interface_list_lines qpil
3490 SET ( accrual_conversion_rate,
3491 accrual_flag,
3492 accrual_qty,
3493 accrual_uom_code,
3494 arithmetic_operator,
3498 attribute12,
3495 attribute1,
3496 attribute10,
3497 attribute11,
3499 attribute13,
3500 attribute14,
3501 attribute15,
3502 attribute2,
3503 attribute3,
3504 attribute4,
3505 attribute5,
3506 attribute6,
3507 attribute7,
3508 attribute8,
3509 attribute9,
3510 automatic_flag,
3511 base_qty,
3512 base_uom_code,
3513 benefit_limit,
3514 benefit_price_list_line_id,
3515 benefit_qty,
3516 benefit_uom_code,
3517 charge_subtype_code,
3518 charge_type_code,
3519 comments,
3520 context,
3521 continuous_price_break_flag,
3522 created_by,
3523 creation_date,
3524 effective_period_uom,
3525 end_date_active,
3526 estim_accrual_rate,
3527 estim_gl_value,
3528 expiration_date,
3529 expiration_period_start_date,
3530 expiration_period_uom,
3531 generate_using_formula_id,
3532 include_on_returns_flag,
3533 incompatibility_grp_code,
3534 inventory_item_id,
3535 list_header_id,
3536 list_line_id,
3537 list_line_no,
3538 list_line_type_code,
3539 list_price,
3540 list_price_uom_code,
3541 modifier_level_code,
3542 net_amount_flag,
3543 number_effective_periods,
3544 number_expiration_periods,
3545 operand,
3546 organization_id,
3547 orig_sys_header_ref,
3548 orig_sys_line_ref,
3549 override_flag,
3550 percent_price,
3551 price_break_header_ref,--change
3552 price_break_type_code,
3553 price_by_formula_id,
3554 pricing_group_sequence,
3555 pricing_phase_id,
3556 primary_uom_flag,
3557 print_on_invoice_flag,
3558 product_precedence,
3559 program_application_id,
3560 program_id,
3561 program_update_date,
3562 proration_type_code,
3563 qualification_ind,
3564 rebate_transaction_type_code,
3565 recurring_flag,
3566 recurring_value,
3567 related_item_id,
3568 relationship_type_id,
3569 reprice_flag,
3570 revision,
3571 revision_date,
3572 revision_reason_code,
3573 rltd_modifier_grp_type,--change
3574 start_date_active,
3575 substitution_attribute,
3576 substitution_context,
3577 substitution_value
3578 ) = ( select
3579 decode(qpil.accrual_conversion_rate, null, qpll.accrual_conversion_rate,
3580 decode(qpil.accrual_conversion_rate,
3581 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3582 null,
3583 qpil.accrual_conversion_rate
3584 )
3585 ),
3586 decode(qpil.accrual_flag, null, qpll.accrual_flag,
3587 decode(qpil.accrual_flag,
3588 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3589 null,
3590 qpil.accrual_flag
3591 )
3592 ),
3593 decode(qpil.accrual_qty, null, qpll.accrual_qty,
3594 decode(qpil.accrual_qty,
3595 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3596 null,
3597 qpil.accrual_qty
3598 )
3599 ),
3600 decode(qpil.accrual_uom_code, null, qpll.accrual_uom_code,
3601 decode(qpil.accrual_uom_code,
3602 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3603 null,
3604 qpil.accrual_uom_code
3605 )
3606 ),
3607 decode(qpil.arithmetic_operator, null, qpll.arithmetic_operator,
3608 decode(qpil.arithmetic_operator,
3609 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3610 null,
3611 qpil.arithmetic_operator
3612 )
3613 ),
3614 decode(qpil.attribute1, null, qpll.attribute1,
3615 decode(qpil.attribute1,
3619 )
3616 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3617 null,
3618 qpil.attribute1
3620 ),
3621 decode(qpil.attribute10, null, qpll.attribute10,
3622 decode(qpil.attribute10,
3623 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3624 null,
3625 qpil.attribute10
3626 )
3627 ),
3628 decode(qpil.attribute11, null, qpll.attribute11,
3629 decode(qpil.attribute11,
3630 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3631 null,
3632 qpil.attribute11
3633 )
3634 ),
3635 decode(qpil.attribute12, null, qpll.attribute12,
3636 decode(qpil.attribute12,
3637 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3638 null,
3639 qpil.attribute12
3640 )
3641 ),
3642 decode(qpil.attribute13, null, qpll.attribute13,
3643 decode(qpil.attribute13,
3644 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3645 null,
3646 qpil.attribute13
3647 )
3648 ),
3649 decode(qpil.attribute14, null, qpll.attribute14,
3650 decode(qpil.attribute14,
3651 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3652 null,
3653 qpil.attribute14
3654 )
3655 ),
3656 decode(qpil.attribute15, null, qpll.attribute15,
3657 decode(qpil.attribute15,
3658 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3659 null,
3660 qpil.attribute15
3661 )
3662 ),
3663 decode(qpil.attribute2, null, qpll.attribute2,
3664 decode(qpil.attribute2,
3665 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3666 null,
3667 qpil.attribute2
3668 )
3669 ),
3670 decode(qpil.attribute3, null, qpll.attribute3,
3671 decode(qpil.attribute3,
3672 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3673 null,
3674 qpil.attribute3
3675 )
3676 ),
3677 decode(qpil.attribute4, null, qpll.attribute4,
3678 decode(qpil.attribute4,
3679 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3680 null,
3681 qpil.attribute4
3682 )
3683 ),
3684 decode(qpil.attribute5, null, qpll.attribute5,
3685 decode(qpil.attribute5,
3686 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3687 null,
3688 qpil.attribute5
3689 )
3690 ),
3691 decode(qpil.attribute6, null, qpll.attribute6,
3692 decode(qpil.attribute6,
3693 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3694 null,
3695 qpil.attribute6
3696 )
3697 ),
3698 decode(qpil.attribute7, null, qpll.attribute7,
3699 decode(qpil.attribute7,
3700 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3701 null,
3702 qpil.attribute7
3703 )
3704 ),
3705 decode(qpil.attribute8, null, qpll.attribute8,
3706 decode(qpil.attribute8,
3707 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3708 null,
3709 qpil.attribute8
3710 )
3711 ),
3712 decode(qpil.attribute9, null, qpll.attribute9,
3716 qpil.attribute9
3713 decode(qpil.attribute9,
3714 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3715 null,
3717 )
3718 ),
3719 decode(qpil.automatic_flag, null, qpll.automatic_flag,
3720 decode(qpil.automatic_flag,
3721 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3722 null,
3723 qpil.automatic_flag
3724 )
3725 ),
3726 decode(qpil.base_qty, null, qpll.base_qty,
3727 decode(qpil.base_qty,
3728 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3729 null,
3730 qpil.base_qty
3731 )
3732 ),
3733 decode(qpil.base_uom_code, null, qpll.base_uom_code,
3734 decode(qpil.base_uom_code,
3735 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3736 null,
3737 qpil.base_uom_code
3738 )
3739 ),
3740 decode(qpil.benefit_limit, null, qpll.benefit_limit,
3741 decode(qpil.benefit_limit,
3742 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3743 null,
3744 qpil.benefit_limit
3745 )
3746 ),
3747 decode(qpil.benefit_price_list_line_id, null, qpll.benefit_price_list_line_id,
3748 decode(qpil.benefit_price_list_line_id,
3749 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3750 null,
3751 qpil.benefit_price_list_line_id
3752 )
3753 ),
3754 decode(qpil.benefit_qty, null, qpll.benefit_qty,
3755 decode(qpil.benefit_qty,
3756 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3757 null,
3758 qpil.benefit_qty
3759 )
3760 ),
3761 decode(qpil.benefit_uom_code, null, qpll.benefit_uom_code,
3762 decode(qpil.benefit_uom_code,
3763 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3764 null,
3765 qpil.benefit_uom_code
3766 )
3767 ),
3768 decode(qpil.charge_subtype_code, null, qpll.charge_subtype_code,
3769 decode(qpil.charge_subtype_code,
3770 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3771 null,
3772 qpil.charge_subtype_code
3773 )
3774 ),
3775 decode(qpil.charge_type_code, null, qpll.charge_type_code,
3776 decode(qpil.charge_type_code,
3777 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3778 null,
3779 qpil.charge_type_code
3780 )
3781 ),
3782 decode(qpil.comments, null, qpll.comments,
3783 decode(qpil.comments,
3784 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3785 null,
3786 qpil.comments
3787 )
3788 ),
3789 decode(qpil.context, null, qpll.context,
3790 decode(qpil.context,
3791 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3792 null,
3793 qpil.context
3794 )
3795 ),
3796 decode(qpil.continuous_price_break_flag, null, qpll.continuous_price_break_flag,
3797 decode(qpil.continuous_price_break_flag,
3798 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3799 null,
3800 qpil.continuous_price_break_flag
3801 )
3802 ),
3803 decode(qpil.created_by, null, qpll.created_by,
3804 decode(qpil.created_by,
3808 )
3805 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3806 null,
3807 qpil.created_by
3809 ),
3810 decode(qpil.creation_date, null, qpll.creation_date,
3811 decode(qpil.creation_date,
3812 QP_BULK_LOADER_PUB.G_NULL_DATE,
3813 null,
3814 qpil.creation_date
3815 )
3816 ),
3817 decode(qpil.effective_period_uom, null, qpll.effective_period_uom,
3818 decode(qpil.effective_period_uom,
3819 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3820 null,
3821 qpil.effective_period_uom
3822 )
3823 ),
3824 decode(qpil.end_date_active, null, qpll.end_date_active,
3825 decode(qpil.end_date_active,
3826 QP_BULK_LOADER_PUB.G_NULL_DATE,
3827 null,
3828 qpil.end_date_active
3829 )
3830 ),
3831 decode(qpil.estim_accrual_rate, null, qpll.estim_accrual_rate,
3832 decode(qpil.estim_accrual_rate,
3833 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3834 null,
3835 qpil.estim_accrual_rate
3836 )
3837 ),
3838 decode(qpil.estim_gl_value, null, qpll.estim_gl_value,
3839 decode(qpil.estim_gl_value,
3840 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3841 null,
3842 qpil.estim_gl_value
3843 )
3844 ),
3845 decode(qpil.expiration_date, null, qpll.expiration_date,
3846 decode(qpil.expiration_date,
3847 QP_BULK_LOADER_PUB.G_NULL_DATE,
3848 null,
3849 qpil.expiration_date
3850 )
3851 ),
3852 decode(qpil.expiration_period_start_date, null, qpll.expiration_period_start_date,
3853 decode(qpil.expiration_period_start_date,
3854 QP_BULK_LOADER_PUB.G_NULL_DATE,
3855 null,
3856 qpil.expiration_period_start_date
3857 )
3858 ),
3859 decode(qpil.expiration_period_uom, null, qpll.expiration_period_uom,
3860 decode(qpil.expiration_period_uom,
3861 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3862 null,
3863 qpil.expiration_period_uom
3864 )
3865 ),
3866 decode(qpil.generate_using_formula_id, null, qpll.generate_using_formula_id,
3867 decode(qpil.generate_using_formula_id,
3868 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3869 null,
3870 qpil.generate_using_formula_id
3871 )
3872 ),
3873 decode(qpil.include_on_returns_flag, null, qpll.include_on_returns_flag,
3874 decode(qpil.include_on_returns_flag,
3875 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3876 null,
3877 qpil.include_on_returns_flag
3878 )
3879 ),
3880 decode(qpil.incompatibility_grp_code, null, qpll.incompatibility_grp_code,
3881 decode(qpil.incompatibility_grp_code,
3882 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3883 null,
3884 qpil.incompatibility_grp_code
3885 )
3886 ),
3887 decode(qpil.inventory_item_id, null, qpll.inventory_item_id,
3888 decode(qpil.inventory_item_id,
3889 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3890 null,
3891 qpil.inventory_item_id
3892 )
3893 ),
3894 decode(qpil.list_header_id, null, qpll.list_header_id,
3895 decode(qpil.list_header_id,
3896 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3900 ),
3897 null,
3898 qpil.list_header_id
3899 )
3901 decode(qpil.list_line_id, null, qpll.list_line_id,
3902 decode(qpil.list_line_id,
3903 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3904 null,
3905 qpil.list_line_id
3906 )
3907 ),
3908 decode(qpil.list_line_no, null, qpll.list_line_no,
3909 decode(qpil.list_line_no,
3910 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3911 null,
3912 qpil.list_line_no
3913 )
3914 ),
3915 decode(qpil.list_line_type_code, null, qpll.list_line_type_code,
3916 decode(qpil.list_line_type_code,
3917 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3918 null,
3919 qpil.list_line_type_code
3920 )
3921 ),
3922 decode(qpil.list_price, null, qpll.list_price,
3923 decode(qpil.list_price,
3924 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3925 null,
3926 qpil.list_price
3927 )
3928 ),
3929 decode(qpil.list_price_uom_code, null, qpll.list_price_uom_code,
3930 decode(qpil.list_price_uom_code,
3931 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3932 null,
3933 qpil.list_price_uom_code
3934 )
3935 ),
3936 decode(qpil.modifier_level_code, null, qpll.modifier_level_code,
3937 decode(qpil.modifier_level_code,
3938 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3939 null,
3940 qpil.modifier_level_code
3941 )
3942 ),
3943 decode(qpil.net_amount_flag, null, qpll.net_amount_flag,
3944 decode(qpil.net_amount_flag,
3945 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3946 null,
3947 qpil.net_amount_flag
3948 )
3949 ),
3950 decode(qpil.number_effective_periods, null, qpll.number_effective_periods,
3951 decode(qpil.number_effective_periods,
3952 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3953 null,
3954 qpil.number_effective_periods
3955 )
3956 ),
3957 decode(qpil.number_expiration_periods, null, qpll.number_expiration_periods,
3958 decode(qpil.number_expiration_periods,
3959 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3960 null,
3961 qpil.number_expiration_periods
3962 )
3963 ),
3964 decode(qpil.operand, null, qpll.operand,
3965 decode(qpil.operand,
3966 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3967 null,
3968 qpil.operand
3969 )
3970 ),
3971 decode(qpil.organization_id, null, qpll.organization_id,
3972 decode(qpil.organization_id,
3973 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
3974 null,
3975 qpil.organization_id
3976 )
3977 ),
3978 decode(qpil.orig_sys_header_ref, null, qpll.orig_sys_header_ref,
3979 decode(qpil.orig_sys_header_ref,
3980 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3981 null,
3982 qpil.orig_sys_header_ref
3983 )
3984 ),
3985 decode(qpil.orig_sys_line_ref, null, qpll.orig_sys_line_ref,
3986 decode(qpil.orig_sys_line_ref,
3987 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3988 null,
3992 decode(qpil.override_flag, null, qpll.override_flag,
3989 qpil.orig_sys_line_ref
3990 )
3991 ),
3993 decode(qpil.override_flag,
3994 QP_BULK_LOADER_PUB.G_NULL_CHAR,
3995 null,
3996 qpil.override_flag
3997 )
3998 ),
3999 decode(qpil.percent_price, null, qpll.percent_price,
4000 decode(qpil.percent_price,
4001 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4002 null,
4003 qpil.percent_price
4004 )
4005 ),
4006 decode(qpil.price_break_header_ref, null,
4007 (select pll.orig_sys_line_ref
4008 from qp_list_lines pll, qp_rltd_modifiers rm
4009 where rm.to_rltd_modifier_id = qpll.list_line_id
4010 and rm.from_rltd_modifier_id = pll.list_line_id
4011 and rm.RLTD_MODIFIER_GRP_TYPE='PRICE BREAK'
4012 ),
4013 decode(qpil.price_break_header_ref,
4014 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4015 null,
4016 qpil.price_break_header_ref
4017 )
4018 ),
4019 decode(qpil.price_break_type_code, null, qpll.price_break_type_code,
4020 decode(qpil.price_break_type_code,
4021 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4022 null,
4023 qpil.price_break_type_code
4024 )
4025 ),
4026 decode(qpil.price_by_formula_id, null, qpll.price_by_formula_id,
4027 decode(qpil.price_by_formula_id,
4028 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4029 null,
4030 qpil.price_by_formula_id
4031 )
4032 ),
4033 decode(qpil.pricing_group_sequence, null, qpll.pricing_group_sequence,
4034 decode(qpil.pricing_group_sequence,
4035 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4036 null,
4037 qpil.pricing_group_sequence
4038 )
4039 ),
4040 decode(qpil.pricing_phase_id, null, qpll.pricing_phase_id,
4041 decode(qpil.pricing_phase_id,
4042 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4043 null,
4044 qpil.pricing_phase_id
4045 )
4046 ),
4047 decode(qpil.primary_uom_flag, null, qpll.primary_uom_flag,
4048 decode(qpil.primary_uom_flag,
4049 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4050 null,
4051 qpil.primary_uom_flag
4052 )
4053 ),
4054 decode(qpil.print_on_invoice_flag, null, qpll.print_on_invoice_flag,
4055 decode(qpil.print_on_invoice_flag,
4056 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4057 null,
4058 qpil.print_on_invoice_flag
4059 )
4060 ),
4061 decode(qpil.product_precedence, null, qpll.product_precedence,
4062 decode(qpil.product_precedence,
4063 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4064 null,
4065 qpil.product_precedence
4066 )
4067 ),
4068 decode(qpil.program_application_id, null, qpll.program_application_id,
4069 decode(qpil.program_application_id,
4070 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4071 null,
4072 qpil.program_application_id
4073 )
4074 ),
4075 decode(qpil.program_id, null, qpll.program_id,
4076 decode(qpil.program_id,
4077 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4078 null,
4079 qpil.program_id
4083 decode(qpil.program_update_date,
4080 )
4081 ),
4082 decode(qpil.program_update_date, null, qpll.program_update_date,
4084 QP_BULK_LOADER_PUB.G_NULL_DATE,
4085 null,
4086 qpil.program_update_date
4087 )
4088 ),
4089 decode(qpil.proration_type_code, null, qpll.proration_type_code,
4090 decode(qpil.proration_type_code,
4091 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4092 null,
4093 qpil.proration_type_code
4094 )
4095 ),
4096 decode(qpil.qualification_ind, null, qpll.qualification_ind,
4097 decode(qpil.qualification_ind,
4098 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4099 null,
4100 qpil.qualification_ind
4101 )
4102 ),
4103 decode(qpil.rebate_transaction_type_code, null, qpll.rebate_transaction_type_code,
4104 decode(qpil.rebate_transaction_type_code,
4105 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4106 null,
4107 qpil.rebate_transaction_type_code
4108 )
4109 ),
4110 decode(qpil.recurring_flag, null, qpll.recurring_flag,
4111 decode(qpil.recurring_flag,
4112 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4113 null,
4114 qpil.recurring_flag
4115 )
4116 ),
4117 decode(qpil.recurring_value, null, qpll.recurring_value,
4118 decode(qpil.recurring_value,
4119 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4120 null,
4121 qpil.recurring_value
4122 )
4123 ),
4124 decode(qpil.related_item_id, null, qpll.related_item_id,
4125 decode(qpil.related_item_id,
4126 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4127 null,
4128 qpil.related_item_id
4129 )
4130 ),
4131 decode(qpil.relationship_type_id, null, qpll.relationship_type_id,
4132 decode(qpil.relationship_type_id,
4133 QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4134 null,
4135 qpil.relationship_type_id
4136 )
4137 ),
4138 decode(qpil.reprice_flag, null, qpll.reprice_flag,
4139 decode(qpil.reprice_flag,
4140 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4141 null,
4142 qpil.reprice_flag
4143 )
4144 ),
4145 decode(qpil.revision, null, qpll.revision,
4146 decode(qpil.revision,
4147 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4148 null,
4149 qpil.revision
4150 )
4151 ),
4152 decode(qpil.revision_date, null, qpll.revision_date,
4153 decode(qpil.revision_date,
4154 QP_BULK_LOADER_PUB.G_NULL_DATE,
4155 null,
4156 qpil.revision_date
4157 )
4158 ),
4159 decode(qpil.revision_reason_code, null, qpll.revision_reason_code,
4160 decode(qpil.revision_reason_code,
4161 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4162 null,
4163 qpil.revision_reason_code
4164 )
4165 ),
4166 decode(qpil.rltd_modifier_grp_type, null,
4167 (select rm.RLTD_MODIFIER_GRP_TYPE
4168 from qp_list_lines pll, qp_rltd_modifiers rm
4169 where rm.to_rltd_modifier_id = qpll.list_line_id
4170 and rm.from_rltd_modifier_id = pll.list_line_id
4171 and rm.RLTD_MODIFIER_GRP_TYPE='PRICE BREAK'
4175 null,
4172 ),
4173 decode(qpil.rltd_modifier_grp_type,
4174 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4176 qpil.rltd_modifier_grp_type
4177 )
4178 ),
4179 decode(qpil.start_date_active, null, qpll.start_date_active,
4180 decode(qpil.start_date_active,
4181 QP_BULK_LOADER_PUB.G_NULL_DATE,
4182 null,
4183 qpil.start_date_active
4184 )
4185 ),
4186 decode(qpil.substitution_attribute, null, qpll.substitution_attribute,
4187 decode(qpil.substitution_attribute,
4188 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4189 null,
4190 qpil.substitution_attribute
4191 )
4192 ),
4193 decode(qpil.substitution_context, null, qpll.substitution_context,
4194 decode(qpil.substitution_context,
4195 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4196 null,
4197 qpil.substitution_context
4198 )
4199 ),
4200 decode(qpil.substitution_value, null, qpll.substitution_value,
4201 decode(qpil.substitution_value,
4202 QP_BULK_LOADER_PUB.G_NULL_CHAR,
4203 null,
4204 qpil.substitution_value
4205 )
4206 )
4207 from qp_list_headers qplh,
4208 qp_list_lines qpll
4209 where -- CAUSES FTS AS NO INDEX ON LINE_REF
4210 qpil.orig_sys_line_ref = qpll.orig_sys_line_ref
4211 and qpll.list_header_id = qplh.list_header_id
4212 and qplh.orig_system_header_ref=qpil.orig_sys_header_ref
4213 )
4214 where qpil.request_id = l_request_id
4215 and qpil.process_status_flag = 'P'
4216 and qpil.interface_action_code = 'UPDATE';
4217 **/
4218 -- Bug#5353889 RAVI END
4219
4220 -- Update Pricing attributes records with request id
4221 UPDATE qp_interface_pricing_attribs qpip
4222 SET qpip.request_id = l_request_id
4223 WHERE qpip.rowid IN
4224 ((SELECT /*+ index(PA QP_INTERFACE_PRCNG_ATTRIBS_N4)*/ pa.ROWID --7433219
4225 FROM qp_interface_list_lines l, qp_interface_pricing_attribs pa
4226 WHERE l.request_id = l_request_id
4227 AND (pa.request_id = p_request_id or pa.request_id is NULL)
4228 AND pa.process_status_flag = 'P'
4229 AND l.process_status_flag = 'P'
4230 -- Begin Bug No: 6235177
4231 AND decode(p_process_id, null, pa.process_flag,'Y') = 'Y'
4232 AND nvl(pa.process_id, 0) = nvl(p_process_id, nvl(pa.process_id, 0))
4233 AND nvl(pa.process_type, ' ') = nvl(p_process_type, nvl(pa.process_type, ' '))
4234 -- End Bug No: 6235177
4235 AND pa.orig_sys_line_ref = l.orig_sys_line_ref)
4236 UNION
4237 (SELECT /*+ index(PA QP_INTERFACE_PRCNG_ATTRIBS_N4)*/ pa.ROWID --7433219
4238 FROM qp_interface_list_lines l, qp_interface_pricing_attribs pa
4239 WHERE l.process_status_flag = 'I'
4240 AND (pa.request_id = p_request_id or pa.request_id is NULL)
4241 AND pa.process_status_flag = 'P'
4242 -- Begin Bug No: 6235177
4243 AND decode(p_process_id, null,pa.process_flag,'Y') = 'Y'
4244 AND nvl(pa.process_id,0) = nvl(p_process_id, nvl(pa.process_id,0))
4245 AND nvl(pa.process_type,' ') = nvl(p_process_type, nvl(pa.process_type,' '))
4246 -- End Bug No: 6235177
4247 AND pa.orig_sys_line_ref = l.orig_sys_line_ref))
4248 -- Bug 5208480(5208112,4188784) RAVI
4249 AND NOT EXISTS
4250 (
4251 select 1 from qp_pricing_attributes qppa
4252 where qpip.interface_action_code = 'UPDATE'
4253 and qpip.orig_sys_line_ref = qppa.orig_sys_line_ref
4254 and qppa.list_line_id is not null
4255 and qpip.list_line_id <> qppa.list_line_id
4256 )
4257 ;
4258
4259 write_log('Number of Pricing Attributes picked: '||sql%rowcount);
4260
4261 --ENH Update Functionality RAVI
4262 /**
4263 If interface action is update then load all null value interface columns
4264 with values from corresponding qp table columns
4265 **/
4266 -- Bug#5353889 RAVI START
4267 -- Comment the update as the updates are already done.
4268 /**
4269 UPDATE qp_interface_pricing_attribs qpip
4270 SET ( accumulate_flag,
4271 attribute_grouping_no,
4272 attribute1,
4273 attribute10,
4274 attribute11,
4275 attribute12,
4276 attribute13,
4277 attribute14,
4278 attribute15,
4279 attribute2,
4280 attribute3,
4284 attribute7,
4281 attribute4,
4282 attribute5,
4283 attribute6,
4285 attribute8,
4286 attribute9,
4287 comparison_operator_code,
4288 context,
4289 created_by,
4290 excluder_flag,
4291 list_header_id,
4292 list_line_id,
4293 orig_sys_header_ref,
4294 orig_sys_line_ref,
4295 orig_sys_pricing_attr_ref,
4296 pricing_attr_value_from,
4297 pricing_attr_value_from_number,
4298 pricing_attr_value_to,
4299 pricing_attr_value_to_number,
4300 pricing_attribute,
4301 pricing_attribute_context,
4302 pricing_attribute_datatype,
4303 pricing_attribute_id,
4304 pricing_phase_id,
4305 product_attr_value,
4306 product_attribute,
4307 product_attribute_context,
4308 product_attribute_datatype,
4309 product_uom_code,
4310 program_application_id,
4311 program_id,
4312 program_update_date,
4313 qualification_ind
4314 ) = ( select
4315 decode(qpip.accumulate_flag, null, qppa.accumulate_flag,
4316 decode(qpip.accumulate_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4317 null,qpip.accumulate_flag
4318 )
4319 ),
4320 decode(qpip.attribute_grouping_no, null, qppa.attribute_grouping_no,
4321 decode(qpip.attribute_grouping_no,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4322 null,qpip.attribute_grouping_no
4323 )
4324 ),
4325 decode(qpip.attribute1, null, qppa.attribute1,
4326 decode(qpip.attribute1,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4327 null,qpip.attribute1
4328 )
4329 ),
4330 decode(qpip.attribute10, null, qppa.attribute10,
4331 decode(qpip.attribute10,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4332 null,qpip.attribute10
4333 )
4334 ),
4335 decode(qpip.attribute11, null, qppa.attribute11,
4336 decode(qpip.attribute11,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4337 null,qpip.attribute11
4338 )
4339 ),
4340 decode(qpip.attribute12, null, qppa.attribute12,
4341 decode(qpip.attribute12,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4342 null,qpip.attribute12
4343 )
4344 ),
4345 decode(qpip.attribute13, null, qppa.attribute13,
4346 decode(qpip.attribute13,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4347 null,qpip.attribute13
4348 )
4349 ),
4350 decode(qpip.attribute14, null, qppa.attribute14,
4351 decode(qpip.attribute14,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4352 null,qpip.attribute14
4353 )
4354 ),
4355 decode(qpip.attribute15, null, qppa.attribute15,
4356 decode(qpip.attribute15,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4357 null,qpip.attribute15
4358 )
4359 ),
4360 decode(qpip.attribute2, null, qppa.attribute2,
4361 decode(qpip.attribute2,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4362 null,qpip.attribute2
4363 )
4364 ),
4365 decode(qpip.attribute3, null, qppa.attribute3,
4366 decode(qpip.attribute3,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4367 null,qpip.attribute3
4368 )
4369 ),
4370 decode(qpip.attribute4, null, qppa.attribute4,
4371 decode(qpip.attribute4,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4372 null,qpip.attribute4
4373 )
4374 ),
4375 decode(qpip.attribute5, null, qppa.attribute5,
4376 decode(qpip.attribute5,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4377 null,qpip.attribute5
4378 )
4379 ),
4380 decode(qpip.attribute6, null, qppa.attribute6,
4381 decode(qpip.attribute6,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4382 null,qpip.attribute6
4383 )
4384 ),
4385 decode(qpip.attribute7, null, qppa.attribute7,
4386 decode(qpip.attribute7,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4387 null,qpip.attribute7
4388 )
4389 ),
4390 decode(qpip.attribute8, null, qppa.attribute8,
4391 decode(qpip.attribute8,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4392 null,qpip.attribute8
4393 )
4394 ),
4395 decode(qpip.attribute9, null, qppa.attribute9,
4396 decode(qpip.attribute9,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4397 null,qpip.attribute9
4398 )
4399 ),
4400 decode(qpip.comparison_operator_code, null, qppa.comparison_operator_code,
4401 decode(qpip.comparison_operator_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4402 null,qpip.comparison_operator_code
4403 )
4404 ),
4405 decode(qpip.context, null, qppa.context,
4406 decode(qpip.context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4407 null,qpip.context
4408 )
4409 ),
4410 decode(qpip.created_by, null, qppa.created_by,
4411 decode(qpip.created_by,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4412 null,qpip.created_by
4413 )
4414 ),
4415 decode(qpip.excluder_flag, null, qppa.excluder_flag,
4416 decode(qpip.excluder_flag,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4417 null,qpip.excluder_flag
4418 )
4419 ),
4420 decode(qpip.list_header_id, null, qppa.list_header_id,
4424 ),
4421 decode(qpip.list_header_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4422 null,qpip.list_header_id
4423 )
4425 decode(qpip.list_line_id, null, qppa.list_line_id,
4426 decode(qpip.list_line_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4427 null,qpip.list_line_id
4428 )
4429 ),
4430 decode(qpip.orig_sys_header_ref, null, qppa.orig_sys_header_ref,
4431 decode(qpip.orig_sys_header_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4432 null,qpip.orig_sys_header_ref
4433 )
4434 ),
4435 decode(qpip.orig_sys_line_ref, null, qppa.orig_sys_line_ref,
4436 decode(qpip.orig_sys_line_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4437 null,qpip.orig_sys_line_ref
4438 )
4439 ),
4440 decode(qpip.orig_sys_pricing_attr_ref, null, qppa.orig_sys_pricing_attr_ref,
4441 decode(qpip.orig_sys_pricing_attr_ref,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4442 null,qpip.orig_sys_pricing_attr_ref
4443 )
4444 ),
4445 decode(qpip.pricing_attr_value_from, null, qppa.pricing_attr_value_from,
4446 decode(qpip.pricing_attr_value_from,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4447 null,qpip.pricing_attr_value_from
4448 )
4449 ),
4450 decode(qpip.pricing_attr_value_from_number, null, qppa.pricing_attr_value_from_number,
4451 decode(qpip.pricing_attr_value_from_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4452 null,qpip.pricing_attr_value_from_number
4453 )
4454 ),
4455 decode(qpip.pricing_attr_value_to, null, qppa.pricing_attr_value_to,
4456 decode(qpip.pricing_attr_value_to,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4457 null,qpip.pricing_attr_value_to
4458 )
4459 ),
4460 decode(qpip.pricing_attr_value_to_number, null, qppa.pricing_attr_value_to_number,
4461 decode(qpip.pricing_attr_value_to_number,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4462 null,qpip.pricing_attr_value_to_number
4463 )
4464 ),
4465 decode(qpip.pricing_attribute, null, qppa.pricing_attribute,
4466 decode(qpip.pricing_attribute,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4467 null,qpip.pricing_attribute
4468 )
4469 ),
4470 decode(qpip.pricing_attribute_context, null, qppa.pricing_attribute_context,
4471 decode(qpip.pricing_attribute_context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4472 null,qpip.pricing_attribute_context
4473 )
4474 ),
4475 decode(qpip.pricing_attribute_datatype, null, qppa.pricing_attribute_datatype,
4476 decode(qpip.pricing_attribute_datatype,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4477 null,qpip.pricing_attribute_datatype
4478 )
4479 ),
4480 decode(qpip.pricing_attribute_id, null, qppa.pricing_attribute_id,
4481 decode(qpip.pricing_attribute_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4482 null,qpip.pricing_attribute_id
4483 )
4484 ),
4485 decode(qpip.pricing_phase_id, null, qppa.pricing_phase_id,
4486 decode(qpip.pricing_phase_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4487 null,qpip.pricing_phase_id
4488 )
4489 ),
4490 decode(qpip.product_attr_value, null, qppa.product_attr_value,
4491 decode(qpip.product_attr_value,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4492 null,qpip.product_attr_value
4493 )
4494 ),
4495 decode(qpip.product_attribute, null, qppa.product_attribute,
4496 decode(qpip.product_attribute,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4497 null,qpip.product_attribute
4498 )
4499 ),
4500 decode(qpip.product_attribute_context, null, qppa.product_attribute_context,
4501 decode(qpip.product_attribute_context,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4502 null,qpip.product_attribute_context
4503 )
4504 ),
4505 decode(qpip.product_attribute_datatype, null, qppa.product_attribute_datatype,
4506 decode(qpip.product_attribute_datatype,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4507 null,qpip.product_attribute_datatype
4508 )
4509 ),
4510 decode(qpip.product_uom_code, null, qppa.product_uom_code,
4511 decode(qpip.product_uom_code,QP_BULK_LOADER_PUB.G_NULL_CHAR,
4512 null,qpip.product_uom_code
4513 )
4514 ),
4515 decode(qpip.program_application_id, null, qppa.program_application_id,
4516 decode(qpip.program_application_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4517 null,qpip.program_application_id
4518 )
4519 ),
4520 decode(qpip.program_id, null, qppa.program_id,
4521 decode(qpip.program_id,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4522 null,qpip.program_id
4523 )
4524 ),
4525 decode(qpip.program_update_date, null, qppa.program_update_date,
4526 decode(qpip.program_update_date,QP_BULK_LOADER_PUB.G_NULL_DATE,
4527 null,qpip.program_update_date
4528 )
4529 ),
4530 decode(qpip.qualification_ind, null, qppa.qualification_ind,
4531 decode(qpip.qualification_ind,QP_BULK_LOADER_PUB.G_NULL_NUMBER,
4532 null,qpip.qualification_ind
4533 )
4534 )
4535 from qp_pricing_attributes qppa,
4536 qp_list_headers_b qplh
4537 where -- CAUSES FTS AS NO INDEX ON PRICNG_ATTR_REF
4538 qpip.orig_sys_pricing_attr_ref = qppa.orig_sys_pricing_attr_ref
4539 and qppa.list_header_id = qplh.list_header_id
4540 and qplh.orig_system_header_ref=qpip.orig_sys_header_ref
4541 )
4542 where qpip.request_id = l_request_id
4546 -- Bug#5353889 RAVI END
4543 and qpip.process_status_flag = 'P'
4544 and qpip.interface_action_code IN ('UPDATE','DELETE');
4545 **/
4547
4548 QP_BULK_VALIDATE.Attribute_Line(l_request_id);
4549
4550 QP_BULK_VALIDATE.Mark_Errored_Interface_Record
4551 ( p_table_type=>'LINE',
4552 p_request_id=>l_request_id);
4553
4554 QP_BULK_VALIDATE.Mark_Errored_Interface_Record
4555 ( p_table_type=>'PRICING_ATTRIBS',
4556 p_request_id=>l_request_id);
4557
4558 Process_line(l_request_id,p_process_parent); -- 6028305
4559
4560 write_log('After Process Line');
4561 /* Commented for bug no 6028305
4562 Process_pricing_attr(l_request_id);
4563
4564 write_log('After Process Pricing attribute');
4565 */
4566 --check that each line inserted had atleast one null pricing context/attr record
4567 validate_lines(l_request_id);
4568
4569 /* Commented for bug No 6028305
4570 --Clean up code
4571 write_log( 'Process Parent: '|| p_process_parent);
4572 IF p_process_parent = 'N' THEN
4573 Delete_Errored_Records_Parents(l_request_id); --deleteing upto one level
4574 END IF;
4575 */
4576
4577 SELECT count(*) INTO l_suc_line
4578 FROM qp_interface_list_lines
4579 WHERE request_id = l_request_id
4580 AND process_status_flag = 'I';
4581
4582 SELECT count(*) INTO l_err_line
4583 FROM qp_interface_list_lines
4584 WHERE request_id = l_request_id
4585 AND process_status_flag IS NULL;
4586
4587 SELECT count(*) INTO l_suc_pr_attr
4588 FROM qp_interface_pricing_attribs
4589 WHERE request_id = l_request_id
4590 AND process_status_flag = 'I';
4591
4592 SELECT count(*) INTO l_err_pr_attr
4593 FROM qp_interface_pricing_attribs
4594 WHERE request_id = l_request_id
4595 AND process_status_flag IS NULL;
4596
4597 purge(l_request_id);
4598
4599 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Number Of Successfully Processed Lines: '||l_suc_line);
4600 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Number Of Errored Lines: '||l_err_line);
4601 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Number Of Successfully Processed Pricing Attr: '||l_suc_pr_attr);
4602 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Number Of Errored Pricing Attr: '||l_err_pr_attr);
4603 ERRORS_TO_OUTPUT(l_request_id);
4604
4605 select hsecs into l_end_time from v$timer;
4606 write_log( 'End time :'||to_char(sysdate,'MM/DD/YYYY:HH:MM:SS'));
4607 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Time taken for the line process (sec):' ||(l_end_time - l_start_time)/100);
4608
4609 END IF;
4610
4611 EXCEPTION
4612 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4613 retcode := 2;
4614 write_log('Unexpected error '||substr(sqlerrm,1200));
4615 write_log( ' ');
4616 oe_debug_pub.add(sqlerrm);
4617 err_buff := FND_MESSAGE.GET;
4618 WHEN OTHERS THEN
4619 retcode := 2;
4620 write_log('Unexpected error '||substr(sqlerrm,1200));
4621 write_log( ' ');
4622 oe_debug_pub.add(sqlerrm);
4623 err_buff := FND_MESSAGE.GET;
4624
4625 END LOAD_LISTS;
4626
4627
4628 -- PROCESS HEADER API performs complete processing
4629 -- of header including entity validation and Insert/Update/Delete oprerations
4630
4631
4632 PROCEDURE PROCESS_HEADER
4633 (p_request_id NUMBER)
4634 IS
4635
4636 BEGIN
4637
4638 write_log('Inside Process Header');
4639
4640 QP_BULK_UTIL.LOAD_INS_HEADER
4641 (p_request_id=>p_request_id
4642 ,x_header_rec=>G_INS_HEADER_REC);
4643
4644 write_log('Records loaded for INS:'||G_INS_HEADER_REC.orig_sys_header_ref.count);
4645
4646 IF G_INS_HEADER_REC.orig_sys_header_ref.count>0 THEN
4647
4648 QP_BULK_VALIDATE.ENTITY_HEADER(p_header_rec=>G_INS_HEADER_REC);
4649
4650 QP_BULK_UTIL.Insert_Header(p_header_rec=>G_INS_HEADER_REC);
4651 QP_BULK_MSG.Save_Message(p_request_id);
4652
4653
4654 FORALL I IN G_INS_HEADER_REC.orig_sys_header_ref.FIRST..
4655 G_INS_HEADER_REC.orig_sys_header_ref.LAST
4656
4657 UPDATE qp_interface_list_headers
4658 SET process_status_flag = decode(G_INS_HEADER_REC.process_status_flag(I),'P','I',G_INS_HEADER_REC.process_status_flag(I))
4659 WHERE nvl(orig_sys_header_ref,'*') = nvl(G_INS_HEADER_REC.orig_sys_header_ref(I),'*')
4660 AND request_id=p_request_id; -- Bug No: 6235177
4661
4662 write_log('Records Updated with process_status_flag: ' || sql%rowcount);
4663
4664 END IF;
4665
4666 QP_BULK_UTIL.LOAD_UDT_HEADER
4667 (p_request_id => p_request_id
4668 ,x_header_rec => G_UDT_HEADER_REC);
4669
4670 write_log('Records loaded for UDT:'||G_UDT_HEADER_REC.orig_sys_header_ref.count);
4671
4672 IF G_UDT_HEADER_REC.orig_sys_header_ref.count>0 THEN
4673
4674 QP_BULK_VALIDATE.ENTITY_HEADER(p_header_rec=>G_UDT_HEADER_REC);
4675
4676 QP_BULK_UTIL.Update_Header(p_header_rec=>G_UDT_HEADER_REC);
4677 QP_BULK_MSG.Save_Message(p_request_id);
4678
4679 FORALL I IN G_UDT_HEADER_REC.orig_sys_header_ref.FIRST..
4680 G_UDT_HEADER_REC.orig_sys_header_ref.LAST
4681
4682 UPDATE qp_interface_list_headers
4683 SET process_status_flag = decode(G_UDT_HEADER_REC.process_status_flag(I),'P','I',G_UDT_HEADER_REC.process_status_flag(I))
4687 write_log('Records Updated with process_status_flag:' || sql%rowcount);
4684 WHERE nvl(orig_sys_header_ref,'*') = nvl(G_UDT_HEADER_REC.orig_sys_header_ref(I),'*')
4685 AND request_id = p_request_id; -- Bug No: 6235177
4686
4688 END IF;
4689
4690
4691 QP_BULK_UTIL.Delete_Header(p_request_id);
4692
4693 QP_BULK_MSG.Save_Message(p_request_id);
4694
4695 write_log('Leaving Process Header');
4696 COMMIT;
4697
4698 EXCEPTION
4699 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4700 write_log( 'UNEXCPECTED ERROR IN PROCESS_HEADER:'||sqlerrm);
4701 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4702 WHEN OTHERS THEN
4703 write_log( 'UNEXCPECTED ERROR IN PROCESS_HEADER'||sqlerrm);
4704 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4705 END PROCESS_HEADER;
4706
4707
4708 PROCEDURE PROCESS_QUALIFIER
4709 (p_request_id NUMBER)
4710 IS
4711 CURSOR C_INS_QUALIFIER IS
4712 SELECT q.QUALIFIER_ID
4713 ,q.REQUEST_ID
4714 ,q.QUALIFIER_GROUPING_NO
4715 ,q.QUALIFIER_CONTEXT
4716 ,q.QUALIFIER_ATTRIBUTE
4717 ,q.QUALIFIER_ATTR_VALUE
4718 ,q.QUALIFIER_ATTR_VALUE_TO
4719 ,q.QUALIFIER_DATATYPE
4720 ,q.QUALIFIER_PRECEDENCE
4721 ,q.COMPARISON_OPERATOR_CODE
4722 ,q.EXCLUDER_FLAG
4723 ,q.START_DATE_ACTIVE
4724 ,q.END_DATE_ACTIVE
4725 ,q.LIST_HEADER_ID
4726 ,q.LIST_LINE_ID
4727 ,q.QUALIFIER_RULE_ID
4728 ,q.CREATED_FROM_RULE_ID
4729 ,h.ACTIVE_FLAG
4730 ,h.LIST_TYPE_CODE
4731 ,q.QUAL_ATTR_VALUE_FROM_NUMBER
4732 ,q.QUAL_ATTR_VALUE_TO_NUMBER
4733 ,q.QUALIFIER_GROUP_CNT
4734 ,q.HEADER_QUALS_EXIST_FLAG
4735 ,q.CONTEXT
4736 ,q.ATTRIBUTE1
4737 ,q.ATTRIBUTE2
4738 ,q.ATTRIBUTE3
4739 ,q.ATTRIBUTE4
4740 ,q.ATTRIBUTE5
4741 ,q.ATTRIBUTE6
4742 ,q.ATTRIBUTE7
4743 ,q.ATTRIBUTE8
4744 ,q.ATTRIBUTE9
4745 ,q.ATTRIBUTE10
4746 ,q.ATTRIBUTE11
4747 ,q.ATTRIBUTE12
4748 ,q.ATTRIBUTE13
4749 ,q.ATTRIBUTE14
4750 ,q.ATTRIBUTE15
4751 ,q.PROCESS_ID
4752 ,q.PROCESS_TYPE
4753 ,q.INTERFACE_ACTION_CODE
4754 ,q.LOCK_FLAG
4755 ,q.PROCESS_FLAG
4756 ,q.DELETE_FLAG
4757 ,q.PROCESS_STATUS_FLAG
4758 ,q.LIST_LINE_NO
4759 ,q.CREATED_FROM_RULE
4760 ,q.QUALIFIER_RULE
4761 ,q.QUALIFIER_ATTRIBUTE_CODE
4762 ,q.QUALIFIER_ATTR_VALUE_CODE
4763 ,q.QUALIFIER_ATTR_VALUE_TO_CODE
4764 ,q.ATTRIBUTE_STATUS
4765 ,q.ORIG_SYS_HEADER_REF
4766 ,q.ORIG_SYS_QUALIFIER_REF
4767 ,q.ORIG_SYS_LINE_REF
4768 ,q.QUALIFY_HIER_DESCENDENTS_FLAG
4769 FROM qp_interface_qualifiers q, qp_interface_list_headers h
4770 WHERE q.request_id = p_request_id
4771 AND h.request_id = p_request_id -- bug no 5881528
4772 AND h.orig_sys_header_ref = q.orig_sys_header_ref
4773 AND q.process_status_flag = 'P'
4774 AND h.process_status_flag ='I'
4775 AND q.interface_action_code = 'INSERT';
4776
4777 CURSOR C_UDT_QUALIFIER IS
4778 SELECT q.QUALIFIER_ID
4779 ,q.REQUEST_ID
4780 ,q.QUALIFIER_GROUPING_NO
4781 ,q.QUALIFIER_CONTEXT
4782 ,q.QUALIFIER_ATTRIBUTE
4783 ,q.QUALIFIER_ATTR_VALUE
4784 ,q.QUALIFIER_ATTR_VALUE_TO
4785 ,q.QUALIFIER_DATATYPE
4786 ,q.QUALIFIER_PRECEDENCE
4787 ,q.COMPARISON_OPERATOR_CODE
4788 ,q.EXCLUDER_FLAG
4789 ,q.START_DATE_ACTIVE
4790 ,q.END_DATE_ACTIVE
4791 ,q.LIST_HEADER_ID
4792 ,q.LIST_LINE_ID
4793 ,q.QUALIFIER_RULE_ID
4794 ,q.CREATED_FROM_RULE_ID
4795 ,h.ACTIVE_FLAG
4796 ,h.LIST_TYPE_CODE
4797 ,q.QUAL_ATTR_VALUE_FROM_NUMBER
4798 ,q.QUAL_ATTR_VALUE_TO_NUMBER
4799 ,q.QUALIFIER_GROUP_CNT
4800 ,q.HEADER_QUALS_EXIST_FLAG
4801 ,q.CONTEXT
4802 ,q.ATTRIBUTE1
4803 ,q.ATTRIBUTE2
4804 ,q.ATTRIBUTE3
4805 ,q.ATTRIBUTE4
4806 ,q.ATTRIBUTE5
4807 ,q.ATTRIBUTE6
4808 ,q.ATTRIBUTE7
4809 ,q.ATTRIBUTE8
4810 ,q.ATTRIBUTE9
4811 ,q.ATTRIBUTE10
4812 ,q.ATTRIBUTE11
4813 ,q.ATTRIBUTE12
4814 ,q.ATTRIBUTE13
4815 ,q.ATTRIBUTE14
4816 ,q.ATTRIBUTE15
4817 ,q.PROCESS_ID
4818 ,q.PROCESS_TYPE
4819 ,q.INTERFACE_ACTION_CODE
4820 ,q.LOCK_FLAG
4821 ,q.PROCESS_FLAG
4822 ,q.DELETE_FLAG
4823 ,q.PROCESS_STATUS_FLAG
4824 ,q.LIST_LINE_NO
4825 ,q.CREATED_FROM_RULE
4826 ,q.QUALIFIER_RULE
4827 ,q.QUALIFIER_ATTRIBUTE_CODE
4828 ,q.QUALIFIER_ATTR_VALUE_CODE
4829 ,q.QUALIFIER_ATTR_VALUE_TO_CODE
4830 ,q.ATTRIBUTE_STATUS
4831 ,q.ORIG_SYS_HEADER_REF
4832 ,q.ORIG_SYS_QUALIFIER_REF
4833 ,q.ORIG_SYS_LINE_REF
4834 ,q.QUALIFY_HIER_DESCENDENTS_FLAG
4835 FROM qp_interface_qualifiers q, qp_interface_list_headers h
4836 WHERE q.request_id = p_request_id
4837 AND h.request_id = p_request_id -- bug no 5881528
4838 AND h.orig_sys_header_ref = q.orig_sys_header_ref
4839 AND q.process_status_flag = 'P'
4840 AND h.process_status_flag ='I'
4841 AND q.interface_action_code = 'UPDATE';
4845 l_err_buf VARCHAR2(30);
4842
4843 l_rows NATURAL;
4844 l_ret_code NUMBER;
4846 l_hq_count NUMBER;
4847 l_return_status VARCHAR2(1);
4848
4849 BEGIN
4850 write_log('Entering process QUalifier');
4851 l_rows := g_qp_batch_size;
4852
4853 OPEN C_INS_QUALIFIER;
4854 LOOP
4855 G_INS_QUALIFIER_REC.QUALIFIER_ID.delete;
4856 G_INS_QUALIFIER_REC.REQUEST_ID.delete;
4857 G_INS_QUALIFIER_REC.QUALIFIER_GROUPING_NO.delete;
4858 G_INS_QUALIFIER_REC.QUALIFIER_CONTEXT.delete;
4859 G_INS_QUALIFIER_REC.QUALIFIER_ATTRIBUTE.delete;
4860 G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE.delete;
4861 G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO.delete;
4862 G_INS_QUALIFIER_REC.QUALIFIER_DATATYPE.delete;
4863 G_INS_QUALIFIER_REC.QUALIFIER_PRECEDENCE.delete;
4864 G_INS_QUALIFIER_REC.COMPARISON_OPERATOR_CODE.delete;
4865 G_INS_QUALIFIER_REC.EXCLUDER_FLAG.delete;
4866 G_INS_QUALIFIER_REC.START_DATE_ACTIVE.delete;
4867 G_INS_QUALIFIER_REC.END_DATE_ACTIVE.delete;
4868 G_INS_QUALIFIER_REC.LIST_HEADER_ID.delete;
4869 G_INS_QUALIFIER_REC.LIST_LINE_ID.delete;
4870 G_INS_QUALIFIER_REC.QUALIFIER_RULE_ID.delete;
4871 G_INS_QUALIFIER_REC.CREATED_FROM_RULE_ID.delete;
4872 G_INS_QUALIFIER_REC.ACTIVE_FLAG.delete;
4873 G_INS_QUALIFIER_REC.LIST_TYPE_CODE.delete;
4874 G_INS_QUALIFIER_REC.QUAL_ATTR_VALUE_FROM_NUMBER.delete;
4875 G_INS_QUALIFIER_REC.QUAL_ATTR_VALUE_TO_NUMBER.delete;
4876 G_INS_QUALIFIER_REC.QUALIFIER_GROUP_CNT.delete;
4877 G_INS_QUALIFIER_REC.HEADER_QUALS_EXIST_FLAG.delete;
4878 G_INS_QUALIFIER_REC.CONTEXT.delete;
4879 G_INS_QUALIFIER_REC.ATTRIBUTE1.delete;
4880 G_INS_QUALIFIER_REC.ATTRIBUTE2.delete;
4881 G_INS_QUALIFIER_REC.ATTRIBUTE3.delete;
4882 G_INS_QUALIFIER_REC.ATTRIBUTE4.delete;
4883 G_INS_QUALIFIER_REC.ATTRIBUTE5.delete;
4884 G_INS_QUALIFIER_REC.ATTRIBUTE6.delete;
4885 G_INS_QUALIFIER_REC.ATTRIBUTE7.delete;
4886 G_INS_QUALIFIER_REC.ATTRIBUTE8.delete;
4887 G_INS_QUALIFIER_REC.ATTRIBUTE9.delete;
4888 G_INS_QUALIFIER_REC.ATTRIBUTE10.delete;
4889 G_INS_QUALIFIER_REC.ATTRIBUTE11.delete;
4890 G_INS_QUALIFIER_REC.ATTRIBUTE12.delete;
4891 G_INS_QUALIFIER_REC.ATTRIBUTE13.delete;
4892 G_INS_QUALIFIER_REC.ATTRIBUTE14.delete;
4893 G_INS_QUALIFIER_REC.ATTRIBUTE15.delete;
4894 G_INS_QUALIFIER_REC.PROCESS_ID.delete;
4895 G_INS_QUALIFIER_REC.PROCESS_TYPE.delete;
4896 G_INS_QUALIFIER_REC.INTERFACE_ACTION_CODE.delete;
4897 G_INS_QUALIFIER_REC.LOCK_FLAG.delete;
4898 G_INS_QUALIFIER_REC.PROCESS_FLAG.delete;
4899 G_INS_QUALIFIER_REC.DELETE_FLAG.delete;
4900 G_INS_QUALIFIER_REC.PROCESS_STATUS_FLAG.delete;
4901 G_INS_QUALIFIER_REC.LIST_LINE_NO.delete;
4902 G_INS_QUALIFIER_REC.CREATED_FROM_RULE.delete;
4903 G_INS_QUALIFIER_REC.QUALIFIER_RULE.delete;
4904 G_INS_QUALIFIER_REC.QUALIFIER_ATTRIBUTE_CODE.delete;
4905 G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_CODE.delete;
4906 G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO_CODE.delete;
4907 G_INS_QUALIFIER_REC.ATTRIBUTE_STATUS.delete;
4908 G_INS_QUALIFIER_REC.ORIG_SYS_HEADER_REF.delete;
4909 G_INS_QUALIFIER_REC.ORIG_SYS_QUALIFIER_REF.delete;
4910 G_INS_QUALIFIER_REC.ORIG_SYS_LINE_REF.delete;
4911 G_INS_QUALIFIER_REC.QUALIFY_HIER_DESCENDENTS_FLAG.delete;
4912
4913
4914 FETCH C_INS_QUALIFIER BULK COLLECT
4915 INTO G_INS_QUALIFIER_REC.QUALIFIER_ID
4916 ,G_INS_QUALIFIER_REC.REQUEST_ID
4917 ,G_INS_QUALIFIER_REC.QUALIFIER_GROUPING_NO
4918 ,G_INS_QUALIFIER_REC.QUALIFIER_CONTEXT
4919 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTRIBUTE
4920 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE
4921 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO
4922 ,G_INS_QUALIFIER_REC.QUALIFIER_DATATYPE
4923 ,G_INS_QUALIFIER_REC.QUALIFIER_PRECEDENCE
4924 ,G_INS_QUALIFIER_REC.COMPARISON_OPERATOR_CODE
4925 ,G_INS_QUALIFIER_REC.EXCLUDER_FLAG
4926 ,G_INS_QUALIFIER_REC.START_DATE_ACTIVE
4927 ,G_INS_QUALIFIER_REC.END_DATE_ACTIVE
4928 ,G_INS_QUALIFIER_REC.LIST_HEADER_ID
4929 ,G_INS_QUALIFIER_REC.LIST_LINE_ID
4930 ,G_INS_QUALIFIER_REC.QUALIFIER_RULE_ID
4931 ,G_INS_QUALIFIER_REC.CREATED_FROM_RULE_ID
4932 ,G_INS_QUALIFIER_REC.ACTIVE_FLAG
4933 ,G_INS_QUALIFIER_REC.LIST_TYPE_CODE
4934 ,G_INS_QUALIFIER_REC.QUAL_ATTR_VALUE_FROM_NUMBER
4935 ,G_INS_QUALIFIER_REC.QUAL_ATTR_VALUE_TO_NUMBER
4936 ,G_INS_QUALIFIER_REC.QUALIFIER_GROUP_CNT
4937 ,G_INS_QUALIFIER_REC.HEADER_QUALS_EXIST_FLAG
4938 ,G_INS_QUALIFIER_REC.CONTEXT
4939 ,G_INS_QUALIFIER_REC.ATTRIBUTE1
4940 ,G_INS_QUALIFIER_REC.ATTRIBUTE2
4941 ,G_INS_QUALIFIER_REC.ATTRIBUTE3
4942 ,G_INS_QUALIFIER_REC.ATTRIBUTE4
4943 ,G_INS_QUALIFIER_REC.ATTRIBUTE5
4944 ,G_INS_QUALIFIER_REC.ATTRIBUTE6
4945 ,G_INS_QUALIFIER_REC.ATTRIBUTE7
4946 ,G_INS_QUALIFIER_REC.ATTRIBUTE8
4947 ,G_INS_QUALIFIER_REC.ATTRIBUTE9
4948 ,G_INS_QUALIFIER_REC.ATTRIBUTE10
4949 ,G_INS_QUALIFIER_REC.ATTRIBUTE11
4950 ,G_INS_QUALIFIER_REC.ATTRIBUTE12
4951 ,G_INS_QUALIFIER_REC.ATTRIBUTE13
4952 ,G_INS_QUALIFIER_REC.ATTRIBUTE14
4953 ,G_INS_QUALIFIER_REC.ATTRIBUTE15
4954 ,G_INS_QUALIFIER_REC.PROCESS_ID
4955 ,G_INS_QUALIFIER_REC.PROCESS_TYPE
4956 ,G_INS_QUALIFIER_REC.INTERFACE_ACTION_CODE
4957 ,G_INS_QUALIFIER_REC.LOCK_FLAG
4958 ,G_INS_QUALIFIER_REC.PROCESS_FLAG
4962 ,G_INS_QUALIFIER_REC.CREATED_FROM_RULE
4959 ,G_INS_QUALIFIER_REC.DELETE_FLAG
4960 ,G_INS_QUALIFIER_REC.PROCESS_STATUS_FLAG
4961 ,G_INS_QUALIFIER_REC.LIST_LINE_NO
4963 ,G_INS_QUALIFIER_REC.QUALIFIER_RULE
4964 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTRIBUTE_CODE
4965 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_CODE
4966 ,G_INS_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO_CODE
4967 ,G_INS_QUALIFIER_REC.ATTRIBUTE_STATUS
4968 ,G_INS_QUALIFIER_REC.ORIG_SYS_HEADER_REF
4969 ,G_INS_QUALIFIER_REC.ORIG_SYS_QUALIFIER_REF
4970 ,G_INS_QUALIFIER_REC.ORIG_SYS_LINE_REF
4971 ,G_INS_QUALIFIER_REC.QUALIFY_HIER_DESCENDENTS_FLAG
4972 LIMIT l_rows;
4973
4974
4975
4976 write_log('No of INS Qual records fetched: '
4977 || G_INS_qualifier_rec.process_flag.count);
4978
4979 IF G_INS_qualifier_rec.orig_sys_qualifier_ref.count >0 Then
4980
4981 QP_BULK_VALIDATE.ENTITY_QUALIFIER
4982 (p_qualifier_rec=>G_INS_QUALIFIER_REC);
4983
4984 QP_BULK_UTIL.Insert_Qualifier(p_qualifier_rec=>G_INS_QUALIFIER_REC);
4985
4986 QP_BULK_MSG.SAVE_MESSAGE(p_request_id);
4987
4988 --set process_status_flag
4989
4990 FORALL I IN G_INS_QUALIFIER_REC.orig_sys_qualifier_ref.FIRST
4991 ..G_INS_QUALIFIER_REC.orig_sys_qualifier_ref.LAST
4992 UPDATE qp_interface_qualifiers
4993 SET process_status_flag = decode(G_INS_QUALIFIER_REC.process_status_flag(I),'P','I',G_INS_QUALIFIER_REC.process_status_flag(I))
4994 WHERE orig_sys_header_ref = G_INS_QUALIFIER_REC.orig_sys_header_ref(I)
4995 AND orig_sys_qualifier_ref = G_INS_QUALIFIER_REC.orig_sys_qualifier_ref(I)
4996 AND request_id = p_request_id; --Bug No: 6235177
4997
4998 END IF;
4999 COMMIT;
5000 EXIT WHEN C_INS_QUALIFIER%NOTFOUND;
5001
5002 END LOOP; /*-----End processing insertin records --------*/
5003 CLOSE C_INS_QUALIFIER;
5004 ---------------------- UPDATION ---------------------------------
5005 OPEN C_UDT_QUALIFIER;
5006 LOOP
5007
5008 G_UDT_QUALIFIER_REC.QUALIFIER_ID.delete;
5009 G_UDT_QUALIFIER_REC.REQUEST_ID.delete;
5010 G_UDT_QUALIFIER_REC.QUALIFIER_GROUPING_NO.delete;
5011 G_UDT_QUALIFIER_REC.QUALIFIER_CONTEXT.delete;
5012 G_UDT_QUALIFIER_REC.QUALIFIER_ATTRIBUTE.delete;
5013 G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE.delete;
5014 G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO.delete;
5015 G_UDT_QUALIFIER_REC.QUALIFIER_DATATYPE.delete;
5016 G_UDT_QUALIFIER_REC.QUALIFIER_PRECEDENCE.delete;
5017 G_UDT_QUALIFIER_REC.COMPARISON_OPERATOR_CODE.delete;
5018 G_UDT_QUALIFIER_REC.EXCLUDER_FLAG.delete;
5019 G_UDT_QUALIFIER_REC.START_DATE_ACTIVE.delete;
5020 G_UDT_QUALIFIER_REC.END_DATE_ACTIVE.delete;
5021 G_UDT_QUALIFIER_REC.LIST_HEADER_ID.delete;
5022 G_UDT_QUALIFIER_REC.LIST_LINE_ID.delete;
5023 G_UDT_QUALIFIER_REC.QUALIFIER_RULE_ID.delete;
5024 G_UDT_QUALIFIER_REC.CREATED_FROM_RULE_ID.delete;
5025 G_UDT_QUALIFIER_REC.ACTIVE_FLAG.delete;
5026 G_UDT_QUALIFIER_REC.LIST_TYPE_CODE.delete;
5027 G_UDT_QUALIFIER_REC.QUAL_ATTR_VALUE_FROM_NUMBER.delete;
5028 G_UDT_QUALIFIER_REC.QUAL_ATTR_VALUE_TO_NUMBER.delete;
5029 G_UDT_QUALIFIER_REC.QUALIFIER_GROUP_CNT.delete;
5030 G_UDT_QUALIFIER_REC.HEADER_QUALS_EXIST_FLAG.delete;
5031 G_UDT_QUALIFIER_REC.CONTEXT.delete;
5032 G_UDT_QUALIFIER_REC.ATTRIBUTE1.delete;
5033 G_UDT_QUALIFIER_REC.ATTRIBUTE2.delete;
5034 G_UDT_QUALIFIER_REC.ATTRIBUTE3.delete;
5035 G_UDT_QUALIFIER_REC.ATTRIBUTE4.delete;
5036 G_UDT_QUALIFIER_REC.ATTRIBUTE5.delete;
5037 G_UDT_QUALIFIER_REC.ATTRIBUTE6.delete;
5038 G_UDT_QUALIFIER_REC.ATTRIBUTE7.delete;
5039 G_UDT_QUALIFIER_REC.ATTRIBUTE8.delete;
5040 G_UDT_QUALIFIER_REC.ATTRIBUTE9.delete;
5041 G_UDT_QUALIFIER_REC.ATTRIBUTE10.delete;
5042 G_UDT_QUALIFIER_REC.ATTRIBUTE11.delete;
5043 G_UDT_QUALIFIER_REC.ATTRIBUTE12.delete;
5044 G_UDT_QUALIFIER_REC.ATTRIBUTE13.delete;
5045 G_UDT_QUALIFIER_REC.ATTRIBUTE14.delete;
5046 G_UDT_QUALIFIER_REC.ATTRIBUTE15.delete;
5047 G_UDT_QUALIFIER_REC.PROCESS_ID.delete;
5048 G_UDT_QUALIFIER_REC.PROCESS_TYPE.delete;
5049 G_UDT_QUALIFIER_REC.INTERFACE_ACTION_CODE.delete;
5050 G_UDT_QUALIFIER_REC.LOCK_FLAG.delete;
5051 G_UDT_QUALIFIER_REC.PROCESS_FLAG.delete;
5052 G_UDT_QUALIFIER_REC.DELETE_FLAG.delete;
5053 G_UDT_QUALIFIER_REC.PROCESS_STATUS_FLAG.delete;
5054 G_UDT_QUALIFIER_REC.LIST_LINE_NO.delete;
5055 G_UDT_QUALIFIER_REC.CREATED_FROM_RULE.delete;
5056 G_UDT_QUALIFIER_REC.QUALIFIER_RULE.delete;
5057 G_UDT_QUALIFIER_REC.QUALIFIER_ATTRIBUTE_CODE.delete;
5058 G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_CODE.delete;
5059 G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO_CODE.delete;
5060 G_UDT_QUALIFIER_REC.ATTRIBUTE_STATUS.delete;
5061 G_UDT_QUALIFIER_REC.ORIG_SYS_HEADER_REF.delete;
5062 G_UDT_QUALIFIER_REC.ORIG_SYS_QUALIFIER_REF.delete;
5063 G_UDT_QUALIFIER_REC.ORIG_SYS_LINE_REF.delete;
5064 G_UDT_QUALIFIER_REC.QUALIFY_HIER_DESCENDENTS_FLAG.delete;
5065
5066
5067 FETCH C_UDT_QUALIFIER BULK COLLECT
5068 INTO G_UDT_QUALIFIER_REC.QUALIFIER_ID
5069 ,G_UDT_QUALIFIER_REC.REQUEST_ID
5070 ,G_UDT_QUALIFIER_REC.QUALIFIER_GROUPING_NO
5071 ,G_UDT_QUALIFIER_REC.QUALIFIER_CONTEXT
5072 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTRIBUTE
5076 ,G_UDT_QUALIFIER_REC.QUALIFIER_PRECEDENCE
5073 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE
5074 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO
5075 ,G_UDT_QUALIFIER_REC.QUALIFIER_DATATYPE
5077 ,G_UDT_QUALIFIER_REC.COMPARISON_OPERATOR_CODE
5078 ,G_UDT_QUALIFIER_REC.EXCLUDER_FLAG
5079 ,G_UDT_QUALIFIER_REC.START_DATE_ACTIVE
5080 ,G_UDT_QUALIFIER_REC.END_DATE_ACTIVE
5081 ,G_UDT_QUALIFIER_REC.LIST_HEADER_ID
5082 ,G_UDT_QUALIFIER_REC.LIST_LINE_ID
5083 ,G_UDT_QUALIFIER_REC.QUALIFIER_RULE_ID
5084 ,G_UDT_QUALIFIER_REC.CREATED_FROM_RULE_ID
5085 ,G_UDT_QUALIFIER_REC.ACTIVE_FLAG
5086 ,G_UDT_QUALIFIER_REC.LIST_TYPE_CODE
5087 ,G_UDT_QUALIFIER_REC.QUAL_ATTR_VALUE_FROM_NUMBER
5088 ,G_UDT_QUALIFIER_REC.QUAL_ATTR_VALUE_TO_NUMBER
5089 ,G_UDT_QUALIFIER_REC.QUALIFIER_GROUP_CNT
5090 ,G_UDT_QUALIFIER_REC.HEADER_QUALS_EXIST_FLAG
5091 ,G_UDT_QUALIFIER_REC.CONTEXT
5092 ,G_UDT_QUALIFIER_REC.ATTRIBUTE1
5093 ,G_UDT_QUALIFIER_REC.ATTRIBUTE2
5094 ,G_UDT_QUALIFIER_REC.ATTRIBUTE3
5095 ,G_UDT_QUALIFIER_REC.ATTRIBUTE4
5096 ,G_UDT_QUALIFIER_REC.ATTRIBUTE5
5097 ,G_UDT_QUALIFIER_REC.ATTRIBUTE6
5098 ,G_UDT_QUALIFIER_REC.ATTRIBUTE7
5099 ,G_UDT_QUALIFIER_REC.ATTRIBUTE8
5100 ,G_UDT_QUALIFIER_REC.ATTRIBUTE9
5101 ,G_UDT_QUALIFIER_REC.ATTRIBUTE10
5102 ,G_UDT_QUALIFIER_REC.ATTRIBUTE11
5103 ,G_UDT_QUALIFIER_REC.ATTRIBUTE12
5104 ,G_UDT_QUALIFIER_REC.ATTRIBUTE13
5105 ,G_UDT_QUALIFIER_REC.ATTRIBUTE14
5106 ,G_UDT_QUALIFIER_REC.ATTRIBUTE15
5107 ,G_UDT_QUALIFIER_REC.PROCESS_ID
5108 ,G_UDT_QUALIFIER_REC.PROCESS_TYPE
5109 ,G_UDT_QUALIFIER_REC.INTERFACE_ACTION_CODE
5110 ,G_UDT_QUALIFIER_REC.LOCK_FLAG
5111 ,G_UDT_QUALIFIER_REC.PROCESS_FLAG
5112 ,G_UDT_QUALIFIER_REC.DELETE_FLAG
5113 ,G_UDT_QUALIFIER_REC.PROCESS_STATUS_FLAG
5114 ,G_UDT_QUALIFIER_REC.LIST_LINE_NO
5115 ,G_UDT_QUALIFIER_REC.CREATED_FROM_RULE
5116 ,G_UDT_QUALIFIER_REC.QUALIFIER_RULE
5117 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTRIBUTE_CODE
5118 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_CODE
5119 ,G_UDT_QUALIFIER_REC.QUALIFIER_ATTR_VALUE_TO_CODE
5120 ,G_UDT_QUALIFIER_REC.ATTRIBUTE_STATUS
5121 ,G_UDT_QUALIFIER_REC.ORIG_SYS_HEADER_REF
5122 ,G_UDT_QUALIFIER_REC.ORIG_SYS_QUALIFIER_REF
5123 ,G_UDT_QUALIFIER_REC.ORIG_SYS_LINE_REF
5124 ,G_UDT_QUALIFIER_REC.QUALIFY_HIER_DESCENDENTS_FLAG
5125 LIMIT l_rows;
5126
5127 write_log('No of qual upt records: '
5128 || G_UDT_qualifier_rec.process_flag.count);
5129
5130 IF G_UDT_qualifier_rec.orig_sys_qualifier_ref.count >0 Then
5131
5132 QP_BULK_VALIDATE.ENTITY_QUALIFIER
5133 (p_qualifier_rec=>G_UDT_QUALIFIER_REC);
5134
5135 QP_BULK_UTIL.Update_Qualifier(p_qualifier_rec=>G_UDT_QUALIFIER_REC);
5136
5137 QP_BULK_MSG.SAVE_MESSAGE(p_request_id);
5138
5139 --set process_status_flag
5140
5141 FORALL I IN G_UDT_QUALIFIER_REC.orig_sys_qualifier_ref.FIRST
5142 ..G_UDT_QUALIFIER_REC.orig_sys_qualifier_ref.LAST
5143 UPDATE qp_interface_qualifiers
5144 SET process_status_flag = decode(G_UDT_QUALIFIER_REC.process_status_flag(I),'P','I',G_UDT_QUALIFIER_REC.process_status_flag(I))
5145 WHERE orig_sys_header_ref = G_UDT_QUALIFIER_REC.orig_sys_header_ref(I)
5146 AND orig_sys_qualifier_ref = G_UDT_QUALIFIER_REC.orig_sys_qualifier_ref(I)
5147 AND request_id = p_request_id; -- Bug No: 6235177
5148
5149
5150 END IF;
5151
5152 COMMIT;
5153 EXIT WHEN C_UDT_QUALIFIER%NOTFOUND;
5154 END LOOP;
5155 CLOSE C_UDT_QUALIFIER;
5156
5157 write_log('Done with qualifier insertion and updation');
5158
5159
5160 QP_BULK_MSG.SAVE_MESSAGE(p_request_id);
5161
5162 QP_BULK_UTIL.Delete_Qualifier(p_request_id);
5163
5164 write_log('Existing Process Qualifier');
5165
5166 EXCEPTION
5167 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5168 write_log( 'UNEXCPECTED ERROR IN PROCESS_QUALIFIER'||sqlerrm);
5169 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5170 WHEN OTHERS THEN
5171 write_log( 'UNEXCPECTED ERROR IN PROCESS_QUALIFIER'||sqlerrm);
5172 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5173
5174 END PROCESS_QUALIFIER;
5175
5176
5177 PROCEDURE PROCESS_LINE
5178 (p_request_id NUMBER,
5179 p_process_parent varchar2) -- 6028305
5180 IS
5181 CURSOR C_INS_LINE IS
5182 SELECT LIST_LINE_ID
5183 ,PROGRAM_APPLICATION_ID
5184 ,PROGRAM_ID
5185 ,PROGRAM_UPDATE_DATE
5186 ,REQUEST_ID
5187 ,LIST_HEADER_ID
5188 ,LIST_LINE_TYPE_CODE
5189 ,START_DATE_ACTIVE
5190 ,END_DATE_ACTIVE
5191 ,AUTOMATIC_FLAG
5192 ,MODIFIER_LEVEL_CODE
5193 ,PRICE_BY_FORMULA_ID
5194 ,LIST_PRICE
5195 ,LIST_PRICE_UOM_CODE
5196 ,PRIMARY_UOM_FLAG
5197 ,INVENTORY_ITEM_ID
5198 ,ORGANIZATION_ID
5199 ,RELATED_ITEM_ID
5200 ,RELATIONSHIP_TYPE_ID
5201 ,SUBSTITUTION_CONTEXT
5202 ,SUBSTITUTION_ATTRIBUTE
5203 ,SUBSTITUTION_VALUE
5204 ,REVISION
5205 ,REVISION_DATE
5206 ,REVISION_REASON_CODE
5207 ,PRICE_BREAK_TYPE_CODE
5208 ,PERCENT_PRICE
5209 ,NUMBER_EFFECTIVE_PERIODS
5210 ,EFFECTIVE_PERIOD_UOM
5214 ,PRINT_ON_INVOICE_FLAG
5211 ,ARITHMETIC_OPERATOR
5212 ,OPERAND
5213 ,OVERRIDE_FLAG
5215 ,REBATE_TRANSACTION_TYPE_CODE
5216 ,BASE_QTY
5217 ,BASE_UOM_CODE
5218 ,ACCRUAL_QTY
5219 ,ACCRUAL_UOM_CODE
5220 ,ESTIM_ACCRUAL_RATE
5221 ,PROCESS_ID
5222 ,PROCESS_TYPE
5223 ,INTERFACE_ACTION_CODE
5224 ,LOCK_FLAG
5225 ,PROCESS_FLAG
5226 ,DELETE_FLAG
5227 ,PROCESS_STATUS_FLAG
5228 ,COMMENTS
5229 ,GENERATE_USING_FORMULA_ID
5230 ,REPRICE_FLAG
5231 ,LIST_LINE_NO
5232 ,ESTIM_GL_VALUE
5233 ,BENEFIT_PRICE_LIST_LINE_ID
5234 ,EXPIRATION_PERIOD_START_DATE
5235 ,NUMBER_EXPIRATION_PERIODS
5236 ,EXPIRATION_PERIOD_UOM
5237 ,EXPIRATION_DATE
5238 ,ACCRUAL_FLAG
5239 ,PRICING_PHASE_ID
5240 ,PRICING_GROUP_SEQUENCE
5241 ,INCOMPATIBILITY_GRP_CODE
5242 ,PRODUCT_PRECEDENCE
5243 ,PRORATION_TYPE_CODE
5244 ,ACCRUAL_CONVERSION_RATE
5245 ,BENEFIT_QTY
5246 ,BENEFIT_UOM_CODE
5247 ,RECURRING_FLAG
5248 ,BENEFIT_LIMIT
5249 ,CHARGE_TYPE_CODE
5250 ,CHARGE_SUBTYPE_CODE
5251 ,INCLUDE_ON_RETURNS_FLAG
5252 ,QUALIFICATION_IND
5253 ,CONTEXT
5254 ,ATTRIBUTE1
5255 ,ATTRIBUTE2
5256 ,ATTRIBUTE3
5257 ,ATTRIBUTE4
5258 ,ATTRIBUTE5
5259 ,ATTRIBUTE6
5260 ,ATTRIBUTE7
5261 ,ATTRIBUTE8
5262 ,ATTRIBUTE9
5263 ,ATTRIBUTE10
5264 ,ATTRIBUTE11
5265 ,ATTRIBUTE12
5266 ,ATTRIBUTE13
5267 ,ATTRIBUTE14
5268 ,ATTRIBUTE15
5269 ,RLTD_MODIFIER_GRP_NO
5270 ,RLTD_MODIFIER_GRP_TYPE
5271 ,PRICE_BREAK_HEADER_REF
5272 ,PRICING_PHASE_NAME
5273 ,PRICE_BY_FORMULA
5274 ,GENERATE_USING_FORMULA
5275 ,ATTRIBUTE_STATUS
5276 ,ORIG_SYS_LINE_REF
5277 ,ORIG_SYS_HEADER_REF
5278 ,RECURRING_VALUE
5279 ,NET_AMOUNT_FLAG
5280 --Bug#5359974 RAVI
5281 ,CONTINUOUS_PRICE_BREAK_FLAG
5282 FROM qp_interface_list_lines
5283 WHERE request_id = p_request_id
5284 AND process_status_flag = 'P'
5285 AND interface_action_code='INSERT'
5286 ORDER BY LIST_LINE_TYPE_CODE; --bug 7315191
5287
5288 CURSOR C_UDT_LINE IS
5289 SELECT LIST_LINE_ID
5290 ,PROGRAM_APPLICATION_ID
5291 ,PROGRAM_ID
5292 ,PROGRAM_UPDATE_DATE
5293 ,REQUEST_ID
5294 ,LIST_HEADER_ID
5295 ,LIST_LINE_TYPE_CODE
5296 ,START_DATE_ACTIVE
5297 ,END_DATE_ACTIVE
5298 ,AUTOMATIC_FLAG
5299 ,MODIFIER_LEVEL_CODE
5300 ,PRICE_BY_FORMULA_ID
5301 ,LIST_PRICE
5302 ,LIST_PRICE_UOM_CODE
5303 ,PRIMARY_UOM_FLAG
5304 ,INVENTORY_ITEM_ID
5305 ,ORGANIZATION_ID
5306 ,RELATED_ITEM_ID
5307 ,RELATIONSHIP_TYPE_ID
5308 ,SUBSTITUTION_CONTEXT
5309 ,SUBSTITUTION_ATTRIBUTE
5310 ,SUBSTITUTION_VALUE
5311 ,REVISION
5312 ,REVISION_DATE
5313 ,REVISION_REASON_CODE
5314 ,PRICE_BREAK_TYPE_CODE
5315 ,PERCENT_PRICE
5316 ,NUMBER_EFFECTIVE_PERIODS
5317 ,EFFECTIVE_PERIOD_UOM
5318 ,ARITHMETIC_OPERATOR
5319 ,OPERAND
5320 ,OVERRIDE_FLAG
5321 ,PRINT_ON_INVOICE_FLAG
5322 ,REBATE_TRANSACTION_TYPE_CODE
5323 ,BASE_QTY
5324 ,BASE_UOM_CODE
5325 ,ACCRUAL_QTY
5326 ,ACCRUAL_UOM_CODE
5327 ,ESTIM_ACCRUAL_RATE
5328 ,PROCESS_ID
5329 ,PROCESS_TYPE
5330 ,INTERFACE_ACTION_CODE
5331 ,LOCK_FLAG
5332 ,PROCESS_FLAG
5333 ,DELETE_FLAG
5334 ,PROCESS_STATUS_FLAG
5335 ,COMMENTS
5336 ,GENERATE_USING_FORMULA_ID
5337 ,REPRICE_FLAG
5338 ,LIST_LINE_NO
5339 ,ESTIM_GL_VALUE
5340 ,BENEFIT_PRICE_LIST_LINE_ID
5341 ,EXPIRATION_PERIOD_START_DATE
5342 ,NUMBER_EXPIRATION_PERIODS
5343 ,EXPIRATION_PERIOD_UOM
5344 ,EXPIRATION_DATE
5345 ,ACCRUAL_FLAG
5346 ,PRICING_PHASE_ID
5347 ,PRICING_GROUP_SEQUENCE
5348 ,INCOMPATIBILITY_GRP_CODE
5349 ,PRODUCT_PRECEDENCE
5350 ,PRORATION_TYPE_CODE
5351 ,ACCRUAL_CONVERSION_RATE
5352 ,BENEFIT_QTY
5353 ,BENEFIT_UOM_CODE
5354 ,RECURRING_FLAG
5355 ,BENEFIT_LIMIT
5356 ,CHARGE_TYPE_CODE
5357 ,CHARGE_SUBTYPE_CODE
5358 ,INCLUDE_ON_RETURNS_FLAG
5359 ,QUALIFICATION_IND
5360 ,CONTEXT
5361 ,ATTRIBUTE1
5362 ,ATTRIBUTE2
5363 ,ATTRIBUTE3
5364 ,ATTRIBUTE4
5365 ,ATTRIBUTE5
5366 ,ATTRIBUTE6
5367 ,ATTRIBUTE7
5368 ,ATTRIBUTE8
5369 ,ATTRIBUTE9
5370 ,ATTRIBUTE10
5371 ,ATTRIBUTE11
5372 ,ATTRIBUTE12
5373 ,ATTRIBUTE13
5374 ,ATTRIBUTE14
5375 ,ATTRIBUTE15
5376 ,RLTD_MODIFIER_GRP_NO
5377 ,RLTD_MODIFIER_GRP_TYPE
5378 ,PRICE_BREAK_HEADER_REF
5379 ,PRICING_PHASE_NAME
5380 ,PRICE_BY_FORMULA
5381 ,GENERATE_USING_FORMULA
5382 ,ATTRIBUTE_STATUS
5383 ,ORIG_SYS_LINE_REF
5384 ,ORIG_SYS_HEADER_REF
5385 ,RECURRING_VALUE
5386 ,NET_AMOUNT_FLAG
5387 --Bug#5359974 RAVI
5388 ,CONTINUOUS_PRICE_BREAK_FLAG
5389 FROM qp_interface_list_lines
5390 WHERE request_id = p_request_id
5391 AND process_status_flag = 'P'
5395 l_rows NATURAL;
5392 AND interface_action_code='UPDATE';
5393
5394
5396 l_rltd_modifiers_id NUMBER;
5397 l_rltd_modifiers_grp_no NUMBER;
5398 l_from_rltd_modifier_id NUMBER;
5399 l_msg_txt VARCHAR2(240);
5400
5401 BEGIN
5402
5403 write_log('Entering Process Line');
5404 l_rows := g_qp_batch_size;
5405
5406 OPEN C_INS_LINE;
5407 LOOP
5408 G_INS_LINE_REC.list_line_id.DELETE;
5409 G_INS_LINE_REC.PROGRAM_APPLICATION_ID.DELETE;
5410 G_INS_LINE_REC.PROGRAM_ID.delete;
5411 G_INS_LINE_REC.PROGRAM_UPDATE_DATE.DELETE;
5412 G_INS_LINE_REC.REQUEST_ID.DELETE;
5413 G_INS_LINE_REC.LIST_HEADER_ID.DELETE;
5414 G_INS_LINE_REC.LIST_LINE_TYPE_CODE.DELETE;
5415 G_INS_LINE_REC.START_DATE_ACTIVE.DELETE;
5416 G_INS_LINE_REC.END_DATE_ACTIVE.DELETE;
5417 G_INS_LINE_REC.AUTOMATIC_FLAG.DELETE;
5418 G_INS_LINE_REC.MODIFIER_LEVEL_CODE.DELETE;
5419 G_INS_LINE_REC.PRICE_BY_FORMULA_ID.DELETE;
5420 G_INS_LINE_REC.LIST_PRICE.DELETE;
5421 G_INS_LINE_REC.LIST_PRICE_UOM_CODE.DELETE;
5422 G_INS_LINE_REC.PRIMARY_UOM_FLAG.DELETE;
5423 G_INS_LINE_REC.INVENTORY_ITEM_ID.DELETE;
5424 G_INS_LINE_REC.ORGANIZATION_ID.DELETE;
5425 G_INS_LINE_REC.RELATED_ITEM_ID.DELETE;
5426 G_INS_LINE_REC.RELATIONSHIP_TYPE_ID.DELETE;
5427 G_INS_LINE_REC.SUBSTITUTION_CONTEXT.DELETE;
5428 G_INS_LINE_REC.SUBSTITUTION_ATTRIBUTE.DELETE;
5429 G_INS_LINE_REC.SUBSTITUTION_VALUE.DELETE;
5430 G_INS_LINE_REC.REVISION.DELETE;
5431 G_INS_LINE_REC.REVISION_DATE.DELETE;
5432 G_INS_LINE_REC.REVISION_REASON_CODE.DELETE;
5433 G_INS_LINE_REC.PRICE_BREAK_TYPE_CODE.DELETE;
5434 G_INS_LINE_REC.PERCENT_PRICE.DELETE;
5435 G_INS_LINE_REC.NUMBER_EFFECTIVE_PERIODS.DELETE;
5436 G_INS_LINE_REC.EFFECTIVE_PERIOD_UOM.DELETE;
5437 G_INS_LINE_REC.ARITHMETIC_OPERATOR.DELETE;
5438 G_INS_LINE_REC.OPERAND.DELETE;
5439 G_INS_LINE_REC.OVERRIDE_FLAG.DELETE;
5440 G_INS_LINE_REC.PRINT_ON_INVOICE_FLAG.DELETE;
5441 G_INS_LINE_REC.REBATE_TRANSACTION_TYPE_CODE.DELETE;
5442 G_INS_LINE_REC.BASE_QTY.DELETE;
5443 G_INS_LINE_REC.BASE_UOM_CODE.DELETE;
5444 G_INS_LINE_REC.ACCRUAL_QTY.DELETE;
5445 G_INS_LINE_REC.ACCRUAL_UOM_CODE.DELETE;
5446 G_INS_LINE_REC.ESTIM_ACCRUAL_RATE.DELETE;
5447 G_INS_LINE_REC.PROCESS_ID.DELETE;
5448 G_INS_LINE_REC.PROCESS_TYPE.DELETE;
5449 G_INS_LINE_REC.INTERFACE_ACTION_CODE.DELETE;
5450 G_INS_LINE_REC.LOCK_FLAG.DELETE;
5451 G_INS_LINE_REC.PROCESS_FLAG.DELETE;
5452 G_INS_LINE_REC.DELETE_FLAG.DELETE;
5453 G_INS_LINE_REC.PROCESS_STATUS_FLAG.DELETE;
5454 G_INS_LINE_REC.COMMENTS.DELETE;
5455 G_INS_LINE_REC.GENERATE_USING_FORMULA_ID.DELETE;
5456 G_INS_LINE_REC.REPRICE_FLAG.DELETE;
5457 G_INS_LINE_REC.LIST_LINE_NO.DELETE;
5458 G_INS_LINE_REC.ESTIM_GL_VALUE.DELETE;
5459 G_INS_LINE_REC.BENEFIT_PRICE_LIST_LINE_ID.DELETE;
5460 G_INS_LINE_REC.EXPIRATION_PERIOD_START_DATE.DELETE;
5461 G_INS_LINE_REC.NUMBER_EXPIRATION_PERIODS.DELETE;
5462 G_INS_LINE_REC.EXPIRATION_PERIOD_UOM.DELETE;
5463 G_INS_LINE_REC.EXPIRATION_DATE.DELETE;
5464 G_INS_LINE_REC.ACCRUAL_FLAG.DELETE;
5465 G_INS_LINE_REC.PRICING_PHASE_ID.DELETE;
5466 G_INS_LINE_REC.PRICING_GROUP_SEQUENCE.DELETE;
5467 G_INS_LINE_REC.INCOMPATIBILITY_GRP_CODE.DELETE;
5468 G_INS_LINE_REC.PRODUCT_PRECEDENCE.DELETE;
5469 G_INS_LINE_REC.PRORATION_TYPE_CODE.DELETE;
5470 G_INS_LINE_REC.ACCRUAL_CONVERSION_RATE.DELETE;
5471 G_INS_LINE_REC.BENEFIT_QTY.DELETE;
5472 G_INS_LINE_REC.BENEFIT_UOM_CODE.DELETE;
5473 G_INS_LINE_REC.RECURRING_FLAG.DELETE;
5474 G_INS_LINE_REC.BENEFIT_LIMIT.DELETE;
5475 G_INS_LINE_REC.CHARGE_TYPE_CODE.DELETE;
5476 G_INS_LINE_REC.CHARGE_SUBTYPE_CODE.DELETE;
5477 G_INS_LINE_REC.INCLUDE_ON_RETURNS_FLAG.DELETE;
5478 G_INS_LINE_REC.QUALIFICATION_IND.DELETE;
5479 G_INS_LINE_REC.CONTEXT.DELETE;
5480 G_INS_LINE_REC.ATTRIBUTE1.DELETE;
5481 G_INS_LINE_REC.ATTRIBUTE2.DELETE;
5482 G_INS_LINE_REC.ATTRIBUTE3.DELETE;
5483 G_INS_LINE_REC.ATTRIBUTE4.DELETE;
5484 G_INS_LINE_REC.ATTRIBUTE5.DELETE;
5485 G_INS_LINE_REC.ATTRIBUTE6.DELETE;
5486 G_INS_LINE_REC.ATTRIBUTE7.DELETE;
5487 G_INS_LINE_REC.ATTRIBUTE8.DELETE;
5488 G_INS_LINE_REC.ATTRIBUTE9.DELETE;
5489 G_INS_LINE_REC.ATTRIBUTE10.DELETE;
5490 G_INS_LINE_REC.ATTRIBUTE11.DELETE;
5491 G_INS_LINE_REC.ATTRIBUTE12.DELETE;
5492 G_INS_LINE_REC.ATTRIBUTE13.DELETE;
5493 G_INS_LINE_REC.ATTRIBUTE14.DELETE;
5494 G_INS_LINE_REC.ATTRIBUTE15.DELETE;
5495 G_INS_LINE_REC.RLTD_MODIFIER_GRP_NO.DELETE;
5496 G_INS_LINE_REC.RLTD_MODIFIER_GRP_TYPE.DELETE;
5497 G_INS_LINE_REC.PRICE_BREAK_HEADER_REF.DELETE;
5498 G_INS_LINE_REC.PRICING_PHASE_NAME.DELETE;
5499 G_INS_LINE_REC.PRICE_BY_FORMULA.DELETE;
5500 G_INS_LINE_REC.GENERATE_USING_FORMULA.DELETE;
5501 G_INS_LINE_REC.ATTRIBUTE_STATUS.DELETE;
5502 G_INS_LINE_REC.ORIG_SYS_LINE_REF.DELETE;
5503 G_INS_LINE_REC.ORIG_SYS_HEADER_REF.DELETE;
5504 G_INS_LINE_REC.RECURRING_VALUE.DELETE;
5505 G_INS_LINE_REC.NET_AMOUNT_FLAG.DELETE;
5506 --Bug#5359974 RAVI
5507 G_INS_LINE_REC.CONTINUOUS_PRICE_BREAK_FLAG.DELETE;
5508
5509
5510 FETCH C_INS_LINE BULK COLLECT
5511 INTO G_INS_LINE_REC.LIST_LINE_ID
5512 ,G_INS_LINE_REC.PROGRAM_APPLICATION_ID
5513 ,G_INS_LINE_REC.PROGRAM_ID
5514 ,G_INS_LINE_REC.PROGRAM_UPDATE_DATE
5515 ,G_INS_LINE_REC.REQUEST_ID
5516 ,G_INS_LINE_REC.LIST_HEADER_ID
5517 ,G_INS_LINE_REC.LIST_LINE_TYPE_CODE
5521 ,G_INS_LINE_REC.MODIFIER_LEVEL_CODE
5518 ,G_INS_LINE_REC.START_DATE_ACTIVE
5519 ,G_INS_LINE_REC.END_DATE_ACTIVE
5520 ,G_INS_LINE_REC.AUTOMATIC_FLAG
5522 ,G_INS_LINE_REC.PRICE_BY_FORMULA_ID
5523 ,G_INS_LINE_REC.LIST_PRICE
5524 ,G_INS_LINE_REC.LIST_PRICE_UOM_CODE
5525 ,G_INS_LINE_REC.PRIMARY_UOM_FLAG
5526 ,G_INS_LINE_REC.INVENTORY_ITEM_ID
5527 ,G_INS_LINE_REC.ORGANIZATION_ID
5528 ,G_INS_LINE_REC.RELATED_ITEM_ID
5529 ,G_INS_LINE_REC.RELATIONSHIP_TYPE_ID
5530 ,G_INS_LINE_REC.SUBSTITUTION_CONTEXT
5531 ,G_INS_LINE_REC.SUBSTITUTION_ATTRIBUTE
5532 ,G_INS_LINE_REC.SUBSTITUTION_VALUE
5533 ,G_INS_LINE_REC.REVISION
5534 ,G_INS_LINE_REC.REVISION_DATE
5535 ,G_INS_LINE_REC.REVISION_REASON_CODE
5536 ,G_INS_LINE_REC.PRICE_BREAK_TYPE_CODE
5537 ,G_INS_LINE_REC.PERCENT_PRICE
5538 ,G_INS_LINE_REC.NUMBER_EFFECTIVE_PERIODS
5539 ,G_INS_LINE_REC.EFFECTIVE_PERIOD_UOM
5540 ,G_INS_LINE_REC.ARITHMETIC_OPERATOR
5541 ,G_INS_LINE_REC.OPERAND
5542 ,G_INS_LINE_REC.OVERRIDE_FLAG
5543 ,G_INS_LINE_REC.PRINT_ON_INVOICE_FLAG
5544 ,G_INS_LINE_REC.REBATE_TRANSACTION_TYPE_CODE
5545 ,G_INS_LINE_REC.BASE_QTY
5546 ,G_INS_LINE_REC.BASE_UOM_CODE
5547 ,G_INS_LINE_REC.ACCRUAL_QTY
5548 ,G_INS_LINE_REC.ACCRUAL_UOM_CODE
5549 ,G_INS_LINE_REC.ESTIM_ACCRUAL_RATE
5550 ,G_INS_LINE_REC.PROCESS_ID
5551 ,G_INS_LINE_REC.PROCESS_TYPE
5552 ,G_INS_LINE_REC.INTERFACE_ACTION_CODE
5553 ,G_INS_LINE_REC.LOCK_FLAG
5554 ,G_INS_LINE_REC.PROCESS_FLAG
5555 ,G_INS_LINE_REC.DELETE_FLAG
5556 ,G_INS_LINE_REC.PROCESS_STATUS_FLAG
5557 ,G_INS_LINE_REC.COMMENTS
5558 ,G_INS_LINE_REC.GENERATE_USING_FORMULA_ID
5559 ,G_INS_LINE_REC.REPRICE_FLAG
5560 ,G_INS_LINE_REC.LIST_LINE_NO
5561 ,G_INS_LINE_REC.ESTIM_GL_VALUE
5562 ,G_INS_LINE_REC.BENEFIT_PRICE_LIST_LINE_ID
5563 ,G_INS_LINE_REC.EXPIRATION_PERIOD_START_DATE
5564 ,G_INS_LINE_REC.NUMBER_EXPIRATION_PERIODS
5565 ,G_INS_LINE_REC.EXPIRATION_PERIOD_UOM
5566 ,G_INS_LINE_REC.EXPIRATION_DATE
5567 ,G_INS_LINE_REC.ACCRUAL_FLAG
5568 ,G_INS_LINE_REC.PRICING_PHASE_ID
5569 ,G_INS_LINE_REC.PRICING_GROUP_SEQUENCE
5570 ,G_INS_LINE_REC.INCOMPATIBILITY_GRP_CODE
5571 ,G_INS_LINE_REC.PRODUCT_PRECEDENCE
5572 ,G_INS_LINE_REC.PRORATION_TYPE_CODE
5573 ,G_INS_LINE_REC.ACCRUAL_CONVERSION_RATE
5574 ,G_INS_LINE_REC.BENEFIT_QTY
5575 ,G_INS_LINE_REC.BENEFIT_UOM_CODE
5576 ,G_INS_LINE_REC.RECURRING_FLAG
5577 ,G_INS_LINE_REC.BENEFIT_LIMIT
5578 ,G_INS_LINE_REC.CHARGE_TYPE_CODE
5579 ,G_INS_LINE_REC.CHARGE_SUBTYPE_CODE
5580 ,G_INS_LINE_REC.INCLUDE_ON_RETURNS_FLAG
5581 ,G_INS_LINE_REC.QUALIFICATION_IND
5582 ,G_INS_LINE_REC.CONTEXT
5583 ,G_INS_LINE_REC.ATTRIBUTE1
5584 ,G_INS_LINE_REC.ATTRIBUTE2
5585 ,G_INS_LINE_REC.ATTRIBUTE3
5586 ,G_INS_LINE_REC.ATTRIBUTE4
5587 ,G_INS_LINE_REC.ATTRIBUTE5
5588 ,G_INS_LINE_REC.ATTRIBUTE6
5589 ,G_INS_LINE_REC.ATTRIBUTE7
5590 ,G_INS_LINE_REC.ATTRIBUTE8
5591 ,G_INS_LINE_REC.ATTRIBUTE9
5592 ,G_INS_LINE_REC.ATTRIBUTE10
5593 ,G_INS_LINE_REC.ATTRIBUTE11
5594 ,G_INS_LINE_REC.ATTRIBUTE12
5595 ,G_INS_LINE_REC.ATTRIBUTE13
5596 ,G_INS_LINE_REC.ATTRIBUTE14
5597 ,G_INS_LINE_REC.ATTRIBUTE15
5598 ,G_INS_LINE_REC.RLTD_MODIFIER_GRP_NO
5599 ,G_INS_LINE_REC.RLTD_MODIFIER_GRP_TYPE
5600 ,G_INS_LINE_REC.PRICE_BREAK_HEADER_REF
5601 ,G_INS_LINE_REC.PRICING_PHASE_NAME
5602 ,G_INS_LINE_REC.PRICE_BY_FORMULA
5603 ,G_INS_LINE_REC.GENERATE_USING_FORMULA
5604 ,G_INS_LINE_REC.ATTRIBUTE_STATUS
5605 ,G_INS_LINE_REC.ORIG_SYS_LINE_REF
5606 ,G_INS_LINE_REC.ORIG_SYS_HEADER_REF
5607 ,G_INS_LINE_REC.RECURRING_VALUE
5608 ,G_INS_LINE_REC.NET_AMOUNT_FLAG
5609 --Bug#5359974 RAVI
5610 ,G_INS_LINE_REC.CONTINUOUS_PRICE_BREAK_FLAG
5611 LIMIT l_rows;
5612
5613 write_log('Lines Loaded for INS: '||G_INS_LINE_REC.orig_sys_line_ref.count);
5614
5615 IF G_INS_LINE_REC.orig_sys_line_ref.count>0 THEN
5616
5617 QP_BULK_VALIDATE.Entity_Line(p_line_rec=>G_INS_LINE_REC);
5618
5619 QP_BULK_MSG.Save_Message(p_request_id);
5620
5621 -- 6028305
5622
5623 if p_process_parent='N' then
5624 --Invalidate all the valid sibling break lines, in this request
5625 update qp_interface_list_lines qill1
5626 set qill1.process_status_flag=null
5627 where qill1.price_break_header_ref is not null
5628 and qill1.request_id=p_request_id
5629 and qill1.process_status_flag is not null
5630 --if any sibling of this child line fails validation in this request
5631 and exists (Select 'Y' from qp_interface_list_lines qill2
5632 where qill2.process_status_flag is null
5633 and qill2.request_id=p_request_id
5634 and qill2.price_break_header_ref=qill1.price_break_header_ref);
5635
5636 write_log('Inside process_parent Lines Loaded for INS1: '||G_INS_LINE_REC.orig_sys_line_ref.count);
5637 --Invalidate all the valid price break header lines, in this request
5638 update qp_interface_list_lines qill1
5639 set qill1.process_status_flag=null
5640 where qill1.price_break_header_ref is null
5641 and qill1.LIST_LINE_TYPE_CODE='PBH'
5642 and qill1.request_id=p_request_id
5643 and qill1.process_status_flag is not null
5644 --if any price break qill2 of this header line fails validation in this request
5645 and exists (Select 'Y' from qp_interface_list_lines qill2
5649 and qill2.price_break_header_ref=qill1.orig_sys_line_ref);
5646 where qill2.process_status_flag is null
5647 and qill2.LIST_LINE_TYPE_CODE='PLL'
5648 and qill2.request_id=p_request_id
5650
5651 write_log('Inside process_parent Lines Loaded for INS2: '||G_INS_LINE_REC.orig_sys_line_ref.count);
5652
5653 end if;
5654
5655
5656
5657
5658 -- end bug 6028305
5659
5660 QP_BULK_UTIL.Insert_line(G_INS_LINE_REC);
5661
5662 --set process_status_flag
5663 FORALL I IN G_INS_LINE_REC.orig_sys_line_ref.FIRST
5664 ..G_INS_LINE_REC.orig_sys_line_ref.LAST
5665 UPDATE qp_interface_list_lines
5666 SET process_status_flag = decode(G_INS_LINE_REC.process_status_flag(I),'P', 'I',G_INS_LINE_REC.process_status_flag(I))
5667 WHERE orig_sys_line_ref = G_INS_LINE_REC.orig_sys_line_ref(I)
5668 AND orig_sys_header_ref = G_INS_LINE_REC.orig_sys_header_ref(I)
5669 AND request_id = p_request_id; -- Bug No: 6235177
5670
5671 FOR I IN G_INS_LINE_REC.orig_sys_line_ref.FIRST
5672 ..G_INS_LINE_REC.orig_sys_line_ref.LAST
5673 LOOP
5674
5675 IF G_INS_LINE_REC.price_break_header_ref(I) IS NOT NULL
5676 AND G_INS_LINE_REC.rltd_modifier_grp_type(I) IS NOT NULL
5677 AND G_INS_LINE_REC.process_status_flag(I) IN ('P', 'I') THEN
5678
5679
5680 BEGIN
5681 write_log('Inserting relation for: '
5682 ||G_INS_LINE_REC.orig_sys_line_ref(I));
5683 SELECT list_line_id
5684 into l_from_rltd_modifier_id
5685 from qp_list_lines
5686 where orig_sys_header_ref = G_INS_LINE_REC.orig_sys_header_ref(I)
5687 and orig_sys_line_ref = G_INS_LINE_REC.price_break_header_ref(I);
5688
5689 select QP_RLTD_MODIFIERS_S.nextval
5690 into l_rltd_modifiers_id
5691 from dual;
5692
5693 SELECT QP_RLTD_MODIFIER_GRP_NO_S.nextval
5694 INTO l_rltd_modifiers_grp_no
5695 FROM dual;
5696
5697
5698 QP_RLTD_MODIFIER_PVT.Insert_Row(
5699 l_rltd_modifiers_id
5700 , SYSDATE
5701 , FND_GLOBAL.USER_ID
5702 , SYSDATE
5703 , FND_GLOBAL.USER_ID
5704 , FND_GLOBAL.CONC_LOGIN_ID
5705 , l_rltd_modifiers_grp_no
5706 , l_from_rltd_modifier_id
5707 , G_INS_LINE_REC.list_line_id(I)
5708 , 'PRICE BREAK'
5709 , null
5710 , null
5711 , null
5712 , null
5713 , null
5714 , null
5715 , null
5716 , null
5717 , null
5718 , null
5719 , null
5720 , null
5721 , null
5722 , null
5723 , null
5724 , null
5725 );
5726 EXCEPTION
5727 WHEN NO_DATA_FOUND THEN
5728 G_INS_LINE_REC.process_status_flag(I):=NULL;
5729 FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_PARENT_PBH_REF');
5730 l_msg_txt:= FND_MESSAGE.GET;
5731 --Insert msg
5732 INSERT INTO QP_INTERFACE_ERRORS
5733 (error_id,last_update_date, last_updated_by, creation_date,
5734 created_by, last_update_login, request_id, program_application_id,
5735 program_id, program_update_date, entity_type, table_name, column_name,
5736 orig_sys_header_ref,orig_sys_line_ref,orig_sys_qualifier_ref,
5737 orig_sys_pricing_attr_ref,error_message)
5738 VALUES
5739 (qp_interface_errors_s.nextval, sysdate ,FND_GLOBAL.USER_ID, sysdate,
5740 FND_GLOBAL.USER_ID, FND_GLOBAL.CONC_LOGIN_ID, p_request_id, 660,
5741 NULL,NULL, 'PRL', 'QP_INTERFACE_LIST_LINES', NULL,
5742 G_INS_LINE_REC.orig_sys_header_ref(I),G_INS_LINE_REC.orig_sys_line_ref(I),
5743 null,null,l_msg_txt);
5744 END;
5745 END IF;
5746 END LOOP;
5747 -- 6028305 process attributes here
5748 Process_pricing_attr(p_request_id,p_process_parent);
5749 END IF;
5750 COMMIT;
5751 EXIT WHEN C_INS_LINE%NOTFOUND;
5752 END LOOP;
5753 CLOSE C_INS_LINE;
5754
5755 OPEN C_UDT_LINE;
5756 LOOP
5757 G_UDT_LINE_REC.LIST_LINE_ID.DELETE;
5758 G_UDT_LINE_REC.PROGRAM_APPLICATION_ID.DELETE;
5759 G_UDT_LINE_REC.PROGRAM_ID.delete;
5760 G_UDT_LINE_REC.PROGRAM_UPDATE_DATE.DELETE;
5761 G_UDT_LINE_REC.REQUEST_ID.DELETE;
5762 G_UDT_LINE_REC.LIST_HEADER_ID.DELETE;
5763 G_UDT_LINE_REC.LIST_LINE_TYPE_CODE.DELETE;
5764 G_UDT_LINE_REC.START_DATE_ACTIVE.DELETE;
5765 G_UDT_LINE_REC.END_DATE_ACTIVE.DELETE;
5766 G_UDT_LINE_REC.AUTOMATIC_FLAG.DELETE;
5767 G_UDT_LINE_REC.MODIFIER_LEVEL_CODE.DELETE;
5768 G_UDT_LINE_REC.PRICE_BY_FORMULA_ID.DELETE;
5769 G_UDT_LINE_REC.LIST_PRICE.DELETE;
5770 G_UDT_LINE_REC.LIST_PRICE_UOM_CODE.DELETE;
5771 G_UDT_LINE_REC.PRIMARY_UOM_FLAG.DELETE;
5772 G_UDT_LINE_REC.INVENTORY_ITEM_ID.DELETE;
5773 G_UDT_LINE_REC.ORGANIZATION_ID.DELETE;
5774 G_UDT_LINE_REC.RELATED_ITEM_ID.DELETE;
5775 G_UDT_LINE_REC.RELATIONSHIP_TYPE_ID.DELETE;
5776 G_UDT_LINE_REC.SUBSTITUTION_CONTEXT.DELETE;
5777 G_UDT_LINE_REC.SUBSTITUTION_ATTRIBUTE.DELETE;
5778 G_UDT_LINE_REC.SUBSTITUTION_VALUE.DELETE;
5779 G_UDT_LINE_REC.REVISION.DELETE;
5780 G_UDT_LINE_REC.REVISION_DATE.DELETE;
5781 G_UDT_LINE_REC.REVISION_REASON_CODE.DELETE;
5785 G_UDT_LINE_REC.EFFECTIVE_PERIOD_UOM.DELETE;
5782 G_UDT_LINE_REC.PRICE_BREAK_TYPE_CODE.DELETE;
5783 G_UDT_LINE_REC.PERCENT_PRICE.DELETE;
5784 G_UDT_LINE_REC.NUMBER_EFFECTIVE_PERIODS.DELETE;
5786 G_UDT_LINE_REC.ARITHMETIC_OPERATOR.DELETE;
5787 G_UDT_LINE_REC.OPERAND.DELETE;
5788 G_UDT_LINE_REC.OVERRIDE_FLAG.DELETE;
5789 G_UDT_LINE_REC.PRINT_ON_INVOICE_FLAG.DELETE;
5790 G_UDT_LINE_REC.REBATE_TRANSACTION_TYPE_CODE.DELETE;
5791 G_UDT_LINE_REC.BASE_QTY.DELETE;
5792 G_UDT_LINE_REC.BASE_UOM_CODE.DELETE;
5793 G_UDT_LINE_REC.ACCRUAL_QTY.DELETE;
5794 G_UDT_LINE_REC.ACCRUAL_UOM_CODE.DELETE;
5795 G_UDT_LINE_REC.ESTIM_ACCRUAL_RATE.DELETE;
5796 G_UDT_LINE_REC.PROCESS_ID.DELETE;
5797 G_UDT_LINE_REC.PROCESS_TYPE.DELETE;
5798 G_UDT_LINE_REC.INTERFACE_ACTION_CODE.DELETE;
5799 G_UDT_LINE_REC.LOCK_FLAG.DELETE;
5800 G_UDT_LINE_REC.PROCESS_FLAG.DELETE;
5801 G_UDT_LINE_REC.DELETE_FLAG.DELETE;
5802 G_UDT_LINE_REC.PROCESS_STATUS_FLAG.DELETE;
5803 G_UDT_LINE_REC.COMMENTS.DELETE;
5804 G_UDT_LINE_REC.GENERATE_USING_FORMULA_ID.DELETE;
5805 G_UDT_LINE_REC.REPRICE_FLAG.DELETE;
5806 G_UDT_LINE_REC.LIST_LINE_NO.DELETE;
5807 G_UDT_LINE_REC.ESTIM_GL_VALUE.DELETE;
5808 G_UDT_LINE_REC.BENEFIT_PRICE_LIST_LINE_ID.DELETE;
5809 G_UDT_LINE_REC.EXPIRATION_PERIOD_START_DATE.DELETE;
5810 G_UDT_LINE_REC.NUMBER_EXPIRATION_PERIODS.DELETE;
5811 G_UDT_LINE_REC.EXPIRATION_PERIOD_UOM.DELETE;
5812 G_UDT_LINE_REC.EXPIRATION_DATE.DELETE;
5813 G_UDT_LINE_REC.ACCRUAL_FLAG.DELETE;
5814 G_UDT_LINE_REC.PRICING_PHASE_ID.DELETE;
5815 G_UDT_LINE_REC.PRICING_GROUP_SEQUENCE.DELETE;
5816 G_UDT_LINE_REC.INCOMPATIBILITY_GRP_CODE.DELETE;
5817 G_UDT_LINE_REC.PRODUCT_PRECEDENCE.DELETE;
5818 G_UDT_LINE_REC.PRORATION_TYPE_CODE.DELETE;
5819 G_UDT_LINE_REC.ACCRUAL_CONVERSION_RATE.DELETE;
5820 G_UDT_LINE_REC.BENEFIT_QTY.DELETE;
5821 G_UDT_LINE_REC.BENEFIT_UOM_CODE.DELETE;
5822 G_UDT_LINE_REC.RECURRING_FLAG.DELETE;
5823 G_UDT_LINE_REC.BENEFIT_LIMIT.DELETE;
5824 G_UDT_LINE_REC.CHARGE_TYPE_CODE.DELETE;
5825 G_UDT_LINE_REC.CHARGE_SUBTYPE_CODE.DELETE;
5826 G_UDT_LINE_REC.INCLUDE_ON_RETURNS_FLAG.DELETE;
5827 G_UDT_LINE_REC.QUALIFICATION_IND.DELETE;
5828 G_UDT_LINE_REC.CONTEXT.DELETE;
5829 G_UDT_LINE_REC.ATTRIBUTE1.DELETE;
5830 G_UDT_LINE_REC.ATTRIBUTE2.DELETE;
5831 G_UDT_LINE_REC.ATTRIBUTE3.DELETE;
5832 G_UDT_LINE_REC.ATTRIBUTE4.DELETE;
5833 G_UDT_LINE_REC.ATTRIBUTE5.DELETE;
5834 G_UDT_LINE_REC.ATTRIBUTE6.DELETE;
5835 G_UDT_LINE_REC.ATTRIBUTE7.DELETE;
5836 G_UDT_LINE_REC.ATTRIBUTE8.DELETE;
5837 G_UDT_LINE_REC.ATTRIBUTE9.DELETE;
5838 G_UDT_LINE_REC.ATTRIBUTE10.DELETE;
5839 G_UDT_LINE_REC.ATTRIBUTE11.DELETE;
5840 G_UDT_LINE_REC.ATTRIBUTE12.DELETE;
5841 G_UDT_LINE_REC.ATTRIBUTE13.DELETE;
5842 G_UDT_LINE_REC.ATTRIBUTE14.DELETE;
5843 G_UDT_LINE_REC.ATTRIBUTE15.DELETE;
5844 G_UDT_LINE_REC.RLTD_MODIFIER_GRP_NO.DELETE;
5845 G_UDT_LINE_REC.RLTD_MODIFIER_GRP_TYPE.DELETE;
5846 G_UDT_LINE_REC.PRICE_BREAK_HEADER_REF.DELETE;
5847 G_UDT_LINE_REC.PRICING_PHASE_NAME.DELETE;
5848 G_UDT_LINE_REC.PRICE_BY_FORMULA.DELETE;
5849 G_UDT_LINE_REC.GENERATE_USING_FORMULA.DELETE;
5850 G_UDT_LINE_REC.ATTRIBUTE_STATUS.DELETE;
5851 G_UDT_LINE_REC.ORIG_SYS_LINE_REF.DELETE;
5852 G_UDT_LINE_REC.ORIG_SYS_HEADER_REF.DELETE;
5853 G_UDT_LINE_REC.RECURRING_VALUE.DELETE;
5854 G_UDT_LINE_REC.NET_AMOUNT_FLAG.DELETE;
5855 --Bug#5359974 RAVI
5856 G_UDT_LINE_REC.CONTINUOUS_PRICE_BREAK_FLAG.DELETE;
5857
5858
5859 FETCH C_UDT_LINE BULK COLLECT
5860 INTO G_UDT_LINE_REC.LIST_LINE_ID
5861 ,G_UDT_LINE_REC.PROGRAM_APPLICATION_ID
5862 ,G_UDT_LINE_REC.PROGRAM_ID
5863 ,G_UDT_LINE_REC.PROGRAM_UPDATE_DATE
5864 ,G_UDT_LINE_REC.REQUEST_ID
5865 ,G_UDT_LINE_REC.LIST_HEADER_ID
5866 ,G_UDT_LINE_REC.LIST_LINE_TYPE_CODE
5867 ,G_UDT_LINE_REC.START_DATE_ACTIVE
5868 ,G_UDT_LINE_REC.END_DATE_ACTIVE
5869 ,G_UDT_LINE_REC.AUTOMATIC_FLAG
5870 ,G_UDT_LINE_REC.MODIFIER_LEVEL_CODE
5871 ,G_UDT_LINE_REC.PRICE_BY_FORMULA_ID
5872 ,G_UDT_LINE_REC.LIST_PRICE
5873 ,G_UDT_LINE_REC.LIST_PRICE_UOM_CODE
5874 ,G_UDT_LINE_REC.PRIMARY_UOM_FLAG
5875 ,G_UDT_LINE_REC.INVENTORY_ITEM_ID
5876 ,G_UDT_LINE_REC.ORGANIZATION_ID
5877 ,G_UDT_LINE_REC.RELATED_ITEM_ID
5878 ,G_UDT_LINE_REC.RELATIONSHIP_TYPE_ID
5879 ,G_UDT_LINE_REC.SUBSTITUTION_CONTEXT
5880 ,G_UDT_LINE_REC.SUBSTITUTION_ATTRIBUTE
5881 ,G_UDT_LINE_REC.SUBSTITUTION_VALUE
5882 ,G_UDT_LINE_REC.REVISION
5883 ,G_UDT_LINE_REC.REVISION_DATE
5884 ,G_UDT_LINE_REC.REVISION_REASON_CODE
5885 ,G_UDT_LINE_REC.PRICE_BREAK_TYPE_CODE
5886 ,G_UDT_LINE_REC.PERCENT_PRICE
5887 ,G_UDT_LINE_REC.NUMBER_EFFECTIVE_PERIODS
5888 ,G_UDT_LINE_REC.EFFECTIVE_PERIOD_UOM
5889 ,G_UDT_LINE_REC.ARITHMETIC_OPERATOR
5890 ,G_UDT_LINE_REC.OPERAND
5891 ,G_UDT_LINE_REC.OVERRIDE_FLAG
5892 ,G_UDT_LINE_REC.PRINT_ON_INVOICE_FLAG
5893 ,G_UDT_LINE_REC.REBATE_TRANSACTION_TYPE_CODE
5894 ,G_UDT_LINE_REC.BASE_QTY
5895 ,G_UDT_LINE_REC.BASE_UOM_CODE
5896 ,G_UDT_LINE_REC.ACCRUAL_QTY
5897 ,G_UDT_LINE_REC.ACCRUAL_UOM_CODE
5898 ,G_UDT_LINE_REC.ESTIM_ACCRUAL_RATE
5899 ,G_UDT_LINE_REC.PROCESS_ID
5900 ,G_UDT_LINE_REC.PROCESS_TYPE
5901 ,G_UDT_LINE_REC.INTERFACE_ACTION_CODE
5902 ,G_UDT_LINE_REC.LOCK_FLAG
5903 ,G_UDT_LINE_REC.PROCESS_FLAG
5904 ,G_UDT_LINE_REC.DELETE_FLAG
5905 ,G_UDT_LINE_REC.PROCESS_STATUS_FLAG
5909 ,G_UDT_LINE_REC.LIST_LINE_NO
5906 ,G_UDT_LINE_REC.COMMENTS
5907 ,G_UDT_LINE_REC.GENERATE_USING_FORMULA_ID
5908 ,G_UDT_LINE_REC.REPRICE_FLAG
5910 ,G_UDT_LINE_REC.ESTIM_GL_VALUE
5911 ,G_UDT_LINE_REC.BENEFIT_PRICE_LIST_LINE_ID
5912 ,G_UDT_LINE_REC.EXPIRATION_PERIOD_START_DATE
5913 ,G_UDT_LINE_REC.NUMBER_EXPIRATION_PERIODS
5914 ,G_UDT_LINE_REC.EXPIRATION_PERIOD_UOM
5915 ,G_UDT_LINE_REC.EXPIRATION_DATE
5916 ,G_UDT_LINE_REC.ACCRUAL_FLAG
5917 ,G_UDT_LINE_REC.PRICING_PHASE_ID
5918 ,G_UDT_LINE_REC.PRICING_GROUP_SEQUENCE
5919 ,G_UDT_LINE_REC.INCOMPATIBILITY_GRP_CODE
5920 ,G_UDT_LINE_REC.PRODUCT_PRECEDENCE
5921 ,G_UDT_LINE_REC.PRORATION_TYPE_CODE
5922 ,G_UDT_LINE_REC.ACCRUAL_CONVERSION_RATE
5923 ,G_UDT_LINE_REC.BENEFIT_QTY
5924 ,G_UDT_LINE_REC.BENEFIT_UOM_CODE
5925 ,G_UDT_LINE_REC.RECURRING_FLAG
5926 ,G_UDT_LINE_REC.BENEFIT_LIMIT
5927 ,G_UDT_LINE_REC.CHARGE_TYPE_CODE
5928 ,G_UDT_LINE_REC.CHARGE_SUBTYPE_CODE
5929 ,G_UDT_LINE_REC.INCLUDE_ON_RETURNS_FLAG
5930 ,G_UDT_LINE_REC.QUALIFICATION_IND
5931 ,G_UDT_LINE_REC.CONTEXT
5932 ,G_UDT_LINE_REC.ATTRIBUTE1
5933 ,G_UDT_LINE_REC.ATTRIBUTE2
5934 ,G_UDT_LINE_REC.ATTRIBUTE3
5935 ,G_UDT_LINE_REC.ATTRIBUTE4
5936 ,G_UDT_LINE_REC.ATTRIBUTE5
5937 ,G_UDT_LINE_REC.ATTRIBUTE6
5938 ,G_UDT_LINE_REC.ATTRIBUTE7
5939 ,G_UDT_LINE_REC.ATTRIBUTE8
5940 ,G_UDT_LINE_REC.ATTRIBUTE9
5941 ,G_UDT_LINE_REC.ATTRIBUTE10
5942 ,G_UDT_LINE_REC.ATTRIBUTE11
5943 ,G_UDT_LINE_REC.ATTRIBUTE12
5944 ,G_UDT_LINE_REC.ATTRIBUTE13
5945 ,G_UDT_LINE_REC.ATTRIBUTE14
5946 ,G_UDT_LINE_REC.ATTRIBUTE15
5947 ,G_UDT_LINE_REC.RLTD_MODIFIER_GRP_NO
5948 ,G_UDT_LINE_REC.RLTD_MODIFIER_GRP_TYPE
5949 ,G_UDT_LINE_REC.PRICE_BREAK_HEADER_REF
5950 ,G_UDT_LINE_REC.PRICING_PHASE_NAME
5951 ,G_UDT_LINE_REC.PRICE_BY_FORMULA
5952 ,G_UDT_LINE_REC.GENERATE_USING_FORMULA
5953 ,G_UDT_LINE_REC.ATTRIBUTE_STATUS
5954 ,G_UDT_LINE_REC.ORIG_SYS_LINE_REF
5955 ,G_UDT_LINE_REC.ORIG_SYS_HEADER_REF
5956 ,G_UDT_LINE_REC.RECURRING_VALUE
5957 ,G_UDT_LINE_REC.NET_AMOUNT_FLAG
5958 --Bug#5359974 RAVI
5959 ,G_UDT_LINE_REC.CONTINUOUS_PRICE_BREAK_FLAG
5960 LIMIT l_rows;
5961
5962 write_log('Lines Loaded for UDT: ' || G_UDT_LINE_REC.orig_sys_line_ref.count);
5963
5964 IF G_UDT_LINE_REC.orig_sys_line_ref.count>0 THEN
5965
5966 G_UDT_LINE_REC_OLD:=G_UDT_LINE_REC; -- 6028305
5967
5968 QP_BULK_VALIDATE.Entity_Line(p_line_rec=>G_UDT_LINE_REC);
5969
5970 QP_BULK_MSG.Save_Message(p_request_id);
5971
5972 -- 6028305
5973 if p_process_parent='N' then
5974 --Invalidate all the valid sibling break lines, in this request
5975 update qp_interface_list_lines qill1
5976 set qill1.process_status_flag=null
5977 where qill1.price_break_header_ref is not null
5978 and qill1.request_id=p_request_id
5979 and qill1.process_status_flag is not null
5980 --if any sibling of this child line fails validation in this request
5981 and exists (Select 'Y' from qp_interface_list_lines qill2
5982 where qill2.process_status_flag is null
5983 and qill2.request_id=p_request_id
5984 and qill2.price_break_header_ref=qill1.price_break_header_ref);
5985
5986
5987 --Invalidate all the valid price break header lines, in this request
5988 update qp_interface_list_lines qill1
5989 set qill1.process_status_flag=null
5990 where qill1.price_break_header_ref is null
5991 and qill1.LIST_LINE_TYPE_CODE='PBH'
5992 and qill1.request_id=p_request_id
5993 and qill1.process_status_flag is not null
5994 --if any price break qill2 of this header line fails validation in this request
5995 and exists (Select 'Y' from qp_interface_list_lines qill2
5996 where qill2.process_status_flag is null
5997 and qill2.LIST_LINE_TYPE_CODE='PLL'
5998 and qill2.request_id=p_request_id
5999 and qill2.price_break_header_ref=qill1.orig_sys_line_ref);
6000 COMMIT;
6001 end if;
6002
6003 QP_BULK_UTIL.Update_line(G_UDT_LINE_REC);
6004
6005
6006 --set process_status_flag
6007 FORALL I IN G_UDT_LINE_REC.orig_sys_line_ref.FIRST
6008 ..G_UDT_LINE_REC.orig_sys_line_ref.LAST
6009 UPDATE qp_interface_list_lines
6010 SET process_status_flag = decode(G_UDT_LINE_REC.process_status_flag(I),'P', 'I',G_UDT_LINE_REC.process_status_flag(I))
6011 WHERE orig_sys_line_ref = G_UDT_LINE_REC.orig_sys_line_ref(I)
6012 AND orig_sys_header_ref = G_UDT_LINE_REC.orig_sys_header_ref(I)
6013 AND request_id = p_request_id; -- Bug No: 6235177
6014
6015
6016
6017 COMMIT;
6018 -- changes for bug no 6028305
6019 Process_pricing_attr(p_request_id,p_process_parent);
6020 -- update the parent back 6028305
6021 if p_process_parent='N' then
6022 QP_BULK_UTIL.UPDATE_LINE_TO_OLD(G_UDT_LINE_REC_OLD);
6023 end if;
6024
6025 END IF;
6026
6027 EXIT WHEN C_UDT_LINE%NOTFOUND;
6028 END LOOP;
6029 CLOSE C_UDT_LINE;
6030
6031 QP_BULK_UTIL.Delete_Line(p_request_id);
6032
6033 write_log('Existing Process Line');
6034
6035 EXCEPTION
6036 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6037 write_log( 'UNEXCPECTED ERROR IN PROCESS_LINE:'||sqlerrm);
6041 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6038 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6039 WHEN OTHERS THEN
6040 write_log( 'UNEXCPECTED ERROR IN PROCESS_LINE:'||sqlerrm);
6042 --set Process_status_flag
6043
6044 END PROCESS_LINE;
6045
6046 PROCEDURE PROCESS_PRICING_ATTR
6047 (p_request_id NUMBER,
6048 p_process_parent varchar2) -- 6028305
6049
6050 IS
6051
6052 CURSOR C_INS_PRICING_ATTR
6053 IS
6054 SELECT /*+ index(pa QP_INTERFACE_PRCNG_ATTRIBS_N4) */ pa.PRICING_ATTRIBUTE_ID --7433219
6055 ,pa.PROGRAM_APPLICATION_ID
6056 ,pa.PROGRAM_ID
6057 ,pa.PROGRAM_UPDATE_DATE
6058 ,pa.REQUEST_ID
6059 ,pa.LIST_LINE_ID
6060 ,pa.EXCLUDER_FLAG
6061 ,pa.ACCUMULATE_FLAG
6062 ,pa.PRODUCT_ATTRIBUTE_CONTEXT
6063 ,pa.PRODUCT_ATTRIBUTE
6064 ,pa.PRODUCT_ATTR_VALUE
6065 ,pa.PRODUCT_UOM_CODE
6066 ,pa.PRICING_ATTRIBUTE_CONTEXT
6067 ,pa.PRICING_ATTRIBUTE
6068 ,pa.PRICING_ATTR_VALUE_FROM
6069 ,pa.PRICING_ATTR_VALUE_TO
6070 ,pa.ATTRIBUTE_GROUPING_NO
6071 ,pa.PRODUCT_ATTRIBUTE_DATATYPE
6072 ,pa.PRICING_ATTRIBUTE_DATATYPE
6073 ,pa.COMPARISON_OPERATOR_CODE
6074 ,pa.LIST_HEADER_ID
6075 ,pa.PRICING_PHASE_ID
6076 ,pa.QUALIFICATION_IND
6077 ,pa.PRICING_ATTR_VALUE_FROM_NUMBER
6078 ,pa.PRICING_ATTR_VALUE_TO_NUMBER
6079 ,pa.CONTEXT
6080 ,pa.ATTRIBUTE1
6081 ,pa.ATTRIBUTE2
6082 ,pa.ATTRIBUTE3
6083 ,pa.ATTRIBUTE4
6084 ,pa.ATTRIBUTE5
6085 ,pa.ATTRIBUTE6
6086 ,pa.ATTRIBUTE7
6087 ,pa.ATTRIBUTE8
6088 ,pa.ATTRIBUTE9
6089 ,pa.ATTRIBUTE10
6090 ,pa.ATTRIBUTE11
6091 ,pa.ATTRIBUTE12
6092 ,pa.ATTRIBUTE13
6093 ,pa.ATTRIBUTE14
6094 ,pa.ATTRIBUTE15
6095 ,pa.PROCESS_ID
6096 ,pa.PROCESS_TYPE
6097 ,pa.INTERFACE_ACTION_CODE
6098 ,pa.LOCK_FLAG
6099 ,pa.PROCESS_FLAG
6100 ,pa.DELETE_FLAG
6101 ,pa.PROCESS_STATUS_FLAG
6102 ,pa.PRICE_LIST_LINE_INDEX
6103 ,pa.LIST_LINE_NO
6104 ,pa.ORIG_SYS_PRICING_ATTR_REF
6105 ,pa.PRODUCT_ATTR_CODE
6106 ,pa.PRODUCT_ATTR_VAL_DISP
6107 ,pa.PRICING_ATTR_CODE
6108 ,pa.PRICING_ATTR_VALUE_FROM_DISP
6109 ,pa.PRICING_ATTR_VALUE_TO_DISP
6110 ,pa.ATTRIBUTE_STATUS
6111 ,pa.ORIG_SYS_LINE_REF
6112 ,pa.ORIG_SYS_HEADER_REF
6113 FROM qp_interface_pricing_attribs pa, qp_interface_list_lines l
6114 WHERE pa.request_id = p_request_id
6115 AND l.request_id = p_request_id -- bug no 5881528
6116 AND l.orig_sys_line_ref = pa.orig_sys_line_ref
6117 AND l.process_status_flag = 'I'
6118 AND pa.process_status_flag = 'P'
6119 AND pa.interface_action_code = 'INSERT';
6120
6121 CURSOR C_UDT_PRICING_ATTR
6122 IS
6123 SELECT /*+ index(pa QP_INTERFACE_PRCNG_ATTRIBS_N4) */ pa.PRICING_ATTRIBUTE_ID --7433219
6124 ,pa.PROGRAM_APPLICATION_ID
6125 ,pa.PROGRAM_ID
6126 ,pa.PROGRAM_UPDATE_DATE
6127 ,pa.REQUEST_ID
6128 ,pa.LIST_LINE_ID
6129 ,pa.EXCLUDER_FLAG
6130 ,pa.ACCUMULATE_FLAG
6131 ,pa.PRODUCT_ATTRIBUTE_CONTEXT
6132 ,pa.PRODUCT_ATTRIBUTE
6133 ,pa.PRODUCT_ATTR_VALUE
6134 ,pa.PRODUCT_UOM_CODE
6135 ,pa.PRICING_ATTRIBUTE_CONTEXT
6136 ,pa.PRICING_ATTRIBUTE
6137 ,pa.PRICING_ATTR_VALUE_FROM
6138 ,pa.PRICING_ATTR_VALUE_TO
6139 ,pa.ATTRIBUTE_GROUPING_NO
6140 ,pa.PRODUCT_ATTRIBUTE_DATATYPE
6141 ,pa.PRICING_ATTRIBUTE_DATATYPE
6142 ,pa.COMPARISON_OPERATOR_CODE
6143 ,pa.LIST_HEADER_ID
6144 ,pa.PRICING_PHASE_ID
6145 ,pa.QUALIFICATION_IND
6146 ,pa.PRICING_ATTR_VALUE_FROM_NUMBER
6147 ,pa.PRICING_ATTR_VALUE_TO_NUMBER
6148 ,pa.CONTEXT
6149 ,pa.ATTRIBUTE1
6150 ,pa.ATTRIBUTE2
6151 ,pa.ATTRIBUTE3
6152 ,pa.ATTRIBUTE4
6153 ,pa.ATTRIBUTE5
6154 ,pa.ATTRIBUTE6
6155 ,pa.ATTRIBUTE7
6156 ,pa.ATTRIBUTE8
6157 ,pa.ATTRIBUTE9
6158 ,pa.ATTRIBUTE10
6159 ,pa.ATTRIBUTE11
6160 ,pa.ATTRIBUTE12
6161 ,pa.ATTRIBUTE13
6162 ,pa.ATTRIBUTE14
6163 ,pa.ATTRIBUTE15
6164 ,pa.PROCESS_ID
6165 ,pa.PROCESS_TYPE
6166 ,pa.INTERFACE_ACTION_CODE
6167 ,pa.LOCK_FLAG
6168 ,pa.PROCESS_FLAG
6169 ,pa.DELETE_FLAG
6170 ,pa.PROCESS_STATUS_FLAG
6171 ,pa.PRICE_LIST_LINE_INDEX
6172 ,pa.LIST_LINE_NO
6173 ,pa.ORIG_SYS_PRICING_ATTR_REF
6174 ,pa.PRODUCT_ATTR_CODE
6175 ,pa.PRODUCT_ATTR_VAL_DISP
6176 ,pa.PRICING_ATTR_CODE
6177 ,pa.PRICING_ATTR_VALUE_FROM_DISP
6178 ,pa.PRICING_ATTR_VALUE_TO_DISP
6179 ,pa.ATTRIBUTE_STATUS
6180 ,pa.ORIG_SYS_LINE_REF
6181 ,pa.ORIG_SYS_HEADER_REF
6182 FROM qp_interface_pricing_attribs pa, qp_interface_list_lines l
6183 WHERE pa.request_id = p_request_id
6184 AND l.request_id = p_request_id -- bug no 5881528
6185 AND l.orig_sys_line_ref = pa.orig_sys_line_ref
6186 AND l.process_status_flag = 'I'
6187 AND pa.process_status_flag = 'P'
6188 AND pa.interface_action_code = 'UPDATE';
6189
6190 l_rows NATURAL;
6191
6192 BEGIN
6193 write_log('Entering Process Pricing Attribute');
6197 LOOP
6194 OPEN C_INS_PRICING_ATTR;
6195 l_rows := g_qp_batch_size;
6196
6198
6199 G_INS_PRICING_ATTR_REC.pricing_attribute_id.Delete;
6200 G_INS_PRICING_ATTR_REC.PROGRAM_APPLICATION_ID.DELETE;
6201 G_INS_PRICING_ATTR_REC.PROGRAM_ID.DELETE;
6202 G_INS_PRICING_ATTR_REC.PROGRAM_UPDATE_DATE.DELETE;
6203 G_INS_PRICING_ATTR_REC.REQUEST_ID.DELETE;
6204 G_INS_PRICING_ATTR_REC.LIST_LINE_ID.DELETE;
6205 G_INS_PRICING_ATTR_REC.EXCLUDER_FLAG.DELETE;
6206 G_INS_PRICING_ATTR_REC.ACCUMULATE_FLAG.DELETE;
6207 G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_CONTEXT.DELETE;
6208 G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE.DELETE;
6209 G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_VALUE.DELETE;
6210 G_INS_PRICING_ATTR_REC.PRODUCT_UOM_CODE.DELETE;
6211 G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE_CONTEXT.DELETE;
6212 G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE.DELETE;
6213 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM.DELETE;
6214 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO.DELETE;
6215 G_INS_PRICING_ATTR_REC.ATTRIBUTE_GROUPING_NO.DELETE;
6216 G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_DATATYPE.DELETE;
6217 G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE_DATATYPE.DELETE;
6218 G_INS_PRICING_ATTR_REC.COMPARISON_OPERATOR_CODE.DELETE;
6219 G_INS_PRICING_ATTR_REC.LIST_HEADER_ID.DELETE;
6220 G_INS_PRICING_ATTR_REC.PRICING_PHASE_ID.DELETE;
6221 G_INS_PRICING_ATTR_REC.QUALIFICATION_IND.DELETE;
6222 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_NUMBER.DELETE;
6223 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_NUMBER.DELETE;
6224 G_INS_PRICING_ATTR_REC.CONTEXT.DELETE;
6225 G_INS_PRICING_ATTR_REC.ATTRIBUTE1.DELETE;
6226 G_INS_PRICING_ATTR_REC.ATTRIBUTE2.DELETE;
6227 G_INS_PRICING_ATTR_REC.ATTRIBUTE3.DELETE;
6228 G_INS_PRICING_ATTR_REC.ATTRIBUTE4.DELETE;
6229 G_INS_PRICING_ATTR_REC.ATTRIBUTE5.DELETE;
6230 G_INS_PRICING_ATTR_REC.ATTRIBUTE6.DELETE;
6231 G_INS_PRICING_ATTR_REC.ATTRIBUTE7.DELETE;
6232 G_INS_PRICING_ATTR_REC.ATTRIBUTE8.DELETE;
6233 G_INS_PRICING_ATTR_REC.ATTRIBUTE9.DELETE;
6234 G_INS_PRICING_ATTR_REC.ATTRIBUTE10.DELETE;
6235 G_INS_PRICING_ATTR_REC.ATTRIBUTE11.DELETE;
6236 G_INS_PRICING_ATTR_REC.ATTRIBUTE12.DELETE;
6237 G_INS_PRICING_ATTR_REC.ATTRIBUTE13.DELETE;
6238 G_INS_PRICING_ATTR_REC.ATTRIBUTE14.DELETE;
6239 G_INS_PRICING_ATTR_REC.ATTRIBUTE15.DELETE;
6240 G_INS_PRICING_ATTR_REC.PROCESS_ID.DELETE;
6241 G_INS_PRICING_ATTR_REC.PROCESS_TYPE.DELETE;
6242 G_INS_PRICING_ATTR_REC.INTERFACE_ACTION_CODE.DELETE;
6243 G_INS_PRICING_ATTR_REC.LOCK_FLAG.DELETE;
6244 G_INS_PRICING_ATTR_REC.PROCESS_FLAG.DELETE;
6245 G_INS_PRICING_ATTR_REC.DELETE_FLAG.DELETE;
6246 G_INS_PRICING_ATTR_REC.PROCESS_STATUS_FLAG.DELETE;
6247 G_INS_PRICING_ATTR_REC.PRICE_LIST_LINE_INDEX.DELETE;
6248 G_INS_PRICING_ATTR_REC.LIST_LINE_NO.DELETE;
6249 G_INS_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.DELETE;
6250 G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_CODE.DELETE;
6251 G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_VAL_DISP.DELETE;
6252 G_INS_PRICING_ATTR_REC.PRICING_ATTR_CODE.DELETE;
6253 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_DISP.DELETE;
6254 G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_DISP.DELETE;
6255 G_INS_PRICING_ATTR_REC.ATTRIBUTE_STATUS.DELETE;
6256 G_INS_PRICING_ATTR_REC.ORIG_SYS_LINE_REF.DELETE;
6257 G_INS_PRICING_ATTR_REC.ORIG_SYS_HEADER_REF.DELETE;
6258
6259 FETCH C_INS_PRICING_ATTR BULK COLLECT
6260 INTO G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE_ID
6261 ,G_INS_PRICING_ATTR_REC.PROGRAM_APPLICATION_ID
6262 ,G_INS_PRICING_ATTR_REC.PROGRAM_ID
6263 ,G_INS_PRICING_ATTR_REC.PROGRAM_UPDATE_DATE
6264 ,G_INS_PRICING_ATTR_REC.REQUEST_ID
6265 ,G_INS_PRICING_ATTR_REC.LIST_LINE_ID
6266 ,G_INS_PRICING_ATTR_REC.EXCLUDER_FLAG
6267 ,G_INS_PRICING_ATTR_REC.ACCUMULATE_FLAG
6268 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_CONTEXT
6269 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE
6270 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_VALUE
6271 ,G_INS_PRICING_ATTR_REC.PRODUCT_UOM_CODE
6272 ,G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE_CONTEXT
6273 ,G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE
6274 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM
6275 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO
6276 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE_GROUPING_NO
6277 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_DATATYPE
6278 ,G_INS_PRICING_ATTR_REC.PRICING_ATTRIBUTE_DATATYPE
6279 ,G_INS_PRICING_ATTR_REC.COMPARISON_OPERATOR_CODE
6280 ,G_INS_PRICING_ATTR_REC.LIST_HEADER_ID
6281 ,G_INS_PRICING_ATTR_REC.PRICING_PHASE_ID
6282 ,G_INS_PRICING_ATTR_REC.QUALIFICATION_IND
6283 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_NUMBER
6284 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_NUMBER
6285 ,G_INS_PRICING_ATTR_REC.CONTEXT
6286 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE1
6287 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE2
6288 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE3
6289 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE4
6290 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE5
6291 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE6
6292 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE7
6293 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE8
6294 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE9
6295 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE10
6296 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE11
6297 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE12
6298 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE13
6302 ,G_INS_PRICING_ATTR_REC.PROCESS_TYPE
6299 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE14
6300 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE15
6301 ,G_INS_PRICING_ATTR_REC.PROCESS_ID
6303 ,G_INS_PRICING_ATTR_REC.INTERFACE_ACTION_CODE
6304 ,G_INS_PRICING_ATTR_REC.LOCK_FLAG
6305 ,G_INS_PRICING_ATTR_REC.PROCESS_FLAG
6306 ,G_INS_PRICING_ATTR_REC.DELETE_FLAG
6307 ,G_INS_PRICING_ATTR_REC.PROCESS_STATUS_FLAG
6308 ,G_INS_PRICING_ATTR_REC.PRICE_LIST_LINE_INDEX
6309 ,G_INS_PRICING_ATTR_REC.LIST_LINE_NO
6310 ,G_INS_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF
6311 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_CODE
6312 ,G_INS_PRICING_ATTR_REC.PRODUCT_ATTR_VAL_DISP
6313 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_CODE
6314 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_DISP
6315 ,G_INS_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_DISP
6316 ,G_INS_PRICING_ATTR_REC.ATTRIBUTE_STATUS
6317 ,G_INS_PRICING_ATTR_REC.ORIG_SYS_LINE_REF
6318 ,G_INS_PRICING_ATTR_REC.ORIG_SYS_HEADER_REF
6319
6320 LIMIT l_rows;
6321
6322 write_log('Pricing Attribute loaded for INS: '
6323 ||G_INS_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.COUNT);
6324
6325 IF (G_INS_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.COUNT >0 ) THEN
6326
6327 QP_BULK_VALIDATE.Entity_pricing_attr(p_pricing_attr_rec=>G_INS_PRICING_ATTR_REC);
6328
6329 QP_BULK_MSG.Save_Message(p_request_id);
6330
6331
6332 -- 6028305
6333 if p_process_parent='N' then
6334
6335 --if any price break of this header line fails validation in this request
6336 update qp_interface_pricing_Attribs qill1
6337 set qill1.process_status_flag=null
6338 where qill1.PRICING_ATTR_CODE is null
6339 and qill1.request_id=p_request_id
6340 and qill1.process_status_flag is not null
6341 and exists
6342
6343 (select 'Y'
6344 from qp_interface_pricing_Attribs q1,qp_interface_list_lines q2,qp_interface_list_lines q3
6345 where q1.process_status_flag is null
6346 and q1.request_id=p_request_id
6347 and q2.request_id=p_request_id
6348 and q3.request_id=p_request_id
6349 and q1.ORIG_SYS_LINE_REF=q2.ORIG_SYS_LINE_REF
6350 and q2.price_break_header_ref is not null
6351 and q2.price_break_header_ref=q3.orig_sys_line_ref
6352 and q2.ORIG_SYS_HEADER_REF=q3.ORIG_SYS_HEADER_REF
6353 and q1.ORIG_SYS_HEADER_REF=q2.ORIG_SYS_HEADER_REF
6354 and qill1.ORIG_SYS_LINE_REF=q3.ORIG_SYS_LINE_REF);
6355
6356 -- Deleting all child if the siblings fail
6357 update qp_interface_pricing_Attribs qill1
6358 set qill1.process_status_flag=null
6359 where qill1.PRICING_ATTR_CODE is not null
6360 and qill1.request_id=p_request_id
6361 and qill1.process_status_flag is not null
6362 and exists
6363 (select 'Y'
6364 from qp_interface_pricing_Attribs q1,qp_interface_list_lines q2,qp_interface_list_lines q3
6365 where q1.process_status_flag is null
6366 and q1.request_id=p_request_id
6367 and q2.request_id=p_request_id
6368 and q3.request_id=p_request_id
6369 and q1.ORIG_SYS_LINE_REF=q2.ORIG_SYS_LINE_REF
6370 and q2.price_break_header_ref is not null
6371 and q2.price_break_header_ref=q3.price_break_header_ref
6372 and q2.ORIG_SYS_HEADER_REF=q3.ORIG_SYS_HEADER_REF
6373 and q1.ORIG_SYS_HEADER_REF=q2.ORIG_SYS_HEADER_REF
6374 and qill1.ORIG_SYS_LINE_REF=q3.ORIG_SYS_LINE_REF);
6375
6376
6377 ---- updating the corresponding list lines
6378 update qp_interface_list_lines qill
6379 set process_Status_flag = null
6380 where qill.request_id=p_request_id
6381 and qill.process_status_flag is not null
6382 and exists
6383 ( select 'Y'
6384 from qp_interface_pricing_Attribs q1
6385 where q1.process_status_flag is null
6386 and q1.request_id=p_request_id
6387 and q1.ORIG_SYS_HEADER_REF=qill.ORIG_SYS_HEADER_REF
6388 and q1.ORIG_SYS_LINE_REF=qill.ORIG_SYS_LINE_REF);
6389
6390 COMMIT;
6391 end if;
6392
6393 QP_BULK_UTIL.Insert_pricing_attr(G_INS_PRICING_ATTR_REC);
6394
6395 --set the process_status_flag
6396 FORALL I IN G_INS_PRICING_ATTR_REC.orig_sys_pricing_attr_ref.FIRST
6397 ..G_INS_PRICING_ATTR_REC.orig_sys_pricing_attr_ref.LAST
6398 UPDATE qp_interface_pricing_attribs
6399 SET process_status_flag = decode(G_INS_PRICING_ATTR_REC.process_status_flag(I),'P','I',G_INS_PRICING_ATTR_REC.process_status_flag(I))
6400 WHERE orig_sys_pricing_attr_ref = G_INS_PRICING_ATTR_REC.orig_sys_pricing_attr_ref(I)
6401 AND orig_sys_line_ref = G_INS_PRICING_ATTR_REC.orig_sys_line_ref(I)
6402 AND orig_sys_header_ref = G_INS_PRICING_ATTR_REC.orig_sys_header_ref(I)
6403 AND request_id = p_request_id; -- Bug No: 6235177
6404
6405 END IF;
6406 COMMIT;
6407 EXIT WHEN C_INS_PRICING_ATTR%NOTFOUND;
6408 END LOOP;
6409 CLOSE C_INS_PRICING_ATTR;
6410
6411 OPEN C_UDT_PRICING_ATTR;
6412
6413 LOOP
6414
6415 G_UDT_PRICING_ATTR_REC.pricing_attribute_id.Delete;
6416 G_UDT_PRICING_ATTR_REC.PROGRAM_APPLICATION_ID.DELETE;
6417 G_UDT_PRICING_ATTR_REC.PROGRAM_ID.DELETE;
6418 G_UDT_PRICING_ATTR_REC.PROGRAM_UPDATE_DATE.DELETE;
6419 G_UDT_PRICING_ATTR_REC.REQUEST_ID.DELETE;
6423 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_CONTEXT.DELETE;
6420 G_UDT_PRICING_ATTR_REC.LIST_LINE_ID.DELETE;
6421 G_UDT_PRICING_ATTR_REC.EXCLUDER_FLAG.DELETE;
6422 G_UDT_PRICING_ATTR_REC.ACCUMULATE_FLAG.DELETE;
6424 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE.DELETE;
6425 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_VALUE.DELETE;
6426 G_UDT_PRICING_ATTR_REC.PRODUCT_UOM_CODE.DELETE;
6427 G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE_CONTEXT.DELETE;
6428 G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE.DELETE;
6429 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM.DELETE;
6430 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO.DELETE;
6431 G_UDT_PRICING_ATTR_REC.ATTRIBUTE_GROUPING_NO.DELETE;
6432 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_DATATYPE.DELETE;
6433 G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE_DATATYPE.DELETE;
6434 G_UDT_PRICING_ATTR_REC.COMPARISON_OPERATOR_CODE.DELETE;
6435 G_UDT_PRICING_ATTR_REC.LIST_HEADER_ID.DELETE;
6436 G_UDT_PRICING_ATTR_REC.PRICING_PHASE_ID.DELETE;
6437 G_UDT_PRICING_ATTR_REC.QUALIFICATION_IND.DELETE;
6438 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_NUMBER.DELETE;
6439 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_NUMBER.DELETE;
6440 G_UDT_PRICING_ATTR_REC.CONTEXT.DELETE;
6441 G_UDT_PRICING_ATTR_REC.ATTRIBUTE1.DELETE;
6442 G_UDT_PRICING_ATTR_REC.ATTRIBUTE2.DELETE;
6443 G_UDT_PRICING_ATTR_REC.ATTRIBUTE3.DELETE;
6444 G_UDT_PRICING_ATTR_REC.ATTRIBUTE4.DELETE;
6445 G_UDT_PRICING_ATTR_REC.ATTRIBUTE5.DELETE;
6446 G_UDT_PRICING_ATTR_REC.ATTRIBUTE6.DELETE;
6447 G_UDT_PRICING_ATTR_REC.ATTRIBUTE7.DELETE;
6448 G_UDT_PRICING_ATTR_REC.ATTRIBUTE8.DELETE;
6449 G_UDT_PRICING_ATTR_REC.ATTRIBUTE9.DELETE;
6450 G_UDT_PRICING_ATTR_REC.ATTRIBUTE10.DELETE;
6451 G_UDT_PRICING_ATTR_REC.ATTRIBUTE11.DELETE;
6452 G_UDT_PRICING_ATTR_REC.ATTRIBUTE12.DELETE;
6453 G_UDT_PRICING_ATTR_REC.ATTRIBUTE13.DELETE;
6454 G_UDT_PRICING_ATTR_REC.ATTRIBUTE14.DELETE;
6455 G_UDT_PRICING_ATTR_REC.ATTRIBUTE15.DELETE;
6456 G_UDT_PRICING_ATTR_REC.PROCESS_ID.DELETE;
6457 G_UDT_PRICING_ATTR_REC.PROCESS_TYPE.DELETE;
6458 G_UDT_PRICING_ATTR_REC.INTERFACE_ACTION_CODE.DELETE;
6459 G_UDT_PRICING_ATTR_REC.LOCK_FLAG.DELETE;
6460 G_UDT_PRICING_ATTR_REC.PROCESS_FLAG.DELETE;
6461 G_UDT_PRICING_ATTR_REC.DELETE_FLAG.DELETE;
6462 G_UDT_PRICING_ATTR_REC.PROCESS_STATUS_FLAG.DELETE;
6463 G_UDT_PRICING_ATTR_REC.PRICE_LIST_LINE_INDEX.DELETE;
6464 G_UDT_PRICING_ATTR_REC.LIST_LINE_NO.DELETE;
6465 G_UDT_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.DELETE;
6466 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_CODE.DELETE;
6467 G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_VAL_DISP.DELETE;
6468 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_CODE.DELETE;
6469 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_DISP.DELETE;
6470 G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_DISP.DELETE;
6471 G_UDT_PRICING_ATTR_REC.ATTRIBUTE_STATUS.DELETE;
6472 G_UDT_PRICING_ATTR_REC.ORIG_SYS_LINE_REF.DELETE;
6473 G_UDT_PRICING_ATTR_REC.ORIG_SYS_HEADER_REF.DELETE;
6474
6475 FETCH C_UDT_PRICING_ATTR BULK COLLECT
6476 INTO G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE_ID
6477 ,G_UDT_PRICING_ATTR_REC.PROGRAM_APPLICATION_ID
6478 ,G_UDT_PRICING_ATTR_REC.PROGRAM_ID
6479 ,G_UDT_PRICING_ATTR_REC.PROGRAM_UPDATE_DATE
6480 ,G_UDT_PRICING_ATTR_REC.REQUEST_ID
6481 ,G_UDT_PRICING_ATTR_REC.LIST_LINE_ID
6482 ,G_UDT_PRICING_ATTR_REC.EXCLUDER_FLAG
6483 ,G_UDT_PRICING_ATTR_REC.ACCUMULATE_FLAG
6484 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_CONTEXT
6485 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE
6486 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_VALUE
6487 ,G_UDT_PRICING_ATTR_REC.PRODUCT_UOM_CODE
6488 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE_CONTEXT
6489 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE
6490 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM
6491 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO
6492 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE_GROUPING_NO
6493 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTRIBUTE_DATATYPE
6494 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTRIBUTE_DATATYPE
6495 ,G_UDT_PRICING_ATTR_REC.COMPARISON_OPERATOR_CODE
6496 ,G_UDT_PRICING_ATTR_REC.LIST_HEADER_ID
6497 ,G_UDT_PRICING_ATTR_REC.PRICING_PHASE_ID
6498 ,G_UDT_PRICING_ATTR_REC.QUALIFICATION_IND
6499 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_NUMBER
6500 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_NUMBER
6501 ,G_UDT_PRICING_ATTR_REC.CONTEXT
6502 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE1
6503 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE2
6504 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE3
6505 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE4
6506 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE5
6507 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE6
6508 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE7
6509 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE8
6510 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE9
6511 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE10
6512 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE11
6513 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE12
6514 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE13
6515 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE14
6516 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE15
6517 ,G_UDT_PRICING_ATTR_REC.PROCESS_ID
6518 ,G_UDT_PRICING_ATTR_REC.PROCESS_TYPE
6519 ,G_UDT_PRICING_ATTR_REC.INTERFACE_ACTION_CODE
6520 ,G_UDT_PRICING_ATTR_REC.LOCK_FLAG
6521 ,G_UDT_PRICING_ATTR_REC.PROCESS_FLAG
6522 ,G_UDT_PRICING_ATTR_REC.DELETE_FLAG
6523 ,G_UDT_PRICING_ATTR_REC.PROCESS_STATUS_FLAG
6524 ,G_UDT_PRICING_ATTR_REC.PRICE_LIST_LINE_INDEX
6528 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_VAL_DISP
6525 ,G_UDT_PRICING_ATTR_REC.LIST_LINE_NO
6526 ,G_UDT_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF
6527 ,G_UDT_PRICING_ATTR_REC.PRODUCT_ATTR_CODE
6529 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_CODE
6530 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_FROM_DISP
6531 ,G_UDT_PRICING_ATTR_REC.PRICING_ATTR_VALUE_TO_DISP
6532 ,G_UDT_PRICING_ATTR_REC.ATTRIBUTE_STATUS
6533 ,G_UDT_PRICING_ATTR_REC.ORIG_SYS_LINE_REF
6534 ,G_UDT_PRICING_ATTR_REC.ORIG_SYS_HEADER_REF
6535
6536 LIMIT l_rows;
6537 write_log('Pricing Attribute loaded for UDT:'
6538 ||G_UDT_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.COUNT);
6539
6540 IF (G_UDT_PRICING_ATTR_REC.ORIG_SYS_PRICING_ATTR_REF.COUNT >0 ) THEN
6541
6542 QP_BULK_VALIDATE.Entity_pricing_attr(p_pricing_attr_rec=>G_UDT_PRICING_ATTR_REC);
6543
6544 QP_BULK_MSG.Save_Message(p_request_id);
6545
6546 -- 6028305
6547
6548 if p_process_parent='N' then
6549
6550 --if any price break of this header line fails validation in this request
6551 update qp_interface_pricing_Attribs qill1
6552 set qill1.process_status_flag=null
6553 where qill1.PRICING_ATTR_CODE is null
6554 and qill1.request_id=p_request_id
6555 and qill1.process_status_flag is not null
6556 and exists
6557
6558 (select 'Y'
6559 from qp_interface_pricing_Attribs q1,qp_interface_list_lines q2,qp_interface_list_lines q3
6560 where q1.process_status_flag is null
6561 and q1.request_id=p_request_id
6562 and q2.request_id=p_request_id
6563 and q3.request_id=p_request_id
6564 and q1.ORIG_SYS_LINE_REF=q2.ORIG_SYS_LINE_REF
6565 and q2.price_break_header_ref is not null
6566 and q2.price_break_header_ref=q3.orig_sys_line_ref
6567 and q2.ORIG_SYS_HEADER_REF=q3.ORIG_SYS_HEADER_REF
6568 and q1.ORIG_SYS_HEADER_REF=q2.ORIG_SYS_HEADER_REF
6569 and qill1.ORIG_SYS_LINE_REF=q3.ORIG_SYS_LINE_REF);
6570
6571 write_log( 'Number of attribute lines picked1: '||SQL%ROWCOUNT);
6572 -- Deleting all child if the siblings fail
6573 update qp_interface_pricing_Attribs qill1
6574 set qill1.process_status_flag=null
6575 where qill1.PRICING_ATTR_CODE is not null
6576 and qill1.request_id=p_request_id
6577 and qill1.process_status_flag is not null
6578 and exists
6579 (select 'Y'
6580 from qp_interface_pricing_Attribs q1,qp_interface_list_lines q2,qp_interface_list_lines q3
6581 where q1.process_status_flag is null
6582 and q1.request_id=p_request_id
6583 and q2.request_id=p_request_id
6584 and q3.request_id=p_request_id
6585 and q1.ORIG_SYS_LINE_REF=q2.ORIG_SYS_LINE_REF
6586 and q2.price_break_header_ref is not null
6587 and q2.price_break_header_ref=q3.price_break_header_ref
6588 and q2.ORIG_SYS_HEADER_REF=q3.ORIG_SYS_HEADER_REF
6589 and q1.ORIG_SYS_HEADER_REF=q2.ORIG_SYS_HEADER_REF
6590 and qill1.ORIG_SYS_LINE_REF=q3.ORIG_SYS_LINE_REF);
6591
6592 write_log( 'Number of attribute lines picked1: '||SQL%ROWCOUNT);
6593 ---- updating the corresponding list lines
6594 update qp_interface_list_lines qill
6595 set process_Status_flag = null
6596 where qill.request_id=p_request_id
6597 and qill.process_status_flag is not null
6598 and exists
6599 ( select 'Y'
6600 from qp_interface_pricing_Attribs q1
6601 where q1.process_status_flag is null
6602 and q1.request_id=p_request_id
6603 and q1.ORIG_SYS_HEADER_REF=qill.ORIG_SYS_HEADER_REF
6604 and q1.ORIG_SYS_LINE_REF=qill.ORIG_SYS_LINE_REF);
6605
6606 write_log( 'Number of attribute lines picked1: '||SQL%ROWCOUNT);
6607 commit;
6608 end if;
6609
6610 QP_BULK_UTIL.Update_pricing_attr(G_UDT_PRICING_ATTR_REC);
6611
6612 --set the process_status_flag
6613 FORALL I IN G_UDT_PRICING_ATTR_REC.orig_sys_pricing_attr_ref.FIRST
6614 ..G_UDT_PRICING_ATTR_REC.orig_sys_pricing_attr_ref.LAST
6615 UPDATE qp_interface_pricing_attribs
6616 SET process_status_flag = decode(G_UDT_PRICING_ATTR_REC.process_status_flag(I),'P','I',G_UDT_PRICING_ATTR_REC.process_status_flag(I))
6617 WHERE orig_sys_pricing_attr_ref = G_UDT_PRICING_ATTR_REC.orig_sys_pricing_attr_ref(I)
6618 AND orig_sys_line_ref = G_UDT_PRICING_ATTR_REC.orig_sys_line_ref(I)
6619 AND orig_sys_header_ref = G_UDT_PRICING_ATTR_REC.orig_sys_header_ref(I)
6620 AND request_id = p_request_id; --Bug No: 6235177
6621
6622 END IF;
6623 COMMIT;
6624 EXIT WHEN C_UDT_PRICING_ATTR%NOTFOUND;
6625 END LOOP;
6626 CLOSE C_UDT_PRICING_ATTR;
6627
6628 Post_cleanup_Line(p_request_id); --delete all the errored records
6629
6630 QP_BULK_UTIL.Delete_Pricing_Attr(p_request_id);
6631
6632 write_log('Leaving Process Pricing Attribute');
6633 EXCEPTION
6634 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6635 write_log( 'UNEXCPECTED ERROR IN PROCESS_PRICING_ATTR:'||sqlerrm);
6636 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6637 WHEN OTHERS THEN
6638 write_log( 'UNEXCPECTED ERROR IN PROCESS_PRICING_ATTR:'||sqlerrm);
6639 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6640
6641 END PROCESS_PRICING_ATTR;
6642
6643 PROCEDURE POST_CLEANUP
6644 (p_request_id NUMBER)
6645 IS
6646 BEGIN
6647 write_log('Entering POST_CLEANUP');
6651 (Select b.list_header_id
6648
6649 Delete from qp_list_headers_tl
6650 where list_header_id IN
6652 from qp_list_headers_b b, qp_interface_list_headers h
6653 where h.request_id = p_request_id
6654 and b.orig_system_header_ref=h.orig_sys_header_ref
6655 and h.process_status_flag IS NULL
6656 and h.interface_action_code = 'INSERT'
6657 -- 6028305
6658 AND NOT EXISTS(
6659 select 1 from qp_list_headers qplh
6660 where h.interface_action_code = 'INSERT'
6661 and qplh.orig_system_header_ref=h.orig_sys_header_ref));
6662
6663 Delete from qp_list_headers_b
6664 where orig_system_header_ref IN
6665 (Select orig_sys_header_ref
6666 from qp_interface_list_headers h
6667 where h.request_id = p_request_id
6668 and h.process_status_flag IS NULL
6669 and h.interface_action_code = 'INSERT'
6670 -- 6028305
6671 AND NOT EXISTS(
6672 select 1 from qp_list_headers qplh
6673 where h.interface_action_code = 'INSERT'
6674 and qplh.orig_system_header_ref=h.orig_sys_header_ref));
6675
6676 Delete from qp_qualifiers
6677 where rowid IN
6678 (Select q.rowid
6679 from qp_interface_qualifiers iq, qp_qualifiers q
6680 where iq.request_id = p_request_id
6681 and q.request_id= p_request_id -- changes made by rassharm 6028305
6682 and iq.process_status_flag IS NULL
6683 and iq.interface_action_code = 'INSERT'
6684 and iq.orig_sys_qualifier_ref = q.orig_sys_qualifier_ref
6685 and iq.orig_sys_header_ref = q.orig_sys_header_ref);
6686
6687 write_log('Leaving POST_CLEANUP');
6688
6689 EXCEPTION
6690 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6691 write_log( 'UNEXCPECTED ERROR IN PROCEDURE POST_CLEANUP:'||sqlerrm);
6692 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6693 WHEN OTHERS THEN
6694 write_log( 'UNEXCPECTED ERROR IN PROCEDURE POST_CLEANUP:'||sqlerrm);
6695 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6696
6697 END POST_CLEANUP;
6698
6699 PROCEDURE POST_CLEANUP_LINE
6700 (p_request_id NUMBER)
6701 IS
6702
6703 BEGIN
6704
6705 -- To delete only those record which where inserted even after error.
6706 write_log('Entering POST_CLEANUP_LINE');
6707
6708 Delete from qp_rltd_modifiers
6709 where from_rltd_modifier_id IN
6710 (select l.list_line_id
6711 from qp_list_lines l, qp_interface_list_lines il
6712 where il.request_id = p_request_id
6713 and l.request_id = p_request_id -- changes made by rassharm 6028305
6714 and il.process_status_flag IS NULL
6715 and il.interface_action_code ='INSERT'
6716 and il.orig_sys_header_ref = l.orig_sys_header_ref
6717 and il.orig_sys_line_ref = l.orig_sys_line_ref);
6718
6719
6720 Delete from qp_rltd_modifiers
6721 where to_rltd_modifier_id IN
6722 (select l.list_line_id
6723 from qp_list_lines l, qp_interface_list_lines il
6724 where il.request_id = p_request_id
6725 and l.request_id = p_request_id -- changes made by rassharm 6028305
6726 and il.process_status_flag IS NULL
6727 and il.interface_action_code ='INSERT'
6728 and il.orig_sys_header_ref = l.orig_sys_header_ref
6729 and il.orig_sys_line_ref = l.orig_sys_line_ref);
6730
6731 Delete from qp_pricing_attributes
6732 where pricing_attribute_id IN
6733 (Select pa.pricing_attribute_id
6734 from qp_pricing_attributes pa, qp_interface_pricing_attribs ipa
6735 where ipa.request_id = p_request_id
6736 and pa.request_id = p_request_id -- changes made by rassharm 6028305
6737 and ipa.process_status_flag IS NULL
6738 and ipa.interface_action_code ='INSERT'
6739 and ipa.orig_sys_pricing_attr_ref = pa.orig_sys_pricing_attr_ref
6740 and ipa.orig_sys_line_ref = pa.orig_sys_line_ref
6741 and ipa.orig_sys_header_ref = pa.orig_sys_header_ref
6742 and ipa.interface_action_code = 'INSERT');
6743
6744
6745 Delete from qp_list_lines
6746 where list_line_id IN
6747 (select l.list_line_id
6748 from qp_list_lines l, qp_interface_list_lines il
6749 where il.request_id = p_request_id
6750 and l.request_id = p_request_id -- changes made by rassharm 6028305
6751 and il.process_status_flag IS NULL
6752 and il.interface_action_code ='INSERT'
6753 and il.orig_sys_header_ref = l.orig_sys_header_ref
6754 and il.orig_sys_line_ref = l.orig_sys_line_ref);
6755
6756 write_log('Leaving POST_CLEANUP_LINE');
6757
6758 EXCEPTION
6759 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6760 write_log( 'UNEXCPECTED ERROR IN PROCEDURE POST_CLEANUP_LINE:'||sqlerrm);
6761 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6762 WHEN OTHERS THEN
6763 write_log( 'UNEXCPECTED ERROR IN PROCEDURE POST_CLEANUP_LINE:'||sqlerrm);
6764 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6765
6766 END POST_CLEANUP_LINE;
6767
6768 PROCEDURE VALIDATE_LINES
6769 (p_request_id NUMBER)
6770 IS
6771 cursor c_invalid_lines is
6772 select l.list_line_id, -- price list lines
6773 l.orig_sys_line_ref,
6774 l.orig_sys_header_ref
6775 from qp_list_lines l
6776 where l.request_id = p_request_id
6777 and not exists (select 'x' from qp_rltd_modifiers
6781 and pa.pricing_attribute_context is null
6778 where to_rltd_modifier_id = l.list_line_id)
6779 and not exists (select 'x' from qp_pricing_attributes pa
6780 where l.list_line_id = pa.list_line_id
6782 and pa.pricing_attribute is null
6783 and pa.pricing_attr_value_from is null
6784 and pa.pricing_attr_value_to is null)
6785 union
6786 select l.list_line_id, -- price break child line
6787 l.orig_sys_line_ref,
6788 l.orig_sys_header_ref
6789 from qp_list_lines l
6790 where l.request_id = p_request_id
6791 and exists (select 'x' from qp_rltd_modifiers
6792 where to_rltd_modifier_id = l.list_line_id)
6793 and not exists (select 'x' from qp_pricing_attributes pa
6794 where l.list_line_id = pa.list_line_id
6795 and pa.pricing_attribute_context is not null
6796 and pa.pricing_attribute is not null
6797 and (pa.pricing_attr_value_from is not null
6798 or pa.pricing_attr_value_to is not null))
6799 union
6800 select l.list_line_id, -- price break child line
6801 l.orig_sys_line_ref,
6802 l.orig_sys_header_ref
6803 from qp_list_lines l
6804 where l.request_id = p_request_id
6805 AND l.list_line_type_code ='PBH'
6806 and not exists(select pl.list_line_id
6807 from qp_list_lines pl, qp_rltd_modifiers rltd
6808 where rltd.from_rltd_modifier_id = l.list_line_id
6809 and pl.list_line_id = rltd.to_rltd_modifier_id);
6810
6811 l_list_line_id_tbl QP_BULK_LOADER_PUB.num_type;
6812 l_orig_sys_line_ref_tbl QP_BULK_LOADER_PUB.char50_type;
6813 l_orig_sys_header_ref_tbl QP_BULK_LOADER_PUB.char50_type;
6814 l_msg_txt VARCHAR2(2000);
6815
6816 BEGIN
6817
6818 open c_invalid_lines;
6819 fetch c_invalid_lines
6820 bulk collect into
6821 l_list_line_id_tbl,
6822 l_orig_sys_line_ref_tbl,
6823 l_orig_sys_header_ref_tbl;
6824 close c_invalid_lines;
6825
6826 write_log('Entering validate line');
6827
6828 IF l_orig_sys_line_ref_tbl.count>0 THEN
6829
6830 write_log('Number of invalid lines: '|| l_orig_sys_line_ref_tbl.count);
6831
6832 FORALL I in l_orig_sys_line_ref_tbl.first..l_orig_sys_line_ref_tbl.last
6833 UPDATE qp_interface_list_lines
6834 SET process_status_flag = NULL
6835 WHERE orig_sys_header_ref = l_orig_sys_header_ref_tbl(I)
6836 AND orig_sys_line_ref = l_orig_sys_line_ref_tbl(I)
6837 AND request_id = p_request_id; --Bug No: 6235177
6838
6839 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6840 DELETE FROM qp_pricing_attributes
6841 WHERE list_line_id = l_list_line_id_tbl(I);
6842
6843 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6844 DELETE FROM qp_list_lines
6845 WHERE list_line_id = l_list_line_id_tbl(I);
6846
6847 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6848 DELETE FROM qp_rltd_modifiers
6849 WHERE to_rltd_modifier_id = l_list_line_id_tbl(I);
6850
6851 -- Price break child lines and its attributes
6852 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6853 DELETE FROM qp_list_lines
6854 WHERE list_line_id IN
6855 (SELECT to_rltd_modifier_id
6856 FROM qp_rltd_modifiers
6857 WHERE from_rltd_modifier_id = l_list_line_id_tbl(I));
6858
6859 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6860 DELETE FROM qp_pricing_attributes
6861 WHERE list_line_id IN
6862 (SELECT to_rltd_modifier_id
6863 FROM qp_rltd_modifiers
6864 WHERE from_rltd_modifier_id = l_list_line_id_tbl(I));
6865
6866 FORALL I in l_list_line_id_tbl.first..l_list_line_id_tbl.last
6867 DELETE FROM QP_RLTD_MODIFIERS
6868 WHERE from_rltd_modifier_id = l_list_line_id_tbl(I);
6869
6870
6871 FND_MESSAGE.SET_NAME('QP', 'PR_LINE_REQ_PROD_ATTR');
6872 l_msg_txt := FND_MESSAGE.GET;
6873
6874 FORALL I in l_orig_sys_line_ref_tbl.first..l_orig_sys_line_ref_tbl.last
6875 INSERT INTO QP_INTERFACE_ERRORS
6876 (error_id,last_update_date, last_updated_by, creation_date,
6877 created_by, last_update_login, request_id, program_application_id,
6878 program_id, program_update_date, entity_type, table_name, column_name,
6879 orig_sys_header_ref,orig_sys_line_ref,orig_sys_qualifier_ref,
6880 orig_sys_pricing_attr_ref,error_message)
6881 VALUES
6882 (qp_interface_errors_s.nextval, sysdate ,FND_GLOBAL.USER_ID, sysdate,
6883 FND_GLOBAL.USER_ID, FND_GLOBAL.CONC_LOGIN_ID, p_request_id, 660,
6884 NULL,NULL, 'PRL', 'QP_INTERFACE_LIST_LINES', NULL,
6885 null,l_orig_sys_line_ref_tbl(I),null,null,l_msg_txt);
6886
6887 write_log('Leaving Validate_Lines');
6888
6889 END IF;
6890 EXCEPTION
6891 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6892 write_log( 'UNEXCPECTED ERROR IN PROCEDURE VALIDATE_LINES:'||sqlerrm);
6893 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6894 WHEN OTHERS THEN
6895 write_log( 'UNEXCPECTED ERROR IN PROCEDURE VALIDATE_LINES:'||sqlerrm);
6896 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6897
6898 END VALIDATE_LINES;
6899
6900
6901 PROCEDURE Delete_errored_records_parents
6902 (p_request_id NUMBER)
6903 IS
6904
6905 CURSOR c_pricing_attr IS
6906 SELECT orig_sys_pricing_attr_ref,
6907 orig_sys_line_ref,
6908 orig_sys_header_ref
6909 FROM qp_interface_pricing_attribs
6910 WHERE request_id = p_request_id
6911 AND process_status_flag IS NULL;
6912
6916 price_break_header_ref
6913 CURSOR c_pbh_child_line IS
6914 SELECT orig_sys_line_ref,
6915 orig_sys_header_ref,
6917 FROM qp_interface_list_lines
6918 WHERE request_id = p_request_id
6919 AND process_status_flag IS NULL
6920 AND price_break_header_ref IS NOT NULL;
6921
6922
6923 l_exist NUMBER;
6924 l_parent_id NUMBER;
6925
6926 BEGIN
6927
6928 write_log( 'Entering Delete errored records parents');
6929 --delete list lines for a pricing attribute failure
6930 FOR l_pricing_attr_rec IN c_pricing_attr
6931 LOOP
6932 BEGIN
6933
6934 DELETE FROM QP_PRICING_ATTRIBUTES
6935 WHERE list_line_id IN
6936 (SELECT r.to_rltd_modifier_id
6937 FROM qp_rltd_modifiers r, qp_list_lines l
6938 WHERE l.orig_sys_line_ref = l_pricing_attr_rec.orig_sys_line_ref
6939 AND l.orig_sys_header_ref = l_pricing_attr_rec.orig_sys_header_ref
6940 AND l.list_line_id = r.from_rltd_modifier_id);
6941
6942 DELETE FROM QP_LIST_LINES
6943 WHERE list_line_id IN
6944 (SELECT r.to_rltd_modifier_id
6945 FROM qp_rltd_modifiers r, qp_list_lines l
6946 WHERE l.orig_sys_line_ref = l_pricing_attr_rec.orig_sys_line_ref
6947 AND l.orig_sys_header_ref = l_pricing_attr_rec.orig_sys_header_ref
6948 AND l.list_line_id = r.from_rltd_modifier_id);
6949
6950 DELETE FROM QP_RLTD_MODIFIERS
6951 WHERE from_rltd_modifier_id IN
6952 (SELECT list_line_id FROM QP_LIST_LINES l
6953 WHERE l.orig_sys_line_ref = l_pricing_attr_rec.orig_sys_line_ref
6954 AND l.orig_sys_header_ref = l_pricing_attr_rec.orig_sys_header_ref);
6955
6956 DELETE FROM QP_PRICING_ATTRIBUTES
6957 WHERE orig_sys_line_ref = l_pricing_attr_rec.orig_sys_line_ref
6958 AND orig_sys_header_ref = l_pricing_attr_rec.orig_sys_header_ref;
6959
6960 DELETE FROM QP_LIST_LINES
6961 WHERE orig_sys_line_ref = l_pricing_attr_rec.orig_sys_line_ref
6962 AND orig_sys_header_ref = l_pricing_attr_rec.orig_sys_header_ref;
6963
6964 END;
6965
6966 END LOOP;
6967
6968 FOR l_pbh_cline_rec IN c_pbh_child_line
6969 LOOP
6970 DELETE FROM QP_PRICING_ATTRIBUTES
6971 WHERE list_line_id IN
6972 (SELECT to_rltd_modifier_id
6973 FROM QP_RLTD_MODIFIERS r, QP_LIST_LINES l
6974 WHERE l.orig_sys_line_ref = l_pbh_cline_rec.price_break_header_ref
6975 AND l.orig_sys_header_ref = l_pbh_cline_rec.orig_sys_header_ref
6976 AND l.list_line_id = r.from_rltd_modifier_id);
6977
6978 DELETE FROM QP_LIST_LINES
6979 WHERE list_line_id IN
6980 (SELECT to_rltd_modifier_id
6981 FROM QP_RLTD_MODIFIERS r, QP_LIST_LINES l
6982 WHERE l.orig_sys_line_ref = l_pbh_cline_rec.price_break_header_ref
6983 AND l.orig_sys_header_ref = l_pbh_cline_rec.orig_sys_header_ref
6984 AND l.list_line_id = r.from_rltd_modifier_id);
6985
6986 DELETE FROM QP_PRICING_ATTRIBUTES
6987 WHERE list_line_id IN
6988 (SELECT list_line_id
6989 FROM QP_LIST_LINES
6990 WHERE orig_sys_line_ref = l_pbh_cline_rec.orig_sys_line_ref
6991 AND orig_sys_header_ref = l_pbh_cline_rec.orig_sys_header_ref);
6992
6993 DELETE FROM QP_LIST_LINES
6994 WHERE list_line_id IN
6995 (SELECT list_line_id
6996 FROM QP_LIST_LINES
6997 WHERE orig_sys_line_ref = l_pbh_cline_rec.orig_sys_line_ref
6998 AND orig_sys_header_ref = l_pbh_cline_rec.orig_sys_header_ref);
6999
7000 DELETE FROM QP_RLTD_MODIFIERS
7001 WHERE from_rltd_modifier_id IN
7002 (SELECT list_line_id
7003 FROM QP_LIST_LINES
7004 WHERE orig_sys_line_ref = l_pbh_cline_rec.orig_sys_line_ref
7005 AND orig_sys_header_ref = l_pbh_cline_rec.orig_sys_header_ref);
7006
7007 END LOOP;
7008 write_log('Leaving Delete errored records parent');
7009
7010 EXCEPTION
7011 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7012 write_log(
7013 'UNEXCPECTED ERROR IN PROCEDURE DELETE_ERRORED_RECORDS_PARENTS:'||sqlerrm);
7014 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7015 WHEN OTHERS THEN
7016 write_log(
7017 'UNEXCPECTED ERROR IN PROCEDURE DELETE_ERRORED_RECORDS_PARENTS:'||sqlerrm);
7018 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7019 END Delete_errored_records_parents;
7020
7021 PROCEDURE ERRORS_TO_OUTPUT
7022 (p_request_id NUMBER)
7023 IS
7024
7025 CURSOR c_errors IS
7026 SELECT request_id,
7027 entity_type,
7028 table_name,
7029 orig_sys_header_ref,
7030 orig_sys_line_ref,
7031 orig_sys_pricing_attr_ref,
7032 orig_sys_qualifier_ref,
7033 error_message
7034 from QP_INTERFACE_ERRORS
7035 WHERE request_id = p_request_id;
7036
7037 l_request_id NUMBER;
7038 l_ENTITY_TYPE VARCHAR2(30);
7039 l_TABLE_NAME VARCHAR2(30);
7040 l_COLUMN_NAME VARCHAR2(80);
7041 l_ERROR_MESSAGE VARCHAR2(240);
7042 l_ORIG_SYS_LINE_REF VARCHAR2(50);
7043 l_ORIG_SYS_PRICING_ATTR_REF VARCHAR2(50);
7044 l_ORIG_SYS_HEADER_REF VARCHAR2(50);
7045 l_ORIG_SYS_QUALIFIER_REF VARCHAR2(50);
7046
7047 BEGIN
7048 fnd_file.put_line(FND_FILE.OUTPUT,'');
7049 fnd_file.put_line(FND_FILE.OUTPUT,'Error Details');
7050 fnd_file.put_line(FND_FILE.OUTPUT,'');
7054 INTO l_request_id,
7051 OPEN c_errors;
7052 LOOP
7053 FETCH c_errors
7055 l_entity_type,
7056 l_table_name,
7057 l_orig_sys_header_ref,
7058 l_orig_sys_line_ref,
7059 l_orig_sys_pricing_attr_ref,
7060 l_orig_sys_qualifier_ref,
7061 l_error_message;
7062
7063 EXIT WHEN c_errors%NOTFOUND;
7064 if l_table_name = 'QP_INTERFACE_LIST_HEADERS' then
7065 fnd_file.put_line(FND_FILE.OUTPUT,to_char(l_request_id)
7066 ||'/'||l_entity_type
7067 ||'/'||l_table_name
7068 ||'/'||l_orig_sys_header_ref
7069 ||' '||l_error_message);
7070 elsif l_table_name = 'QP_INTERFACE_LIST_LINES' then
7071 fnd_file.put_line(FND_FILE.OUTPUT,to_char(l_request_id)
7072 ||'/'||l_entity_type
7073 ||'/'||l_table_name
7074 ||'/'||l_orig_sys_header_ref
7075 ||'/'||l_orig_sys_line_ref
7076 ||' '||l_error_message);
7077 elsif l_table_name = 'QP_INTERFACE_LIST_QUALIFIERS' then
7078 fnd_file.put_line(FND_FILE.OUTPUT,to_char(l_request_id)
7079 ||'/'||l_entity_type
7080 ||'/'||l_table_name
7081 ||'/'||l_orig_sys_header_ref
7082 ||'/'||l_orig_sys_qualifier_ref
7083 ||' '||l_error_message);
7084 elsif l_table_name = 'QP_INTERFACE_LIST_PRICING_ATTRIBS' then
7085 fnd_file.put_line(FND_FILE.OUTPUT,to_char(l_request_id)
7086 ||'/'||l_entity_type
7087 ||'/'||l_table_name
7088 ||'/'||l_orig_sys_header_ref
7089 ||'/'||l_orig_sys_line_ref
7090 ||'/'||l_orig_sys_pricing_attr_ref
7091 ||' '||l_error_message);
7092 else
7093 fnd_file.put_line(FND_FILE.OUTPUT,to_char(l_request_id)
7094 ||'/'||l_entity_type
7095 ||'/'||l_table_name
7096 ||'/'||l_orig_sys_header_ref
7097 ||'/'||l_orig_sys_qualifier_ref
7098 ||'/'||l_orig_sys_line_ref
7099 ||'/'||l_orig_sys_pricing_attr_ref
7100 ||' '||l_error_message);
7101
7102 end if;
7103 fnd_file.put_line(FND_FILE.OUTPUT,'');
7104 END LOOP;
7105 END;
7106
7107 PROCEDURE PURGE
7108 (p_request_id NUMBER)
7109 IS
7110 BEGIN
7111 write_log('Entering Purging');
7112 DELETE FROM qp_interface_pricing_attribs
7113 WHERE request_id = p_request_id
7114 AND process_status_flag = 'I';
7115
7116 DELETE FROM qp_interface_list_lines
7117 WHERE request_id = p_request_id
7118 AND process_status_flag = 'I';
7119
7120 DELETE FROM qp_interface_qualifiers
7121 WHERE request_id = p_request_id
7122 AND process_status_flag = 'I';
7123
7124 DELETE FROM qp_interface_list_headers
7125 WHERE request_id = p_request_id
7126 AND process_status_flag = 'I';
7127
7128 write_log('Leaving Purging');
7129
7130 EXCEPTION
7131 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7132 write_log( 'UNEXCPECTED ERROR IN PROCEDURE PURGE:'||sqlerrm);
7133 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7134 WHEN OTHERS THEN
7135 write_log( 'UNEXCPECTED ERROR IN PROCEDURE PURGE:'||sqlerrm);
7136 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7137
7138 END PURGE;
7139
7140 --Basic_Pricing_Condition
7141 FUNCTION Get_QP_Status RETURN VARCHAR2 IS
7142 BEGIN
7143 IF G_QP_STATUS IS NULL THEN
7144 IF FND_GLOBAL.RESP_APPL_ID = 714 THEN
7145 -- If the calling application is FTE then treat QP installation status
7146 -- as fully installed.
7147 G_QP_STATUS := 'I';
7148 ELSE
7149 -- Get the QP installation status
7150 G_QP_STATUS := QP_UTIL.GET_QP_STATUS;
7151 END IF;
7152 END IF;
7153
7154 RETURN G_QP_STATUS;
7155
7156 END;
7157
7158 PROCEDURE CLEAN_UP_CODE (l_request_id number)
7159 IS
7160 l_suc_head NUMBER;
7161 l_err_head NUMBER;
7162 l_suc_qual NUMBER;
7163 l_err_qual NUMBER;
7164 Begin
7165
7166 write_log( 'Complete...');
7167
7168
7169 Select count(*) into l_suc_head
7170 from qp_interface_list_headers
7171 where request_id = l_request_id
7172 and process_status_flag = 'I';
7173
7174 Select count(*) into l_err_head
7175 from qp_interface_list_headers
7176 where request_id = l_request_id
7177 and process_status_flag IS NULL;
7178
7179 Select count(*) into l_suc_qual
7180 from qp_interface_qualifiers
7181 where request_id = l_request_id
7182 and process_status_flag = 'I';
7183
7184 Select count(*) into l_err_qual
7185 from qp_interface_qualifiers
7186 where request_id = l_request_id
7187 and process_status_flag IS NULL;
7188
7189 purge(l_request_id);
7190
7191 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Number Of succesfully Processed Headers: '||l_suc_head);
7192 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Number Of Errored Headers: '||l_err_head);
7193 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Number Of succesfully Processed Qualifiers: '||l_suc_qual);
7194 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Number Of Errored Qualifiers: '||l_err_qual);
7195 ERRORS_TO_OUTPUT(l_request_id);
7196 END;
7197
7198 PROCEDURE write_log(log_text VARCHAR2)
7199 IS
7200 BEGIN
7201 IF G_QP_DEBUG = 'Y' THEN
7202 FND_FILE.PUT_LINE(FND_FILE.LOG, log_text);
7203 END IF;
7204 END;
7205
7206 END QP_BULK_LOADER_PUB;