DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_DELAYED_REQUESTS_PVT

Source


1 PACKAGE BODY oe_delayed_requests_pvt AS
2 /* $Header: OEXVREQB.pls 120.47.12020000.7 2013/04/09 08:01:59 spothula ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Delayed_Requests_PVT';
7 G_BINARY_LIMIT CONSTANT NUMBER := OE_GLOBALS.G_BINARY_LIMIT; -- Added for bug 8233604
8 
9 g_requesting_entities  		OE_Order_PUB.Requesting_Entity_Tbl_Type;
10 G_MAX_REQUESTS                  NUMBER := 10000;
11 
12 /* Local Procedures */
13 /* Local procedure to check if a request exists for a given entity, request
14    return the result in p_request_search_result which is set to FND_API.G_TRUE
15    if the request exists. The index of the request in request table is returned
16    in parameter x_request_ind
17 
18    BUG 1794544 -
19    05/30/01: Changes to improve scalability of this search when there
20    is a large number of requests:
21 
22    The index value where the request is stored is a function of the
23    entity_id value (the function  was chosen to be 'mod' as this has
24    a high probability of resulting in a unique value as line ids are
25    generated sequentially). Therefore, this check would search only
26    through requests for the entity_id that resolves to the same
27    mod value.
28 
29    If the request does NOT exist, then x_result is set to FND_API.G_FALSE
30    and the parameter x_request_ind has the index value where this request
31    should be inserted.
32 */
33 
34 PROCEDURE Process_Scheduling_Request
35 ( p_request_ind    IN  NUMBER
36  ,p_request_rec    IN  OE_Order_PUB.request_rec_type
37 ,x_return_status OUT NOCOPY VARCHAR2);
38 
39 PROCEDURE Check_Pricing_Request
40 ( p_request_ind    IN  NUMBER
41  ,p_request_rec    IN  OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.request_rec_type
42  ,x_log_request    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 );
44 
45 Procedure  Check_for_Request( p_entity_code    in Varchar2
46 			      ,p_entity_id     in Number
47 			      ,p_request_type  in Varchar2
48 			      ,p_request_unique_key1 	IN VARCHAR2
49 			      ,p_request_unique_key2 	IN VARCHAR2
50 			      ,p_request_unique_key3 	IN VARCHAR2
51 			      ,p_request_unique_key4 	IN VARCHAR2
52 			      ,p_request_unique_key5 	IN VARCHAR2
53 ,x_request_ind OUT NOCOPY Number
54 
55 ,x_result OUT NOCOPY Varchar2
56 
57 ,x_return_status OUT NOCOPY Varchar2)
58 
59 IS
60      l_ind	PLS_INTEGER;
61      l_max_ind  PLS_INTEGER;
62 --
63 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
64 --
65 BEGIN
66    x_return_status	:= FND_API.G_RET_STS_SUCCESS;
67    x_result		:= FND_API.G_FALSE;
68    IF l_debug_level > 0 THEN
69    oe_debug_pub.add('Entering Procedure Check_for_Request in Package OE_Delayed_Requests_Pvt');
70    END IF;
71    -- l_ind to l_max_ind is the range of index positions that can
72    -- hold requests for this entity id - for e.g. if entity_id is
73    -- 2341 and G_MAX_REQUESTS is 10000 then the range would be:
74    -- 23410001 - 23420000
75 
76    l_ind := (mod(p_entity_id,100000) * G_MAX_REQUESTS)+1;
77    l_max_ind := l_ind + G_MAX_REQUESTS - 1;
78 
79    --oe_debug_pub.add('Max Ind :'||l_max_ind);
80 
81    -- Starting from l_ind, search for the first index position
82    -- with a request. This is required as requests can be
83    -- deleted later which will result in indexes without any
84    -- requests. However, the search should still go over the
85    -- requests in the range from l_ind to l_max_ind.
86 
87    IF NOT G_Delayed_Requests.Exists(l_ind) THEN
88       x_request_ind := l_ind;
89       l_ind := G_Delayed_Requests.Next(l_ind);
90    END IF;
91 
92    WHILE G_Delayed_Requests.Exists(l_ind)
93          AND l_ind <= l_max_ind LOOP
94 
95         x_request_ind := l_ind+1;
96 
97         --oe_debug_pub.add('Index :'||l_ind);
98         --oe_debug_pub.add('Entity :'||G_Delayed_Requests(l_ind).Entity_code);
99         --oe_debug_pub.add('Entity ID:'||G_Delayed_Requests(l_ind).entity_id);
100         --oe_debug_pub.add('Request:'||G_Delayed_Requests(l_ind).request_type);
101 
102 	IF G_Delayed_Requests(l_ind).Entity_code = p_entity_code
103 	  AND
104 	  G_Delayed_Requests(l_ind).Entity_id = p_entity_id
105 	  AND
106 	  G_Delayed_Requests(l_ind).Request_Type = p_request_type
107 	  AND
108 	  NVL(G_Delayed_Requests(l_ind).request_unique_key1, FND_API.G_MISS_CHAR) =
109 	  	NVL(p_request_unique_key1, FND_API.G_MISS_CHAR)
110 	  AND
111 	  NVL(G_Delayed_Requests(l_ind).request_unique_key2, FND_API.G_MISS_CHAR) =
112 	  	NVL(p_request_unique_key2, FND_API.G_MISS_CHAR)
113 	  AND
114 	  NVL(G_Delayed_Requests(l_ind).request_unique_key3, FND_API.G_MISS_CHAR) =
115 	  	NVL(p_request_unique_key3, FND_API.G_MISS_CHAR)
116 	  AND
117 	  NVL(G_Delayed_Requests(l_ind).request_unique_key4, FND_API.G_MISS_CHAR) =
118 	  	NVL(p_request_unique_key4, FND_API.G_MISS_CHAR)
119 	  AND
120 	  NVL(G_Delayed_Requests(l_ind).request_unique_key5, FND_API.G_MISS_CHAR) =
121 	  	NVL(p_request_unique_key5, FND_API.G_MISS_CHAR)
122           AND NVL(G_Delayed_Requests(l_ind).processed,'N') = 'N'
123 	THEN
124 	   x_request_ind := l_ind;
125 	   x_result := FND_API.G_TRUE;
126 	   EXIT;
127 	END IF;
128 
129         l_ind := G_Delayed_Requests.Next(l_ind);
130 
131      END LOOP;
132 
133      IF x_request_ind > l_max_ind THEN
134         FND_MESSAGE.SET_NAME('ONT','OE_MAX_REQUESTS_EXCEEDED');
135         OE_MSG_PUB.ADD;
136         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
137      END IF;
138 
139 EXCEPTION
140    WHEN OTHERS THEN
141       IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
142 	THEN
143 	 OE_MSG_PUB.Add_Exc_Msg
144 	   (G_PKG_NAME
145 	    ,'CheckForRequest');
146       END IF;
147       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
148 
149 End Check_For_Request;
150 
151 FUNCTION Requests_Count
152 RETURN NUMBER
153 IS
154 BEGIN
155 
156 	RETURN G_Delayed_Requests.COUNT;
157 
158 END Requests_Count;
159 
160 PROCEDURE Process_Request_Pvt
161    (p_request_ind	IN Number
162    ,p_delete            IN Varchar2 default  FND_API.G_FALSE
163 ,x_return_status OUT NOCOPY VARCHAR2)
164 
165 IS
166 cursor included_lines_cur(p_header_id in number) is
167 select line_id
168 from oe_order_lines_all
169 where header_id = p_header_id
170 and item_type_code = 'INCLUDED';
171 
172 l_request_rec       OE_Order_PUB.request_rec_type;
173 l_request_type	VARCHAR2(30);
174 l_return_status	VARCHAR2(1);
175 l_entity_id	NUMBER;
176 l_entity_code	Varchar2(30);
177 l_req_entity_ind		number;
178 l_req_ind           NUMBER;  --TaxER
179 l_set_index     NUMBER;
180 l_set_request  OE_Order_PUB.request_tbl_type;
181 l_sch_set_tbl          OE_Order_PUB.request_tbl_type;
182 l_deleted_options_tbl  OE_Order_PUB.request_tbl_type;
183 l_updated_options_tbl  OE_Order_PUB.request_tbl_type;
184 l_index                NUMBER;
185 l_d_index              NUMBER;
186 l_u_index              NUMBER;
187 l_set                  VARCHAR2(2000);
188 K                      NUMBER;
189 l_cto_request_rec      OE_Order_PUB.request_rec_type;
190 l_cto_request_tbl      OE_Order_PUB.request_tbl_type;
191 l_cto_split_tbl        OE_Order_PUB.request_tbl_type;
192 l_cto_decimal_tbl      OE_Order_PUB.request_tbl_type;
193 l_line_Tbl 			OE_ORDER_PUB.line_Tbl_type;
194 l_prc_adj_request      OE_ORDER_PUB.request_tbl_type;
195 l_prc_adj_index NUMBER := 1;
196 I                      NUMBER := 1;
197 l_price_control_rec		QP_PREQ_GRP.control_record_type;
198 l_msg_count			NUMBER;
199 l_msg_data			VARCHAR2(2000);
200 l_entity_id_tbl    		Entity_Id_Tbl_Type;
201 j   number := 1;
202 l_unit_cost                     number; --MRG
203 l_count               NUMBER; --2391781
204 l_set_id              NUMBER := NULL; -- 2391781
205 payment_line_id       NUMBER;
206 payment_header_id     NUMBER;
207 old_invoice_to_org_id NUMBER; --R12 CC Encryption
208 
209 l_header_id      NUMBER; -- For IR ISO CMS Project
210 l_line_id        NUMBER; -- For IR ISO CMS Project
211 l_cancel_order   BOOLEAN := FALSE; -- For IR ISO CMS Project
212 --
213 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
214 --
215 l_mod_entity_id  number; -- Bug 8636027
216 
217 l_otm_volume NUMBER; --BUG#10052614
218 l_dynamic_call varchar2(1000); -- Bug#10052614
219 l_org_id                NUMBER(15):=MO_GLOBAL.Get_Current_Org_Id;
220 --TaxER Start
221 l_header_rec OE_Order_PUB.Header_Rec_Type;
222 l_current_event number := 0;
223 l_tax_calculation_event_code number := 0;
224 --TaxER End
225 
226 
227 BEGIN
228  IF l_debug_level > 0 THEN
229       oe_debug_pub.add('Entering Procedure Process_Request_Pvt ',1);
230       oe_debug_pub.add('Request processed  '||G_Delayed_Requests(p_request_ind).processed);
231  END IF;
232 
233 IF NOT oe_globals.g_call_process_req THEN --9354229
234       IF l_debug_level  > 0 THEN
235         oe_debug_pub.add(  'EXIT Procedure Process_Request_Pvt' , 1 ) ;
236       END IF;
237       RETURN;
238 END IF;
239       x_return_status := FND_API.G_RET_STS_SUCCESS;
240 
241 
242       -- if request has already been processed ('Y') or if the request is
243       -- being processed ('I'): this would occur if request resulted in
244       -- to a recursive call to process order (bug#1003821)
245       if  (G_Delayed_Requests(p_request_ind).processed = 'Y'
246 		OR G_Delayed_Requests(p_request_ind).processed = 'I')
247 	 then
248           RETURN;
249       end if;
250       l_request_rec :=  G_Delayed_Requests(p_request_ind);
251       l_entity_code    := l_request_rec.entity_code;
252       l_entity_Id      := l_request_rec.entity_Id;
253       l_request_type   := l_request_rec.request_type;
254  IF l_debug_level > 0 THEN
255       oe_debug_pub.add('Request type  '||l_request_type,1);
256       oe_debug_pub.add('Entity id     '||l_entity_id, 5);
257       oe_debug_pub.add('param1        '||l_request_rec.param1, 5);
258       oe_debug_pub.add('param2        '||l_request_rec.param2, 5);
259       oe_debug_pub.add('param3        '||l_request_rec.param3, 5);
260  END IF;
261           G_Delayed_Requests(p_request_ind).processed := 'I';
262 
263  IF l_debug_level > 0 THEN
264       IF OE_GLOBALS.G_CASCADING_REQUEST_LOGGED THEN
265          oe_debug_pub.add('cascade flag set to true');
266       ELSE
267          oe_debug_pub.add('cascade flag set to false');
268       END IF;
269  END IF;
270       -- Fix Bug 2062937: Do not set the cascade flag blindly for certain
271       -- delayed requests.
272       -- This will improve the performance of sales order form as lines
273       -- would not be re-queried if cascade flag is not set.
274       -- Requests for which cascade flag is not set:
275       -- 1) Pricing Integration will set the cascade flag only if order level
276       -- modifiers result in a change to attributes on any lines on this order.
277       -- 2) Verify Payment will set the cascade flag only if there are updates
278       -- back to the header for credit card payments.
279       -- 3) Apply Automatic Attachments: never results in an update back to order/lines.
280       -- NOTE: All other delayed requests also need to be evaluated so
281       -- that cascade flag is set in the request and not here.
282       IF OE_GLOBALS.G_PROCESS_OBJECTS_FLAG = TRUE THEN
283 
284          IF l_Request_type NOT IN ('RECORD_HISTORY'
285                             ,OE_GLOBALS.G_PRICE_ORDER
286                             ,OE_GLOBALS.G_PRICE_ADJ
287                             ,OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT
288                             ,OE_GLOBALS.G_VERIFY_PAYMENT
289                             ,OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP
290                             ,OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL
291 			    ,OE_GLOBALS.G_GENERATE_XML_REQ_HDR
292 			    ,OE_GLOBALS.G_GENERATE_XML_REQ_LN)
293          THEN
294             IF l_debug_level > 0 THEN
295             oe_debug_pub.add('****** process_obj=>delayed req execution ****', 1);
296             END IF;
297             OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
298          END IF;
299 
300       END IF;
301 
302 
303      IF l_Request_type = 'RECORD_HISTORY' THEN
304          NULL;
305      ELSIF l_request_type = OE_GLOBALS.G_CHECK_PERCENTAGE
306 	 THEN
307 
308 	 OE_DELAYED_REQUESTS_UTIL.check_percentage
309 			(p_request_rec	     => l_request_rec,
310 			 x_return_status     => l_return_status);
311 
312        ELSIF l_request_type = OE_GLOBALS.G_CHECK_DUPLICATE THEN
313 
314 	 OE_DELAYED_REQUESTS_UTIL.check_duplicate
315 			(p_request_rec	     => l_request_rec,
316 			 x_return_status     => l_return_status);
317 
318        ELSIF l_request_type = OE_GLOBALS.G_CANCEL_WF THEN
319 
320 	 OE_SALES_CAN_UTIL.Cancel_Wf
321 			(x_request_rec	     => l_request_rec,
322 			 x_return_status     => l_return_status);
323 
324        ELSIF l_request_type = OE_GLOBALS.G_CHECK_FIXED_PRICE
325 	 THEN
326 
327 	 OE_DELAYED_REQUESTS_UTIL.check_fixed_price
328 			(p_request_rec	     => l_request_rec,
329 			 x_return_status     => l_return_status);
330 
331        ELSIF l_request_type = OE_GLOBALS.G_PRICE_ADJ THEN
332  IF l_debug_level > 0 THEN
333 	   Oe_Debug_pub.Add('Before Executing Delayed request Price Adjustment for '||l_request_rec.entity_id);
334  END IF;
335 		/* 1905650
336 	           G_PRICE_ADJ request is now logged against LINE entity
337 	        */
338 	 	If l_entity_code = OE_GLOBALS.G_ENTITY_LINE Then
339 
340 			oe_order_adj_pvt.Price_Adjustments(
341 				X_Return_Status     => l_Return_Status
342 				,p_Header_id        => Null
343 				,p_Line_id          => l_request_rec.entity_id
344 				,p_request_type_code=> 'ONT'
345 				,p_request_rec      => l_request_rec
346 				);
347 
348 		Else
349 			oe_order_adj_pvt.Price_Adjustments(
350 				X_Return_Status     => l_Return_Status
351 				,p_Header_id        => l_request_rec.entity_id
352 				,p_Line_id          => null
353 				,p_request_type_code=> 'ONT'
354 				,p_request_rec      => l_request_rec
355 				);
356 
357 
358           --TaxER start
359        IF NVL (oe_sys_parameters.value('OE_INVOICE_FREIGHT_AS_LINE',l_org_id), 'N') = 'Y' then
360         BEGIN
361 
362          IF OE_Order_Cache.g_header_rec.order_type_id is not null THEN
363 
364               IF (OE_Order_Cache.g_order_type_rec.order_type_id = FND_API.G_MISS_NUM)
365                   OR (OE_Order_Cache.g_order_type_rec.order_type_id is null)
366                   OR (OE_Order_Cache.g_order_type_rec.order_type_id <> OE_Order_Cache.g_header_rec.Order_Type_id)
367               THEN
368                          OE_Order_Cache.Load_Order_type(OE_Order_CACHE.g_header_rec.Order_Type_id) ;
369                END IF ;
370 
371               IF (OE_Order_Cache.g_order_type_rec.order_type_id = OE_Order_Cache.g_header_rec.Order_Type_id) THEN
372                         if (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'ENTERING') then
373                                 l_tax_calculation_event_code := 0;
374                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'BOOKING') then
375                                 l_tax_calculation_event_code := 1;
376                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'SHIPPING') then
377                                 l_tax_calculation_event_code := 2;
378                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'INVOICING') then
379                                 l_tax_calculation_event_code := 3;
380                         else
381                                 l_tax_calculation_event_code := -1;
382                         end if ;
383                ELSE
384                       l_tax_calculation_event_code := 0 ;
385                END IF ;
386 
387 
388          END IF;
389 
390         EXCEPTION
391            WHEN NO_DATA_FOUND THEN
392                  l_tax_calculation_event_code := 0;
393            WHEN OTHERS THEN
394             IF l_debug_level > 0 THEN
395              oe_debug_pub.add('OEXVREQB:Failed while trying to query up tax_calcualtion_event for order_type_id ');
396             END IF;
397 
398              RAISE;
399         END;
400 
401       l_header_rec := OE_Header_UTIL.Query_Row(p_header_id=> l_request_rec.entity_id);
402 
403         IF nvl(l_header_rec.booked_flag, 'N') = 'Y' THEN
404             l_current_event := 1;  /* current event is booking or higher */
405         END IF;
406 
407         IF l_debug_level > 0 THEN
408            oe_debug_pub.add('OEXVREQB:Tax Event Code :'||l_tax_calculation_event_code);
409            oe_debug_pub.add('OEXVREQB:Current Event  :'||l_current_event);
410         END IF;
411 
412         IF l_current_event >= l_tax_calculation_event_code THEN
413 
414                           IF (OE_GLOBALS.G_UI_FLAG) AND nvl(FND_PROFILE.VALUE('ONT_DELAY_TAX_CALC'), 'N') = 'N'  THEN
415 			         OE_delayed_requests_Pvt.log_request(
416 	                		p_entity_code           => OE_GLOBALS.G_ENTITY_HEADER,
417 	                		p_entity_id             => l_request_rec.entity_id,
418 	                		p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
419 	                		p_requesting_entity_id   => l_request_rec.entity_id,
420 	                		p_request_type          => OE_GLOBALS.g_tax_line,
421 	                		x_return_status         => l_return_status);
422                           ELSE
423 			         OE_delayed_requests_Pvt.log_request(
424 	                		p_entity_code           => OE_GLOBALS.G_ENTITY_ALL,
425 	                		p_entity_id             => l_request_rec.entity_id,
426 	                		p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
427 	                		p_requesting_entity_id   => l_request_rec.entity_id,
428 	                		p_request_type          => OE_GLOBALS.g_tax_line,
429 	                		x_return_status         => l_return_status);
430                           END IF;
431 
432 
433                END IF;
434 
435         END IF;
436            --TaxER end
437 
438 
439 
440 		End if;
441      IF l_debug_level > 0 THEN
442 	   	Oe_Debug_pub.Add('After Executing Delayed request Price Adj for '||l_request_rec.entity_id);
443      END IF;
444        ELSIF l_request_type =
445                         OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL then
446            if l_entity_code = OE_GLOBALS.G_ENTITY_HEADER_SCREDIT
447             OR l_entity_code = OE_GLOBALS.G_ENTITY_ALL then   -- bug 5746190
448              OE_DELAYED_REQUESTS_UTIL.Validate_HSC_QUOTA_TOTAL
449                  ( x_return_status =>l_return_status
450                   ,p_header_id     =>to_number(l_request_rec.param1)
451                  );
452            end if;
453 
454        ELSIF l_request_type =
455                          OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL then
456            if l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT then
457              OE_DELAYED_REQUESTS_UTIL.Validate_LSC_QUOTA_TOTAL
458                  ( x_return_status =>l_return_status
459                   ,p_line_id     =>to_number(l_request_rec.param1)
460                  );
461            end if;
462 
463        ELSIF l_request_type =
464                          OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL then
465            if l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT then
466              OE_DELAYED_REQUESTS_UTIL.Validate_LSC_QUOTA_TOTAL
467                  ( x_return_status =>l_return_status
468                   ,p_line_id     =>to_number(l_request_rec.param1)
469                  );
470            end if;
471 
472        ELSIF l_request_type =
473                          OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT then
474            IF l_entity_code = OE_GLOBALS.G_ENTITY_Line_SCREDIT THEN
475              OE_DELAYED_REQUESTS_UTIL.Cascade_Service_Scredit
476                  ( x_return_status =>l_return_status
477                   ,p_request_rec   =>l_request_rec
478                  );
479            end if;
480 
481 
482        ELSIF  (l_request_type = OE_GLOBALS.G_CREATE_SETS) then
483                OE_DELAYED_REQUESTS_UTIL.Insert_Set
484 			(p_request_rec  => l_request_rec,
485 			 x_return_status     => l_return_status);
486        ELSIF  l_request_type = OE_GLOBALS.G_INSERT_INTO_SETS then
487            IF l_entity_code = OE_GLOBALS.G_ENTITY_LINE then
488 /* Commenting out nocopy per Rupal */
489 
490 		 null;
491            /*  OE_Process_Models.Insert_Into_Line_Sets
492                   (p_line_id            =>l_entity_id
493                    ,p_top_model_line_id =>l_request_rec.param2
494                    ,p_set_type          => 'ALL'
495                    ,x_return_status     =>l_return_status
496                  ); */
497            END IF;
498        ELSIF  l_request_type = OE_GLOBALS.G_VALIDATE_LINE_SET then
499 			oe_delayed_requests_util.validate_line_set(
500 				p_line_set_id => l_request_rec.entity_id,
501 				x_return_status => l_return_status);
502        ELSIF l_request_type =
503                         OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP then
504              OE_DELAYED_REQUESTS_UTIL.DFLT_Hscredit_Primary_Srep
505                  ( x_return_status =>l_return_status
506                   ,p_header_id     =>to_number(l_request_rec.param1)
507                   ,p_salesrep_id   =>to_number(l_request_rec.param2)
508                  );
509 
510 
511        ELSIF l_request_type =
512                         OE_GLOBALS.G_VERIFY_PAYMENT then
513                OE_DELAYED_REQUESTS_UTIL.Verify_Payment
514                  ( x_return_status      =>l_return_status
515                   ,p_header_id     => l_entity_id
516                  );
517 
518        ELSIF l_request_type =
519                         OE_GLOBALS.G_INSERT_RMA then
520                OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_SCREDIT_ADJUSTMENT
521                  ( x_return_status      =>l_return_status
522                   ,p_line_id     => l_entity_id
523                  );
524                OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_OPTIONS_INCLUDED
525                  ( x_return_status      =>l_return_status
526                   ,p_line_id     => l_entity_id
527                  );
528                -- Do not call INSERT_RMA_LOT_SERIAL for system split.
529                -- Bug 4651421
530                IF NOT((l_request_rec.param1 = OE_GLOBALS.G_OPR_UPDATE and
531                    nvl(l_request_rec.param2,'USER') = 'SYSTEM' and
532                    NVL(l_request_rec.param3,'X') = 'SPLIT')
533                    OR
534                    (l_request_rec.param1 = OE_GLOBALS.G_OPR_CREATE AND
535                     l_request_rec.param4 IS NOT NULL AND
536                     nvl(l_request_rec.param2, 'USER') = 'SYSTEM'))
537                THEN
538                    OE_DELAYED_REQUESTS_UTIL.INSERT_RMA_LOT_SERIAL
539                    ( x_return_status      =>l_return_status
540                     ,p_line_id     => l_entity_id
541                    );
542                END IF;
543        ELSIF l_request_type = OE_GLOBALS.G_TAX_LINE then
544 
545          -- Renga - changed so that we call Process_Tax
546         IF (OE_GLOBALS.G_UI_FLAG)
547              AND nvl(FND_PROFILE.VALUE('ONT_DELAY_TAX_CALC'), 'N') = 'N' THEN --TaxER
548 
549          l_entity_id_tbl(1).entity_id := l_entity_id;
550          -- l_entity_id_tbl(l_count).request_ind := 1;
551 
552          l_entity_id_tbl(1).request_ind := p_request_ind;
553 
554          --TaxER start
555            l_req_ind := G_Requesting_Entities.First;
556           WHILE l_req_ind IS NOT NULL LOOP
557            IF G_Requesting_Entities(l_req_ind).request_index = p_request_ind
558            THEN
559                 l_entity_id_tbl(1).requesting_entity_code := g_requesting_entities(l_req_ind).entity_code;
560            END IF;
561            l_req_ind := G_Requesting_Entities.Next(l_req_ind);
562           END LOOP;
563          --TaxER end
564 
565 
566           /*
567 	      OE_DELAYED_REQUESTS_UTIL.TAX_LINE
568              (  x_return_status => l_return_status
569 	           , p_line_id  =>  l_entity_id
570 		    );
571            */
572 
573            OE_Delayed_Requests_UTIL.Process_Tax
574              (p_Entity_id_tbl      => l_entity_id_tbl
575               ,x_return_status     => l_return_status
576              );
577 
578           END IF;  --TaxER
579 	  ELSIF l_request_type = OE_GLOBALS.G_SPLIT_HOLD then
580               OE_DELAYED_REQUESTS_UTIL.Split_hold
581 			    ( p_entity_code        => l_request_rec.entity_code
582 				,p_entity_id          => l_request_rec.entity_id
583 				,p_split_from_line_id => l_request_rec.param1
584 				,x_return_status      => l_return_status
585 			    );
586        ELSIF l_request_type =
587                         OE_GLOBALS.G_EVAL_HOLD_SOURCE then
588                OE_DELAYED_REQUESTS_UTIL.Eval_Hold_Source
589                  ( x_return_status      => l_return_status
590                   ,p_entity_code	=> l_request_rec.entity_code
591                   ,p_entity_id		=> l_request_rec.entity_id
592                   ,p_hold_entity_code   => l_request_rec.param1
593                   ,p_hold_entity_id	=> l_request_rec.param2
594                  );
595 
596       /* 1739574 */
597       ELSIF  l_request_type = OE_GLOBALS.G_COMPLETE_ACTIVITY THEN
598   IF l_debug_level > 0 THEN
599 	    oe_debug_pub.ADD('Calling wf_engine.CompleteActivityInternalName for '||l_request_rec.param1 || '/'||l_request_rec.param2||'/'||l_request_rec.param3 ||'/'||'/'||l_request_rec.param4, 3);
600   END IF;
601         BEGIN --15870313
602        	    wf_engine.CompleteActivityInternalName(l_request_rec.param1,l_request_rec.param2,l_request_rec.param3,l_request_rec.param4,true);
603 	exception
604 	WHEN OTHERS THEN
605 	oe_debug_pub.add('Workflow complete activity failed. Raising');
606 	RAISE ;
607         END ;
608 
609   IF l_debug_level > 0 THEN
610 	    oe_debug_pub.ADD('Returned from wf_engine.CompleteActivityInternalName ',3);
611   END IF;
612   -- Start of bug 10032407
613      ELSIF  l_request_type = OE_GLOBALS.G_SKIP_ACTIVITY THEN
614         if l_debug_level > 0 then
615            oe_debug_pub.ADD('Calling wf_engine.CompleteActivityInternalName for '||l_request_rec.param1 || '/'||l_request_rec.param2||'/'||l_request_rec.param3 ||'/'||'/'||l_request_rec.param4, 3);
616         end if;
617 	BEGIN
618 	   wf_engine.CompleteActivityInternalName(l_request_rec.param1,l_request_rec.param2,l_request_rec.param3,l_request_rec.param4,TRUE );--15870313
619 	EXCEPTION
620 	  WHEN OTHERS THEN
621 	    IF l_debug_level > 0 THEN
622 	      oe_debug_pub.ADD('Calling wf_engine.handleerror for '||l_request_rec.param1 || '/'||l_request_rec.param2||'/'||l_request_rec.param3 ||'/'||'/'||l_request_rec.param4, 3);
623 	    END IF;
624             OE_SHIPPING_WF.G_DEV_SKIP := 'Y';
625             wf_engine.handleerror(l_request_rec.param1,l_request_rec.param2,l_request_rec.param3,'SKIP',l_request_rec.param4);
626             if l_debug_level > 0 then
627               oe_debug_pub.ADD('Returned from wf_engine.handleerror ',3);
628             end if;
629 	END;
630   -- End of bug 10032407
631       ELSIF l_request_rec.request_type = OE_GLOBALS.G_UPDATE_SHIPPING THEN
632 
633 		OE_Delayed_Requests_UTIL.Update_Shipping
634 			( p_update_shipping_tbl => g_delayed_requests
635 			, p_line_id		    => l_request_rec.entity_id
636 			, p_operation           => l_request_rec.request_unique_key1
637 			, x_return_status       => l_return_status
638 		  );
639 
640 	   ELSIF l_request_rec.request_type = OE_GLOBALS.G_SHIP_CONFIRMATION THEN
641 
642 		OE_Delayed_Requests_UTIL.Ship_Confirmation
643 			( p_ship_confirmation_tbl => g_delayed_requests
644 			, p_line_id		      => l_request_rec.entity_id
645 			, p_process_type	      => l_request_rec.request_unique_key1
646 			, p_process_id			 => l_request_rec.param1
647 			, x_return_status         => l_return_status
648 		  );
649 
650   ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRE_EXPLODED_KIT THEN
651 
652   /* Start DOO Pre Exploded Kit ER 9339742 */
653   /* Note: It should be ensured that this delayed request should be executed only
654            after all the lines in p_line_tbl input primer of the Process Order api are
655            processed. If this delayed request gets executed as part of delayed request
656            execution for a single record then at the time of executing this delayed
657            request, there may be a case that all the lines of the Kit are not processed
658            leading to sure failure of this delayed request, which is incorrect. Hence, if
659            we happen to find this issue in future then we should introduce a new global and
660            set it to TRUE soon after the main big WHILE loop completes in
661            OE_Order_Pvt.Lines. Hence, ensure to check that global to TRUE before executing
662            this delayed request. If it is FALSE then reset the delayed request execution
663            (G_Delayed_Requests(p_request_ind).processed) to N. While this global is set
664            ensure to reset it to FALSE in the starting of the big WHILE Loop of the
665            OE_Order_Pvt.Lines and in the Exception block of it, and the Process_Request_Pvt
666            and Process_Delayed_Request procedures
667   */
668 
669     If l_debug_level > 0 then
670       oe_debug_pub.add(' Processing DOO Pre Exploded ER');
671     End if;
672 
673     OE_Delayed_Requests_UTIL.Process_Pre_Exploded_Kits
674     ( p_top_model_line_id => l_request_rec.entity_id
675     , p_explosion_date    => l_request_rec.date_param1
676     , x_return_status     => l_return_status);
677 
678     If l_debug_level > 0 then
679       oe_debug_pub.add(' Processed DOO Pre Exploded ER');
680     End if;
681 
682   /* End DOO Pre Exploded Kit ER 9339742 */
683 
684 /* 7576948: IR ISO Change Management project Start */
685 -- This code is hooked up for IR ISO project so as to trigger
686 -- the new procedure OE_Delated_Requests_Util.Update_Requisition_Info
687 -- for update of internal requisition based on changes offered by
688 -- sales order user w.r.t Ordered Quantity, Schedule Ship/Arrival
689 -- Date or Line/Header cancellation
690 
691 -- For details on IR ISO CMS project, please refer to FOL >
692 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
693 
694 
695  ELSIF l_request_rec.request_type = OE_GLOBALS.G_UPDATE_REQUISITION THEN
696 
697    IF NVL(l_request_rec.param2,'N') = 'Y' THEN
698      IF l_debug_level > 0 THEN
699        oe_debug_pub.add('Requisition Header Cancellation is TRUE',5);
700      END IF;
701      l_cancel_order := TRUE;
702 
703      -- For Requisition Header Cancellation, following information is not needed -
704      l_request_rec.param1 := NULL;
705      l_request_rec.param4 := NULL; --bug 14211120
706      l_request_rec.date_param1 := NULL;
707    ELSE
708      IF l_debug_level > 0 THEN
709        oe_debug_pub.add('Requisition Header Cancellation is FALSE',5);
710      END IF;
711      l_cancel_order := FALSE;
712    END IF;
713 
714    IF l_request_rec.entity_code = OE_Globals.G_Entity_Header THEN
715      l_header_id := l_request_rec.entity_id;
716      l_line_id   := NULL;
717    ELSIF l_request_rec.entity_code = OE_Globals.G_Entity_Line THEN
718      l_header_id := l_request_rec.request_unique_key1;
719      l_line_id   := l_request_rec.entity_id;
720    END IF;
721 
722    OE_Delayed_Requests_UTIL.Update_Requisition_Info
723          ( P_Requisition_Header_id  => l_request_rec.request_unique_key2
724          , P_Requisition_Line_id    => l_request_rec.request_unique_key3
725          , P_Header_id              => l_header_id
726          , p_Line_id                => l_line_id
727          , p_Line_ids               => l_request_rec.long_param1
728          , p_num_records            => l_request_rec.param3
729          , P_Quantity_Change        => l_request_rec.param1
730          , P_Quantity2_Change       => l_request_rec.param4 --Bug 14211120
731          , P_New_Schedule_Ship_Date => l_request_rec.date_param1
732          , P_Cancel_order           => l_cancel_order  -- Param2
733          , X_Return_Status          => l_return_status
734          );
735 
736 
737 /* ============================= */
738 /* IR ISO Change Management Ends */
739 
740 
741        ELSIF l_request_type =
742                         OE_GLOBALS.G_CASCADE_CHANGES then
743            IF l_debug_level > 0 THEN
744             oe_debug_pub.add('Performing Delayed Req for Cascade Changes',1);
745            END IF;
746 
747             OE_CONFIG_UTIL.CASCADE_CHANGES
748                       ( p_parent_line_id   => l_request_rec.entity_id
749                       , p_request_rec      => l_request_rec
750                       , x_return_status    => l_return_status
751                       );
752           IF l_debug_level > 0 THEN
753             oe_debug_pub.add('done Delayed Req for Cascade Changes',1);
754           END IF;
755 
756        ELSIF l_request_type =
757                         OE_GLOBALS.G_CHANGE_CONFIGURATION then
758 
759             oe_debug_pub.add('Performing Delayed Req for Change Config',1);
760 
761             OE_CONFIG_UTIL.CHANGE_CONFIGURATION
762                       ( p_request_rec      => l_request_rec
763                       , x_return_status    => l_return_status
764                       );
765           IF l_debug_level > 0 THEN
766             oe_debug_pub.add('Done Delayed Req for Change Config',1);
767           END IF;
768 
769        ELSIF l_request_type =
770                         OE_GLOBALS.G_CREATE_RESERVATIONS then
771              OE_DELAYED_REQUESTS_UTIL.SPLIT_RESERVATIONS
772                       ( p_reserved_line_id   => l_request_rec.entity_id
773                       , p_ordered_quantity   => to_number(l_request_rec.param1)
774                       , p_reserved_quantity  => to_number(l_request_rec.param2)
775                       , x_return_status      => l_return_status
776                       );
777 
778        ELSIF l_request_type =
779                         OE_GLOBALS.G_COPY_CONFIGURATION then
780              OE_Config_Pvt.Copy_Config
781                      ( p_top_model_line_id  => l_request_rec.entity_id ,
782                        p_config_hdr_id      => l_request_rec.param1 ,
783                        p_config_rev_nbr     => l_request_rec.param2 ,
784                        p_configuration_id   => l_request_rec.param4 ,
785                        p_remnant_flag       => l_request_rec.param3 ,
786                        x_return_status      => l_return_status
787                      );
788 
789        ELSIF l_request_type =
790                         OE_GLOBALS.G_COMPLETE_CONFIGURATION then
791              OE_DELAYED_REQUESTS_UTIL.COMPLETE_CONFIGURATION
792                       ( p_top_model_line_id  => l_request_rec.entity_id
793                       , x_return_status      => l_return_status
794                       );
795        -- No Processing here. The processing will be done in
796        -- Process_Delayed_Requests at the Commit Time.
797 
798        ELSIF l_request_type = OE_GLOBALS.G_DROPSHIP_CMS THEN
799           RETURN;
800 
801     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
802           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
803     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
804           RAISE FND_API.G_EXC_ERROR;
805     END IF;
806        ELSIF l_request_type = OE_GLOBALS.G_UPDATE_OPTION THEN
807          IF l_debug_level > 0 THEN
808             oe_debug_pub.add('upd: processed with cfg val', 3);
809          END IF;
810          RETURN;
811 
812        ELSIF l_request_type = OE_GLOBALS.G_DELETE_OPTION THEN
813          IF l_debug_level > 0 THEN
814             oe_debug_pub.add('del: processed with cfg val', 3);
815          END IF;
816          RETURN;
817 
818        ELSIF l_request_type =
819                         OE_GLOBALS.G_VALIDATE_CONFIGURATION
820        THEN
821 
822          -- Get the delayed requests logged for deletions and updatations
823          -- which needs to be passed to validate_configuration.
824 
825          l_d_index := 0;
826          l_u_index := 0;
827          K         := G_Delayed_Requests.FIRST;
828 
829          WHILE K is not null -- while loop safe that tbl.first to last
830          LOOP
831 
832             IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_DELETE_OPTION  OR
833                G_Delayed_Requests(K).request_type = OE_GLOBALS.G_UPDATE_OPTION
834             THEN
835 
836                 IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_DELETE_OPTION
837                    AND G_Delayed_Requests(K).param1 = l_request_rec.entity_id
838                 THEN
839                     l_d_index := l_d_index + 1;
840 	    	      l_deleted_options_tbl(l_d_index) :=
841                                    g_delayed_requests(K);
842                 END IF;
843 
844                 IF G_Delayed_Requests(K).request_type = OE_GLOBALS.G_UPDATE_OPTION
845                    AND G_Delayed_Requests(K).param1 = l_request_rec.entity_id
846                 THEN
847                     l_u_index := l_u_index + 1;
848 	  	        l_updated_options_tbl(l_u_index) :=
849                                    g_delayed_requests(K);
850                 END IF;
851                 -- delete after both updete and delete checks,
852                 -- if deleted in the inside if, no_data_found exceptiion
853                 -- g_delayed_requests.delete(K);
854             END IF;
855             K :=  G_Delayed_Requests.NEXT(K);
856          END LOOP;
857          IF l_debug_level > 0 THEN
858              oe_debug_pub.add('out of loop for upd/del options table', 1);
859          END IF;
860 
861          OE_DELAYED_REQUESTS_UTIL.VALIDATE_CONFIGURATION
862                 ( p_top_model_line_id   => l_request_rec.entity_id
863                 , p_deleted_options_tbl => l_deleted_options_tbl
864                 , p_updated_options_tbl => l_updated_options_tbl
865                 , x_return_status       => l_return_status
866                 );
867          IF l_debug_level > 0 THEN
868              oe_debug_pub.add('ret sts: '|| x_return_status, 4);
869          END IF;
870 
871          IF l_return_status =  FND_API.G_RET_STS_SUCCESS THEN
872            oe_debug_pub.add('deleteing after success ', 3);
873            K         := G_Delayed_Requests.FIRST;
874 
875            WHILE K is not null
876            LOOP
877              IF (G_Delayed_Requests(K).request_type =
878                    OE_GLOBALS.G_DELETE_OPTION  OR
879                  G_Delayed_Requests(K).request_type =
880                    OE_GLOBALS.G_UPDATE_OPTION ) AND
881                  G_Delayed_Requests(K).param1 = l_request_rec.entity_id
882              THEN
883                G_Delayed_Requests.delete(K);
884              END IF;
885 
886              K := G_Delayed_Requests.NEXT(K);
887 
888            END LOOP;
889          END IF;
890 
891 
892        ELSIF l_request_type = OE_GLOBALS.G_CTO_CHANGE THEN
893          IF l_debug_level > 0 THEN
894             oe_debug_pub.add('cto: processed with notification', 3);
895          END IF;
896          RETURN;
897 
898        ELSIF l_request_type =
899                         OE_GLOBALS.G_CTO_NOTIFICATION then
900          -- loop over and call cto
901          IF l_debug_level > 0 THEN
902              oe_debug_pub.add('cto notification excecution', 2);
903          END IF;
904 
905          K := G_Delayed_Requests.FIRST;
906 
907          WHILE K is not null
908          LOOP
909            IF G_Delayed_Requests(K).request_type =
910                      OE_GLOBALS.G_CTO_CHANGE AND
911               G_Delayed_Requests(K).param3 = l_request_rec.entity_id
912            THEN
913               IF l_debug_level > 0 THEN
914                  oe_debug_pub.add(K || 'cto change req ', 3);
915               END IF;
916              IF G_Delayed_Requests(K).request_unique_key1 = 'Quantity'
917              THEN
918                l_cto_request_rec.param1 := G_Delayed_Requests(K).param1;
919                l_cto_request_rec.param2 := G_Delayed_Requests(K).param2;
920 
921              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Req Date'
922              THEN
923                l_cto_request_rec.param3 := G_Delayed_Requests(K).param1;
924                l_cto_request_rec.param4 := G_Delayed_Requests(K).param2;
925 
926              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Ship Date'
927              THEN
928                l_cto_request_rec.param5 := G_Delayed_Requests(K).param1;
929                l_cto_request_rec.param6 := G_Delayed_Requests(K).param2;
930 
931              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Arr Date'
932              THEN
933                l_cto_request_rec.param7 := G_Delayed_Requests(K).param1;
934                l_cto_request_rec.param8 := G_Delayed_Requests(K).param2;
935 
936              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Config Chg'
937              THEN
938                l_cto_request_rec.param9 := 'Y';
939 
940              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Warehouse'
941              THEN
942                l_cto_request_rec.param10 := G_Delayed_Requests(K).param1;
943                l_cto_request_rec.param11 := G_Delayed_Requests(K).param2;
944                          -- INVCONV
945              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Quantity2'
946              THEN
947                l_cto_request_rec.param12 := G_Delayed_Requests(K).param1;
948                l_cto_request_rec.param13 := G_Delayed_Requests(K).param2;
949 
950              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Uom2'
951              THEN
952                l_cto_request_rec.param14 := G_Delayed_Requests(K).param1;
953                l_cto_request_rec.param15 := G_Delayed_Requests(K).param2;
954 
955              ELSIF G_Delayed_Requests(K).request_unique_key1 = 'Uom'
956              THEN
957                l_cto_request_rec.param16 := G_Delayed_Requests(K).param1;
958                l_cto_request_rec.param17 := G_Delayed_Requests(K).param2;
959 
960 						-- INVCONV
961 
962              ELSIF G_Delayed_Requests(K).request_unique_key1 =
963                                       'Config Chg pto_ato'
964              THEN
965                  IF l_debug_level > 0 THEN
966                  oe_debug_pub.add('ptoato '|| G_Delayed_Requests(K).param4, 1);
967                  END IF;
968                  l_cto_request_tbl(K).param1 := G_Delayed_Requests(K).param4;
969                  l_cto_request_tbl(K).param2 := G_Delayed_Requests(K).param5;
970 
971              ELSIF G_Delayed_Requests(K).request_unique_key1 =
972                                       'Decimal Chg'
973              THEN
974                  IF l_debug_level > 0 THEN
975                  oe_debug_pub.add('for decimal '||G_Delayed_Requests(K).entity_id, 1);
976                  END IF;
977                  l_cto_decimal_tbl(K) := G_Delayed_Requests(K);
978 
979              ELSIF G_Delayed_Requests(K).request_unique_key1 =
980                                       'Split Create'
981              THEN
982                 IF l_debug_level > 0 THEN
983                  oe_debug_pub.add('split '|| G_Delayed_Requests(K).param4, 1);
984                 END IF;
985                  l_cto_split_tbl(K) := G_Delayed_Requests(K);
986              END IF;
987              IF l_debug_level > 0 THEN
988                oe_debug_pub.add(G_Delayed_Requests(K).request_unique_key1, 4);
989              END IF;
990              --G_Delayed_Requests.delete(K);
991            END IF;
992 
993            IF l_debug_level > 0 THEN
994               oe_debug_pub.add('cto looping', 4);
995            END IF;
996 
997            K := G_Delayed_Requests.NEXT(K);
998          END LOOP;
999 
1000          OE_CONFIG_UTIL.Notify_CTO
1001          ( p_ato_line_id        => l_request_rec.entity_id
1002          , p_request_rec        => l_cto_request_rec
1003          , p_request_tbl        => l_cto_request_tbl
1004          , p_split_tbl          => l_cto_split_tbl
1005          , p_decimal_tbl        => l_cto_decimal_tbl
1006          , x_return_status      => l_return_status);
1007 
1008          IF l_return_status =  FND_API.G_RET_STS_SUCCESS THEN
1009            IF l_debug_level > 0 THEN
1010              oe_debug_pub.add('deleteing after success ', 3);
1011            END IF;
1012            K := G_Delayed_Requests.FIRST;
1013 
1014            WHILE K is not null
1015            LOOP
1016              IF G_Delayed_Requests(K).request_type =
1017                        OE_GLOBALS.G_CTO_CHANGE AND
1018                 G_Delayed_Requests(K).param3 = l_request_rec.entity_id
1019              THEN
1020                G_Delayed_Requests.delete(K);
1021              END IF;
1022 
1023              K := G_Delayed_Requests.NEXT(K);
1024 
1025            END LOOP;
1026          END IF;
1027        ELSIF l_request_type =
1028                  OE_GLOBALS.G_GROUP_SET THEN
1029 
1030 
1031          l_index  := 0;
1032          K        := G_Delayed_Requests.FIRST;
1033 
1034          WHILE K is not null -- while loop safer than tbl.first to last
1035          LOOP
1036 
1037             IF (G_Delayed_Requests(K).request_type =
1038                            OE_GLOBALS.G_GROUP_SET)
1039             THEN
1040 
1041                 l_index := l_index + 1;
1042 	    	    l_sch_set_tbl(l_index) := g_delayed_requests(K);
1043                 g_delayed_requests(K).processed := 'I';
1044             END IF;
1045 
1046             K :=  G_Delayed_Requests.NEXT(K);
1047          END LOOP;
1048 
1049          OE_GROUP_SCH_UTIL.Group_Schedule_sets
1050            ( p_sch_set_tbl     => l_sch_set_tbl
1051            , x_return_status   => l_return_status);
1052 
1053           IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1054 
1055                RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1056 
1057           END IF;
1058 
1059           K         := G_Delayed_Requests.FIRST;
1060           WHILE K is not null -- while loop safer than tbl.first to last
1061           LOOP
1062 
1063            IF G_Delayed_Requests(K).request_type =
1064                            OE_GLOBALS.G_GROUP_SET
1065            THEN
1066                   g_delayed_requests(K).processed := 'Y';
1067            END IF;
1068 
1069             K :=  G_Delayed_Requests.NEXT(K);
1070 
1071           END LOOP;
1072          l_sch_set_tbl.delete;
1073        ELSIF l_request_type =
1074                  OE_GLOBALS.G_SPLIT_SCHEDULE THEN
1075 
1076 
1077          l_index  := 0;
1078          K        := G_Delayed_Requests.FIRST;
1079 
1080          WHILE K is not null -- while loop safer than tbl.first to last
1081          LOOP
1082 
1083             IF (G_Delayed_Requests(K).request_type =
1084                            OE_GLOBALS.G_SPLIT_SCHEDULE)
1085             THEN
1086 
1087                 l_index := l_index + 1;
1088 	    	    l_sch_set_tbl(l_index) := g_delayed_requests(K);
1089                 g_delayed_requests(K).processed := 'I';
1090             END IF;
1091 
1092             K :=  G_Delayed_Requests.NEXT(K);
1093          END LOOP;
1094 
1095          OE_SCHEDULE_UTIL.Schedule_split_lines
1096            ( p_sch_set_tbl     => l_sch_set_tbl
1097            , x_return_status   => l_return_status);
1098 
1099          K         := G_Delayed_Requests.FIRST;
1100          WHILE K is not null -- while loop safer than tbl.first to last
1101          LOOP
1102 
1103            IF G_Delayed_Requests(K).request_type =
1104                            OE_GLOBALS.G_SPLIT_SCHEDULE
1105            THEN
1106                IF l_return_status <> FND_API.G_RET_STS_UNEXP_ERROR
1107                THEN
1108                   g_delayed_requests(K).processed := 'Y';
1109                ELSE
1110                   g_delayed_requests(K).processed := Null;
1111                END IF;
1112            END IF;
1113 
1114             K :=  G_Delayed_Requests.NEXT(K);
1115 
1116          END LOOP;
1117          l_sch_set_tbl.delete;
1118        ELSIF l_request_type =
1119 					   OE_GLOBALS.G_INSERT_SERVICE then
1120               OE_DELAYED_REQUESTS_UTIL.INSERT_SERVICE_FOR_OPTIONS
1121 			  ( x_return_status    => l_return_status
1122 			  , p_serviced_line_id => l_entity_id
1123 			  );
1124 
1125        /* BUG 2013611 - Increment promotional balances in response to cancellations */
1126        ELSIF l_request_rec.request_type = OE_GLOBALS.G_REVERSE_LIMITS THEN
1127             IF l_debug_level > 0 THEN
1128             oe_debug_pub.add('About to PERFORM Delayed Request for Reverse Limits',1);
1129             END IF;
1130 
1131             OE_DELAYED_REQUESTS_UTIL.REVERSE_LIMITS
1132 			  ( x_return_status           => l_return_status
1133                           , p_action_code             => l_request_rec.param1
1134                           , p_cons_price_request_code => l_request_rec.param2
1135                           , p_orig_ordered_qty        => to_number(l_request_rec.param3)
1136                           , p_amended_qty             => to_number(l_request_rec.param4)
1137                           , p_ret_price_request_code  => l_request_rec.param5
1138                           , p_returned_qty            => to_number(l_request_rec.param6)
1139                           , p_line_id                 => l_request_rec.entity_id
1140 			  );
1141             IF l_debug_level > 0 THEN
1142             oe_debug_pub.add('Call Issued to OE_DELAYED_REQUESTS_UTIL.Reverse_Limits',1);
1143             END IF;
1144        /* BUG 2013611 END */
1145 
1146        -- Freight Rating.
1147        ELSIF l_request_rec.request_type = OE_GLOBALS.G_FREIGHT_RATING THEN
1148        IF l_debug_level > 0 THEN
1149 	 Oe_Debug_pub.Add('Before Executing Delayed request Freight Rating for header: '||l_request_rec.entity_id, 3);
1150        END IF;
1151          OE_FTE_INTEGRATION_PVT.Process_FTE_Action
1152                     ( p_header_id           => l_request_rec.entity_id
1153                      ,p_line_id             => null
1154                      ,p_ui_flag             => 'N'
1155                      ,p_action              => 'R'
1156                      ,p_call_pricing_for_FR => l_request_rec.param1
1157                      ,x_return_status       => l_return_status
1158                      ,x_msg_count           => l_msg_count
1159                      ,x_msg_data            => l_msg_data
1160                      );
1161 
1162 
1163        ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_LINE THEN
1164        IF l_debug_level > 0 THEN
1165 	   Oe_Debug_pub.Add('Before Executing Delayed request Price line for '||l_request_rec.entity_id);
1166 	   Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
1167        END IF;
1168 		l_Price_Control_Rec.pricing_event := l_request_rec.param2;
1169 		l_Price_Control_Rec.calculate_flag :=  QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1170 		l_Price_Control_Rec.Simulation_Flag := 'N';
1171 
1172                --RT{
1173                 If l_Price_Control_Rec.pricing_event IN ('BATCH','RETROBILL')
1174                 Then
1175                    l_price_control_rec.source_order_amount_flag := 'Y';
1176                 End If;
1177                 --RT}
1178              IF l_debug_level > 0 THEN
1179 			 Oe_Debug_pub.Add('Before Line Price');
1180              END IF;
1181 		    	oe_order_adj_pvt.Price_line(
1182 					X_Return_Status	=> l_Return_Status
1183 					,p_Line_id		=> l_request_rec.entity_id
1184 					,p_Request_Type_code=> 'ONT'
1185 					,p_Control_rec		=> l_Price_Control_Rec
1186 					,p_write_to_db      => TRUE
1187 					,p_request_rec      => l_request_rec
1188 					,x_line_Tbl         => l_Line_Tbl
1189 					);
1190              IF l_debug_level > 0 THEN
1191 	   Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1192              END IF;
1193        ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
1194          IF l_debug_level > 0 THEN
1195 	       Oe_Debug_pub.Add('Before Executing Delayed request Price line for '||l_request_rec.entity_id);
1196 	       Oe_Debug_pub.Add('Before Header Price');
1197 	       Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
1198            Oe_Debug_pub.Add('The Action is '||l_request_rec.param3);
1199            Oe_Debug_pub.Add('The get freight flag is: '||l_request_rec.request_unique_key2, 3);
1200         END IF;
1201 		l_Price_Control_Rec.pricing_event := l_request_rec.param2;
1202 		l_Price_Control_Rec.calculate_flag :=  QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1203 		l_Price_Control_Rec.Simulation_Flag := 'N';
1204                 l_Price_Control_Rec.get_freight_flag := nvl(l_request_rec.request_unique_key2, 'N');
1205 
1206                 If l_Price_Control_Rec.pricing_event = 'BATCH' Then
1207                    l_price_control_rec.source_order_amount_flag := 'Y';
1208                 End If;
1209 
1210                --Bug 2619506, Added p_action_code
1211 		oe_order_adj_pvt.Price_line(
1212 					X_Return_Status	=> l_Return_Status
1213 					,p_Header_id		=> l_request_rec.entity_id
1214 					,p_Request_Type_code=> 'ONT'
1215 					,p_Control_rec		=> l_Price_Control_Rec
1216 					,p_write_to_db      => TRUE
1217 					,p_request_rec      => l_request_rec
1218 					,x_line_Tbl         => l_Line_Tbl
1219                                         ,p_action_code      => l_request_rec.param3
1220 					);
1221              IF l_debug_level > 0 THEN
1222 			    Oe_Debug_pub.Add('After Header Price');
1223 	            Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1224              END IF;
1225 
1226        /* Customer Acceptance - Start */
1227        ELSIF l_request_rec.request_type = OE_GLOBALS.G_DFLT_CONTINGENCY_ATTRIBUTES THEN
1228           IF l_debug_level > 0 THEN
1229 	         Oe_Debug_pub.Add('Before Defaulting Contingency Attributes ');
1230           END IF;
1231 	   OE_ACCEPTANCE_UTIL.Default_contingency_Attributes();
1232 	     IF l_debug_level > 0 THEN
1233 	       Oe_Debug_pub.Add('After Defaulting Contingency Attributes ');
1234          END IF;
1235        /* Customer Acceptance - End */
1236 	   --sol_ord_er #16014165 start
1237 	   ELSIF l_request_rec.request_type = OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL THEN
1238 		 If l_request_rec.request_unique_key1 = 'LINE' then
1239 			IF l_debug_level > 0 THEN
1240 				Oe_Debug_pub.Add('Executing G_SERVICE_FIRST_PERIOD_BILL for Line ');
1241 			END IF;
1242 		    OE_DELAYED_REQUESTS_UTIL.FIRST_PERIOD_BILL_AMT
1243 				(p_header_id => NULL,
1244 				 p_line_id => l_request_rec.param1,
1245 				 x_return_status     => l_return_status);
1246 			Elsif 	l_request_rec.request_unique_key1 = 'ORDER' then
1247 				IF l_debug_level > 0 THEN
1248 					Oe_Debug_pub.Add('Executing G_SERVICE_FIRST_PERIOD_BILL for Order ');
1249 				END IF;
1250 				OE_DELAYED_REQUESTS_UTIL.FIRST_PERIOD_BILL_AMT
1251 					(p_header_id => l_request_rec.param1,
1252 					 p_line_id => NULL ,
1253 					 x_return_status     => l_return_status);
1254 			End If;
1255 	   --sol_ord_er #16014165 end
1256        ELSIF  (l_request_type = OE_GLOBALS.G_PROCESS_ADJUSTMENTS) then
1257          if l_entity_code = OE_GLOBALS.G_ENTITY_LINE then
1258           IF l_debug_level > 0 THEN
1259           oe_debug_pub.add('count is : ' || G_Delayed_Requests.count );
1260           END IF;
1261           l_prc_adj_index := G_Delayed_Requests.first;
1262 
1263          WHILE l_prc_adj_index is NOT NULL LOOP
1264                 IF l_debug_level > 0 THEN
1265                    oe_debug_pub.add('Ren 0: Param1 :' || l_request_rec.param1);
1266                 END IF;
1267                 IF G_Delayed_Requests(l_prc_adj_index).request_type = l_request_type THEN
1268                 IF l_debug_level > 0 THEN
1269                     oe_debug_pub.add('REN: SUCCESS - FOUND THE REQUEST');
1270 
1271                      oe_debug_pub.add('Ren 1: Param2 :' || g_delayed_requests(l_prc_adj_index).param2);
1272                 END IF;
1273 
1274 		  l_prc_adj_request(I) := g_delayed_requests(l_prc_adj_index);
1275                    oe_debug_pub.add('Ren 2: Param2 :' || l_prc_adj_request(I).param2);
1276 		  g_delayed_requests.delete(l_prc_adj_index);
1277           IF l_debug_level > 0 THEN
1278             oe_debug_pub.add('Ren 3: Param2 :' || l_prc_adj_request(I).param2);
1279           END IF;
1280                   I := I + 1;
1281 
1282                 ELSE
1283                     IF l_debug_level > 0 THEN
1284                    oe_debug_pub.add('Ren: Req not found ' || l_prc_adj_index);
1285                     END IF;
1286 
1287                 END IF;
1288 
1289 	   l_prc_adj_index := G_Delayed_Requests.Next(l_prc_adj_index);
1290 
1291           END LOOP;
1292 
1293              IF l_prc_adj_request.count > 0 THEN
1294                 IF l_debug_level > 0 THEN
1295                    oe_debug_pub.add('before calling process_adjustments ');
1296                 END IF;
1297 
1298                OE_DELAYED_REQUESTS_UTIL.Process_Adjustments
1299 			(p_adjust_tbl	     => l_prc_adj_request,
1300 			 x_return_status     => l_return_status);
1301 
1302              END IF; /* if count > 0 */
1303 
1304          end if; /* entity_code = G_ENTITY_LINE */
1305 
1306 	  -- Delayed Request to Apply Automatic Attachments
1307        ELSIF  l_request_type = OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT THEN
1308 
1309                OE_DELAYED_REQUESTS_UTIL.Apply_Automatic_Attachments
1310 					( p_entity_code 		=> l_request_rec.entity_code
1311 					, p_entity_id 			=> l_request_rec.entity_id
1312 					, p_is_user_action		=> 'N'
1313 					, x_return_status		=> l_return_status
1314 					);
1315 
1316        ELSIF  l_request_type = OE_GLOBALS.G_COPY_ATCHMT THEN
1317 
1318                OE_DELAYED_REQUESTS_UTIL.Copy_Attachments
1319                     (p_entity_code             => l_request_rec.entity_code
1320                     ,p_from_entity_id          =>
1321                                             to_number(l_request_rec.param1)
1322                     ,p_to_entity_id            => l_request_rec.entity_id
1323                     ,p_manual_attachments_only => l_request_rec.param2
1324                     ,x_return_status           => l_return_status
1325                     );
1326 
1327        ELSIF  l_request_type = OE_GLOBALS.G_COPY_ADJUSTMENTS THEN
1328 
1329 			OE_Line_Adj_Util.copy_adjustment_lines
1330                     (p_from_line_id        => to_number(l_request_rec.param2)
1331                      ,p_to_line_id         => l_request_rec.entity_id
1332                      ,p_from_Header_id     => to_number(l_request_rec.param3)
1333                      ,p_to_Header_id       => to_number(l_request_rec.param1)
1334                      ,p_line_category_code => l_request_rec.param4
1335                      ,p_split_by           => l_request_rec.param5
1336                      ,p_booked_flag        => l_request_rec.param6
1337                      --RT{
1338                      ,p_mode               => l_request_rec.param7
1339                      ,p_retrobill_request_id=>l_request_rec.param8
1340                      --RT}
1341                      ,x_return_status      => l_return_status
1342                      );
1343 
1344        --bug 16317238
1345        ELSIF  l_request_type = OE_GLOBALS.G_COPY_ASSOCIATION THEN
1346 
1347          oe_debug_pub.ADD('Processing copy associations');
1348          OE_Line_Adj_Assocs_Util.copy_assoc_lines
1349                     (p_from_line_id        => to_number(l_request_rec.param2)
1350                      ,p_to_line_id         => l_request_rec.entity_id
1351                      ,p_from_pr_adjustment_id =>to_number(l_request_rec.param4)
1352                      ,p_from_rltd_padj_id     =>to_number(l_request_rec.param5)
1353                      ,p_prg_list_line_id      =>to_number(l_request_rec.param6)
1354                      ,p_assoc_list_line_id    =>to_number(l_request_rec.param7)
1355                      ,x_return_status      => l_return_status
1356                      );
1357        /* Added for Bug # 1559906 */
1358        ELSIF  l_request_type = OE_GLOBALS.G_COPY_FREIGHT_CHARGES THEN
1359 
1360               OE_Header_Adj_Util.copy_freight_charges
1361                     ( p_from_header_id    => to_number(l_request_rec.param2)
1362                     , p_to_header_id      => l_request_rec.entity_id
1363                     , p_to_order_category => l_request_rec.param1
1364                     , x_return_status     => l_return_status
1365                     );
1366 
1367 
1368        /* Added the new delayed req for Bug # 2170086 */
1369        ELSIF  l_request_type = OE_GLOBALS.G_COPY_HEADER_ADJUSTMENTS THEN
1370 
1371               OE_Header_Adj_Util.copy_header_adjustments
1372                     ( p_from_header_id    => to_number(l_request_rec.param2)
1373                     , p_to_header_id      => l_request_rec.entity_id
1374                     , p_to_order_category => l_request_rec.param1
1375                     , x_return_status     => l_return_status
1376                     );
1377 
1378 
1379 
1380  /* csheu added for bug #1533658 */
1381 
1382        ELSIF  l_request_type = OE_GLOBALS.G_UPDATE_SERVICE THEN
1383            IF l_debug_level > 0 THEN
1384               oe_debug_pub.add('CSH-- Before calls OE_Service_Util.cascade_changes', 1);
1385            END IF;
1386 
1387 	 OE_Service_Util.cascade_changes
1388                     ( p_parent_line_id   => l_request_rec.entity_id
1389                      ,p_request_rec      => l_request_rec
1390                      ,x_return_status    => l_return_status
1391                      );
1392         IF l_debug_level > 0 THEN
1393         oe_debug_pub.add('CSH-- After calls OE_Service_Util.cascade_changes', 1);
1394         END IF;
1395 
1396   /* lchen added for bug #1761154 */
1397 
1398        ELSIF l_request_type = OE_GLOBALS.G_CASCADE_OPTIONS_SERVICE then
1399        IF l_debug_level > 0 THEN
1400       oe_debug_pub.add('lchen-- Before calls OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS', 1);
1401        END IF;
1402        OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS
1403 			  ( x_return_status    => l_return_status
1404 			  , p_option_line_id => l_entity_id
1405 			  );
1406       IF l_debug_level > 0 THEN
1407       oe_debug_pub.add('lchen-- After calls OE_DELAYED_REQUESTS_UTIL.CASCADE_SERVICE_FOR_OPTIONS', 1);
1408       END IF;
1409 
1410        -- added by lkxu: to copy pricing attributes
1411        ELSIF  l_request_type = OE_GLOBALS.G_COPY_PRICING_ATTRIBUTES THEN
1412 
1413 			OE_Line_PAttr_Util.copy_pricing_attributes
1414                     (p_from_line_id        => to_number(l_request_rec.param2)
1415                      ,p_to_line_id         => l_request_rec.entity_id
1416                      ,p_to_Header_id       => to_number(l_request_rec.param1)
1417                      ,x_return_status      => l_return_status
1418                      );
1419 
1420        ELSIF  l_request_type = OE_GLOBALS.G_COPY_MODEL_PATTR THEN
1421 
1422 	/* bug 1857538
1423            copy_model_pattr now takes only the line_id as parameter
1424 	   Corresponding changes are in OEXULPAS and OEXULPAB
1425 	*/
1426 			OE_Line_PAttr_Util.copy_model_pattr
1427                     (
1428 		     --p_model_line_id       => l_request_rec.entity_id
1429                       p_to_line_id         => to_number(l_request_rec.param1)
1430                      ,x_return_status      => l_return_status
1431                      );
1432 
1433         ELSIF l_request_type = OE_GLOBALS.G_DELETE_CHARGES THEN
1434           OE_Header_Util.cancel_header_charges
1435                      (
1436                       p_header_id       => l_request_rec.entity_id,
1437                       --p_x_line_id         => to_number(l_request_rec.param1),
1438                       x_return_status      => l_return_status
1439                      );
1440 
1441        ELSIF l_request_type = OE_GLOBALS.G_CASCADE_SCH_ATTRBS THEN
1442 
1443           G_Delayed_Requests(p_request_ind).processed := 'Y';
1444 
1445       ELSIF l_request_type =
1446                         OE_GLOBALS.G_CASCADE_SHIP_SET_ATTR then
1447 
1448          l_index  := 0;
1449          l_set_id    := l_request_rec.param2;
1450 
1451          K         := G_Delayed_Requests.FIRST;
1452 
1453          WHILE K is not null
1454          LOOP
1455 
1456             IF (G_Delayed_Requests(K).request_type =
1457                            OE_GLOBALS.G_CASCADE_SHIP_SET_ATTR) AND
1458                 G_Delayed_Requests(K).param2 = l_set_id AND
1459                 K <> p_request_ind
1460             THEN
1461 
1462                 g_delayed_requests.delete(K);
1463 
1464             END IF;
1465 
1466             K :=  G_Delayed_Requests.NEXT(K);
1467 
1468          END LOOP;
1469 
1470         OE_SCHEDULE_UTIL.Cascade_ship_set_attr
1471                ( p_request_rec      => l_request_rec
1472                , x_return_status    => l_return_status);
1473 
1474        ELSIF l_request_type =
1475                         OE_GLOBALS.G_GROUP_SCHEDULE then
1476 
1477          l_index  := 0;
1478          l_set_id    := l_request_rec.param1;
1479 
1480          K         := G_Delayed_Requests.FIRST;
1481 
1482          WHILE K is not null
1483          LOOP
1484 
1485             IF (G_Delayed_Requests(K).request_type =
1486                            OE_GLOBALS.G_GROUP_SCHEDULE) AND
1487                 G_Delayed_Requests(K).param1 = l_set_id AND
1488                 K <> p_request_ind
1489             THEN
1490 
1491                 l_index := l_index + 1;
1492 
1493                 IF nvl(g_delayed_requests(K).param12,'N') = 'Y' THEN
1494                    l_request_rec.param12 := 'Y';
1495                 END IF;
1496 
1497                 g_delayed_requests.delete(K);
1498 
1499             END IF;
1500 
1501             K :=  G_Delayed_Requests.NEXT(K);
1502 
1503          END LOOP;
1504 
1505          -- Removed the below code -Bug4504362
1506             -- Start 2391781
1507             -- Storing Cascade Warehouse records
1508             l_set_id := l_request_rec.param1;
1509             l_count := G_Delayed_Requests.FIRST;
1510             WHILE l_count is not null
1511             LOOP
1512 
1513                IF G_Delayed_Requests(l_count).request_type =
1514                                       OE_GLOBALS.G_CASCADE_SCH_ATTRBS AND
1515                   G_Delayed_Requests(l_count).param1 = l_set_id
1516                THEN
1517                    /* Modified below code for bug 8636027 */
1518 
1519                   l_mod_entity_id := mod(G_Delayed_Requests(l_count).entity_id, G_BINARY_LIMIT); -- Bug 8636027
1520 
1521                  /* commenetd for bug 9885436
1522 
1523                   oe_schedule_util.OE_sch_Attrb_Tbl
1524                    (G_Delayed_Requests(l_mod_entity_id).entity_id).set_id :=
1525                                     G_Delayed_Requests(l_count).param1;
1526                   oe_schedule_util.OE_sch_Attrb_Tbl
1527                    (G_Delayed_Requests(l_mod_entity_id).entity_id).line_id :=
1528                                      G_Delayed_Requests(l_count).entity_id;
1529                   oe_schedule_util.OE_sch_Attrb_Tbl
1530                    (G_Delayed_Requests(l_mod_entity_id).entity_id).attribute1 :=
1531                        G_Delayed_Requests(l_count).param2;
1532                   oe_schedule_util.OE_sch_Attrb_Tbl
1533                    (G_Delayed_Requests(l_mod_entity_id).entity_id).date_attribute1 :=
1534                                 G_Delayed_Requests(l_count).date_param1;
1535                    */
1536 
1537                   /* End of bug 8636027 */
1538                   --End of 9885436
1539 
1540                   --Added below code for 9885436
1541                 oe_schedule_util.OE_sch_Attrb_Tbl(l_mod_entity_id).set_id :=
1542 		                G_Delayed_Requests(l_count).param1;
1543                 oe_schedule_util.OE_sch_Attrb_Tbl(l_mod_entity_id).line_id:=
1544                                 G_Delayed_Requests(l_count).entity_id;
1545                 oe_schedule_util.OE_sch_Attrb_Tbl(l_mod_entity_id).attribute1 :=
1546                                 G_Delayed_Requests(l_count).param2;
1547                 oe_schedule_util.OE_sch_Attrb_Tbl(l_mod_entity_id).date_attribute1:=
1548                                 G_Delayed_Requests(l_count).date_param1;
1549                   --End of 9885436
1550                   g_delayed_requests.delete(l_count);
1551                END IF;
1552 
1553                l_count :=  G_Delayed_Requests.NEXT(l_count);
1554 
1555            END LOOP;
1556            -- End 2391781
1557 
1558            OE_GROUP_SCH_UTIL.Schedule_Set
1559                ( p_request_rec      => l_request_rec
1560                , x_return_status    => l_return_status);
1561 
1562          IF l_debug_level > 0 THEN
1563          oe_debug_pub.add('Group Schedule Return Status ' || l_return_status,1);
1564 	 END IF;
1565          --11825106
1566          IF nvl(oe_sys_parameters.Value('ONT_AUTO_SCH_SETS'),'Y') = 'N'
1567             AND l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1568           -- Ignore Scheduling Failure
1569            l_return_status := FND_API.G_RET_STS_SUCCESS;
1570            oe_schedule_util.OESCH_SET_SCHEDULING := 'N';
1571          ELSE
1572            oe_schedule_util.OESCH_SET_SCHEDULING := 'Y';
1573          END IF;
1574        -- 4026758
1575        ELSIF l_request_type =
1576                         OE_GLOBALS.G_DELETE_SET THEN
1577           l_set_id := l_request_rec.param1;
1578 
1579           K := G_Delayed_Requests.FIRST;
1580 
1581           WHILE K is not null
1582           LOOP
1583 
1584              IF (G_Delayed_Requests(K).request_type =
1585                            OE_GLOBALS.G_DELETE_SET)
1586                AND G_Delayed_Requests(K).param1 = l_set_id
1587                AND K <> p_request_ind THEN
1588 
1589                 g_delayed_requests.delete(K);
1590 
1591              END IF;
1592 
1593              K :=  G_Delayed_Requests.NEXT(K);
1594 
1595           END LOOP;
1596 
1597           oe_set_util.Delete_Set(p_request_rec      => l_request_rec
1598                                , x_return_status    => l_return_status);
1599           oe_debug_pub.add('Delete Set Return Status ' || l_return_status,1);
1600        ELSIF (l_request_type =
1601                         OE_GLOBALS.G_SCHEDULE_LINE OR
1602               l_request_type =
1603                         OE_GLOBALS.G_RESCHEDULE_LINE) then
1604 
1605          l_index  := 0;
1606          l_set    := l_request_rec.param1;
1607 
1608          K        := G_Delayed_Requests.FIRST;
1609 
1610          WHILE K is not null -- while loop safer than tbl.first to last
1611          LOOP
1612 
1613             IF (G_Delayed_Requests(K).request_type =
1614                            OE_GLOBALS.G_SCHEDULE_LINE OR
1615                 G_Delayed_Requests(K).request_type =
1616                            OE_GLOBALS.G_RESCHEDULE_LINE) AND
1617                 G_Delayed_Requests(K).param1 = l_set
1618             THEN
1619 
1620                 l_index := l_index + 1;
1621 	    	l_sch_set_tbl(l_index) := g_delayed_requests(K);
1622                 g_delayed_requests(K).processed := 'I';
1623             END IF;
1624 
1625             K :=  G_Delayed_Requests.NEXT(K);
1626          END LOOP;
1627          IF l_debug_level > 0 THEN
1628          oe_debug_pub.add('Calling Sch_Line with '|| l_sch_set_tbl.count,1);
1629          END IF;
1630 
1631          -- Commented out the below code -Bug4504362
1632              OE_GROUP_SCH_UTIL.Schedule_Set_lines
1633                ( p_sch_set_tbl     => l_sch_set_tbl
1634                , x_return_status   => l_return_status);
1635 
1636 
1637          IF l_debug_level > 0 THEN
1638          oe_debug_pub.add('After Calling Sch_Line: '|| l_return_status,1);
1639          END IF;
1640 
1641          -- If Schedule_Line is success for all the lines, mark
1642          -- the request for others lines as processed.
1643 
1644          K         := G_Delayed_Requests.FIRST;
1645          WHILE K is not null -- while loop safer than tbl.first to last
1646          LOOP
1647 
1648            IF (G_Delayed_Requests(K).request_type =
1649                            OE_GLOBALS.G_SCHEDULE_LINE OR
1650                G_Delayed_Requests(K).request_type =
1651                            OE_GLOBALS.G_RESCHEDULE_LINE) AND
1652                 G_Delayed_Requests(K).param1 = l_set
1653            THEN
1654                 l_index := l_index + 1;
1655                IF l_return_status <> FND_API.G_RET_STS_UNEXP_ERROR
1656                THEN
1657                   g_delayed_requests(K).processed := 'Y';
1658                ELSE
1659                   g_delayed_requests(K).processed := Null;
1660                END IF;
1661            END IF;
1662 
1663             K :=  G_Delayed_Requests.NEXT(K);
1664 
1665          END LOOP;
1666 
1667        -- bug 1829201, commitment related changes.
1668        ELSIF  l_request_type = OE_GLOBALS.G_CALCULATE_COMMITMENT THEN
1669         IF l_debug_level > 0 THEN
1670 	    oe_debug_pub.add('Calling procedure calculate_commtment!',1);
1671         END IF;
1672 
1673                      --bug 3560198
1674 			OE_Commitment_Pvt.calculate_commitment(
1675                             p_request_rec        => l_request_rec
1676                            ,x_return_status      => l_return_status
1677                           );
1678 
1679        ELSIF  l_request_type = OE_GLOBALS.G_UPDATE_COMMITMENT THEN
1680 
1681 			OE_Commitment_Pvt.update_commitment
1682                           ( p_line_id       => l_request_rec.entity_id
1683                            ,x_return_status => l_return_status
1684                           );
1685        -- multiple payments
1686        ELSIF  l_request_type = OE_GLOBALS.G_UPDATE_COMMITMENT_APPLIED THEN
1687          IF l_debug_level > 0 THEN
1688          oe_debug_pub.add('OEXVREQB param1 is: '||l_request_rec.param1,3);
1689          oe_debug_pub.add('OEXVREQB param2 is: '||l_request_rec.param2,3);
1690          oe_debug_pub.add('OEXVREQB param3 is: '||l_request_rec.param3,3);
1691          END IF;
1692 			OE_Commitment_Pvt.update_commitment_applied
1693                           ( p_line_id       => l_request_rec.entity_id
1694                            ,p_amount	    => l_request_rec.param1
1695                            ,p_header_id     => l_request_rec.param2
1696                            ,p_commitment_id => l_request_rec.param3
1697                            ,x_return_status => l_return_status
1698                           );
1699 
1700        -- Included for the Spares Management (ikon) project  mshenoy
1701        -- For the delayed request type of Create Internal Req call the procedure
1702       ELSIF  l_request_type = OE_GLOBALS.G_CREATE_INTERNAL_REQ THEN
1703          IF l_debug_level > 0 THEN
1704 	     oe_debug_pub.add(' Calling auto_create_internal_req hdr id '|| l_entity_id,1);
1705          END IF;
1706              OE_DELAYED_REQUESTS_UTIL.auto_create_internal_req
1707                      ( p_ord_header_id     => l_entity_id
1708                       ,x_return_status   => l_return_status);
1709            IF l_debug_level > 0 THEN
1710          oe_debug_pub.add('After Calling auto_create_internal_req ret_status : '|| l_return_status,1);
1711            END IF;
1712 
1713 /* Modified the following condition to fix the bug 6663462 */
1714 
1715        ELSIF l_request_type = OE_GLOBALS.G_SCHEDULE_ATO OR
1716              l_request_type = OE_GLOBALS.G_SCHEDULE_SMC OR
1717              l_request_type = OE_GLOBALS.G_SCHEDULE_NONSMC  OR
1718              l_request_type = OE_GLOBALS.G_DELAYED_SCHEDULE THEN
1719          IF l_debug_level > 0 THEN
1720          oe_debug_pub.add('calling Process_Scheduling_Request');
1721          END IF;
1722          Process_Scheduling_Request
1723          ( p_request_ind   => p_request_ind
1724           ,p_request_rec   => l_request_rec
1725           ,x_return_status => l_return_status);
1726          IF l_debug_level > 0 THEN
1727          oe_debug_pub.add('Scheduling_Request '|| l_return_status);
1728          END IF;
1729        ---------
1730        -- Added by rsreeniv
1731        ----------
1732       ELSIF l_request_rec.request_type = OE_GLOBALS.G_FREIGHT_FOR_INCLUDED THEN
1733         IF l_debug_level > 0 THEN
1734              Oe_Debug_pub.Add('Before Executing Delayed request Freight for included for '||l_request_rec.entity_id);
1735 			 Oe_Debug_pub.Add('Before Order Price - Freight');
1736 	         Oe_Debug_pub.Add('The Event is '||l_request_rec.param2);
1737         END IF;
1738 		l_Price_Control_Rec.pricing_event := l_request_rec.param2;
1739 		l_Price_Control_Rec.calculate_flag :=  QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1740 		l_Price_Control_Rec.Simulation_Flag := 'N';
1741 
1742                 If l_Price_Control_Rec.pricing_event = 'BATCH' Then
1743                    l_price_control_rec.source_order_amount_flag := 'Y';
1744                 End If;
1745 
1746                 j := 1;
1747 
1748              /*
1749 
1750               FOR inclinesrec in included_lines_cur(l_request_rec.entity_id) LOOP
1751 
1752                  IF OE_LINE_ADJ_UTIL.G_CHANGED_LINE_TBL.exists(inclinesrec.line_id) THEN
1753 
1754                  l_line_tbl(j) := OE_LINE_UTIL.QUERY_ROW(p_line_id => inclinesrec.line_id);
1755 
1756                  END IF;
1757 
1758                  j := j + 1;
1759 
1760               END LOOP; */
1761 
1762 
1763 		oe_order_adj_pvt.Price_line(
1764 					X_Return_Status	=> l_Return_Status
1765 					,p_Request_Type_code=> 'ONT'
1766 					,p_Control_rec		=> l_Price_Control_Rec
1767                                         ,p_Header_id            => l_request_rec.entity_id
1768 					,p_write_to_db      => TRUE
1769 					,p_request_rec      => l_request_rec
1770 					,x_line_Tbl         => l_Line_Tbl
1771 					);
1772         IF l_debug_level > 0 THEN
1773 			 Oe_Debug_pub.Add('After Header Price');
1774 	         Oe_Debug_pub.Add('After Executing Delayed request Price line for '||l_request_rec.entity_id);
1775         END IF;
1776        --MRG BGN
1777       ELSIF l_request_type = OE_GLOBALS.G_MARGIN_HOLD THEN
1778          IF l_debug_level > 0 THEN
1779          oe_debug_pub.add('From delayed request: executing Oe_Margin_Pvt.Margin_Hold');
1780          END IF;
1781          Oe_Margin_Pvt.Margin_Hold(p_header_id => l_request_rec.entity_id);
1782        --MRG END
1783        -------------
1784        --Added btea
1785        -------------
1786 
1787 
1788        --MRG BGN
1789        ELSIF l_request_type = OE_GLOBALS.G_GET_COST THEN
1790           IF l_debug_level > 0 THEN
1791          oe_debug_pub.add('From delayed request: executing Oe_Margin_Pvt.Get_Cost');
1792           END IF;
1793          l_unit_cost := Oe_Margin_Pvt.Get_Cost(p_request_rec => l_request_rec);
1794        --MRG END
1795 
1796 
1797        ELSIF l_request_type = OE_GLOBALS.G_DEL_CHG_LINES Then
1798            IF l_debug_level > 0 THEN
1799           oe_debug_pub.add('Executing Delete_Changed_Lines delayed request');
1800            END IF;
1801 
1802           Oe_Line_Adj_Util.Delete_Changed_Lines_Tbl;
1803           IF l_debug_level > 0 THEN
1804           oe_debug_pub.add('After Delete_Changed_Lines delayed request');
1805           END IF;
1806 
1807        ELSIF l_request_type = OE_GLOBALS.G_VERSION_AUDIT THEN
1808 
1809           OE_Versioning_Util.Execute_Versioning_Request(p_header_id => l_request_rec.entity_id,
1810         p_document_type => l_request_rec.entity_code,
1811         p_changed_attribute => l_request_rec.param1,
1812         x_msg_count => l_msg_count,
1813         x_msg_data => l_msg_data,
1814         x_return_status => x_return_status);
1815 
1816        -- BLANKETS: Ignore process release related requests here. These
1817        -- will be executed with all requests in process_delayed_requests call.
1818        ELSIF l_request_type = OE_GLOBALS.G_PROCESS_RELEASE THEN
1819          RETURN;
1820        ELSIF l_request_type = OE_GLOBALS.G_VALIDATE_RELEASE_SHIPMENTS THEN
1821          RETURN;
1822 
1823        -- Delayed requests logged by blankets business object APIs.
1824        ELSIF l_request_type = 'VALIDATE_BLANKET_LINE_NUMBER' THEN
1825           OE_BLANKET_UTIL.VALIDATE_LINE_NUMBER( p_req_ind => p_request_ind,
1826                             x_return_status => l_return_status);
1827 
1828        ELSIF l_request_type = 'VALIDATE_BLANKET_INV_ITEM' THEN
1829           OE_BLANKET_UTIL.VALIDATE_ITEM_UNIQUENESS( p_req_ind => p_request_ind,
1830                             x_return_status => l_return_status);
1831        ELSIF l_request_type = 'CREATE_BLANKET_PRICE_LIST' THEN
1832           OE_BLANKET_UTIL.create_price_list( p_index => p_request_ind,
1833                             x_return_status => l_return_status);
1834        ELSIF l_request_type = 'ADD_BLANKET_PRICE_LIST_LINE' THEN
1835           OE_BLANKET_UTIL.add_price_list_line( p_req_ind => p_request_ind,
1836                             x_return_status => l_return_status);
1837        -- for bug 3309427
1838        ELSIF l_request_type = OE_GLOBALS.G_CLEAR_BLKT_PRICE_LIST_LINE THEN
1839           OE_BLANKET_UTIL.clear_price_list_line( p_req_ind => p_request_ind,
1840                             x_return_status => l_return_status);
1841        ELSIF l_request_type = 'RECORD_BLANKET_HISTORY' THEN
1842           OE_BLANKET_UTIL.record_blanket_history(
1843                             x_return_status => l_return_status);
1844        ELSIF l_request_type = 'VALIDATE_BLANKET_SOLD_TO' THEN
1845           OE_BLANKET_UTIL.validate_sold_to( p_header_id => l_entity_id,
1846                             p_sold_To_org_id => l_request_rec.param1,
1847                             x_return_status => l_return_status);
1848        -- End of requests logged by blankets business object APIs.
1849        -- Begin of Multiple Payments
1850        	ELSIF l_request_type = OE_GLOBALS.G_SPLIT_PAYMENT then
1851 	    OE_PrePayment_Pvt.split_payment (
1852 	                    p_line_id               	  => l_request_rec.entity_id
1853 	                  , p_header_id               	  => l_request_rec.param2
1854 	                  , p_split_from_line_id  	  => l_request_rec.param1
1855 	                  , x_return_status        	 => l_return_status
1856 	                  , x_msg_count           	  => l_msg_count
1857 	                  , x_msg_data             	 => l_msg_data
1858 	                  );
1859        -- End of Multiple Payments
1860 
1861        -- OIP SUN ER Changes
1862               ELSIF l_request_type = 'OE_ORDER_BOOKED' then
1863                  OE_ORDER_UTIL.RAISE_BUSINESS_EVENT(p_header_id => l_entity_id,
1864        	   	    	                            p_status    => 'BOOKED');
1865        -- OIP SUN ER Changes End
1866 
1867        ELSIF l_request_type = OE_GLOBALS.G_UPDATE_HDR_PAYMENT then
1868 
1869          IF l_debug_level > 0 THEN
1870            oe_debug_pub.add('param1 is : ' || l_request_rec.param1);
1871            oe_debug_pub.add('param2 is : ' || l_request_rec.param2);
1872            oe_debug_pub.add('entity id is : ' || l_request_rec.entity_id);
1873            oe_debug_pub.add('entity code is : ' || l_request_rec.entity_code);
1874          END IF;
1875 
1876             IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT
1877             AND l_request_rec.param1 = 'UPDATE_LINE' THEN
1878                payment_line_id := l_request_rec.entity_id;
1879                payment_header_id := l_request_rec.param2;
1880 
1881             ELSE
1882                payment_header_id := l_request_rec.entity_id;
1883                payment_line_id := NULL;
1884             END IF;
1885 
1886             IF l_debug_level  > 0 THEN
1887               oe_debug_pub.add('header id for update_hdr_payment is : ' || payment_header_id,3);
1888               oe_debug_pub.add('line id for update_hdr_payment is : ' || payment_line_id,3);
1889             END IF;
1890 
1891 	    OE_PrePayment_Pvt.Update_Hdr_Payment (
1892 	                    p_header_id             => payment_header_id
1893                           , p_action                => l_request_rec.param1
1894                           , p_line_id               => payment_line_id
1895 	                  , x_return_status         => l_return_status
1896 	                  , x_msg_count             => l_msg_count
1897 	                  , x_msg_data              => l_msg_data
1898 	                  );
1899 
1900        ELSIF l_request_type = OE_GLOBALS.G_APPLY_PPP_HOLD  THEN
1901 	    --bug3507871 start
1902         IF l_debug_level > 0 THEN
1903 	    oe_debug_pub.add('Before calling Process_Payments for applying PPP hold');
1904         END IF;
1905 
1906 	    OE_PREPAYMENT_PVT.Process_Payments(
1907              	       p_header_id 	=> l_request_rec.entity_id,
1908                        p_calling_action => 'UPDATE',
1909                        p_amount         => null,
1910                        p_delayed_request=> FND_API.G_TRUE,
1911                        x_msg_data	=> l_msg_data,
1912                        x_msg_count	=> l_msg_count,
1913                        x_return_status	=> l_return_status);
1914 	    --bug3507871 end
1915 --bug3625027 start
1916       ELSIF l_request_type = OE_GLOBALS.G_PROCESS_PAYMENT THEN
1917         IF l_debug_level > 0 THEN
1918 	    oe_debug_pub.add('Request Type: '||l_request_type);
1919         END IF;
1920 	 IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER_PAYMENT THEN
1921         IF l_debug_level > 0 THEN
1922 	       oe_debug_pub.add('Before calling Process_Payments Procedure at the header level');
1923         END IF;
1924 
1925 	    OE_PREPAYMENT_PVT.Process_Payments(
1926              	       p_header_id 	=> l_request_rec.entity_id,
1927                        p_calling_action => null,
1928                        p_amount         => null,
1929                        p_delayed_request=> FND_API.G_TRUE,
1930 		       p_process_prepayment=>'N',
1931 	               p_process_authorization=>'N',
1932                        x_msg_data	=> l_msg_data,
1933                        x_msg_count	=> l_msg_count,
1934                        x_return_status	=> l_return_status);
1935 	 ELSIF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
1936         IF l_debug_level > 0 THEN
1937 	    oe_debug_pub.add('Before calling Process_Payments Procedure at the line level');
1938         END IF;
1939 
1940 	    OE_PREPAYMENT_PVT.Process_Payments(
1941              	       p_header_id 	=> l_request_rec.entity_id,
1942 		       p_line_id        => l_request_rec.param1,
1943                        p_calling_action => null,
1944                        p_amount         => null,
1945                        p_delayed_request=> FND_API.G_TRUE,
1946 		       p_process_prepayment=>'N',
1947 	               p_process_authorization=>'N',
1948 		       x_msg_data	=> l_msg_data,
1949                        x_msg_count	=> l_msg_count,
1950                        x_return_status	=> l_return_status);
1951 	END IF;
1952 --bug3625027 end
1953 
1954        ELSIF l_request_type = OE_GLOBALS.G_DELETE_PAYMENT_HOLD  THEN
1955          IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
1956             payment_line_id := l_request_rec.entity_id;
1957             payment_header_id := l_request_rec.param2;
1958          ELSE
1959             payment_header_id := l_request_rec.entity_id;
1960             payment_line_id := NULL;
1961          END IF;
1962 
1963          IF l_debug_level  > 0 THEN
1964            oe_debug_pub.add('header id for delete_payment_hold is : ' || payment_header_id,3);
1965            oe_debug_pub.add('line id for delete_payment_hold is : ' || payment_line_id,3);
1966          END IF;
1967 
1968 	 OE_PrePayment_Pvt.Delete_Payment_Hold
1969                           ( p_line_id          	  => payment_line_id
1970 	                  , p_header_id           => payment_header_id
1971 	                  , p_hold_type           => l_request_rec.param1
1972 	                  , x_return_status       => l_return_status
1973 	                  , x_msg_count           => l_msg_count
1974 	                  , x_msg_data            => l_msg_data
1975 	                  );
1976 
1977        -- End of Multiple Payments
1978 
1979        -- 11i10 Work Flow Changes
1980        ELSIF l_request_type = 'BLANKET_DATE_CHANGE' THEN
1981           OE_BLANKET_WF_UTIL.Blanket_Date_Changed(p_header_id => l_entity_id,
1982                                                   x_return_status => l_return_status);
1983         -- End of Work Flow Changes.
1984        -- 11i10 Pricing Changes for blankets
1985        ELSIF l_request_type IN ('CREATE_MODIFIER_LIST'
1986                                ,'ADD_MODIFIER_LIST_LINE'
1987                                )
1988        THEN
1989           OE_BLANKET_PRICING_UTIL.Create_Modifiers(
1990                             p_index         => p_request_ind,
1991                             x_return_status => l_return_status);
1992 
1993        ELSIF l_request_type IN (OE_GLOBALS.G_GENERATE_XML_REQ_HDR, OE_GLOBALS.G_GENERATE_XML_REQ_LN) THEN
1994         -- only do processing on header-level requests
1995 
1996         IF l_request_type = OE_GLOBALS.G_GENERATE_XML_REQ_HDR THEN
1997         OE_DELAYED_REQUESTS_UTIL.process_xml_delayed_request(p_request_ind => p_request_ind,
1998                                                                x_return_status  => l_return_status);
1999         END IF;
2000 	--R12 CC Encryption
2001 	ELSIF l_request_type = OE_GLOBALS.G_DELETE_PAYMENTS  THEN
2002 		IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE_PAYMENT THEN
2003 			payment_line_id := l_request_rec.entity_id;
2004 			payment_header_id := l_request_rec.param1;
2005 			old_invoice_to_org_id := to_number(l_request_rec.param2);
2006 		ELSE
2007 			payment_header_id := l_request_rec.entity_id;
2008 			payment_line_id := NULL;
2009 			old_invoice_to_org_id := to_number(l_request_rec.param1);
2010 		END IF;
2011 
2012                 IF l_debug_level  > 0 THEN
2013                   oe_debug_pub.add('header id for delete_payments is : ' || payment_header_id,3);
2014                   oe_debug_pub.add('line id for delete_payments is : ' || payment_line_id,3);
2015                 END IF;
2016 
2017 		OE_PrePayment_Pvt.Delete_Payments
2018 		 ( p_line_id             => payment_line_id
2019 		, p_header_id           => payment_header_id
2020 		, p_invoice_to_org_id	=> old_invoice_to_org_id
2021 		, x_return_status       => l_return_status
2022                 , x_msg_count           => l_msg_count
2023 		, x_msg_data            => l_msg_data
2024 		);
2025        --R12 CC Encryption
2026        -- End of requests logged by blankets business object APIs.
2027 
2028        --BUG#10052614 Starts
2029        ELSIF l_request_type = OE_GLOBALS.G_DR_COPY_OTM_RECORDS  THEN
2030        	/*   Modified below call to dynamic SQL to avoid dependency on OTM
2031          *   patch, since OTM patch mandates a pre-req of R12 RUP6.
2032        	     l_otm_volume := OZF_VOLUME_CALCULATION_PUB.copy_order_group_details( p_to_order_line_id    => l_entity_id
2033 	                                                                                , p_from_order_line_id  => l_request_rec.param2
2034                                                                            );
2035        */
2036         oe_debug_pub.add(' OEXVREQB.pls : Building dynamic call string for calling OZF_VOLUME_CALCULATION_PUB.copy_order_group_details', 3);
2037 	l_dynamic_call := 'declare ' ||
2038 			  'begin ' ||
2039 			  ':return_value := OZF_VOLUME_CALCULATION_PUB.copy_order_group_details' ||
2040 			  		    '( p_to_order_line_id => :l_to_order_line_id, ' ||
2041 			                     ' p_from_order_line_id  => :l_from_order_line_id ); ' ||
2042 			  'end;';
2043         oe_debug_pub.add(' OEXVREQB.pls : dynamics sql : ' || l_dynamic_call, 3);
2044 
2045         Begin
2046 	EXECUTE IMMEDIATE l_dynamic_call USING OUT l_otm_volume, IN l_entity_id, IN l_request_rec.param2;
2047 
2048              oe_debug_pub.add('Return from OTM after executing delayed request : ' || l_otm_volume,3);
2049 
2050         Exception When OTHERS Then
2051            oe_debug_pub.add('Erroring calling OTM API, please check if the dependent OTM patch is applied and if OZF_VOLUME_CALCULATION_PUB.copy_order_group_details API existis in the DB', 1);
2052         End;
2053        --BUG#10052614 Ends
2054 
2055        ELSE
2056             FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
2057 		  FND_MESSAGE.SET_TOKEN('ACTION',l_request_type);
2058             OE_MSG_PUB.Add;
2059             l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2060 
2061        END IF;
2062 
2063        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2064               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2065        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2066               RAISE FND_API.G_EXC_ERROR;
2067        END IF;
2068 
2069        IF (p_delete = FND_API.G_TRUE) then
2070 
2071              G_Delayed_Requests.Delete(p_request_ind);
2072 
2073 /*
2074        BUG 1794544 - do not delete from req entities table
2075        , delete table in the end when all requests are processed
2076        This to improve performance as this search loops through
2077        the entire pl/sql table which becomes very large with
2078        greater number of lines being processed
2079 	-- Delete all the records in the requesting entities table
2080 	-- that have this request.
2081 
2082 	l_req_entity_ind := G_Requesting_Entities.First;
2083 
2084 
2085           WHILE l_req_entity_ind IS NOT NULL LOOP
2086 	   IF G_Requesting_Entities(l_req_entity_ind).request_index = p_request_ind
2087 	   THEN
2088 		G_Requesting_Entities.Delete(l_req_entity_ind);
2089 	   END IF;
2090 	   l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
2091 	  END LOOP;
2092 */
2093 
2094        ELSE
2095 
2096           G_Delayed_Requests(p_request_ind).processed := 'Y';
2097 
2098        END IF;
2099 
2100 /*       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2101 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2102        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2103 	    RAISE FND_API.G_EXC_ERROR;
2104        END IF;*/
2105 /* The request  is not removed if return_status is error  Rajeev*/
2106        --IF (p_delete = FND_API.G_TRUE) then
2107         --  G_Delayed_Requests.Delete(p_request_ind);
2108        --ELSE
2109         --  G_Delayed_Requests(p_request_ind).processed := 'Y';
2110        --END IF;
2111        IF l_debug_level > 0 THEN
2112            oe_debug_pub.add('leaving Process_Request_Pvt', 1);
2113        END IF;
2114 EXCEPTION
2115 
2116     WHEN FND_API.G_EXC_ERROR THEN
2117            oe_debug_pub.add('exe error Process_Request_Pvt', 1);
2118 /* commented the fowwoing 2 debug messages to fix the bug 13256519  */
2119 /*
2120            oe_debug_pub.add
2121            ('1 type----- '|| G_Delayed_Requests(p_request_ind).request_type, 1);
2122            oe_debug_pub.add
2123            ('1 ind----- '|| p_request_ind, 1);
2124 */
2125 	   IF (p_delete = FND_API.G_TRUE)
2126              AND G_Delayed_Requests.EXISTS(p_request_ind) THEN --13737412
2127 		-- Bug 11811300 starts
2128     		IF G_Delayed_Requests(p_request_ind).request_type IN
2129     		(OE_GLOBALS.G_SCHEDULE_LINE,OE_GLOBALS.G_GROUP_SCHEDULE,OE_GLOBALS.G_SCHEDULE_ATO,OE_GLOBALS.G_SCHEDULE_SMC,OE_GLOBALS.G_SCHEDULE_NONSMC,OE_GLOBALS.G_DELAYED_SCHEDULE)
2130     		-- Bug 11811300 ends
2131 		THEN -- 9714072
2132             		G_Delayed_Requests.Delete(p_request_ind);
2133             	ELSE -- 9714072
2134 	  		G_Delayed_Requests(p_request_ind).processed := 'N';
2135 	  	END IF ; -- 9714072
2136            END IF;
2137                 x_return_status := FND_API.G_RET_STS_ERROR;
2138 
2139     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2140            oe_debug_pub.add('unexp error Process_Request_Pvt', 1);
2141            oe_debug_pub.add('SQL ERROR MESSAGE:'||SQLERRM);
2142 
2143             IF (p_delete = FND_API.G_TRUE)
2144               AND G_Delayed_Requests.EXISTS(p_request_ind) THEN --13737412
2145 		-- Bug 11811300 starts
2146     		IF G_Delayed_Requests(p_request_ind).request_type IN
2147     		(OE_GLOBALS.G_SCHEDULE_LINE,OE_GLOBALS.G_GROUP_SCHEDULE,OE_GLOBALS.G_SCHEDULE_ATO,OE_GLOBALS.G_SCHEDULE_SMC,OE_GLOBALS.G_SCHEDULE_NONSMC,OE_GLOBALS.G_DELAYED_SCHEDULE)
2148     		-- Bug 11811300 ends
2149 		THEN -- 9714072
2150             		G_Delayed_Requests.Delete(p_request_ind);
2151             	ELSE -- 9714072
2152 	  		G_Delayed_Requests(p_request_ind).processed := 'N';
2153 	  	END IF ; -- 9714072
2154            END IF;
2155 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2156 
2157    WHEN NO_DATA_FOUND THEN
2158         oe_debug_pub.add('Exiting  Process_Request_Pvt no_data_found exception ');
2159 	    IF (p_delete = FND_API.G_TRUE)
2160                AND G_Delayed_Requests.EXISTS(p_request_ind) THEN --13737412
2161 		-- Bug 11811300 starts
2162     		IF G_Delayed_Requests(p_request_ind).request_type IN
2163     		(OE_GLOBALS.G_SCHEDULE_LINE,OE_GLOBALS.G_GROUP_SCHEDULE,OE_GLOBALS.G_SCHEDULE_ATO,OE_GLOBALS.G_SCHEDULE_SMC,OE_GLOBALS.G_SCHEDULE_NONSMC,OE_GLOBALS.G_DELAYED_SCHEDULE)
2164     		-- Bug 11811300 ends
2165 		THEN -- 9714072
2166             		G_Delayed_Requests.Delete(p_request_ind);
2167             	ELSE -- 9714072
2168 	  		G_Delayed_Requests(p_request_ind).processed := 'N';
2169 	  	END IF ; -- 9714072
2170            END IF;
2171 	 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2172         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2173         THEN
2174             OE_MSG_PUB.Add_Exc_Msg
2175             (   G_PKG_NAME
2176             ,   'Process_Request_Pvt'
2177             );
2178         END IF;
2179 
2180     WHEN OTHERS THEN
2181 	oe_debug_pub.add('SQL ERROR MESSAGE FOR WHEN OTHRES:'||SQLERRM);
2182 	     IF (p_delete = FND_API.G_TRUE)
2183                AND G_Delayed_Requests.EXISTS(p_request_ind) THEN --13737412
2184 		-- Bug 11811300 starts
2185     		IF G_Delayed_Requests(p_request_ind).request_type IN
2186     		(OE_GLOBALS.G_SCHEDULE_LINE,OE_GLOBALS.G_GROUP_SCHEDULE,OE_GLOBALS.G_SCHEDULE_ATO,OE_GLOBALS.G_SCHEDULE_SMC,OE_GLOBALS.G_SCHEDULE_NONSMC,OE_GLOBALS.G_DELAYED_SCHEDULE)
2187     		-- Bug 11811300 ends
2188 		THEN -- 9714072
2189             		G_Delayed_Requests.Delete(p_request_ind);
2190             	ELSE -- 9714072
2191 	  		G_Delayed_Requests(p_request_ind).processed := 'N';
2192 	  	END IF ; -- 9714072
2193             END IF;
2194         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2195 
2196         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2197         THEN
2198             OE_MSG_PUB.Add_Exc_Msg
2199             (   G_PKG_NAME
2200             ,   'Process_Request_Pvt'
2201             );
2202         END IF;
2203 
2204    oe_debug_pub.add('Exiting  Process_Request_Pvt with others exception ');
2205 
2206 
2207 End Process_Request_Pvt;
2208 
2209 /** End Local Procedures **/
2210 
2211 /** Global Procedures **/
2212 Procedure  Log_Request
2213 (   p_entity_code	IN VARCHAR2
2214 ,   p_entity_id		IN NUMBER
2215 ,   p_requesting_entity_code IN VARCHAR2
2216 ,   p_requesting_entity_id   IN NUMBER
2217 ,   p_request_type	IN VARCHAR2
2218 ,   p_request_unique_key1	IN VARCHAR2 := NULL
2219 ,   p_request_unique_key2	IN VARCHAR2 := NULL
2220 ,   p_request_unique_key3	IN VARCHAR2 := NULL
2221 ,   p_request_unique_key4	IN VARCHAR2 := NULL
2222 ,   p_request_unique_key5	IN VARCHAR2 := NULL
2223 ,   p_param1		IN VARCHAR2 := NULL
2224 ,   p_param2		IN VARCHAR2 := NULL
2225 ,   p_param3		IN VARCHAR2 := NULL
2226 ,   p_param4		IN VARCHAR2 := NULL
2227 ,   p_param5		IN VARCHAR2 := NULL
2228 ,   p_param6		IN VARCHAR2 := NULL
2229 ,   p_param7		IN VARCHAR2 := NULL
2230 ,   p_param8		IN VARCHAR2 := NULL
2231 ,   p_param9		IN VARCHAR2 := NULL
2232 ,   p_param10		IN VARCHAR2 := NULL
2233 ,   p_param11		IN VARCHAR2 := NULL
2234 ,   p_param12		IN VARCHAR2 := NULL
2235 ,   p_param13		IN VARCHAR2 := NULL
2236 ,   p_param14 		IN VARCHAR2 := NULL
2237 ,   p_param15		IN VARCHAR2 := NULL
2238 ,   p_param16		IN VARCHAR2 := NULL
2239 ,   p_param17		IN VARCHAR2 := NULL
2240 ,   p_param18		IN VARCHAR2 := NULL
2241 ,   p_param19		IN VARCHAR2 := NULL
2242 ,   p_param20		IN VARCHAR2 := NULL
2243 ,   p_param21		IN VARCHAR2 := NULL
2244 ,   p_param22		IN VARCHAR2 := NULL
2245 ,   p_param23		IN VARCHAR2 := NULL
2246 ,   p_param24		IN VARCHAR2 := NULL
2247 ,   p_param25		IN VARCHAR2 := NULL
2248 ,   p_date_param1   IN DATE := NULL
2249 ,   p_date_param2   IN DATE := NULL
2250 ,   p_date_param3   IN DATE := NULL
2251 ,   p_date_param4   IN DATE := NULL
2252 ,   p_date_param5   IN DATE := NULL
2253 ,   p_date_param6   IN DATE := NULL
2254 ,   p_date_param7   IN DATE := NULL
2255 ,   p_date_param8   IN DATE := NULL
2256 ,   p_long_param1	IN VARCHAR2 := NULL
2257 , x_return_status OUT NOCOPY VARCHAR2
2258 
2259 )
2260   IS
2261      l_request_search_rslt	VARCHAR2(1);
2262      l_return_status		VARCHAR2(1);
2263      l_request_ind		NUMBER;
2264      l_req_entity_ind		NUMBER;
2265      l_request			OE_Order_PUB.REQUEST_REC_TYPE;
2266      l_req_entity		OE_Order_PUB.Requesting_Entity_Rec_Type;
2267      l_log_request              VARCHAR2(1);
2268      l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2269 BEGIN
2270 
2271    IF l_debug_level  > 0 THEN
2272       oe_debug_pub.add('Entering Procedure Log_Request in Package OE_Delayed_Requests_Pvt, entity id: '||p_entity_id||', request type:'||p_request_type);
2273    END IF;
2274 
2275     -- Initialize the request_record
2276    l_request.request_type		:= p_request_type;
2277    l_request.entity_id			:= p_entity_id;
2278    l_request.entity_code		:= p_entity_code;
2279    l_request.request_unique_key1 	:= p_request_unique_key1;
2280    l_request.request_unique_key2 	:= p_request_unique_key2;
2281    l_request.request_unique_key3 	:= p_request_unique_key3;
2282    l_request.request_unique_key4 	:= p_request_unique_key4;
2283    l_request.request_unique_key5 	:= p_request_unique_key5;
2284    l_request.param1			:= p_param1;
2285    l_request.param2			:= p_param2;
2286    l_request.param3			:= p_param3;
2287    l_request.param4			:= p_param4;
2288    l_request.param5			:= p_param5;
2289    l_request.param6			:= p_param6;
2290    l_request.param7			:= p_param7;
2291    l_request.param8			:= p_param8;
2292    l_request.param9			:= p_param9;
2293    l_request.param10			:= p_param10;
2294    l_request.param11			:= p_param11;
2295    l_request.param12			:= p_param12;
2296    l_request.param13			:= p_param13;
2297    l_request.param14			:= p_param14;
2298    l_request.param15			:= p_param15;
2299    l_request.param16			:= p_param16;
2300    l_request.param17			:= p_param17;
2301    l_request.param18			:= p_param18;
2302    l_request.param19			:= p_param19;
2303    l_request.param20			:= p_param20;
2304    l_request.param21			:= p_param21;
2305    l_request.param22			:= p_param22;
2306    l_request.param23			:= p_param23;
2307    l_request.param24			:= p_param24;
2308    l_request.param25			:= p_param25;
2309    l_request.date_param1           := p_date_param1;
2310    l_request.date_param2           := p_date_param2;
2311    l_request.date_param3           := p_date_param3;
2312    l_request.date_param4           := p_date_param4;
2313    l_request.date_param5           := p_date_param5;
2314    l_request.date_param6           := p_date_param6;
2315    l_request.date_param7           := p_date_param7;
2316    l_request.date_param8           := p_date_param8;
2317    l_request.long_param1		:= p_long_param1;
2318 
2319    -- Initialize the return variable
2320    x_return_status := FND_API.G_RET_STS_SUCCESS;
2321 
2322    Check_For_Request(p_entity_code,
2323 		     p_entity_id,
2324 		     p_request_type,
2325 		     p_request_unique_key1,
2326 		     p_request_unique_key2,
2327 		     p_request_unique_key3,
2328 		     p_request_unique_key4,
2329 		     p_request_unique_key5,
2330 		     l_request_ind,
2331 		     l_request_search_rslt,
2332 		     l_return_status);
2333 
2334        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2335 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2336        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2337 	    RAISE FND_API.G_EXC_ERROR;
2338        END IF;
2339 
2340      l_request.processed := 'N';
2341 
2342      -- Added for bug 12673852
2343      IF l_request.request_type = OE_GLOBALS.G_DEL_CHG_LINES THEN
2344          IF oe_mass_change_pvt.Lines_Remaining = 'Y'
2345          THEN
2346             oe_debug_pub.add('Called from Mass Change, line remaining, NOT logging G_DEL_CHG_LINES request');
2347             RETURN;
2348          ELSE
2349             oe_debug_pub.add('Called from Mass Change, last line reached, logging G_DEL_CHG_LINES request');
2350          END IF;
2351      END IF;
2352      -- End of bug 12673852
2353 
2354      IF l_request.request_type = OE_GLOBALS.G_PRICE_ORDER
2355         AND (l_request.request_unique_key1 = 'BATCH'
2356               AND nvl(l_request.request_unique_key2,'N') = 'Y'
2357               OR l_request.request_unique_key1 = 'ORDER'
2358               AND nvl(l_request.request_unique_key2,'N') = 'N'
2359               OR l_request.request_unique_key1 = 'BATCH'
2360               AND nvl(l_request.request_unique_key2,'N') = 'N'
2361               OR l_request.request_unique_key1 = 'BATCH,BOOK'
2362               AND nvl(l_request.request_unique_key2,'N') = 'Y'
2363               OR l_request.request_unique_key1 = 'ORDER,BOOK'
2364               AND nvl(l_request.request_unique_key2,'N') = 'N'
2365               OR l_request.request_unique_key1 = 'BATCH,BOOK'
2366               AND nvl(l_request.request_unique_key2,'N') = 'N')
2367          AND l_request_search_rslt = FND_API.g_false THEN
2368 
2369          IF l_debug_level  > 0 THEN
2370            oe_debug_pub.add('In log_request, calling check_pricing_request.',3);
2371            oe_debug_pub.add('request_unique_key1 is: '||l_request.request_unique_key1,3);
2372            oe_debug_pub.add('request_unique_key2 is: '||l_request.request_unique_key2,3);
2373          END IF;
2374          Check_Pricing_Request
2375          ( p_request_ind   => l_request_ind
2376           ,p_request_rec   => l_request
2377           ,x_log_request   => l_log_request);
2378 
2379          -- no need to log this delayed request.
2380          IF l_log_request = 'N' THEN
2381             RETURN;
2382          END IF;
2383 
2384          --Bug 7566697
2385          IF oe_mass_change_pvt.Lines_Remaining = 'Y'
2386          THEN
2387             oe_debug_pub.add('Called from Mass Change, line remaining, NOT logging pricing request');
2388             RETURN;
2389          ELSE
2390             oe_debug_pub.add('Called from Mass Change, last line reached, logging pricing request');
2391          END IF;
2392 
2393       END IF;
2394 
2395       /* Added the following code to fix the fp bug 3498435 */
2396 
2397          IF l_request.request_type = OE_GLOBALS.G_PRICE_LINE
2398            AND (nvl(l_request.request_unique_key1, l_request.param2) = 'BATCH'
2399                  AND nvl(l_request.request_unique_key2,'N') = 'N'
2400                  OR nvl(l_request.request_unique_key1,l_request.param2) = 'BATCH,BOOK'
2401                  AND nvl(l_request.request_unique_key2,'N') = 'N')
2402                  OR nvl(l_request.request_unique_key1, l_request.param2) = 'LINE'
2403             AND l_request_search_rslt = FND_API.g_false THEN
2404             Check_Pricing_Request
2405             ( p_request_ind   => l_request_ind
2406              ,p_request_rec   => l_request
2407              ,x_log_request   => l_log_request);
2408                  -- no need to log this delayed request.
2409             IF l_log_request = 'N' THEN
2410                RETURN;
2411             END IF;
2412 
2413          END IF;
2414 
2415      /* End of the code added to fix the fp bug 3498435  */
2416 
2417       IF l_request_search_rslt = FND_API.g_true       -- replace the request
2418       THEN
2419     IF l_debug_level > 0 THEN
2420 	    OE_Debug_PUB.ADD('Request replaced');
2421     END IF;
2422 
2423         IF g_delayed_requests(l_request_ind).request_type =
2424            OE_GLOBALS.G_CASCADE_CHANGES THEN
2425           IF l_debug_level > 0 THEN
2426              OE_Debug_PUB.ADD('cascade changes, orig qty '||
2427           g_delayed_requests(l_request_ind).param1, 3);
2428           END IF;
2429           l_request.param1 := g_delayed_requests(l_request_ind).param1;
2430 
2431         ELSIF g_delayed_requests(l_request_ind).request_type =
2432            OE_GLOBALS.G_UPDATE_OPTION THEN
2433           IF l_debug_level > 0 THEN
2434           OE_Debug_PUB.ADD('update option, orig qty '||
2435           g_delayed_requests(l_request_ind).param4, 3);
2436           END IF;
2437 
2438           l_request.param4 := g_delayed_requests(l_request_ind).param4;
2439 
2440         -- Added 09-DEC-2002
2441         -- BLANKETS: exception for blankets to retain old parameters
2442         ELSIF p_request_type = OE_GLOBALS.G_PROCESS_RELEASE
2443         THEN
2444             IF l_debug_level > 0 THEN
2445             oe_debug_pub.add('Retain parameters for old values');
2446             END IF;
2447             l_request.param1 := g_delayed_requests(l_request_ind).param1;
2448             l_request.param2 := g_delayed_requests(l_request_ind).param2;
2449             l_request.param3 := g_delayed_requests(l_request_ind).param3;
2450             l_request.param4 := g_delayed_requests(l_request_ind).param4;
2451             l_request.param5 := g_delayed_requests(l_request_ind).param5;
2452             l_request.param6 := g_delayed_requests(l_request_ind).param6;
2453 
2454         ELSIF p_request_type = OE_GLOBALS.G_DROPSHIP_CMS
2455         THEN
2456             l_request.param1  :=  g_delayed_requests(l_request_ind).param1;
2457             l_request.param2  :=  g_delayed_requests(l_request_ind).param2;
2458             l_request.param3  :=  g_delayed_requests(l_request_ind).param3;
2459             l_request.param4  :=  g_delayed_requests(l_request_ind).param4;
2460             l_request.param5  :=  g_delayed_requests(l_request_ind).param5;
2461             l_request.param6  :=  g_delayed_requests(l_request_ind).param6;
2462 /*****Begin changes for bug#6918700*********/
2463 --          l_request.param7  :=  g_delayed_requests(l_request_ind).param7;
2464             l_request.date_param1  :=  g_delayed_requests(l_request_ind).date_param1;
2465 /*****End changes for bug#6918700*********/
2466 
2467         ELSIF p_request_type = OE_GLOBALS.G_GROUP_SCHEDULE
2468         THEN
2469             --2819258 -- Retain the operation
2470             l_request.param14  :=  g_delayed_requests(l_request_ind).param14;
2471         -- 4052648
2472         ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_ATO
2473         THEN
2474             -- Retain old parameter values.
2475             l_request.param7  :=  g_delayed_requests(l_request_ind).param7; -- Ship From
2476             l_request.param8  :=  g_delayed_requests(l_request_ind).param8; -- Demand Class
2477             l_request.param14  :=  g_delayed_requests(l_request_ind).param14; -- Ship To
2478             l_request.param15  :=  g_delayed_requests(l_request_ind).param15; -- Ship Method
2479             l_request.param16  :=  g_delayed_requests(l_request_ind).param16; -- Planning Priority
2480             l_request.param17  :=  g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2481             l_request.date_param4  :=  g_delayed_requests(l_request_ind).date_param4; -- Req Date
2482             l_request.date_param5  :=  g_delayed_requests(l_request_ind).date_param5; -- SSD
2483             l_request.date_param6  :=  g_delayed_requests(l_request_ind).date_param6; -- SAD
2484         ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_SMC
2485         THEN
2486             -- Retain old parameter values.
2487             l_request.param7  :=  g_delayed_requests(l_request_ind).param7; -- Ship From
2488             l_request.param8  :=  g_delayed_requests(l_request_ind).param8; -- Demand Class
2489             l_request.param14  :=  g_delayed_requests(l_request_ind).param14; -- Ship To
2490             l_request.param15  :=  g_delayed_requests(l_request_ind).param15; -- Ship Method
2491             l_request.param16  :=  g_delayed_requests(l_request_ind).param16; -- Planning Priority
2492             l_request.param17  :=  g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2493             l_request.date_param4  :=  g_delayed_requests(l_request_ind).date_param4; -- Req Date
2494             l_request.date_param5  :=  g_delayed_requests(l_request_ind).date_param5; -- SSD
2495             l_request.date_param6  :=  g_delayed_requests(l_request_ind).date_param6; -- SAD
2496         ELSIF p_request_type = OE_GLOBALS.G_SCHEDULE_NONSMC
2497         THEN
2498             -- Retain old parameter values.
2499             l_request.param7  :=  g_delayed_requests(l_request_ind).param7; -- Ship From
2500             l_request.param8  :=  g_delayed_requests(l_request_ind).param8; -- Demand Class
2501             l_request.param14  :=  g_delayed_requests(l_request_ind).param14; -- Ship To
2502             l_request.param15  :=  g_delayed_requests(l_request_ind).param15; -- Ship Method
2503             l_request.param16  :=  g_delayed_requests(l_request_ind).param16; -- Planning Priority
2504             l_request.param17  :=  g_delayed_requests(l_request_ind).param17; -- Delivery Lead Time
2505             l_request.date_param4  :=  g_delayed_requests(l_request_ind).date_param4; -- Req Date
2506             l_request.date_param5  :=  g_delayed_requests(l_request_ind).date_param5; -- SSD
2507             l_request.date_param6  :=  g_delayed_requests(l_request_ind).date_param6; -- SAD
2508 
2509 /* 7576948: IR ISO Change Management project Start */
2510 -- This code is hooked for IR ISO project and specific to
2511 -- OE_GLOBALS.G_UPDATE_REQUISITION delayed request, where if this request
2512 -- is getting replaced then certain parameter values should be retained
2513 -- or manipulated. Following parameters are used for this delayed request
2514 -- Please refer them with their meaning -
2515 --
2516 -- P_entity_code        Entity for which delayed request has to be logged.
2517 --                      In this project it can be OE_Globals.G_Entity_Line
2518 --                      or OE_Globals.G_Entity_Header
2519 -- P_entity_id          Primary key of the entity record. In this project,
2520 --                      it can be Order Line_id or Header_id
2521 -- P_requesting_entity_code Which entity has requested this delayed request to
2522 --                          be logged! In this project it will be OE_Globals.
2523 --                          G_Entity_Line or OE_Globals.G_Entity_Header
2524 -- P_requesting_entity_id       Primary key of the requesting entity. In this
2525 --                              project, it is Line_id or Header_id
2526 -- P_request_type       Indicates which business logic (or which procedure)
2527 --                      should be executed. In this project, it is OE_Global
2528 --                      s.G_UPDATE_REQUISITION
2529 -- P_request_unique_key1        Additional argument in form of parameters.
2530 --                              In this project, it will denote the Sales Order
2531 --                              Header id
2532 -- P_request_unique_key2        Additional argument in form of parameters.
2533 --                              In this project, it will denote the Requisition
2534 --                              Header id
2535 -- P_request_unique_key3        Additional argument in form of parameters. In
2536 --                              this project, it will denote the Requistion Line
2537 --                              id
2538 -- P_param1     Additional argument in form of parameters. In this project, it
2539 --              will denote net change in order quantity with respective single
2540 --              requisition line. If it is greater than 0 then it is an increment
2541 --              in the quantity, while if it is less than 0 then it is a decrement
2542 --              in the ordered quantity. If it is 0 then it indicates there is no
2543 --              change in ordered quantity value
2544 -- P_param2     Additional argument in form of parameters. In this project, it
2545 --              will denote whether internal sales order is cancelled or not. If
2546 --              it is cancelled then respective Purchasing api will be called to
2547 --              trigger the requisition header cancellation. It accepts a value of
2548 --              Y indicating requisition header has to be cancelled.
2549 -- P_param3     Additional argument in form of parameters. In this project, it
2550 --              will denote the number of sales order lines cancelled while order
2551 --              header is (Full/Partial) cancelled.
2552 -- p_date_param1        Additional date argument in form of parameters. In this
2553 --                      project, it will denote the change in Schedule Ship Date
2554 --                      with to respect to single requisition line.
2555 -- P_Long_param1        Additional argument in form of parameters. In this project,
2556 --                      it will store all the sales order line_ids, which are getting
2557 --                      cancelled while order header gets cancelled (Full/Partial).
2558 --                      These Line_ids will be separated by a delimiter comma ','
2559 -- x_return_status      The return status of the API (Expected/Unexcepted/Success)
2560 
2561 -- For details on IR ISO CMS project, please refer to FOL >
2562 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
2563 
2564 
2565    ELSIF p_request_type = OE_GLOBALS.G_UPDATE_REQUISITION THEN
2566      IF l_debug_level > 0 THEN
2567        oe_debug_pub.add('Type: G_UPDATE_REQUISITION, retain old parameter values',5);
2568      END IF;
2569 
2570      IF g_delayed_requests(l_request_ind).param1 IS NOT NULL
2571       AND l_request.param1 IS NULL THEN
2572        IF l_debug_level > 0 THEN
2573          oe_debug_pub.add(' Retaining Delta Quantity change for index '||l_request_ind,5);
2574          oe_debug_pub.add(' Old Delta Quantity change is '||g_delayed_requests(l_request_ind).param1,5);
2575          oe_debug_pub.add(' New Delta Quantity change is NULL',5);
2576        END IF;
2577        l_request.param1 := g_delayed_requests(l_request_ind).param1;
2578        -- Retaining the delta quantity change value if the new delta change is null, which could
2579        -- be typically a case when user will change the order quantity first, and then the
2580        -- schedule ship date
2581      elsif g_delayed_requests(l_request_ind).param1 IS NOT NULL
2582        and l_request.param1 IS NOT NULL THEN
2583      --if the qty is changed again then add the change to the previous change
2584            l_request.param1 := l_request.param1 + g_delayed_requests(l_request_ind).param1; --Bug 14504285
2585      END IF;
2586 
2587      IF NVL(g_delayed_requests(l_request_ind).param2,'N') = 'Y' THEN
2588        IF l_debug_level > 0 THEN
2589          oe_debug_pub.add(' Retaining Header Level Cancellation Flag for index '||l_request_ind,5);
2590          oe_debug_pub.add(' Old Header Level Cancelation flag is '||g_delayed_requests(l_request_ind).param2,5);
2591          oe_debug_pub.add(' New Header Level Cancelation flag is '||l_request.param2,5);
2592        END IF;
2593        l_request.param2 := g_delayed_requests(l_request_ind).param2;
2594        -- Order Header is requested for cancellation
2595      END IF;
2596 
2597      IF g_delayed_requests(l_request_ind).param3 IS NOT NULL THEN
2598        IF l_debug_level > 0 THEN
2599          oe_debug_pub.add(' Incrementing the counter for lines to be cancelled for index  '||l_request_ind,5);
2600          oe_debug_pub.add(' Old counter value is '||g_delayed_requests(l_request_ind).param3,5);
2601        END IF;
2602        l_request.param3 := nvl(l_request.param3,0) + g_delayed_requests(l_request_ind).param3;
2603        IF l_debug_level > 0 THEN
2604          oe_debug_pub.add(' New counter value is '||l_request.param3,5);
2605        END IF;
2606        -- Counter maintaining number of order line records cancelled during
2607        -- the order header level (Full/Partial) cancellation request
2608      END IF;
2609 
2610      IF l_request.long_param1 IS NOT NULL THEN
2611        IF g_delayed_requests(l_request_ind).long_param1 IS NOT NULL THEN
2612          IF l_debug_level > 0 THEN
2613            oe_debug_pub.add(' Line_ids to be cancelled for index '||l_request_ind,5);
2614            oe_debug_pub.add(' Old Line_ids are '||g_delayed_requests(l_request_ind).long_param1,5);
2615          END IF;
2616          l_request.long_param1 := g_delayed_requests(l_request_ind).long_param1||','|| l_request.long_param1;
2617          IF l_debug_level > 0 THEN
2618            oe_debug_pub.add(' New Line_ids are '||l_request.long_param1,5);
2619          END IF;
2620          -- A string variable containing line_ids, which are cancelled during
2621          -- the Order Header level (Full/Partial) cancellation request
2622          -- In this string, the Line_ids will be separated by a delimiter comma ','
2623        END IF;
2624      ELSE
2625        l_request.long_param1 := g_delayed_requests(l_request_ind).long_param1;
2626        IF l_debug_level > 0 THEN
2627          oe_debug_pub.add(' Only old Line_ids are retained '||l_request.long_param1,5);
2628        END IF;
2629        -- Since this request has not passed the line_id, just retain the global
2630      END IF;
2631 
2632      IF g_delayed_requests(l_request_ind).date_param1 IS NOT NULL
2633       AND l_request.date_param1 IS NULL THEN
2634        IF l_debug_level > 0 THEN
2635          oe_debug_pub.add(' Retain Old date_param1 : '||g_delayed_requests(l_request_ind).date_param1,5);
2636        END IF;
2637        l_request.date_param1 := g_delayed_requests(l_request_ind).date_param1;
2638      END IF;
2639 
2640      --Bug 14211120 Start
2641      IF g_delayed_requests(l_request_ind).param4 IS NOT NULL
2642       AND l_request.param4 IS NULL THEN
2643        IF l_debug_level > 0 THEN
2644          oe_debug_pub.add(' Secondary: Retaining Delta Quantity change for index '||l_request_ind,5);
2645          oe_debug_pub.add(' Secondary: Old Delta Quantity change is'||g_delayed_requests(l_request_ind).param4,5);
2646          oe_debug_pub.add(' Secondary: New Delta Quantity change is NULL',5);
2647        END IF;
2648        l_request.param4 := g_delayed_requests(l_request_ind).param4;
2649      elsif g_delayed_requests(l_request_ind).param4 IS NOT NULL
2650        and l_request.param4 IS NOT NULL THEN
2651      --if secondary qty is changed again then add the change to the previous change
2652            l_request.param4 := l_request.param4 + g_delayed_requests(l_request_ind).param4; --Bug 14504285
2653      END IF;
2654      --Bug 14211120 End
2655 
2656 /* ============================= */
2657 /* IR ISO Change Management Ends */
2658 
2659 
2660         END IF;
2661 
2662          g_delayed_requests(l_request_ind) := l_request;
2663 
2664        ELSE					   -- insert the new request
2665     IF l_debug_level > 0 THEN
2666 	OE_Debug_PUB.ADD('New request inserted');
2667     END IF;
2668 --         l_request_ind := nvl(g_delayed_requests.LAST, 0) + 1;
2669 
2670         -- 11i10 Pricing Changes for blankets
2671         IF p_request_type = OE_GLOBALS.G_PROCESS_RELEASE
2672            AND OE_Code_Control.Get_Code_Release_Level >= '110510'
2673         THEN
2674            OE_Blkt_Release_Util.Cache_Order_Qty_Amt
2675               (p_request_rec     => l_request
2676               ,x_return_status   => l_return_status
2677               ) ;
2678            if l_return_status = fnd_api.g_ret_sts_error then
2679               raise fnd_api.g_exc_error;
2680            elsif l_return_status = fnd_api.g_ret_sts_error then
2681               raise fnd_api.g_exc_unexpected_error;
2682            end if;
2683         END IF;
2684 
2685          g_delayed_requests(l_request_ind) := l_request;
2686 
2687       END IF;
2688 
2689 	-- Initialize the requesting entity record
2690       l_req_entity.entity_code := p_requesting_entity_code;
2691       l_req_entity.entity_id := p_requesting_entity_id;
2692       l_req_entity.request_index := l_request_ind;
2693 
2694 	l_req_entity_ind := nvl(g_requesting_entities.LAST, 0) + 1;
2695 
2696       -- Insert into the requesting entities table
2697       g_requesting_entities(l_req_entity_ind) := l_req_entity;
2698       IF l_debug_level > 0 THEN
2699       oe_debug_pub.add('!!!!!!! index '|| l_request_ind, 5);
2700       END IF;
2701 EXCEPTION
2702 
2703     WHEN FND_API.G_EXC_ERROR THEN
2704 
2705         x_return_status := FND_API.G_RET_STS_ERROR;
2706 
2707     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2708 
2709         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2710         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2711 
2712    WHEN OTHERS THEN
2713       IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2714 	THEN
2715 	 OE_MSG_PUB.Add_Exc_Msg
2716 	   (G_PKG_NAME
2717 	    ,'LOGREQUEST');
2718       END IF;
2719 
2720         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2721         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2722 
2723 End Log_Request;
2724 
2725 Function Check_for_Request( p_entity_code   IN VARCHAR2,
2726                             p_entity_id     IN NUMBER,
2727                             p_request_type  IN VARCHAR2,
2728                             p_request_unique_key1 	IN VARCHAR2 := NULL,
2729 			    p_request_unique_key2 	IN VARCHAR2 := NULL,
2730 			    p_request_unique_key3 	IN VARCHAR2 := NULL,
2731 			    p_request_unique_key4 	IN VARCHAR2 := NULL,
2732 			    p_request_unique_key5 	IN VARCHAR2 := NULL
2733 			    )
2734 RETURN BOOLEAN IS
2735 l_ind           Number;
2736 x_result        Varchar2(30);
2737 x_return_status Varchar2(30);
2738 Begin
2739     Check_for_Request( p_entity_code    	=> p_entity_code
2740 		       ,p_entity_id    	 	=> p_entity_id
2741 		       ,p_request_type  	=> p_request_type
2742 		       ,p_request_unique_key1 	=> p_request_unique_key1
2743 		       ,p_request_unique_key2 	=> p_request_unique_key2
2744 		       ,p_request_unique_key3 	=> p_request_unique_key3
2745 		       ,p_request_unique_key4 	=> p_request_unique_key4
2746 		       ,p_request_unique_key5	=> p_request_unique_key5
2747 		       ,x_request_ind   	=> l_ind
2748 		       ,x_result        	=> x_result
2749 		       ,x_return_status 	=> x_return_status);
2750 
2751     if x_result = FND_API.G_TRUE then
2752        return(TRUE);
2753     else
2754        return(FALSE);
2755     end if;
2756 
2757 End;
2758 
2759 Procedure Delete_Request(p_entity_code     IN VARCHAR2
2760                         ,p_entity_id       IN NUMBER
2761                         ,p_request_Type    IN VARCHAR2
2762                         ,p_request_unique_key1 	IN VARCHAR2 := NULL
2763 			,p_request_unique_key2 	IN VARCHAR2 := NULL
2764 			,p_request_unique_key3 	IN VARCHAR2 := NULL
2765 			,p_request_unique_key4 	IN VARCHAR2 := NULL
2766 			,p_request_unique_key5 	IN VARCHAR2 := NULL
2767 ,x_return_status OUT NOCOPY VARCHAR2)
2768 
2769   IS
2770      l_request_search_rslt  Varchar2(1);
2771      l_return_status     Varchar2(1);
2772      l_request_ind       number;
2773      l_req_entity_ind    number;
2774 --
2775 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2776 --
2777 BEGIN
2778    IF l_debug_level > 0 THEN
2779    oe_debug_pub.add('Entering Procedure Delete_Request in Package OE_Delayed_Requests_Pvt');
2780    END IF;
2781    x_return_status := FND_API.G_RET_STS_SUCCESS;
2782 
2783     Check_for_Request( p_entity_code    	=> p_entity_code
2784 		       ,p_entity_id    	 	=> p_entity_id
2785 		       ,p_request_type  	=> p_request_type
2786 		       ,p_request_unique_key1 	=> p_request_unique_key1
2787 		       ,p_request_unique_key2 	=> p_request_unique_key2
2788 		       ,p_request_unique_key3 	=> p_request_unique_key3
2789 		       ,p_request_unique_key4 	=> p_request_unique_key4
2790 		       ,p_request_unique_key5	=> p_request_unique_key5
2791 		       ,x_request_ind   	=> l_request_ind
2792 		       ,x_result        	=> l_request_search_rslt
2793 		       ,x_return_status 	=> l_return_status);
2794 
2795 
2796        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2797 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2798        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2799 	    RAISE FND_API.G_EXC_ERROR;
2800        END IF;
2801 
2802    if l_request_search_rslt = FND_API.G_TRUE     -- delete the request
2803      then
2804       G_Delayed_Requests.Delete(l_request_ind);
2805 /*
2806        BUG 1794544 - do not delete from req entities table
2807        , delete table in the end when all requests are processed
2808        This to improve performance as this search loops through
2809        the entire pl/sql table which becomes very large with
2810        greater number of lines being processed
2811       -- Delete all the records in the requesting entities table
2812       -- that have this request.
2813         l_req_entity_ind := G_Requesting_Entities.First;
2814           WHILE l_req_entity_ind IS NOT NULL LOOP
2815            IF G_Requesting_Entities(l_req_entity_ind).request_index = l_request_ind
2816            THEN
2817                 G_Requesting_Entities.Delete(l_req_entity_ind);
2818            END IF;
2819            l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
2820           END LOOP;
2821 */
2822    end if;
2823 
2824 EXCEPTION
2825 
2826     WHEN FND_API.G_EXC_ERROR THEN
2827 
2828         x_return_status := FND_API.G_RET_STS_ERROR;
2829 
2830     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2831 
2832         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2833 
2834    when others THEN
2835 
2836       IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2837 	 OE_MSG_PUB.Add_Exc_Msg
2838 	   (G_PKG_NAME
2839 	    ,'DeleteRequest');
2840       END IF;
2841 
2842       x_return_status := FND_API.G_RET_STS_ERROR;
2843 
2844 End Delete_Request;
2845 
2846 Procedure Clear_Request( x_return_status OUT NOCOPY VARCHAR2)
2847 
2848   IS
2849 --
2850 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2851 --
2852 BEGIN
2853    IF l_debug_level > 0 THEN
2854    oe_debug_pub.add('Entering Procedure Clear_Request in Package OE_Delayed_Requests_Pvt');
2855    END IF;
2856 
2857    x_return_status := FND_API.G_RET_STS_SUCCESS;
2858 
2859       G_Delayed_Requests.DELETE;
2860       g_requesting_entities.DELETE;
2861 
2862       --Bug4504362
2863         OE_Config_Schedule_Pvt.Delete_Attribute_Changes;
2864 
2865     --- Bug #2674349
2866      IF(OE_Line_Adj_Util.G_CHANGED_LINE_TBL.count>0) THEN
2867          Oe_Line_Adj_Util.Delete_Changed_Lines_Tbl;
2868       END IF;
2869 
2870    ----Bug #2822222
2871      /*   IF OE_Config_Pvt.OE_MODIFY_INC_ITEMS_TBL.COUNT > 0 THEN
2872                 OE_Config_Pvt.OE_MODIFY_INC_ITEMS_TBL.DELETE;
2873                 END IF;          */
2874 
2875 
2876 EXCEPTION
2877 
2878    WHEN OTHERS THEN
2879 
2880       IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2881 	 OE_MSG_PUB.Add_Exc_Msg
2882 	   (G_PKG_NAME
2883 	    ,'Clear_Request');
2884       END IF;
2885 
2886       x_return_status := FND_API.G_RET_STS_ERROR;
2887 
2888 End Clear_Request;
2889 
2890 Procedure Process_Request( p_entity_code          IN VARCHAR2
2891                         ,p_entity_id              IN Number
2892                         ,p_request_Type           IN VARCHAR2
2893                         ,p_request_unique_key1 	IN VARCHAR2 := NULL
2894                         ,p_request_unique_key2 	IN VARCHAR2 := NULL
2895                         ,p_request_unique_key3 	IN VARCHAR2 := NULL
2896                         ,p_request_unique_key4 	IN VARCHAR2 := NULL
2897                         ,p_request_unique_key5 	IN VARCHAR2 := NULL
2898                         ,p_delete                 IN Varchar2 Default
2899 											FND_API.G_TRUE
2900 ,x_return_status OUT NOCOPY Varchar2)
2901 
2902 IS
2903 l_request_ind          Number;
2904 l_request_search_rslt  Varchar2(30);
2905 l_return_status        Varchar2(30);
2906 --
2907 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2908 --
2909 Begin
2910    x_return_status := FND_API.G_RET_STS_SUCCESS;
2911    IF l_debug_level > 0 THEN
2912    oe_debug_pub.add('Entering Procedure Process_Request in Package OE_Delayed_Requests_Pvt');
2913    END IF;
2914     Check_for_Request( p_entity_code    	=> p_entity_code
2915 		       ,p_entity_id    	 	=> p_entity_id
2916 		       ,p_request_type  	=> p_request_type
2917 		       ,p_request_unique_key1 	=> p_request_unique_key1
2918 		       ,p_request_unique_key2 	=> p_request_unique_key2
2919 		       ,p_request_unique_key3 	=> p_request_unique_key3
2920 		       ,p_request_unique_key4 	=> p_request_unique_key4
2921 		       ,p_request_unique_key5	=> p_request_unique_key5
2922 		       ,x_request_ind   	=> l_request_ind
2923 		       ,x_result        	=> l_request_search_rslt
2924 		       ,x_return_status 	=> l_return_status);
2925 
2926     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2927         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2928     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2929         RAISE FND_API.G_EXC_ERROR;
2930     END IF;
2931 
2932    if l_request_search_rslt = FND_API.G_TRUE then
2933       Process_Request_Pvt
2934          (p_request_ind       => l_request_ind
2935          ,p_delete            => p_delete
2936          ,x_return_status     => l_return_status
2937          );
2938    end if;
2939 
2940    IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2941 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2942    ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2943 	    RAISE FND_API.G_EXC_ERROR;
2944    END IF;
2945 
2946 EXCEPTION
2947 
2948     WHEN FND_API.G_EXC_ERROR THEN
2949 
2950         x_return_status := FND_API.G_RET_STS_ERROR;
2951 
2952     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2953 
2954         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2955 
2956     WHEN OTHERS THEN
2957 
2958         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2959 
2960         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2961         THEN
2962             OE_MSG_PUB.Add_Exc_Msg
2963             (   G_PKG_NAME
2964             ,   'Process_Request'
2965             );
2966         END IF;
2967 
2968 End Process_Request;
2969 
2970 Procedure Process_Request_for_Entity
2971      ( p_entity_code     in Varchar2
2972      ,p_delete            in Varchar2 Default FND_API.G_TRUE
2973 ,x_return_status OUT NOCOPY Varchar2) IS
2974 
2975 l_return_status        Varchar2(30);
2976 l_ind                  Number;
2977 --
2978 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2979 --
2980 Begin
2981 x_return_status := FND_API.G_RET_STS_SUCCESS;
2982    IF l_debug_level > 0 THEN
2983    oe_debug_pub.add('Enter OE_Delayed_Requests_Pvt.Process_Request_for_Entity',1);
2984    END IF;
2985    IF NOT oe_globals.g_call_process_req THEN --9354229
2986       IF l_debug_level  > 0 THEN
2987         oe_debug_pub.add(  'EXIT PROCESS_REQUESTS_FOR_ENTITY' , 1 ) ;
2988       END IF;
2989       RETURN;
2990    END IF;
2991     oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
2992                                    p_In_out  => 1);
2993 
2994 
2995         IF oe_globals.g_recursion_mode = 'N' THEN
2996 
2997 
2998    l_ind := G_Delayed_Requests.first;
2999 
3000    WHILE l_ind IS NOT NULL LOOP
3001      IF G_Delayed_Requests(l_ind).Entity_code = p_entity_code THEN
3002         Process_Request_Pvt
3003            (p_request_ind       => l_ind
3004            ,p_delete            => p_delete
3005            ,x_return_status     => l_return_status
3006            );
3007 
3008         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3009 	         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3010         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3011            IF l_debug_level > 0 THEN
3012              oe_debug_pub.add('Expected error in Process_Request_for_Entity ');
3013 /* Commented the following 2 debug messages to fix the bug 13513618 */
3014 /*
3015  *
3016            oe_debug_pub.add
3017            ('2 type----- '|| G_Delayed_Requests(l_ind).request_type, 1);
3018            oe_debug_pub.add
3019            ('2 ind----- '|| l_ind, 1);
3020 */
3021            END IF;
3022 	         RAISE FND_API.G_EXC_ERROR;
3023         END IF;
3024      END IF;
3025      l_ind := G_Delayed_Requests.Next(l_ind);
3026   END LOOP;
3027   END IF; -- Recursion mode
3028 
3029   IF l_debug_level > 0 THEN
3030    oe_debug_pub.add('Exiting Process_Request_for_Entity ');
3031   END IF;
3032 
3033   oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3034                                    p_In_out  => 0);
3035 EXCEPTION
3036 
3037     WHEN FND_API.G_EXC_ERROR THEN
3038         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3039                                    p_In_out  => 0);
3040         x_return_status := FND_API.G_RET_STS_ERROR;
3041 
3042     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3043         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3044                                    p_In_out  => 0);
3045         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3046 
3047     WHEN OTHERS THEN
3048         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3049                                    p_In_out  => 0);
3050         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3051 
3052         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3053         THEN
3054             OE_MSG_PUB.Add_Exc_Msg
3055             (   G_PKG_NAME
3056             ,   'Process_Request_for_Entity'
3057             );
3058         END IF;
3059    IF l_debug_level > 0 THEN
3060    oe_debug_pub.add('Exiting Process_Request_for_Entity ');
3061    END IF;
3062 
3063 End Process_Request_for_Entity;
3064 
3065 
3066 Procedure Process_Request_for_ReqType
3067           ( p_request_type   in Varchar2
3068            ,p_delete         in Varchar2 Default FND_API.G_TRUE
3069 ,x_return_status OUT NOCOPY Varchar2
3070 
3071           ) IS
3072 l_return_status        Varchar2(30);
3073 l_ind                  Number;
3074 l_count                Number;
3075 l_req_entity_ind       Number;
3076 
3077 l_entity_id_tbl    Entity_Id_Tbl_Type;
3078 --
3079 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3080 --
3081 BEGIN
3082    x_return_status := FND_API.G_RET_STS_SUCCESS;
3083    IF l_debug_level > 0 THEN
3084    oe_debug_pub.add('Entering Procedure Process_Request_for_ReqType in Package OE_Delayed_Requests_Pvt');
3085    END IF;
3086 
3087    IF NOT oe_globals.g_call_process_req THEN --9354229
3088       IF l_debug_level  > 0 THEN
3089         oe_debug_pub.add(  'EXIT Process_Request_for_ReqType' , 1 ) ;
3090       END IF;
3091       RETURN;
3092    END IF;
3093 
3094    oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
3095                                    p_In_out  => 1);
3096 
3097 	--IF oe_globals.g_recursion_mode = 'N' THEN
3098    l_ind := G_Delayed_Requests.first;
3099    l_count := 0;
3100    WHILE l_ind IS NOT NULL LOOP
3101      IF G_Delayed_Requests(l_ind).request_type = p_request_type THEN
3102 	   IF p_request_type = OE_GLOBALS.G_TAX_LINE THEN
3103 		 l_count := l_count + 1;
3104            l_entity_id_tbl(l_count).entity_id := G_Delayed_Requests(l_ind).entity_id;
3105            l_req_entity_ind := G_Requesting_Entities.First;
3106           WHILE l_req_entity_ind IS NOT NULL LOOP
3107            IF G_Requesting_Entities(l_req_entity_ind).request_index = l_ind
3108            THEN
3109                 l_entity_id_tbl(l_count).requesting_entity_code := g_requesting_entities(l_req_entity_ind).entity_code;  --TaxER
3110            END IF;
3111            l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
3112           END LOOP;
3113             l_entity_id_tbl(l_count).request_ind := l_ind;
3114 	   ELSE
3115             Process_Request_Pvt
3116                (p_request_ind       => l_ind
3117                ,p_delete            => p_delete
3118                ,x_return_status     => l_return_status
3119                );
3120 
3121             IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3122 	             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3123             ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3124 	             RAISE FND_API.G_EXC_ERROR;
3125             END IF;
3126 	   END IF;
3127      END IF;
3128      l_ind := G_Delayed_Requests.Next(l_ind);
3129   END LOOP;
3130   IF l_entity_id_tbl.COUNT > 0 THEN
3131        OE_Delayed_Requests_UTIL.Process_Tax
3132        (p_Entity_id_tbl       => l_entity_id_tbl
3133        ,x_return_status     => l_return_status
3134         );
3135 
3136        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3137 	      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3138        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3139 	      RAISE FND_API.G_EXC_ERROR;
3140        END IF;
3141 	  l_count := l_entity_id_tbl.FIRST;
3142 	  WHILE l_count IS NOT NULL LOOP  -- Fixing 1888284
3143 		 G_Delayed_Requests.DELETE(l_entity_id_tbl(l_count).request_ind);
3144 /*
3145        BUG 1794544 - do not delete from req entities table
3146        , delete table in the end when all requests are processed
3147        This to improve performance as this search loops through
3148        the entire pl/sql table which becomes very large with
3149        greater number of lines being processed
3150            l_req_entity_ind := G_Requesting_Entities.First;
3151            WHILE l_req_entity_ind IS NOT NULL LOOP
3152                IF G_Requesting_Entities(l_req_entity_ind).request_index
3153                   = l_entity_id_tbl(l_count).request_ind
3154                THEN
3155                    G_Requesting_Entities.Delete(l_req_entity_ind);
3156                END IF;
3157                l_req_entity_ind := G_Requesting_Entities.Next(l_req_entity_ind);
3158            END LOOP;
3159 */
3160            l_count := l_entity_id_tbl.NEXT(l_count);
3161 	  END LOOP;
3162 
3163   END IF;
3164 	--END IF ; -- Recursion mode
3165    oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
3166                                    p_In_out  => 0);
3167   IF l_debug_level > 0 THEN
3168   oe_debug_pub.add('leaving process_requenst_for_reqtype', 1);
3169   END IF;
3170 EXCEPTION
3171 
3172     WHEN FND_API.G_EXC_ERROR THEN
3173    oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
3174                                    p_In_out  => 0);
3175         oe_debug_pub.add('execution error', 1);
3176         x_return_status := FND_API.G_RET_STS_ERROR;
3177 
3178     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3179    oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
3180                                    p_In_out  => 0);
3181         oe_debug_pub.add('unexp error', 1);
3182         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3183 
3184     WHEN OTHERS THEN
3185    oe_order_pvt.set_recursion_mode(p_Entity_Code => 11,
3186                                    p_In_out  => 0);
3187         oe_debug_pub.add('others error', 1);
3188         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3189 
3190         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3191         THEN
3192             OE_MSG_PUB.Add_Exc_Msg
3193             (   G_PKG_NAME
3194             ,   'Process_Request_for_ReqType'
3195             );
3196         END IF;
3197 
3198 End Process_Request_for_ReqType;
3199 
3200 Procedure Process_Delayed_Requests(
3201 x_return_status OUT NOCOPY Varchar2
3202 
3203           ) IS
3204 l_ind NUMBER;  /* 1739574 */
3205 l_return_status Varchar2(30);
3206 --
3207 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3208 --
3209 Begin
3210    IF l_debug_level > 0 THEN
3211    oe_debug_pub.add('Enter OE_Delayed_Requests_Pvt.Process_Delayed_Requests');
3212    END IF;
3213 
3214 x_return_status := FND_API.G_RET_STS_SUCCESS;
3215 
3216    IF NOT oe_globals.g_call_process_req THEN --9354229
3217       IF l_debug_level  > 0 THEN
3218         oe_debug_pub.add(  'EXIT OE_Delayed_Requests_Pvt.Process_Delayed_Requests' , 1 ) ;
3219       END IF;
3220       RETURN;
3221    END IF;
3222    oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3223                                    p_In_out  => 1);
3224 
3225    -- Process requests as per the dependency
3226    -- Process a request to default header sales credit for
3227    -- primary sales person
3228 	IF oe_globals.g_recursion_mode = 'N' THEN
3229 
3230       Process_Request_for_ReqType
3231         (p_request_type   => OE_GLOBALS.G_DFLT_HSCREDIT_FOR_SREP
3232          ,p_delete        => FND_API.G_TRUE
3233          ,x_return_status => l_return_status
3234         );
3235      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3236 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3237      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3238 	           RAISE FND_API.G_EXC_ERROR;
3239      END IF;
3240 
3241    -- Process Header Sales Credits Delayed Requests
3242       Process_Request_for_ReqType
3243         (p_request_type   => OE_GLOBALS.G_CHECK_HSC_QUOTA_TOTAL
3244          ,p_delete        => FND_API.G_TRUE
3245          ,x_return_status => l_return_status
3246         );
3247      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3248 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3249      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3250 	           RAISE FND_API.G_EXC_ERROR;
3251      END IF;
3252 
3253    -- Process Lines Sales Credits Delayed Requests
3254       Process_Request_for_ReqType
3255         (p_request_type   => OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL
3256          ,p_delete        => FND_API.G_TRUE
3257          ,x_return_status => l_return_status
3258         );
3259      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3260 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3261      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3262 	           RAISE FND_API.G_EXC_ERROR;
3263      END IF;
3264 
3265 /* Bug 12673852 */
3266     Process_Request_for_ReqType
3267         (p_request_type   => OE_GLOBALS.G_VERSION_AUDIT
3268          ,p_delete        => FND_API.G_TRUE
3269          ,x_return_status => l_return_status
3270         );
3271      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3272                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3273      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3274                    RAISE FND_API.G_EXC_ERROR;
3275      END IF;
3276 /* End of Bug 12673852 */
3277 
3278      -- Process CREATE_SETS Requests
3279       Process_Request_for_ReqType
3280         (p_request_type   => OE_GLOBALS.G_CREATE_SETS
3281          ,p_delete        => FND_API.G_TRUE
3282          ,x_return_status => l_return_status
3283         );
3284      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3285 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3286      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3287 	           RAISE FND_API.G_EXC_ERROR;
3288      END IF;
3289 
3290 
3291 
3292      -- Process CREATE_CONFIG_ITEM Requests
3293       Process_Request_for_ReqType
3294         (p_request_type   => OE_GLOBALS.G_CREATE_CONFIG_ITEM
3295          ,p_delete        => FND_API.G_TRUE
3296          ,x_return_status => l_return_status
3297         );
3298      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3299 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3300      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3301 	           RAISE FND_API.G_EXC_ERROR;
3302      END IF;
3303 
3304      -- Process INSERT_INTO_SETS Requests
3305      Process_Request_for_ReqType
3306         (p_request_type   => OE_GLOBALS.G_INSERT_INTO_SETS
3307          ,p_delete        => FND_API.G_TRUE
3308          ,x_return_status => l_return_status
3309         );
3310      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3311 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3312      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3313 	           RAISE FND_API.G_EXC_ERROR;
3314      END IF;
3315 
3316 /* Start DOO Pre Exploded Kit ER 9339742 */
3317      Process_Request_for_Reqtype
3318         ( p_request_type  => OE_GLOBALS.G_PRE_EXPLODED_KIT
3319         , p_delete        => FND_API.G_TRUE
3320         , x_return_status => l_return_status );
3321 
3322      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3323           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3324      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3325           RAISE FND_API.G_EXC_ERROR;
3326      END IF;
3327 /* End DOO Pre Exploded Kit ER 9339742 */
3328 
3329      -- Process INS_INCLUDED_ITEM Requests
3330       Process_Request_for_ReqType
3331         (p_request_type   => OE_GLOBALS.G_INS_INCLUDED_ITEMS
3332          ,p_delete        => FND_API.G_TRUE
3333          ,x_return_status => l_return_status
3334         );
3335      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3336 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3337      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3338 	           RAISE FND_API.G_EXC_ERROR;
3339      END IF;
3340 
3341 
3342 
3343      -- Process requests for RMA
3344      Process_Request_for_ReqType
3345         (p_request_type   => OE_GLOBALS.G_INSERT_RMA
3346          ,p_delete        => FND_API.G_TRUE
3347          ,x_return_status => l_return_status
3348         );
3349      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3350                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3351      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3352                    RAISE FND_API.G_EXC_ERROR;
3353      END IF;
3354 
3355      -- Process requests for Split_hold
3356      Process_Request_for_ReqType
3357         (p_request_type   => OE_GLOBALS.G_SPLIT_HOLD
3358          ,p_delete        => FND_API.G_TRUE
3359          ,x_return_status => l_return_status
3360         );
3361      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3362                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3363      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3364                    RAISE FND_API.G_EXC_ERROR;
3365      END IF;
3366 
3367      -- Process requests for Delayed Requests
3368      Process_Request_for_ReqType
3369         (p_request_type   => OE_GLOBALS.G_EVAL_HOLD_SOURCE
3370          ,p_delete        => FND_API.G_TRUE
3371          ,x_return_status => l_return_status
3372         );
3373      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3374                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3375      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3376                    RAISE FND_API.G_EXC_ERROR;
3377      END IF;
3378 
3379      -- Process requests for Quantity Cascade
3380      Process_Request_for_ReqType
3381         (p_request_type   => OE_GLOBALS.G_CASCADE_QUANTITY
3382          ,p_delete        => FND_API.G_TRUE
3383          ,x_return_status => l_return_status
3384         );
3385      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3386                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3387      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3388                    RAISE FND_API.G_EXC_ERROR;
3389      END IF;
3390 
3391 /*** we do not need this, confirm with ashwin
3392      -- Process requests for project Cascade
3393      Process_Request_for_ReqType
3394         (p_request_type   => OE_GLOBALS.G_CASCADE_PROJECT
3395          ,p_delete        => FND_API.G_TRUE
3396          ,x_return_status => l_return_status
3397         );
3398      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3399                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3400      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3401                    RAISE FND_API.G_EXC_ERROR;
3402      END IF;
3403 
3404      -- Process requests for task Cascade
3405      Process_Request_for_ReqType
3406         (p_request_type   => OE_GLOBALS.G_CASCADE_TASK
3407          ,p_delete        => FND_API.G_TRUE
3408          ,x_return_status => l_return_status
3409         );
3410      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3411                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3412      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3413                    RAISE FND_API.G_EXC_ERROR;
3414      END IF;
3415 
3416      -- Process requests for task Cascade
3417 ***/
3418      Process_Request_for_ReqType
3419         (p_request_type   => OE_GLOBALS.G_CASCADE_CHANGES
3420          ,p_delete        => FND_API.G_TRUE
3421          ,x_return_status => l_return_status
3422         );
3423      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3424                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3425      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3426                    RAISE FND_API.G_EXC_ERROR;
3427      END IF;
3428 
3429      -- Process requests to Split Reservations
3430      Process_Request_for_ReqType
3431         (p_request_type   => OE_GLOBALS.G_CREATE_RESERVATIONS
3432          ,p_delete        => FND_API.G_TRUE
3433          ,x_return_status => l_return_status
3434         );
3435      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3436                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3437      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3438                    RAISE FND_API.G_EXC_ERROR;
3439      END IF;
3440 
3441      -- Process requests to Complete Configuration
3442      Process_Request_for_ReqType
3443         (p_request_type   => OE_GLOBALS.G_COMPLETE_CONFIGURATION
3444          ,p_delete        => FND_API.G_TRUE
3445          ,x_return_status => l_return_status
3446         );
3447      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3448                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3449      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3450                    RAISE FND_API.G_EXC_ERROR;
3451      END IF;
3452 
3453      -- Process requests for Validate Configuration
3454      Process_Request_for_ReqType
3455         (p_request_type   => OE_GLOBALS.G_VALIDATE_CONFIGURATION
3456          ,p_delete        => FND_API.G_TRUE
3457          ,x_return_status => l_return_status
3458         );
3459      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3460                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3461      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3462                    RAISE FND_API.G_EXC_ERROR;
3463      END IF;
3464 
3465      -- Process requests for CTO Notification
3466      Process_Request_for_ReqType
3467         (p_request_type   => OE_GLOBALS.G_CTO_NOTIFICATION
3468          ,p_delete        => FND_API.G_TRUE
3469          ,x_return_status => l_return_status
3470         );
3471      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3472                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3473      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3474                    RAISE FND_API.G_EXC_ERROR;
3475      END IF;
3476 
3477      -- Process requests for Service
3478      Process_Request_for_ReqType
3479         (p_request_type   => OE_GLOBALS.G_INSERT_SERVICE
3480          ,p_delete        => FND_API.G_TRUE
3481          ,x_return_status => l_return_status
3482         );
3483      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3484                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3485      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3486                    RAISE FND_API.G_EXC_ERROR;
3487      END IF;
3488 
3489     /* Added the below call for bug 5925600 */
3490     Process_Request_for_ReqType
3491         (p_request_type   => OE_GLOBALS.G_GROUP_SCHEDULE
3492          ,p_delete        => FND_API.G_TRUE
3493          ,x_return_status => l_return_status
3494         );
3495      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3496                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3497      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3498                    RAISE FND_API.G_EXC_ERROR;
3499      END IF;
3500 /* Bug 9845427 */
3501     Process_Request_for_ReqType
3502         (p_request_type   => OE_GLOBALS.G_DELAYED_SCHEDULE
3503          ,p_delete        => FND_API.G_TRUE
3504          ,x_return_status => l_return_status
3505         );
3506      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3507                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3508      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3509                    RAISE FND_API.G_EXC_ERROR;
3510      END IF;
3511 /* End of Bug 9845427 */
3512 
3513     Process_Request_for_ReqType
3514         (p_request_type   => OE_GLOBALS.G_CASCADE_OPTIONS_SERVICE
3515          ,p_delete        => FND_API.G_TRUE
3516          ,x_return_status => l_return_status
3517         );
3518      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3519                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3520      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3521                    RAISE FND_API.G_EXC_ERROR;
3522      END IF;
3523     /* End of changes done for bug 5925600 */
3524 
3525 -- bug 5717671/5736696, need to execute copy header adj
3526     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3527          (p_request_type   =>OE_GLOBALS.G_COPY_HEADER_ADJUSTMENTS
3528           ,p_delete        => FND_API.G_TRUE
3529           ,x_return_status => l_return_status
3530           );
3531     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3532           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3533     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3534           RAISE FND_API.G_EXC_ERROR;
3535     END IF;
3536 
3537 
3538     -- bug 1834260, moved this block of code from after processing
3539     -- for request type G_PRICE_LINE to before it.
3540     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3541          (p_request_type   =>OE_GLOBALS.G_COPY_ADJUSTMENTS
3542           ,p_delete        => FND_API.G_TRUE
3543           ,x_return_status => l_return_status
3544           );
3545     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3546           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3547     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3548           RAISE FND_API.G_EXC_ERROR;
3549     END IF;
3550 
3551     -- Process Requests for Freight Rating.
3552     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3553          (p_request_type   =>OE_GLOBALS.G_FREIGHT_RATING
3554           ,p_delete        => FND_API.G_TRUE
3555           ,x_return_status => l_return_status
3556           );
3557     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3558           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3559     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3560           RAISE FND_API.G_EXC_ERROR;
3561     END IF;
3562 
3563     /* Added for Bug # 1559906 */
3564     /* Renga- copy_freight_charges delayed request should be executed
3565        right after copy_adjustments - please do not put any delayed
3566        request in between copy_adjustments and copy_freight_charges */
3567 
3568     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3569          (p_request_type   =>OE_GLOBALS.G_COPY_FREIGHT_CHARGES
3570           ,p_delete        => FND_API.G_TRUE
3571           ,x_return_status => l_return_status
3572           );
3573     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3574           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3575     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3576           RAISE FND_API.G_EXC_ERROR;
3577     END IF;
3578 
3579 
3580     -- Process Requests for Pricing
3581     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3582          (p_request_type   =>OE_GLOBALS.G_PRICE_LINE
3583           ,p_delete        => FND_API.G_TRUE
3584           ,x_return_status => l_return_status
3585           );
3586     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3587           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3588     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3589           RAISE FND_API.G_EXC_ERROR;
3590     END IF;
3591 
3592 
3593    -- Renga - added freight_for_included items call
3594     -- Process Requests for Freight For included items.
3595     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3596          (p_request_type   =>OE_GLOBALS.G_FREIGHT_FOR_INCLUDED
3597           ,p_delete        => FND_API.G_TRUE
3598           ,x_return_status => l_return_status
3599           );
3600     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3601           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3602     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3603           RAISE FND_API.G_EXC_ERROR;
3604     END IF;
3605 
3606  -- Renga - done for freight for included items.
3607 
3608 
3609     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3610          (p_request_type   =>OE_GLOBALS.G_PRICE_ORDER
3611           ,p_delete        => FND_API.G_TRUE
3612           ,x_return_status => l_return_status
3613           );
3614     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3615           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3616     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3617           RAISE FND_API.G_EXC_ERROR;
3618     END IF;
3619 
3620     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3621          (p_request_type   =>OE_GLOBALS.G_PRICE_ADJ
3622           ,p_delete        => FND_API.G_TRUE
3623           ,x_return_status => l_return_status
3624           );
3625     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3626           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3627     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3628           RAISE FND_API.G_EXC_ERROR;
3629     END IF;
3630 
3631     -- added by lkxu
3632     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3633          (p_request_type   =>OE_GLOBALS.G_COPY_PRICING_ATTRIBUTES
3634           ,p_delete        => FND_API.G_TRUE
3635           ,x_return_status => l_return_status
3636           );
3637     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3638           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3639     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3640           RAISE FND_API.G_EXC_ERROR;
3641     END IF;
3642 
3643     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3644          (p_request_type   =>OE_GLOBALS.G_COPY_MODEL_PATTR
3645           ,p_delete        => FND_API.G_TRUE
3646           ,x_return_status => l_return_status
3647           );
3648     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3649           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3650     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3651           RAISE FND_API.G_EXC_ERROR;
3652     END IF;
3653 
3654     -- Process Delete Charges Delayed Requests
3655       Process_Request_for_ReqType
3656         (p_request_type   => OE_GLOBALS.G_DELETE_CHARGES
3657          ,p_delete        => FND_API.G_TRUE
3658          ,x_return_status => l_return_status
3659         );
3660      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3661                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3662      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3663                 RAISE FND_API.G_EXC_ERROR;
3664      END IF;
3665 
3666    -- Process Tax Delayed Requests
3667       Process_Request_for_ReqType
3668         (p_request_type   => OE_GLOBALS.G_TAX_LINE
3669          ,p_delete        => FND_API.G_TRUE
3670          ,x_return_status => l_return_status
3671         );
3672      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3673                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3674      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3675                 RAISE FND_API.G_EXC_ERROR;
3676      END IF;
3677 
3678 
3679       -- Process Commitment Delayed Requests
3680       Process_Request_for_ReqType
3681         (p_request_type   => OE_GLOBALS.G_CALCULATE_COMMITMENT
3682          ,p_delete        => FND_API.G_TRUE
3683          ,x_return_status => l_return_status
3684         );
3685      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3686                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3687      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3688                 RAISE FND_API.G_EXC_ERROR;
3689      END IF;
3690 
3691      -- Process Commitment Delayed Requests
3692      Process_Request_for_ReqType
3693         (p_request_type   => OE_GLOBALS.G_UPDATE_COMMITMENT
3694          ,p_delete        => FND_API.G_TRUE
3695          ,x_return_status => l_return_status
3696         );
3697      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3698                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3699      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3700                 RAISE FND_API.G_EXC_ERROR;
3701      END IF;
3702 
3703      -- for multiple payments
3704      Process_Request_for_ReqType
3705         (p_request_type   => OE_GLOBALS.G_UPDATE_COMMITMENT_APPLIED
3706          ,p_delete        => FND_API.G_TRUE
3707          ,x_return_status => l_return_status
3708         );
3709      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3710                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3711      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3712                 RAISE FND_API.G_EXC_ERROR;
3713      END IF;
3714 
3715     -- for multiple payments
3716     Process_Request_for_ReqType
3717 	        (p_request_type  	=> OE_GLOBALS.G_SPLIT_PAYMENT
3718 	         ,p_delete        	=> FND_API.G_TRUE
3719 	         ,x_return_status 	=> l_return_status
3720 	        );
3721     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3722           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3723     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3724           RAISE FND_API.G_EXC_ERROR;
3725     END IF;
3726 
3727     Process_Request_for_ReqType
3728 	        (p_request_type  	=> OE_GLOBALS.G_UPDATE_HDR_PAYMENT
3729 	         ,p_delete        	=> FND_API.G_TRUE
3730 	         ,x_return_status 	=> l_return_status
3731 	        );
3732     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3733           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3734     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3735           RAISE FND_API.G_EXC_ERROR;
3736     END IF;
3737 
3738      -- Process requests for Payment Verification
3739      Process_Request_for_ReqType
3740         (p_request_type   => OE_GLOBALS.G_VERIFY_PAYMENT
3741          ,p_delete        => FND_API.G_TRUE
3742          ,x_return_status => l_return_status
3743         );
3744      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3745 	           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3746      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3747 	           RAISE FND_API.G_EXC_ERROR;
3748      END IF;
3749 
3750      Process_Request_for_ReqType
3751 	        (p_request_type  	=> OE_GLOBALS.G_DELETE_PAYMENT_HOLD
3752 	         ,p_delete        	=> FND_API.G_TRUE
3753 	         ,x_return_status 	=> l_return_status
3754 	        );
3755     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3756           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3757     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3758           RAISE FND_API.G_EXC_ERROR;
3759     END IF;
3760 
3761     -- Process Request to create automatic attachments
3762     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3763          (p_request_type   =>OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT
3764           ,p_delete        => FND_API.G_TRUE
3765           ,x_return_status => l_return_status
3766           );
3767     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3768           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3769     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3770           RAISE FND_API.G_EXC_ERROR;
3771     END IF;
3772 
3773     -- Process Request to copy attachments
3774     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3775          (p_request_type   =>OE_GLOBALS.G_COPY_ATCHMT
3776           ,p_delete        => FND_API.G_TRUE
3777           ,x_return_status => l_return_status
3778           );
3779     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3780           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3781     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3782           RAISE FND_API.G_EXC_ERROR;
3783     END IF;
3784 
3785         --added by MShenoy for Spares Management ikon project - Create internal req.
3786      IF l_debug_level > 0 THEN
3787      oe_debug_pub.add(' Entering Procedure process_Delayed_Requests in Package OE_Delayed_Requests_Pvt');
3788      END IF;
3789 
3790       OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3791              (p_request_type   =>OE_GLOBALS.G_CREATE_INTERNAL_REQ
3792               ,p_delete        => FND_API.G_TRUE
3793              ,x_return_status => l_return_status);
3794      IF l_debug_level > 0 THEN
3795      oe_debug_pub.add(' leaving Procedure process_Delayed_Requests in Package
3796                        OE_Delayed_Requests_Pvt ret status '||l_return_status);
3797      END IF;
3798     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3799           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3800     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3801           RAISE FND_API.G_EXC_ERROR;
3802     END IF;
3803 
3804     -- B2013611 reverse promotional limits
3805     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3806          (p_request_type   =>OE_GLOBALS.G_REVERSE_LIMITS
3807           ,p_delete        => FND_API.G_TRUE
3808           ,x_return_status => l_return_status
3809           );
3810     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3811           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3812     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3813           RAISE FND_API.G_EXC_ERROR;
3814     END IF;
3815 
3816     --MRG BGN
3817     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3818          (p_request_type   => OE_GLOBALS.G_MARGIN_HOLD
3819           ,p_delete        => FND_API.G_TRUE
3820           ,x_return_status => l_return_status
3821           );
3822     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3823           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3824     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3825           RAISE FND_API.G_EXC_ERROR;
3826     END IF;
3827     --MRG END
3828 
3829 
3830     ----------
3831     --Btea
3832     ----------
3833 
3834     --MRG BGN
3835     IF l_debug_level > 0 THEN
3836     oe_debug_pub.add('before call to OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype in process_delayed_requests');
3837     END IF;
3838     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3839          (p_request_type   => OE_GLOBALS.G_GET_COST
3840           ,p_delete        => FND_API.G_TRUE
3841           ,x_return_status => l_return_status
3842          );
3843     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3844           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3845     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3846           RAISE FND_API.G_EXC_ERROR;
3847     END IF;
3848     --MRG END
3849 
3850 
3851     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3852          (p_request_type   =>OE_GLOBALS.G_DEL_CHG_LINES
3853           ,p_delete        => FND_API.G_TRUE
3854           ,x_return_status => l_return_status
3855           );
3856     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3857           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3858     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3859           RAISE FND_API.G_EXC_ERROR;
3860     END IF;
3861 
3862 
3863     --process delayed requests for xml generation
3864 
3865     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3866          (p_request_type   =>OE_GLOBALS.G_GENERATE_XML_REQ_HDR
3867           ,p_delete        => FND_API.G_TRUE
3868           ,x_return_status => l_return_status
3869           );
3870     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3871           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3872     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3873           RAISE FND_API.G_EXC_ERROR;
3874     END IF;
3875 
3876 
3877     -- Please do not put any delayed requests that can update qty
3878     -- or price before this point !
3879 
3880     -- BLANKETS: Update released amount/qty on blanket order/line
3881     -- IMPORTANT: This request should be executed after all requests that
3882     -- can result in change to qty or price are executed.
3883     -- This will execute both requests of type: PROCESS_RELEASE
3884     -- and VALIDATE_RELEASE_SHIPMENTS.
3885     OE_Blkt_Release_Util.Process_Releases
3886              (p_request_tbl   => G_Delayed_Requests
3887              ,x_return_status => l_return_status);
3888     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3889           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3890     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3891           RAISE FND_API.G_EXC_ERROR;
3892     END IF;
3893 
3894     -- Changes for Enhanced Dropshipments
3895 
3896     OE_Purchase_Release_PVT.Process_DropShip_CMS_Requests
3897              (p_request_tbl   => G_Delayed_Requests
3898              ,x_return_status => l_return_status);
3899     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3900           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3901     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3902           RAISE FND_API.G_EXC_ERROR;
3903     END IF;
3904 
3905 
3906 /* 7576948: IR ISO Change Management project Start */
3907 -- This code is hooked up for IR ISO project so as to trigger
3908 -- the delayed request processing for update of internal requisition
3909 
3910 -- For details on IR ISO CMS project, please refer to FOL >
3911 -- OM Development > OM GM > 12.1.1 > TDD > IR_ISO_CMS_TDD.doc
3912 
3913 
3914     -- Process Request to Update the Internal Requisition
3915     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3916          ( p_request_type  => OE_GLOBALS.G_UPDATE_REQUISITION
3917          , p_delete        => FND_API.G_TRUE
3918          , x_return_status => l_return_status
3919          );
3920 
3921     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3922           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3923     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3924           RAISE FND_API.G_EXC_ERROR;
3925     END IF;
3926 
3927 /* ============================= */
3928 /* IR ISO Change Management Ends */
3929 
3930 
3931     --process delayed requests for cancel workflow
3932 
3933     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3934          (p_request_type   =>OE_GLOBALS.G_CANCEL_WF
3935           ,p_delete        => FND_API.G_TRUE
3936           ,x_return_status => l_return_status
3937           );
3938     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3939           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3940     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3941           RAISE FND_API.G_EXC_ERROR;
3942     END IF;
3943 
3944 
3945    /* Please do not put execution of any delayed request beyond this point */
3946    l_ind := G_Delayed_Requests.first;
3947 
3948    IF l_debug_level > 0 THEN
3949      oe_debug_pub.add('Global Request count-PDR-E'||G_Delayed_Requests.count,1);
3950      oe_debug_pub.add('*****l_ind :' || l_ind, 1);
3951    END IF;
3952 
3953    WHILE l_ind IS NOT NULL LOOP
3954         Process_Request_Pvt
3955            (p_request_ind       => l_ind
3956            ,p_delete            => FND_API.G_TRUE
3957            ,x_return_status     => l_return_status
3958            );
3959 
3960         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3961 	         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3962         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3963 	         RAISE FND_API.G_EXC_ERROR;
3964         END IF;
3965      l_ind := G_Delayed_Requests.Next(l_ind);
3966   END LOOP;
3967 
3968     -- Process Request to Complete workflow activity
3969     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
3970          (p_request_type   =>OE_GLOBALS.G_COMPLETE_ACTIVITY
3971           ,p_delete        => FND_API.G_TRUE
3972           ,x_return_status => l_return_status
3973           );
3974     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3975           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3976     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3977           RAISE FND_API.G_EXC_ERROR;
3978     END IF;
3979      IF l_debug_level > 0 THEN
3980      oe_debug_pub.add('Global Request count-PDR-AL'||G_Delayed_Requests.count,1);
3981      END IF;
3982 
3983      -- clear the delayed request cache
3984      Clear_Request(x_return_status);
3985 	END IF; -- Recursion mode
3986      oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3987                                    p_In_out  => 0);
3988 
3989 EXCEPTION
3990 
3991     WHEN FND_API.G_EXC_ERROR THEN
3992         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3993                                    p_In_out  => 0);
3994         x_return_status := FND_API.G_RET_STS_ERROR;
3995 
3996     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3997         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
3998                                    p_In_out  => 0);
3999         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4000 
4001     WHEN OTHERS THEN
4002         oe_order_pvt.set_recursion_mode(p_Entity_Code => 9,
4003                                    p_In_out  => 0);
4004         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4005 
4006         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4007         THEN
4008             OE_MSG_PUB.Add_Exc_Msg
4009             (   G_PKG_NAME
4010             ,   'Process_Delayed_Requests'
4011             );
4012         END IF;
4013 End Process_Delayed_Requests;
4014 
4015 /** This procedure is called twice from Process Order.  Once to
4016 **  process action requests that need to be processed before the flows have
4017 ** started and a second time to process action requests that can ONLY be
4018 ** processed after the flow has started (book, LINK, match_and_reserve)
4019 **/
4020 
4021 PROCEDURE Process_Order_Actions
4022 (p_validation_level	IN  NUMBER := FND_API.G_VALID_LEVEL_FULL,
4023  p_x_request_tbl		IN OUT NOCOPY OE_Order_PUB.request_tbl_type,
4024  p_process_WF_requests IN boolean DEFAULT TRUE
4025  )
4026   IS
4027      l_request_rec		OE_Order_PUB.request_rec_type;
4028      l_return_status            VARCHAR2(1);
4029 --
4030 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4031 --
4032 l_header_id                 NUMBER;
4033 l_line_id                   NUMBER;
4034 l_order_source_id           NUMBER;
4035 l_orig_sys_document_ref     VARCHAR2(50);
4036 l_orig_sys_line_ref         VARCHAR2(50);
4037 l_orig_sys_shipment_ref     VARCHAR2(50);
4038 l_change_sequence           VARCHAR2(50);
4039 l_source_document_type_id   NUMBER;
4040 l_source_document_id        NUMBER;
4041 l_source_document_line_id   NUMBER;
4042 --R12 CVV2
4043 --comm rej l_reject_on_auth_failure    VARCHAR2(1);
4044 --comm rej l_reject_on_risk_failure    VARCHAR2(1);
4045 l_msg_count                 NUMBER;
4046 l_msg_data                 VARCHAR2(4000);
4047 l_result_out               VARCHAR2(30);
4048 l_header_rec               OE_ORDER_PUB.Header_Rec_Type;
4049 --R12 CVV2
4050 
4051 -- ER 7243028
4052 l_lines_count               NUMBER;
4053 l_lines_list                VARCHAR2(4000);
4054 
4055 BEGIN
4056    IF l_debug_level > 0 THEN
4057    oe_debug_pub.ADD('Entering OE_ORDER_PUB.PROCESS_ORDER_ACTIONS', 1);
4058    END IF;
4059 
4060 IF NOT oe_globals.g_call_process_req THEN --9354229
4061       IF l_debug_level  > 0 THEN
4062         oe_debug_pub.add(  'EXIT OE_ORDER_PUB.PROCESS_ORDER_ACTIONS' , 1 ) ;
4063       END IF;
4064       RETURN;
4065    END IF;
4066 
4067    -- added for notification framework
4068    -- check code release leve first, notificaiont framework is at pack H
4069    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
4070    oe_order_pvt.set_recursion_mode(p_Entity_Code => 10,
4071                                    p_In_out  => 1);
4072    END IF;
4073 
4074    FOR i IN 1..p_x_request_tbl.COUNT LOOP
4075    BEGIN
4076       IF l_debug_level > 0 THEN
4077       oe_debug_pub.ADD('Processing delayed requests # = '
4078 		       || To_char(i), 2);
4079       END IF;
4080 
4081       -- If request is already processed then loop around.
4082 
4083 	 IF (p_x_request_tbl(i).processed = 'Y') then
4084 	    goto END_OF_LOOP;
4085       END IF;
4086 
4087       l_request_rec := p_x_request_tbl(i);
4088       IF l_debug_level > 0 THEN
4089       oe_debug_pub.ADD('Request Type =  '
4090 		       || l_request_rec.request_type, 2);
4091       END IF;
4092       IF l_request_rec.entity_code = 'HEADER' THEN
4093          l_header_id := l_request_rec.entity_id;
4094          IF l_request_rec.entity_id IS NOT NULL THEN
4095             BEGIN
4096                IF l_debug_level  > 0 THEN
4097                   oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
4098                END IF;
4099                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4100                source_document_type_id, source_document_id
4101                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4102                l_source_document_type_id, l_source_document_id
4103                FROM   OE_ORDER_HEADERS_ALL
4104                WHERE  header_id = l_request_rec.entity_id;
4105             EXCEPTION
4106                WHEN NO_DATA_FOUND THEN
4107                    l_order_source_id := null;
4108                    l_orig_sys_document_ref := null;
4109                    l_change_sequence := null;
4110                    l_source_document_type_id := null;
4111                    l_source_document_id := null;
4112                WHEN OTHERS THEN
4113                    l_order_source_id := null;
4114                    l_orig_sys_document_ref := null;
4115                    l_change_sequence := null;
4116                    l_source_document_type_id := null;
4117                    l_source_document_id := null;
4118             END;
4119          END IF;
4120       ELSIF l_request_rec.entity_code = 'LINE' THEN
4121          l_line_id := l_request_rec.entity_id;
4122          IF l_request_rec.entity_id IS NOT NULL THEN
4123             BEGIN
4124                IF l_debug_level  > 0 THEN
4125                   oe_debug_pub.add('Getting reference data for line_id:'||l_request_rec.entity_id);
4126                END IF;
4127                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4128                source_document_type_id, source_document_id,  orig_sys_line_ref,
4129                source_document_line_id, orig_sys_shipment_ref, header_id
4130                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4131                l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
4132                l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
4133                FROM   OE_ORDER_LINES_ALL
4134                WHERE  line_id = l_request_rec.entity_id;
4135             EXCEPTION
4136                WHEN NO_DATA_FOUND THEN
4137                    l_header_id := null;
4138                    l_order_source_id := null;
4139                    l_orig_sys_document_ref := null;
4140                    l_change_sequence := null;
4141                    l_source_document_type_id := null;
4142                    l_source_document_id := null;
4143                    l_orig_sys_line_ref := null;
4144                    l_source_document_line_id := null;
4145                    l_orig_sys_shipment_ref := null;
4146                WHEN OTHERS THEN
4147                    l_header_id := null;
4148                    l_order_source_id := null;
4149                    l_orig_sys_document_ref := null;
4150                    l_change_sequence := null;
4151                    l_source_document_type_id := null;
4152                    l_source_document_id := null;
4153                    l_orig_sys_line_ref := null;
4154                    l_source_document_line_id := null;
4155                    l_orig_sys_shipment_ref := null;
4156             END;
4157          END IF;
4158       ELSIF l_request_rec.entity_code = 'HEADER_ADJ' THEN
4159          IF l_request_rec.entity_id IS NOT NULL THEN
4160             BEGIN
4161                IF l_debug_level  > 0 THEN
4162                   oe_debug_pub.add('Getting header_id of the header adjustment:'||l_request_rec.entity_id);
4163                END IF;
4164                SELECT header_id
4165                INTO   l_header_id
4166                FROM   oe_price_adjustments
4167                WHERE  price_adjustment_id = l_request_rec.entity_id;
4168             EXCEPTION
4169                WHEN NO_DATA_FOUND THEN
4170                   l_header_id := null;
4171                WHEN OTHERS THEN
4172                   l_header_id := null;
4173             END;
4174          END IF;
4175          IF l_header_id IS NOT NULL THEN
4176             BEGIN
4177                IF l_debug_level  > 0 THEN
4178                   oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
4179                END IF;
4180                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4181                source_document_type_id, source_document_id
4182                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4183                l_source_document_type_id, l_source_document_id
4184                FROM   OE_ORDER_HEADERS_ALL
4185                WHERE  header_id = l_header_id;
4186             EXCEPTION
4187                WHEN NO_DATA_FOUND THEN
4188                    l_order_source_id := null;
4189                    l_orig_sys_document_ref := null;
4190                    l_change_sequence := null;
4191                    l_source_document_type_id := null;
4192                    l_source_document_id := null;
4193                WHEN OTHERS THEN
4194                    l_order_source_id := null;
4195                    l_orig_sys_document_ref := null;
4196                    l_change_sequence := null;
4197                    l_source_document_type_id := null;
4198                    l_source_document_id := null;
4199             END;
4200          END IF;
4201       ELSIF l_request_rec.entity_code = 'LINE_ADJ' THEN
4202          IF l_request_rec.entity_id IS NOT NULL THEN
4203             BEGIN
4204                IF l_debug_level  > 0 THEN
4205                   oe_debug_pub.add('Getting line_id of the line adjustment:'||l_request_rec.entity_id);
4206                END IF;
4207                SELECT line_id
4208                INTO   l_line_id
4209                FROM   oe_price_adjustments
4210                WHERE  price_adjustment_id = l_request_rec.entity_id;
4211             EXCEPTION
4212                WHEN NO_DATA_FOUND THEN
4213                   l_line_id := null;
4214                WHEN OTHERS THEN
4215                   l_line_id := null;
4216             END;
4217          END IF;
4218          IF l_line_id IS NOT NULL THEN
4219             BEGIN
4220                IF l_debug_level  > 0 THEN
4221                   oe_debug_pub.add('Getting reference data for line_id:'||l_line_id);
4222                END IF;
4223                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4224                source_document_type_id, source_document_id,  orig_sys_line_ref,
4225                source_document_line_id, orig_sys_shipment_ref, header_id
4226                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4227                l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
4228                l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
4229                FROM   OE_ORDER_LINES_ALL
4230                WHERE  line_id = l_line_id;
4231             EXCEPTION
4232                WHEN NO_DATA_FOUND THEN
4233                    l_header_id := null;
4234                    l_order_source_id := null;
4235                    l_orig_sys_document_ref := null;
4236                    l_change_sequence := null;
4237                    l_source_document_type_id := null;
4238                    l_source_document_id := null;
4239                    l_orig_sys_line_ref := null;
4240                    l_source_document_line_id := null;
4241                    l_orig_sys_shipment_ref := null;
4242                WHEN OTHERS THEN
4243                    l_header_id := null;
4244                    l_order_source_id := null;
4245                    l_orig_sys_document_ref := null;
4246                    l_change_sequence := null;
4247                    l_source_document_type_id := null;
4248                    l_source_document_id := null;
4249                    l_orig_sys_line_ref := null;
4250                    l_source_document_line_id := null;
4251                    l_orig_sys_shipment_ref := null;
4252             END;
4253          END IF;
4254       ELSIF l_request_rec.entity_code = 'HEADER_SCREDIT' THEN
4255          IF l_request_rec.entity_id IS NOT NULL THEN
4256             BEGIN
4257                IF l_debug_level  > 0 THEN
4258                   oe_debug_pub.add('Getting header_id of the header scredit:'||l_request_rec.entity_id);
4259                END IF;
4260                SELECT header_id
4261                INTO   l_header_id
4262                FROM   oe_sales_credits
4263                WHERE  sales_credit_id = l_request_rec.entity_id;
4264             EXCEPTION
4265                WHEN NO_DATA_FOUND THEN
4266                   l_header_id := null;
4267                WHEN OTHERS THEN
4268                   l_header_id := null;
4269             END;
4270          END IF;
4271          IF l_header_id IS NOT NULL THEN
4272             BEGIN
4273                IF l_debug_level  > 0 THEN
4274                   oe_debug_pub.add('Getting reference data for header_id:'||l_header_id);
4275                END IF;
4276                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4277                source_document_type_id, source_document_id
4278                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4279                l_source_document_type_id, l_source_document_id
4280                FROM   OE_ORDER_HEADERS_ALL
4281                WHERE  header_id = l_header_id;
4282             EXCEPTION
4283                WHEN NO_DATA_FOUND THEN
4284                    l_order_source_id := null;
4285                    l_orig_sys_document_ref := null;
4286                    l_change_sequence := null;
4287                    l_source_document_type_id := null;
4288                    l_source_document_id := null;
4289                WHEN OTHERS THEN
4290                    l_order_source_id := null;
4291                    l_orig_sys_document_ref := null;
4292                    l_change_sequence := null;
4293                    l_source_document_type_id := null;
4294                    l_source_document_id := null;
4295             END;
4296          END IF;
4297       ELSIF l_request_rec.entity_code = 'LINE_SCREDIT' THEN
4298          IF l_request_rec.entity_id IS NOT NULL THEN
4299             BEGIN
4300                IF l_debug_level  > 0 THEN
4301                   oe_debug_pub.add('Getting line_id of the line scredit:'||l_request_rec.entity_id);
4302                END IF;
4303                SELECT line_id
4304                INTO   l_line_id
4305                FROM   oe_sales_credits
4306                WHERE  sales_credit_id = l_request_rec.entity_id;
4307             EXCEPTION
4308                WHEN NO_DATA_FOUND THEN
4309                   l_line_id := null;
4310                WHEN OTHERS THEN
4311                   l_line_id := null;
4312             END;
4313          END IF;
4314          IF l_line_id IS NOT NULL THEN
4315             BEGIN
4316                IF l_debug_level  > 0 THEN
4317                   oe_debug_pub.add('Getting reference data for line_id:'||l_line_id);
4318                END IF;
4319                SELECT order_source_id, orig_sys_document_ref, change_sequence,
4320                source_document_type_id, source_document_id,  orig_sys_line_ref,
4321                source_document_line_id, orig_sys_shipment_ref, header_id
4322                INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
4323                l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
4324                l_source_document_line_id, l_orig_sys_shipment_ref, l_header_id
4325                FROM   OE_ORDER_LINES_ALL
4326                WHERE  line_id = l_line_id;
4327             EXCEPTION
4328                WHEN NO_DATA_FOUND THEN
4329                    l_header_id := null;
4330                    l_order_source_id := null;
4331                    l_orig_sys_document_ref := null;
4332                    l_change_sequence := null;
4333                    l_source_document_type_id := null;
4334                    l_source_document_id := null;
4335                    l_orig_sys_line_ref := null;
4336                    l_source_document_line_id := null;
4337                    l_orig_sys_shipment_ref := null;
4338                WHEN OTHERS THEN
4339                    l_header_id := null;
4340                    l_order_source_id := null;
4341                    l_orig_sys_document_ref := null;
4342                    l_change_sequence := null;
4343                    l_source_document_type_id := null;
4344                    l_source_document_id := null;
4345                    l_orig_sys_line_ref := null;
4346                    l_source_document_line_id := null;
4347                    l_orig_sys_shipment_ref := null;
4348             END;
4349          END IF;
4350       END IF;
4351 
4352       OE_MSG_PUB.set_msg_context(
4353 	 p_entity_code			=> l_request_rec.entity_code
4354   	,p_entity_id         		=> l_request_rec.entity_id
4355     	,p_header_id         		=> l_header_id
4356     	,p_line_id           		=> l_line_id
4357     	,p_order_source_id  		=> l_order_source_id
4358     	,p_orig_sys_document_ref	=> l_orig_sys_document_ref
4359     	,p_orig_sys_document_line_ref	=> l_orig_sys_line_ref
4360     	,p_orig_sys_shipment_ref	=> l_orig_sys_shipment_ref
4361     	,p_change_sequence  		=> l_change_sequence
4362     	,p_source_document_type_id	=> l_source_document_type_id
4363     	,p_source_document_id		=> l_source_document_id
4364     	,p_source_document_line_id	=> l_source_document_line_id );
4365     IF l_debug_level > 0 THEN
4366 	oe_debug_pub.add('Request Entity:'||l_request_rec.entity_code||
4367 					' Request ID:'||l_request_rec.entity_id);
4368     END IF;
4369 
4370 	   -- Action Request to Apply Automatic Attachments
4371         IF  l_request_rec.request_type = OE_GLOBALS.G_APPLY_AUTOMATIC_ATCHMT THEN
4372 
4373                OE_DELAYED_REQUESTS_UTIL.Apply_Automatic_Attachments
4374 					( p_entity_code 		=> l_request_rec.entity_code
4375 					, p_entity_id 			=> l_request_rec.entity_id
4376 					, p_is_user_action		=> 'Y'
4377 					, x_return_status		=> l_return_status
4378 					);
4379                l_request_rec.processed := 'Y';
4380         ELSIF l_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
4381         -- For ER 7243028
4382             IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER THEN
4383                 IF l_debug_level > 0 THEN
4384                   oe_debug_pub.add('Before calling Price Order for :' || l_request_rec.entity_id, 5);
4385                 END IF;
4386 		OE_ORDER_ADJ_PVT.price_action
4387 		(
4388 			p_header_count          =>      1,
4389 			p_header_list           =>      l_request_rec.entity_id,
4390 			p_line_count            =>      0,
4391 			p_line_list             =>      NULL,
4392 			p_price_level           =>      'ORDER',
4393 			x_return_status		=>      l_return_status,
4394 			x_msg_count             =>      l_msg_count,
4395 			x_msg_data              =>      l_msg_data
4396 		);
4397             ELSIF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE THEN
4398 
4399                 l_lines_count :=0;
4400 
4401                 for j in i .. p_x_request_tbl.count loop
4402                     if p_x_request_tbl(j).request_type = OE_GLOBALS.G_PRICE_ORDER and
4403                        p_x_request_tbl(j).entity_code = OE_GLOBALS.G_ENTITY_LINE
4404                     then
4405                        l_lines_count := l_lines_count + 1;
4406                        if l_lines_count = 1 then
4407                          l_lines_list := p_x_request_tbl(j).entity_id;
4408                        else
4409                          l_lines_list := l_lines_list || ',' || p_x_request_tbl(j).entity_id;
4410                        end if;
4411                        p_x_request_tbl(j).processed := 'Y';
4412                     end if;
4413                 end loop;
4414 
4415                 IF l_debug_level > 0 THEN
4416                   oe_debug_pub.add('Before calling Price Line for count :' || l_lines_count || '; List : ' || l_lines_list, 5);
4417                 END IF;
4418                 OE_ORDER_ADJ_PVT.price_action
4419                 (
4420                         p_header_count          =>      0,
4421                         p_header_list           =>      null,
4422                         p_line_count            =>      l_lines_count,
4423                         p_line_list             =>      l_lines_list,
4424                         p_price_level           =>      'LINE',
4425                         x_return_status         =>      l_return_status,
4426                         x_msg_count             =>      l_msg_count,
4427                         x_msg_data              =>      l_msg_data
4428                 );
4429             ELSE
4430                 IF l_debug_level > 0 THEN
4431                   oe_debug_pub.add('Invalid entity given for Price Order Action. Entity has to be Header or Line', 5);
4432                 END IF;
4433 
4434 		    FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
4435 		    FND_MESSAGE.SET_TOKEN('ACTION',l_request_rec.request_type);
4436 		    OE_MSG_PUB.Add;
4437 		    l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4438 
4439 		    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4440             END IF;
4441 
4442             IF l_debug_level > 0 THEN
4443               oe_debug_pub.add('After Price Order, Status : ' || l_return_status, 5);
4444             END IF;
4445 
4446             l_request_rec.processed := 'Y';
4447 
4448             IF l_request_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4449               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4450             ELSIF l_request_rec.return_status = FND_API.G_RET_STS_ERROR THEN
4451               RAISE FND_API.G_EXC_ERROR;
4452             END IF;
4453 
4454         -- End of ER 7243028
4455 
4456 	   ELSIF l_request_rec.request_type = OE_GLOBALS.G_APPLY_HOLD THEN
4457 		IF l_debug_level > 0 THEN
4458 		OE_Debug_PUB.ADD('Calling Apply_Hold', 2);
4459 		END IF;
4460 		OE_Delayed_Requests_UTIL.Apply_Hold
4461 	           (p_validation_level => p_validation_level,
4462 	            x_request_rec      => l_request_rec);
4463 
4464                 l_request_rec.processed := 'Y';
4465         IF l_debug_level > 0 THEN
4466 		OE_Debug_PUB.ADD('After Calling Apply_hold', 2);
4467         END IF;
4468 
4469 	   ELSIF l_request_rec.request_type = OE_GLOBALS.G_RELEASE_HOLD THEN
4470                IF l_debug_level > 0 THEN
4471                OE_Debug_PUB.ADD('Calling Release_Hold', 2);
4472                END IF;
4473 	       OE_Delayed_Requests_UTIL.Release_Hold
4474 	       	   (p_validation_level => p_validation_level,
4475 	             x_request_rec => l_request_rec);
4476                l_request_rec.processed := 'Y';
4477                IF l_debug_level > 0 THEN
4478                OE_Debug_PUB.ADD('After Calling Release_hold', 2);
4479                END IF;
4480            --R12 CVV2
4481            ELSIF l_request_rec.request_type = OE_GLOBALS.G_VERIFY_PAYMENT THEN
4482                /*comm rej  IF nvl(l_request_rec.param2, 'HOLD') = 'REJECT' THEN
4483                     l_reject_on_auth_failure := 'Y';
4484                  ELSE
4485                     l_reject_on_auth_failure := 'N';
4486                  END IF;
4487 
4488                  IF nvl(l_request_rec.param3, 'HOLD') = 'REJECT' THEN
4489                     l_reject_on_risk_failure := 'Y';
4490                  ELSE
4491                     l_reject_on_risk_failure := 'N';
4492                  END IF; comm rej*/
4493 
4494                  /*
4495                  OE_Verify_Payment_PUB.Verify_Payment
4496                                      ( p_header_id      => l_request_rec.entity_id
4497                                      , p_calling_action => null
4498                                      , p_delayed_request=> null
4499                                      , p_reject_on_auth_failure => l_reject_on_auth_failure
4500                                      , p_reject_on_risk_failure => l_reject_on_risk_failure
4501                                      , p_risk_eval_flag => l_request_rec.param1
4502                                      , p_msg_count      => l_msg_count
4503                                      , p_msg_data       => l_msg_data
4504                                      , p_return_status  => l_return_status
4505                                      );
4506                 l_request_rec.return_status := l_return_status;
4507                 */
4508 
4509                 IF l_debug_level > 0 THEN
4510                    oe_debug_pub.add('Before call to Authrize Payment header_id is: ' || l_header_id);
4511                    oe_debug_pub.add('Before call to Authrize Payment line_id is: ' || l_line_id);
4512                --comm rej    oe_debug_pub.add('reject on auth is: ' || l_reject_on_auth_failure);
4513                --comm rej    oe_debug_pub.add('reject on risk is: ' || l_reject_on_risk_failure);
4514                    oe_debug_pub.add('risk eval flag is: ' || l_request_rec.param1);
4515                 END IF;
4516 
4517                 OE_Header_UTIL.Query_Row
4518         		(p_header_id            => l_header_id
4519         		,x_header_rec           => l_header_rec
4520         		);
4521 
4522                  OE_Verify_Payment_PUB.Authorize_MultiPayments
4523                             ( p_header_rec          => l_header_rec
4524                             , p_line_id             => l_line_id --bug3524209
4525                             , p_calling_action      => null
4526                             --R12 CVV2
4527                           --comm rej  , p_reject_on_auth_failure => l_reject_on_auth_failure
4528                           --comm rej  , p_reject_on_risk_failure => l_reject_on_risk_failure
4529                             , p_risk_eval_flag         => l_request_rec.param1
4530                             --R12 CVV2
4531                             , p_msg_count           => l_msg_count
4532                             , p_msg_data            => l_msg_data
4533                             , p_result_out          => l_result_out
4534                             , p_return_status       => l_return_status
4535                             );
4536 
4537                 l_request_rec.return_status := l_return_status;
4538 
4539                 IF l_debug_level > 0 THEN
4540                    oe_debug_pub.add('After call to Authorizat Payment return status : ' || l_return_status);
4541                 END IF;
4542 
4543                 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4544                   RAISE FND_API.G_EXC_ERROR;
4545                 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4546                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4547                 END IF;
4548 
4549                 l_request_rec.processed := 'Y';
4550                 -- to ensure verify_payment not getting called again during book_order.
4551                 OE_GLOBALS.G_PAYMENT_PROCESSED := 'Y';
4552            --R12 CVV2
4553 
4554 
4555            ELSIF (l_request_rec.request_type = OE_GLOBALS.G_BOOK_ORDER
4556 			AND p_process_WF_requests) THEN
4557 
4558 		IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_HEADER THEN
4559                    IF l_debug_level > 0 THEN
4560                         OE_Debug_PUB.ADD('Calling Book Order');
4561                    END IF;
4562 			OE_Delayed_Requests_UTIL.Book_Order
4563 			( p_validation_level => p_validation_level
4564 			, p_header_id       => l_request_rec.entity_id
4565 			, x_return_status   => l_request_rec.return_status
4566 		  	);
4567                         l_request_rec.processed := 'Y';
4568 		END IF;
4569 
4570            ELSIF (l_request_rec.request_type = OE_GLOBALS.G_GET_SHIP_METHOD
4571                   OR l_request_rec.request_type = OE_GLOBALS.G_GET_FREIGHT_RATES
4572                   OR l_request_rec.request_type = OE_GLOBALS.G_GET_SHIP_METHOD_AND_RATES) THEN
4573 
4574                   IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110509' THEN
4575                         IF l_debug_level > 0 THEN
4576                         OE_DEBUG_PUB.Add('Calling Get Ship Method');
4577                         END IF;
4578 
4579                         -- Get_Ship_Method API not only gets ship method
4580                         -- from FTE, but also can get freight rates
4581                         -- from FTE. This API was named as Get_Ship_Method
4582                         -- initially for Carrier Selection, we added the
4583                         -- capability for Freight Rating later, and decided
4584                         -- to not change the API name.
4585                         OE_Delayed_Requests_UTIL.Get_Ship_Method
4586                         ( p_entity_code     => l_request_rec.entity_code
4587                         , p_entity_id       => l_request_rec.entity_id
4588                         , p_action_code     => l_request_rec.request_type
4589                         , x_return_status   => l_request_rec.return_status
4590                         );
4591                         l_request_rec.processed := 'Y';
4592 
4593                   END IF;
4594 
4595           ELSIF (l_request_rec.request_type = OE_GLOBALS.G_ADD_FULFILLMENT_SET OR
4596                  l_request_rec.request_type = OE_GLOBALS.G_REMOVE_FULFILLMENT_SET ) AND
4597                  l_request_rec.param5  IS NOT NULL   THEN
4598 
4599                  IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
4600 
4601                      IF l_request_rec.entity_code = OE_GLOBALS.G_ENTITY_LINE THEN
4602                         OE_Delayed_Requests_UTIL.Fulfillment_Sets
4603                         ( p_entity_code          => l_request_rec.entity_code
4604                         , p_entity_id            => l_request_rec.entity_id
4605                         , p_action_code          => l_request_rec.request_type
4606                         , p_fulfillment_set_name => l_request_rec.param5
4607                         , x_return_status        => l_request_rec.return_status
4608                         );
4609                         l_request_rec.processed := 'Y';
4610                      END IF;
4611                  END IF;
4612 
4613 	   ELSIF l_request_rec.request_type = OE_GLOBALS.G_DELINK_CONFIG
4614            THEN
4615 
4616 		OE_Delayed_Requests_UTIL.DELINK_CONFIG
4617                 ( p_line_id         => l_request_rec.entity_id
4618                  , x_return_status   => l_request_rec.return_status
4619                  );
4620                 l_request_rec.processed := 'Y';
4621 
4622             ELSIF (l_request_rec.request_type = OE_GLOBALS.G_MATCH_AND_RESERVE
4623                     AND p_process_WF_requests) THEN
4624 
4625 		OE_Delayed_Requests_UTIL.MATCH_AND_RESERVE
4626                 ( p_line_id         => l_request_rec.entity_id
4627 		, x_return_status   => l_request_rec.return_status
4628 		  );
4629                  l_request_rec.processed := 'Y';
4630 
4631        ELSIF (l_request_rec.request_type = OE_GLOBALS.G_LINK_CONFIG
4632                   AND p_process_WF_requests)
4633        THEN
4634              OE_Config_UTIL.LINK_CONFIG
4635              ( p_line_id         => l_request_rec.entity_id
4636              , p_config_item_id  => to_number(l_request_rec.param1)
4637              , x_return_status   => l_request_rec.return_status	);
4638               l_request_rec.processed := 'Y';
4639 	--Customer Acceptance Project actions
4640         ELSIF ( l_request_rec.request_type = OE_GLOBALS.G_ACCEPT_FULFILLMENT OR
4641 	        l_request_rec.request_type = OE_GLOBALS.G_REJECT_FULFILLMENT) AND
4642                 p_process_WF_requests THEN
4643 
4644 	        OE_ACCEPTANCE_PVT.Process_Acceptance(p_request_tbl => p_x_request_tbl
4645 					      ,x_return_status => l_return_status);
4646 
4647           /*** IMPORTANT ****/
4648 	  /** This has to be the last elsif.  When adding new action requests  **/
4649 	  /** please add above this elsif.  Since process_order_actions is now **/
4650 	  /** called twice, this cannot be an 'else' statement to ensure that  **/
4651 	  /** the WF requests are NOT marked invalid in the first call but     **/
4652 	  /** processed in the second call                                     **/
4653        ELSIF p_process_WF_requests THEN
4654 
4655           IF l_request_rec.entity_code = OE_Globals.G_ENTITY_HEADER THEN
4656              OE_MSG_PUB.update_msg_context(
4657                          p_header_id   => l_request_rec.entity_id);
4658 
4659           ELSIF l_request_rec.entity_code = OE_Globals.G_ENTITY_LINE THEN
4660               OE_MSG_PUB.update_msg_context(
4661   	           p_line_id  	=> l_request_rec.entity_id);
4662           END IF;
4663             FND_MESSAGE.SET_NAME('ONT','ONT_INVALID_REQUEST');
4664             FND_MESSAGE.SET_TOKEN('ACTION',l_request_rec.request_type);
4665             OE_MSG_PUB.Add;
4666             l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4667         END IF;
4668 
4669 	   IF l_request_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR
4670 	   THEN
4671 	      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4672 	   ELSIF l_request_rec.return_status = FND_API.G_RET_STS_ERROR
4673 	   THEN
4674 	      RAISE FND_API.G_EXC_ERROR;
4675 	   END IF;
4676 
4677            IF ( l_request_rec.request_type = OE_GLOBALS.G_ACCEPT_FULFILLMENT OR
4678                 l_request_rec.request_type = OE_GLOBALS.G_REJECT_FULFILLMENT) AND
4679                 p_process_WF_requests THEN
4680                 -- do not override return status set by process acceptance
4681                 null;
4682            else
4683 	        p_x_request_tbl(i) := l_request_rec;
4684            end if;
4685 
4686          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4687 
4688     EXCEPTION
4689 
4690    	WHEN FND_API.G_EXC_ERROR THEN
4691       		l_request_rec.return_status := FND_API.G_RET_STS_ERROR;
4692                 l_request_rec.processed := 'Y';
4693       		p_x_request_tbl(i):= l_request_rec;
4694          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4695 
4696    	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4697       		l_request_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4698                 l_request_rec.processed := 'Y';
4699       		p_x_request_tbl(i):= l_request_rec;
4700          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4701       		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4702 
4703 
4704       	WHEN OTHERS THEN
4705       		l_request_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4706                 l_request_rec.processed := 'Y';
4707       		p_x_request_tbl(i)		:= l_request_rec;
4708 
4709       	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4710 		THEN
4711 	 	OE_MSG_PUB.Add_Exc_Msg
4712 	   	(   G_PKG_NAME
4713 	       	,   'Process_Order_Actions'
4714 	       	);
4715       	END IF;
4716 
4717          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4718       	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4719 
4720     END;
4721      <<END_OF_LOOP>> -- Label for requests that do not need to be processed
4722       null;
4723     END LOOP;
4724 
4725     -- added for notification framework
4726     IF  OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
4727    oe_order_pvt.set_recursion_mode(p_Entity_Code => 10,
4728                                    p_In_out  => 0);
4729    END IF;
4730    IF l_debug_level > 0 THEN
4731    oe_debug_pub.ADD('Exiting OE_ORDER_PUB.PROCESS_ORDER_ACTIONS', 1);
4732    END IF;
4733    OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4734 
4735 EXCEPTION
4736 
4737     WHEN FND_API.G_EXC_ERROR THEN
4738          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4739         RAISE;
4740 
4741     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4742          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4743         RAISE;
4744 
4745     WHEN OTHERS THEN
4746 
4747        IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4748 	 THEN
4749             OE_MSG_PUB.Add_Exc_Msg
4750 	      (   G_PKG_NAME
4751 		  ,   'Process_Order_Actions'
4752 		  );
4753        END IF;
4754 
4755          OE_MSG_PUB.reset_msg_context(l_request_rec.entity_code);
4756        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4757 
4758 END Process_Order_Actions;
4759 
4760 -- delete_against defaulting to TRUE to prevent delete
4761 -- of versioning requests for deletes.
4762 -- Bug 3800577
4763 -- Make p_entity_id an optional parameter so if it is null, delete
4764 -- all requests for that entity code
4765 Procedure Delete_Reqs_for_Deleted_Entity ( p_entity_code	IN Varchar2
4766                                         ,  p_delete_against    IN BOOLEAN := TRUE
4767 					,   p_entity_id       in Number := NULL
4768 , x_return_status OUT NOCOPY Varchar2)
4769 
4770 IS
4771      i			       	number;
4772      j			       	number;
4773      req_ind			number;
4774      request_delete		BOOLEAN;
4775      version_request_id		number := 0;
4776      config_req_id	        number := 0; -- Bug 12316022
4777      del_option_req_id          number := 0; -- Bug 12316022
4778 
4779 
4780 --
4781 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4782 --
4783 BEGIN
4784 
4785 
4786 
4787    x_return_status := FND_API.G_RET_STS_SUCCESS;
4788    IF l_debug_level > 0 THEN
4789    oe_debug_pub.add('In Delete_Reqs_for_Deleted_Entity');
4790    oe_debug_pub.add('p_entity_code/p_entity_id' ||
4791    p_entity_code || '/' || p_entity_id);
4792    END IF;
4793 
4794 -- DELETING REQUESTS LOGGED AGAINST THIS ENTITY
4795 
4796    i := G_Delayed_Requests.first;
4797 
4798    WHILE i IS NOT NULL LOOP
4799      IF l_debug_level > 0 THEN
4800      oe_debug_pub.add('G_Delayed_Requests.entity_code/entity_id' ||
4801                        G_Delayed_Requests(i).entity_code || '/' ||
4802                        G_Delayed_Requests(i).entity_id);
4803      oe_debug_pub.add('G_Delayed_Requests.request_type' ||
4804                        G_Delayed_Requests(i).request_type);
4805 
4806      END IF;
4807 
4808      IF (G_Delayed_Requests(i).request_type = OE_GLOBALS.G_VERSION_AUDIT) THEN --Bug # 5206049
4809 	version_request_id := i;
4810      END IF;
4811      IF (G_Delayed_Requests(i).request_type = OE_GLOBALS.G_DELETE_OPTION) THEN --Bug # 12316022
4812 	config_req_id := i;
4813      END IF;
4814      IF (G_Delayed_Requests(i).request_type = OE_GLOBALS.G_VALIDATE_CONFIGURATION) THEN --Bug # 12316022
4815 	del_option_req_id := i;
4816      END IF;
4817 
4818 
4819      IF (G_Delayed_Requests(i).entity_code = p_entity_code
4820      	 AND (p_entity_id IS NULL OR
4821               G_Delayed_Requests(i).entity_id = p_entity_id)
4822         )
4823      THEN
4824 	    IF l_debug_level > 0 THEN
4825         oe_debug_pub.add('Delete above request');
4826         END IF;
4827 
4828 	-- delete records in requesting entity tables with this request
4829 	j := G_Requesting_Entities.first;
4830 	WHILE j IS NOT NULL LOOP
4831        	   IF G_Requesting_Entities(j).request_index = i THEN
4832  		  G_Requesting_Entities.Delete(j);
4833 	   END IF;
4834      	j := G_Requesting_Entities.Next(j);
4835 	END LOOP;
4836 
4837 	-- delete the delayed request
4838 	   G_Delayed_Requests.Delete(i);
4839 
4840      END IF;
4841 
4842      i := G_Delayed_Requests.Next(i);
4843 
4844   END LOOP;
4845 
4846 
4847 -- DELETING REQUESTS LOGGED BY THIS ENTITY
4848 -- DO this only if delete agains is false. If true we delete request logged
4849 -- against the given entity.
4850 
4851 IF NOT p_delete_against THEN
4852    IF l_debug_level > 0 THEN
4853    oe_debug_pub.add('Delete against is FALSE');
4854    END IF;
4855 
4856 
4857    i := G_Requesting_Entities.first;
4858 
4859    WHILE i  IS NOT NULL LOOP
4860 
4861    -- search for requests logged by this entity
4862 
4863      IF (G_Requesting_Entities(i).entity_code = p_entity_code
4864      	 AND (p_entity_id IS NULL OR
4865               G_Requesting_Entities(i).entity_id = p_entity_id)
4866         )
4867      THEN
4868 
4869 	req_ind := G_Requesting_Entities(i).request_index;
4870 
4871 	-- initialize request delete to TRUE
4872 	request_delete := TRUE;
4873 
4874 	-- set the delete to FALSE if there are other entities that
4875 	-- logged the same request but if the same entity has logged this
4876 	-- request, then delete in the requesting entities table
4877 
4878 	j := G_Requesting_Entities.first;
4879 	WHILE j IS NOT NULL LOOP
4880        	   IF G_Requesting_Entities(j).request_index = req_ind THEN
4881 		IF ((G_Requesting_Entities(j).entity_code = p_entity_code
4882        		    AND (p_entity_id is null
4883                          OR G_Requesting_Entities(j).entity_id = p_entity_id)
4884                     )AND (G_Requesting_Entities(j).request_index <> version_request_id )   --Bug # 5206049
4885                           AND (G_Requesting_Entities(j).request_index <> config_req_id )   --Bug # 12316022
4886                           AND (G_Requesting_Entities(j).request_index <> del_option_req_id))   --Bug # 12316022
4887 
4888                 THEN
4889  		  G_Requesting_Entities.Delete(j);
4890 		ELSE
4891 		  request_delete := FALSE;
4892 		END IF;
4893 	   END IF;
4894      	j := G_Requesting_Entities.Next(j);
4895 	END LOOP;
4896 
4897 	-- deleting the delayed request
4898 	IF request_delete
4899            AND G_Delayed_Requests.Exists(req_ind) THEN
4900               IF l_debug_level > 0 THEN
4901               oe_debug_pub.add('Delete following request =>');
4902               oe_debug_pub.add('G_Delayed_Requests.entity_code/entity_id' ||
4903                        G_Delayed_Requests(req_ind).entity_code || '/' ||
4904                        G_Delayed_Requests(req_ind).entity_id);
4905               oe_debug_pub.add('G_Delayed_Requests.request_type' ||
4906                        G_Delayed_Requests(req_ind).request_type);
4907               END IF;
4908            -- Bug 3800577
4909            -- Reset versioning globals if version request is deleted
4910            IF G_Delayed_Requests(req_ind).request_type
4911               = OE_GLOBALS.G_VERSION_AUDIT
4912            THEN
4913               IF l_debug_level > 0 THEN
4914               oe_debug_pub.add('reset versioning globals');
4915               END IF;
4916               IF (NOT OE_Versioning_Util.Reset_Globals) THEN
4917                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4918               END IF;
4919            END IF;
4920 	   G_Delayed_Requests.Delete(req_ind);
4921 	END IF;
4922 
4923      END IF;
4924 
4925      i := G_Requesting_Entities.Next(i);
4926 
4927   END LOOP;
4928 END IF;
4929 
4930 EXCEPTION
4931 
4932     WHEN FND_API.G_EXC_ERROR THEN
4933 
4934         x_return_status := FND_API.G_RET_STS_ERROR;
4935 
4936     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4937 
4938         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4939 
4940    when others THEN
4941 
4942       IF OE_MSG_PUB.Check_MSg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4943 	 OE_MSG_PUB.Add_Exc_Msg
4944 	   (G_PKG_NAME
4945 	    ,'Delete_Reqs_for_Deleted_Entity');
4946       END IF;
4947 
4948       x_return_status := FND_API.G_RET_STS_ERROR;
4949 
4950 End Delete_Reqs_for_Deleted_Entity;
4951 
4952 
4953 /*---------------------------------------------------------------
4954 PROCEDURE Process_Scheduling_Request
4955 will be used for configurations scheduling requests.
4956 ----------------------------------------------------------------*/
4957 PROCEDURE Process_Scheduling_Request
4958 ( p_request_ind    IN  NUMBER
4959  ,p_request_rec    IN  OE_Order_PUB.request_rec_type
4960 ,x_return_status OUT NOCOPY VARCHAR2)
4961 
4962 IS
4963   I               NUMBER;
4964   K               NUMBER;
4965   l_ato_line_id   NUMBER;
4966   l_res_changes   VARCHAR2(1);
4967   l_request_tbl   OE_Order_PUB.request_tbl_type;
4968 --
4969 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4970 --
4971 BEGIN
4972   IF l_debug_level > 0 THEN
4973   oe_debug_pub.add('sch request '|| p_request_rec.request_type, 1);
4974   END IF;
4975 
4976   x_return_status := FND_API.G_RET_STS_SUCCESS;
4977 
4978   IF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_ATO THEN
4979     IF l_debug_level > 0 THEN
4980     oe_debug_pub.add('.. schedule_ato '|| p_request_rec.entity_id, 1);
4981     END IF;
4982 
4983     IF p_request_rec.param9 = 'Y' THEN
4984       K := p_request_ind;
4985       IF l_debug_level > 0 THEN
4986       oe_debug_pub.add('searh for duplicates '|| K, 3);
4987       END IF;
4988       WHILE K is not null
4989       LOOP
4990         IF G_Delayed_Requests(K).request_type
4991                  = OE_GLOBALS.G_SCHEDULE_ATO AND
4992            G_Delayed_Requests(K).param2 = p_request_rec.param2 AND
4993            G_Delayed_Requests(K).param9 = 'Y'
4994         THEN
4995           IF l_debug_level > 0 THEN
4996           oe_debug_pub.add('another req for same top model', 2);
4997           END IF;
4998           SELECT ato_line_id
4999           INTO   l_ato_line_id
5000           FROM   oe_order_lines
5001           WHERE  line_id = G_Delayed_Requests(K).entity_id;
5002 
5003           IF nvl(l_ato_line_id, -1) <> G_Delayed_Requests(K).entity_id THEN
5004              IF l_debug_level > 0 THEN
5005             oe_debug_pub.add('2 incorrect sch_ato req ', 3);
5006              END IF;
5007             G_Delayed_Requests.DELETE(K);
5008           END IF;
5009         END IF;
5010         K :=  G_Delayed_Requests.NEXT(K);
5011       END LOOP;
5012     END IF; -- pto ato non ui
5013 
5014     IF G_Delayed_Requests.EXISTS(p_request_ind) THEN
5015       OE_Config_Schedule_Pvt.Schedule_ATO
5016       ( p_request_rec    => p_request_rec
5017        ,x_return_status  => x_return_status);
5018     END IF;
5019 
5020   ELSIF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_SMC THEN
5021     IF l_debug_level > 0 THEN
5022     oe_debug_pub.add('calling schedule_smc '||  p_request_rec.param24 , 1);
5023     END IF;
5024 
5025     OE_Config_Schedule_Pvt.Schedule_SMC
5026     ( p_request_rec    => p_request_rec
5027      ,x_return_status  => x_return_status);
5028 
5029   ELSIF p_request_rec.request_type = OE_GLOBALS.G_SCHEDULE_NONSMC
5030   THEN
5031     I := 0;
5032     K := p_request_ind;
5033 
5034     WHILE K is not null
5035     LOOP
5036       IF G_Delayed_Requests(K).request_type
5037             = OE_GLOBALS.G_SCHEDULE_NONSMC AND
5038          G_Delayed_Requests(K).param2 = p_request_rec.param2 AND
5039          G_Delayed_Requests(K).param1 = p_request_rec.param1
5040       THEN
5041 
5042         l_ato_line_id := null;
5043 
5044         IF G_Delayed_Requests(K).param9 = 'Y' OR OE_Config_Util.G_Config_UI_Used ='N'  THEN --13007721
5045           SELECT ato_line_id
5046           INTO   l_ato_line_id
5047           FROM   oe_order_lines
5048           WHERE  line_id = G_Delayed_Requests(K).entity_id;
5049         END IF;
5050 
5051         IF l_ato_line_id is NULL THEN
5052           IF l_debug_level > 0 THEN
5053           oe_debug_pub.add('req for same model, same action', 2);
5054           END IF;
5055           I := I + 1;
5056           l_request_tbl(I) := G_Delayed_Requests(K);
5057 
5058           IF l_request_tbl(I).param24 = 'Y' THEN
5059             l_res_changes := 'Y';
5060           END IF;
5061         ELSE
5062           IF l_debug_level > 0 THEN
5063           oe_debug_pub.add('part of ato '|| l_ato_line_id , 3);
5064           END IF;
5065         END IF;
5066 
5067         G_Delayed_Requests.DELETE(K);
5068 
5069       END IF;
5070       K :=  G_Delayed_Requests.NEXT(K);
5071     END LOOP;
5072     IF l_debug_level > 0 THEN
5073     oe_debug_pub.add('calling schedule_nonsmc '||l_res_changes , 1);
5074     END IF;
5075     OE_Config_Schedule_Pvt.Schedule_NONSMC
5076     ( p_request_tbl    => l_request_tbl
5077      ,p_res_changes    => l_res_changes
5078      ,x_return_status  => x_return_status);
5079 
5080     ELSIF p_request_rec.request_type = OE_GLOBALS.G_DELAYED_SCHEDULE THEN
5081       if l_debug_level > 0 then
5082           oe_debug_pub.add('6663462 : calling delayed_schedule ' , 1);
5083       end if;
5084 
5085        OE_SCHEDULE_UTIL.DELAYED_SCHEDULE_LINES
5086        (x_return_status  => x_return_status);
5087 
5088   END IF;
5089   IF l_debug_level > 0 THEN
5090   oe_debug_pub.add('type----- '|| p_request_rec.request_type, 4);
5091   oe_debug_pub.add('leaving sch reqs '|| x_return_status, 1);
5092   END IF;
5093 EXCEPTION
5094   WHEN OTHERS THEN
5095     oe_debug_pub.add('Process_Scheduling_Request error '|| sqlerrm, 1);
5096     RAISE;
5097 END Process_Scheduling_Request;
5098 
5099 /*---------------------------------------------------------------
5100 PROCEDURE Check_Pricing_Request
5101 
5102 ----------------------------------------------------------------*/
5103 PROCEDURE Check_Pricing_Request
5104 ( p_request_ind    IN  NUMBER
5105  ,p_request_rec    IN  OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.request_rec_type
5106  ,x_log_request    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5107 )
5108 
5109 IS
5110      l_request_search_rslt1	VARCHAR2(1);
5111      l_request_search_rslt2	VARCHAR2(1);
5112      l_request_search_rslt3	VARCHAR2(1);
5113      l_request_search_rslt4	VARCHAR2(1);
5114      l_return_status		VARCHAR2(1);
5115      l_request_ind		NUMBER;
5116      l_req_entity_ind		NUMBER;
5117      l_request			OE_Order_PUB.REQUEST_REC_TYPE;
5118      l_req_entity		OE_Order_PUB.Requesting_Entity_Rec_Type;
5119      l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5120 
5121 BEGIN
5122 
5123   /* Added the following condition to fix the fp bug 3498435 */
5124 
5125 IF p_request_rec.request_type = OE_GLOBALS.G_PRICE_ORDER THEN
5126 
5127 
5128   IF l_debug_level  > 0 THEN
5129      oe_debug_pub.add('Entering check_pricing_request in Oe_Delayed_Request_PVT.',1);
5130   END IF;
5131   IF (p_request_rec.request_unique_key1 = 'BATCH'
5132       OR p_request_rec.request_unique_key1 = 'BATCH,BOOK')
5133      AND nvl(p_request_rec.request_unique_key2,'N') = 'Y' THEN
5134 
5135      IF p_request_rec.request_unique_key1 = 'BATCH' THEN
5136         Check_For_Request(p_request_rec.entity_code,
5137                        p_request_rec.entity_id,
5138                        p_request_rec.request_type,
5139                        'BATCH,BOOK',
5140                        NULL,
5141                        p_request_rec.request_unique_key3,
5142                        p_request_rec.request_unique_key4,
5143                        p_request_rec.request_unique_key5,
5144                        l_request_ind,
5145                        l_request_search_rslt1,
5146                        l_return_status);
5147        IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5148           -- no need to log request with BATCH and Y if
5149           -- 'BATCH,BOOK' and N already exists.
5150           x_log_request := 'N';
5151           return;
5152        ELSE
5153          Check_For_Request(p_request_rec.entity_code,
5154                        p_request_rec.entity_id,
5155                        p_request_rec.request_type,
5156                        'BATCH',
5157                        NULL,
5158                        p_request_rec.request_unique_key3,
5159                        p_request_rec.request_unique_key4,
5160                        p_request_rec.request_unique_key5,
5161                        l_request_ind,
5162                        l_request_search_rslt1,
5163                        l_return_status);
5164          END IF;
5165       ELSIF p_request_rec.request_unique_key1 = 'BATCH,BOOK' THEN
5166          Check_For_Request(p_request_rec.entity_code,
5167                        p_request_rec.entity_id,
5168                        p_request_rec.request_type,
5169                        'BATCH,BOOK',
5170                        NULL,
5171                        p_request_rec.request_unique_key3,
5172                        p_request_rec.request_unique_key4,
5173                        p_request_rec.request_unique_key5,
5174                        l_request_ind,
5175                        l_request_search_rslt1,
5176                        l_return_status);
5177 
5178       END IF;
5179 
5180       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5181             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5182       ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5183             RAISE FND_API.G_EXC_ERROR;
5184       END IF;
5185 
5186        IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5187           -- no need to log request with BATCH and Y if BATCH
5188           -- and N already exists.
5189           IF l_debug_level  > 0 THEN
5190              oe_debug_pub.add('there already exists BATCH + N so no need to log pricing request.', 3);
5191           END IF;
5192           x_log_request := 'N';
5193 
5194        ELSE
5195          IF p_request_rec.request_unique_key1 = 'BATCH' THEN
5196             -- check if there already exists request with
5197             -- pricing event 'ORDER' with get_freight_flag = 'N'.
5198             Check_For_Request(p_request_rec.entity_code,
5199                        p_request_rec.entity_id,
5200                        p_request_rec.request_type,
5201                        'ORDER',
5202                        NULL,
5203                        p_request_rec.request_unique_key3,
5204                        p_request_rec.request_unique_key4,
5205                        p_request_rec.request_unique_key5,
5206                        l_request_ind,
5207                        l_request_search_rslt2,
5208                        l_return_status);
5209          ELSIF p_request_rec.request_unique_key1 = 'BATCH,BOOK' THEN
5210             Check_For_Request(p_request_rec.entity_code,
5211                        p_request_rec.entity_id,
5212                        p_request_rec.request_type,
5213                        'ORDER,BOOK',
5214                        NULL,
5215                        p_request_rec.request_unique_key3,
5216                        p_request_rec.request_unique_key4,
5217                        p_request_rec.request_unique_key5,
5218                        l_request_ind,
5219                        l_request_search_rslt2,
5220                        l_return_status);
5221 
5222          END IF;
5223 
5224 
5225        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5226             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5227        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5228             RAISE FND_API.G_EXC_ERROR;
5229        END IF;
5230 
5231        IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5232           -- check if there already exists request with
5233           -- pricing event 'LINE' with get_freight_flag = 'Y'.
5234           -- If exists, do nothing.
5235           IF l_debug_level  > 0 THEN
5236              oe_debug_pub.add('there already exists request with ORDER + N.',3);
5237           END IF;
5238           Check_For_Request(p_request_rec.entity_code,
5239                        p_request_rec.entity_id,
5240                        p_request_rec.request_type,
5241                        'LINE',
5242                        'Y',
5243                        p_request_rec.request_unique_key3,
5244                        p_request_rec.request_unique_key4,
5245                        p_request_rec.request_unique_key5,
5246                        l_request_ind,
5247                        l_request_search_rslt3,
5248                        l_return_status);
5249           IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5250             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5251           ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5252             RAISE FND_API.G_EXC_ERROR;
5253           END IF;
5254 
5255           IF l_request_search_rslt3 = FND_API.G_TRUE THEN
5256              -- If not exists, replace BATCH event with LINE event
5257              -- since request with 'ORDER' event already exists.
5258              IF l_debug_level  > 0 THEN
5259                 oe_debug_pub.add('there exists LINE + Y and ORDER + N so no need to log request for BATCH + Y.', 3);
5260              END IF;
5261              x_log_request := 'N';
5262           ELSE
5263              -- if l_request_search_rslt3 = FND_API.G_FALSE THEN
5264              -- check for LINE and N.
5265              Check_For_Request(p_request_rec.entity_code,
5266                        p_request_rec.entity_id,
5267                        p_request_rec.request_type,
5268                        'LINE',
5269                        NULL,
5270                        p_request_rec.request_unique_key3,
5271                        p_request_rec.request_unique_key4,
5272                        p_request_rec.request_unique_key5,
5273                        l_request_ind,
5274                        l_request_search_rslt4,
5275                        l_return_status);
5276              IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5277                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5278              ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5279                 RAISE FND_API.G_EXC_ERROR;
5280              END IF;
5281 
5282 
5283              IF l_request_search_rslt4 = FND_API.G_TRUE THEN
5284                 -- if already exists request with LINE and N.
5285                 IF l_debug_level  > 0 THEN
5286                    oe_debug_pub.add('there exists LINE + N and ORDER + N so no need to log request for BATCH + Y.', 3);
5287                 END IF;
5288                 x_log_request := 'N';
5289 
5290              ELSE
5291                --  p_request_rec.request_unique_key1 := 'LINE';
5292                -- replace event BATCH with LINE.
5293                IF l_debug_level  > 0 THEN
5294                   oe_debug_pub.add('replace BATCH event with LINE + Y and ORDER + N.', 3);
5295                END IF;
5296                p_request_rec.param2 := 'LINE';
5297                p_request_rec.request_unique_key1 := 'LINE';
5298                p_request_rec.request_unique_key2 := 'Y';
5299              END IF;
5300           END IF;  -- end of l_request_search_rslt3.
5301 
5302 
5303         END IF;  -- end of l_request_search_rslt2
5304       END IF;  -- end of l_request_search_rslt1
5305 
5306   ELSIF p_request_rec.request_unique_key1 = 'ORDER'
5307         AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
5308         Check_For_Request(p_request_rec.entity_code,
5309                        p_request_rec.entity_id,
5310                        p_request_rec.request_type,
5311                        'BATCH',
5312                        NULL,
5313                        p_request_rec.request_unique_key3,
5314                        p_request_rec.request_unique_key4,
5315                        p_request_rec.request_unique_key5,
5316                        l_request_ind,
5317                        l_request_search_rslt1,
5318                        l_return_status);
5319 
5320        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5321             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5322        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5323             RAISE FND_API.G_EXC_ERROR;
5324        END IF;
5325 
5326        IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5327          -- if l_request_search_rslt1 = FND_API.G_TRUE
5328          -- request with event 'BATCH' and get_freight_flag ='N'
5329          -- exists, don't need to log request.
5330          IF l_debug_level  > 0 THEN
5331             oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
5332          END IF;
5333          x_log_request := 'N';
5334        ELSE
5335           -- if l_request_search_rslt1 = FND_API.G_FALSE
5336           -- request with event 'BATCH' and get_freight_flag ='N'
5337           -- does not exist.
5338           Check_For_Request(p_request_rec.entity_code,
5339                        p_request_rec.entity_id,
5340                        p_request_rec.request_type,
5341                        'BATCH',
5342                        'Y',
5343                        p_request_rec.request_unique_key3,
5344                        p_request_rec.request_unique_key4,
5345                        p_request_rec.request_unique_key5,
5346                        l_request_ind,
5347                        l_request_search_rslt2,
5348                        l_return_status);
5349           IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5350             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5351           ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5352             RAISE FND_API.G_EXC_ERROR;
5353           END IF;
5354 
5355           IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5356 
5357             -- there exists request with BATCH+Y already.
5358             -- need to delete BATCH+Y, log the current request which is
5359             -- ORDER+N and log an additional request LINE+Y.
5360             IF l_debug_level  > 0 THEN
5361                oe_debug_pub.add('need to have two separate requests ORDER + N and LINE + Y',3);
5362             END IF;
5363             delete_request(p_entity_code         => p_request_rec.entity_code,
5364                            p_entity_id           => p_request_rec.entity_id,
5365                            p_request_type        => p_request_rec.request_type,
5366                            p_request_unique_key1 => 'BATCH',
5367                            p_request_unique_key2 => 'Y',
5368                            x_return_status       => l_return_status);
5369 
5370             log_request(p_entity_code  => OE_GLOBALS.G_ENTITY_ALL,
5371          	       p_entity_id         	=> p_request_rec.entity_id,
5372 		       p_requesting_entity_code => p_request_rec.entity_code,
5373 		       p_requesting_entity_id   => p_request_rec.entity_id,
5374 		       p_request_unique_key1  	=> 'LINE',
5375 		       p_request_unique_key2  	=> 'Y',
5376 		       p_param1                 => p_request_rec.entity_id,
5377                        p_param2                 => 'LINE',
5378 		       p_request_type           => p_request_rec.request_type,
5379 		       x_return_status          => l_return_status);
5380 
5381           END IF;
5382 
5383         END IF; -- enf of l_request_search_rslt1.
5384   ELSIF p_request_rec.request_unique_key1 = 'BATCH'
5385         AND nvl(p_request_rec.request_unique_key2,'N') = 'N'
5386         OR  p_request_rec.request_unique_key1 = 'BATCH,BOOK'
5387         AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
5388         -- delete all other request for G_PRICE_ORDER.
5389         IF l_debug_level  > 0 THEN
5390            oe_debug_pub.add('delete all other price_order request.',1);
5391         END IF;
5392         delete_request(p_entity_code   =>OE_GLOBALS.G_ENTITY_ALL,
5393                        p_entity_id     => p_request_rec.entity_id,
5394                        p_request_type  => p_request_rec.request_type,
5395                        p_request_unique_key1 => 'ORDER',
5396                        x_return_status => l_return_status);
5397         delete_request(p_entity_code   =>OE_GLOBALS.G_ENTITY_ALL,
5398                        p_entity_id     => p_request_rec.entity_id,
5399                        p_request_type  => p_request_rec.request_type,
5400                        p_request_unique_key1 => 'BATCH',
5401                        x_return_status => l_return_status);
5402       IF p_request_rec.request_unique_key1 = 'BATCH,BOOK'
5403         AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
5404         -- event is 'BATCH,BOOK'
5405         delete_request(p_entity_code   =>OE_GLOBALS.G_ENTITY_ALL,
5406                        p_entity_id     => p_request_rec.entity_id,
5407                        p_request_type  => p_request_rec.request_type,
5408                        p_request_unique_key1 => 'ORDER,BOOK',
5409                        x_return_status => l_return_status);
5410         delete_request(p_entity_code   =>OE_GLOBALS.G_ENTITY_ALL,
5411                        p_entity_id     => p_request_rec.entity_id,
5412                        p_request_type  => p_request_rec.request_type,
5413                        p_request_unique_key1 => 'BATCH,BOOK',
5414                        x_return_status => l_return_status);
5415       END IF;
5416 
5417   ELSIF p_request_rec.request_unique_key1 = 'ORDER,BOOK'
5418         AND nvl(p_request_rec.request_unique_key2,'N') = 'N' THEN
5419      Check_For_Request(p_request_rec.entity_code,
5420                        p_request_rec.entity_id,
5421                        p_request_rec.request_type,
5422                        'BATCH,BOOK',
5423                        NULL,
5424                        p_request_rec.request_unique_key3,
5425                        p_request_rec.request_unique_key4,
5426                        p_request_rec.request_unique_key5,
5427                        l_request_ind,
5428                        l_request_search_rslt1,
5429                        l_return_status);
5430 
5431        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5432             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5433        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5434             RAISE FND_API.G_EXC_ERROR;
5435        END IF;
5436 
5437        IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5438           -- request with event 'BATCH' and get_freight_flag ='N'
5439           -- already exists, no need to log request.
5440          IF l_debug_level  > 0 THEN
5441             oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
5442          END IF;
5443          x_log_request := 'N';
5444        ELSE
5445           -- l_request_search_rslt1 = FND_API.G_FALSE
5446           -- request with event 'BATCH' and get_freight_flag ='N'
5447           -- does not exist.
5448           Check_For_Request(p_request_rec.entity_code,
5449                        p_request_rec.entity_id,
5450                        p_request_rec.request_type,
5451                        'BATCH,BOOK',
5452                        'Y',
5453                        p_request_rec.request_unique_key3,
5454                        p_request_rec.request_unique_key4,
5455                        p_request_rec.request_unique_key5,
5456                        l_request_ind,
5457                        l_request_search_rslt2,
5458                        l_return_status);
5459           IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5460             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5461           ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5462             RAISE FND_API.G_EXC_ERROR;
5463           END IF;
5464 
5465           IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5466 
5467             -- there exists request with BATCH,BOOK+Y already.
5468             -- need to delete BATCH,BOOK+Y, log the current request which is
5469             -- ORDER,BOOK+N and log an additional request LINE+Y.
5470             IF l_debug_level  > 0 THEN
5471                oe_debug_pub.add('need to have two separate requests ORDER,BOOK + N and LINE + Y and delete BATCH,BOOK + Y',1);
5472             END IF;
5473             delete_request(p_entity_code     => p_request_rec.entity_code,
5474                        p_entity_id           => p_request_rec.entity_id,
5475                        p_request_type        => p_request_rec.request_type,
5476                        p_request_unique_key1 => 'BATCH,BOOK',
5477                        p_request_unique_key2 => 'Y',
5478                        x_return_status       => l_return_status);
5479 
5480            log_request(p_entity_code  => OE_GLOBALS.G_ENTITY_ALL,
5481          	       p_entity_id         	=> p_request_rec.entity_id,
5482 		       p_requesting_entity_code => p_request_rec.entity_code,
5483 		       p_requesting_entity_id   => p_request_rec.entity_id,
5484 		       p_request_unique_key1  	=> 'LINE',
5485 		       p_request_unique_key2  	=> 'Y',
5486 		       p_param1                 => p_request_rec.entity_id,
5487                        p_param2                 => 'LINE',
5488 		       p_request_type           => p_request_rec.request_type,
5489 		       x_return_status          => l_return_status);
5490 
5491           END IF;
5492 
5493         END IF;
5494 
5495   END IF;
5496 
5497   /* New code added to fix the fp bug 3498435 */
5498 ELSIF p_request_rec.request_type = OE_GLOBALS.G_PRICE_LINE  THEN
5499      IF l_debug_level > 0 THEN
5500      oe_debug_pub.add('3498435: Entering check_pricing_request '||p_request_rec.request_unique_key1,1);
5501      END IF;
5502        IF p_request_rec.request_unique_key1 = 'LINE' THEN
5503             Check_For_Request(p_request_rec.entity_code,
5504                            p_request_rec.entity_id,
5505                            p_request_rec.request_type,
5506                            'BATCH',
5507                            NULL,
5508                            p_request_rec.request_unique_key3,
5509                            p_request_rec.request_unique_key4,
5510                            p_request_rec.request_unique_key5,
5511                            l_request_ind,
5512                            l_request_search_rslt1,
5513                            l_return_status);
5514            IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5515                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5516            ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5517                 RAISE FND_API.G_EXC_ERROR;
5518            END IF;
5519 
5520            IF l_request_search_rslt1 = FND_API.G_TRUE THEN
5521              IF l_debug_level  > 0 THEN
5522                 oe_debug_pub.add('there exists BATCH + N so no need to log request.', 3);
5523              END IF;
5524              x_log_request := 'N';
5525            ELSE
5526                           IF l_debug_level  > 0 THEN
5527                           oe_debug_pub.add('3498435: Search result is false ',1);
5528                           END IF;
5529                           Check_For_Request(p_request_rec.entity_code,
5530                            p_request_rec.entity_id,
5531                            p_request_rec.request_type,
5532                            'BATCH,BOOK',
5533                            NULL,
5534                            p_request_rec.request_unique_key3,
5535                            p_request_rec.request_unique_key4,
5536                            p_request_rec.request_unique_key5,
5537                            l_request_ind,
5538                            l_request_search_rslt2,
5539                            l_return_status);
5540                 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5541                      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5542                 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5543                      RAISE FND_API.G_EXC_ERROR;
5544                 END IF;
5545                 IF l_request_search_rslt2 = FND_API.G_TRUE THEN
5546                   IF l_debug_level  > 0 THEN
5547                      oe_debug_pub.add('there exists BATCH,BOOK + N so no need to log request.', 3);
5548                   END IF;
5549                   x_log_request := 'N';
5550                 END IF; --l_request_search_rslt2
5551            END IF; --l_request_search_rslt1
5552        ELSIF (nvl(p_request_rec.request_unique_key1,p_request_rec.param2) = 'BATCH'
5553           OR  nvl(p_request_rec.request_unique_key1,p_request_rec.param2) = 'BATCH,BOOK') THEN
5554                 IF l_debug_level  > 0 THEN
5555                    oe_debug_pub.add('Delete Line',3);
5556                 END IF;
5557                 delete_request(p_entity_code         => p_request_rec.entity_code,
5558                                p_entity_id           => p_request_rec.entity_id,
5559                                p_request_type        => p_request_rec.request_type,
5560                                p_request_unique_key1 => 'LINE',
5561                                p_request_unique_key2 => NULL,
5562                                x_return_status       => l_return_status);
5563        END IF; --p_request_rec.request_unique_key1 check
5564     END IF;  --Price order or price line check
5565 
5566 
5567 /* End of New code added to fix the fp bug 3498435   */
5568 
5569 
5570   IF l_debug_level  > 0 THEN
5571   oe_debug_pub.add('Exiting procedure OE_Delayed_Requests_Pvt.Check_Pricing_Request', 1);
5572   END IF;
5573 
5574 END Check_Pricing_Request;
5575 
5576 END OE_Delayed_Requests_Pvt;