DBA Data[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;