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