[Home] [Help]
PACKAGE BODY: APPS.XDP_DRC_UTIL_PVT
Source
1 PACKAGE BODY XDP_DRC_UTIL_PVT AS
2 /* $Header: XDPDRCPB.pls 120.1 2005/06/15 22:53:15 appldev $ */
3
4
5 PROCEDURE Validate_Task(
6 p_workitem_id in NUMBER,
7 x_workitem_name OUT NOCOPY VARCHAR2,
8 return_code OUT NOCOPY number,
9 error_description OUT NOCOPY varchar2);
10
11 PROCEDURE Execute_Workitem_Sync(
12 p_workitem_instance_id in number,
13 return_code OUT NOCOPY number,
14 error_description OUT NOCOPY varchar2);
15
16 PROCEDURE Execute_FA_Sync(
17 p_fa_instance_id in number,
18 return_code OUT NOCOPY number,
19 error_description OUT NOCOPY varchar2);
20
21 PROCEDURE Process_DRC_Order(
22 P_WORKITEM_ID IN NUMBER,
23 P_TASK_PARAMETER IN XDP_TYPES.ORDER_PARAMETER_LIST,
24 x_SDP_ORDER_ID OUT NOCOPY NUMBER,
25 x_return_code OUT NOCOPY NUMBER,
26 x_error_description OUT NOCOPY VARCHAR2)
27 IS
28
29 lv_ret number;
30 lv_str varchar2(800);
31 lv_line_id number;
32 lv_wi_instance_id number;
33 lv_wi varchar2(200);
34 lv_index binary_integer;
35 lv_count number;
36 lv_done varchar2(1);
37 lv_proc varchar2(80);
38 BEGIN
39
40 -- Standard Start of API savepoint
41 -- SAVEPOINT l_order_tag;
42
43 -- Start of API body
44
45 -- Initialize API return status to success
46 x_return_code := 0;
47
48 Validate_Task(
49 p_workitem_id => p_workitem_id,
50 x_workitem_name => lv_wi,
51 return_code => x_return_code,
52 error_description =>x_error_description);
53
54 -- Modified by SXBANERJ.10/30/2000
55 -- IF lv_ret <> 0 Then
56 -- return;
57 -- END IF;
58 If x_return_code<>0 THEN
59 return;
60 End If;
61
62 select XDP_ORDER_HEADERS_S.NextVal into x_SDP_ORDER_ID
63 from dual;
64
65 insert into xdp_order_headers
66 (
67 order_id,
68 external_order_number,
69 status_code,
70 state,
71 date_received,
72 provisioning_date,
73 actual_provisioning_date,
74 order_type,
75 creation_date,
76 created_by,
77 last_update_date,
78 last_updated_by,
79 last_update_login
80 )
81 values
82 (
83 x_sdp_order_id,
84 'DRC-'||TO_CHAR(x_sdp_order_id),
85 'IN PROGRESS',
86 'RUNNING',
87 sysdate,
88 sysdate,
89 sysdate,
90 'DRC',
91 sysdate,
92 FND_GLOBAL.USER_ID,
93 sysdate,
94 FND_GLOBAL.USER_ID,
95 FND_GLOBAL.LOGIN_ID
96 );
97
98 insert into xdp_order_line_items
99 (
100 line_item_id,
101 order_id,
102 line_number,
103 line_item_name,
104 provisioning_required_flag,
105 status_code,
106 state,
107 is_package_flag,
108 is_virtual_line_flag,
109 line_sequence,
110 provisioning_date,
111 workitem_id,
112 creation_date,
113 created_by,
114 last_update_date,
115 last_updated_by,
116 last_update_login
117
118 )
119 values
120 (
121 XDP_ORDER_LINE_ITEMS_S.NextVal,
122 x_SDP_ORDER_ID,
123 1,
124 lv_wi,
125 'Y',
126 'IN PROGRESS',
127 'RUNNING',
128 'N',
129 'N',
130 0,
131 sysdate,
132 p_workitem_id,
133 sysdate,
134 FND_GLOBAL.USER_ID,
135 sysdate,
136 FND_GLOBAL.USER_ID,
137 FND_GLOBAL.LOGIN_ID
138 )
139 returning line_item_id into lv_line_id;
140
141 IF p_task_parameter.count > 0 THEN
142 lv_index := p_task_parameter.first;
143 For lv_count in 1..p_task_parameter.count loop
144 insert into XDP_ORDER_LINEITEM_DETS
145 (
146 line_item_id,
147 line_parameter_name,
148 parameter_value,
149 creation_date,
150 created_by,
151 last_update_date,
152 last_updated_by,
153 last_update_login
154 )
155 values
156 (
157 lv_line_id,
158 p_task_parameter(lv_index).parameter_name,
159 p_task_parameter(lv_index).parameter_value,
160 sysdate,
161 FND_GLOBAL.USER_ID,
162 sysdate,
163 FND_GLOBAL.USER_ID,
164 FND_GLOBAL.LOGIN_ID
165 );
166 lv_index := p_task_parameter.next(lv_index);
167 end loop;
168 END IF;
169
170 -- Modified by SXSBANERJ 10/30/2000 .Added two more parameters in Add_WI_toLine
171 --
172 lv_wi_instance_id := XDP_OA_UTIL.Add_WI_toLine(
173 p_line_item_id => lv_line_id,
174 p_workitem_id => p_workitem_id,
175 x_error_code =>x_return_code,
176 x_error_message => x_error_description);
177 IF x_return_code<>0 then
178 return;
179 END IF;
180
181 -- Modified by SXBANERJ.10/30/2000. Changed lv_ret to x_return_code.
182
183 Execute_Workitem_Sync(
184 p_workitem_instance_id => lv_wi_instance_id,
185 return_code => x_return_code,
186 error_description =>x_error_description);
187
188 Begin
189 select 'N' into lv_done
190 from dual
191 where exists( select 'x' from
192 XDP_FULFILL_WORKLIST
193 where line_item_id = lv_line_id and
194 status_code = 'ERROR');
195 exception
196 when no_data_found then
197 lv_done := 'Y';
198 end;
199
200 If lv_done = 'Y' then
201 update xdp_order_headers
202 set status_code = 'COMPLETED',
203 state = 'COMPLETED',
204 last_update_date = sysdate,
205 last_updated_by = FND_GLOBAL.USER_ID,
206 last_update_login = FND_GLOBAL.LOGIN_ID
207 where order_id = x_sdp_order_id;
208
209 update xdp_order_line_items
210 set status_code = 'COMPLETED',
211 state = 'COMPLETED',
212 last_update_date = sysdate,
213 last_updated_by = FND_GLOBAL.USER_ID,
214 last_update_login = FND_GLOBAL.LOGIN_ID
215 where line_item_id = lv_line_id;
216 Else
217 update xdp_order_headers
218 set status_code = 'ERROR',
219 state = 'COMPLETED',
220 last_update_date = sysdate,
221 last_updated_by = FND_GLOBAL.USER_ID,
222 last_update_login = FND_GLOBAL.LOGIN_ID
223 where order_id = x_sdp_order_id;
224
225 update xdp_order_line_items
226 set status_code = 'ERROR',
227 state = 'COMPLETED',
228 last_update_date = sysdate,
229 last_updated_by = FND_GLOBAL.USER_ID,
230 last_update_login = FND_GLOBAL.LOGIN_ID
231 where line_item_id = lv_line_id;
232
233 END IF;
234
235 /*COMMIT;*/
236
237 EXCEPTION
238 WHEN OTHERS THEN
239 x_return_code := -191266;
240 FND_MESSAGE.SET_NAME('XDP', 'XDP_API_WHEN_OTHERS');
241 FND_MESSAGE.SET_TOKEN('API_NAME', 'XDPDRCPB');
242 FND_MESSAGE.SET_TOKEN('ERROR_STRING', SQLERRM);
243 x_error_description := FND_MESSAGE.GET;
244
245 END Process_DRC_Order;
246
247 /*
248 Task validation
249 */
250 PROCEDURE Validate_Task(
251 p_workitem_id in number,
252 x_workitem_name OUT NOCOPY VARCHAR2,
253 return_code OUT NOCOPY number,
254 error_description OUT NOCOPY varchar2)
255 IS
256 lv_id number;
257 lv_exists varchar2(1) := 'N';
258 lv_type varchar2(80);
259 BEGIN
260 return_code := 0;
261 begin
262 select
263 workitem_name, wi_type_code
264 into
265 x_workitem_name,lv_type
266 from
267 xdp_workitems wim
268 where
269 wim.workitem_id = p_workitem_id;
270 if lv_type not in ('STATIC','DYNAMIC') then
271 return_code := -191272;
272 FND_MESSAGE.SET_NAME('XDP', 'XDP_WI_CONFIG_ERROR');
273 FND_MESSAGE.SET_TOKEN('WORK_ITEM_NAME', x_workitem_name);
274 error_description := FND_MESSAGE.GET;
275 return;
276 end if;
277 exception
278 when no_data_found then
279 return_code := -191273;
280 FND_MESSAGE.SET_NAME('XDP', 'XDP_INVALID_WORKITEM_ID');
281 error_description := FND_MESSAGE.GET;
282 return;
283 end;
284
285 return;
286
287 EXCEPTION
288 WHEN OTHERS THEN
289 return_code := -191266;
290 FND_MESSAGE.SET_NAME('XDP', 'XDP_API_WHEN_OTHERS');
291 FND_MESSAGE.SET_TOKEN('API_NAME', 'XDPDRCPB');
292 FND_MESSAGE.SET_TOKEN('ERROR_STRING', SQLERRM);
293 error_description := FND_MESSAGE.GET;
294 END Validate_Task;
295
296 /*
297 execute workitem in a synchronous mode
298 */
299
300 PROCEDURE Execute_Workitem_Sync(
301 p_workitem_instance_id in number,
302 return_code OUT NOCOPY number,
303 error_description OUT NOCOPY varchar2)
304 IS
305 cursor lc_fa_map is
306 select
307 wfg.fulfillment_action_id,
308 wfg.provisioning_seq
309 from
310 xdp_wi_fa_mapping wfg,
311 XDP_FULFILL_WORKLIST fwt
312 where
313 fwt.workitem_id = wfg.workitem_id and
314 fwt.workitem_instance_id = p_workitem_instance_id
315 order by wfg.provisioning_seq;
316
317 cursor lc_fa_list is
318 select fa_instance_id
319 from xdp_fa_runtime_list
320 where
321 workitem_instance_id = p_workitem_instance_id;
322
323 lv_proc varchar2(80);
324 lv_type varchar2(40);
325 lv_fa_id number;
326 lv_order_id number;
327 lv_line_item_id number;
328 lv_wi varchar2(80);
329 lv_fa_fail BOOLEAN := FALSE;
330 lv_ret number;
331 lv_str varchar2(4000);
332 -- lv_MessageList XDP_TYPES.MESSAGE_TOKEN_LIST;
333 lv_ref_id number := 0;
334
335 x_parameters varchar2(4000);
336 BEGIN
337 return_code := 0;
338 select
339 wim.wi_type_code,
340 wim.fa_exec_map_proc,
341 fwt.order_id,
342 wim.workitem_name,
343 fwt.line_item_id
344 into
345 lv_type,
346 lv_proc,
347 lv_order_id,
348 lv_wi,
349 lv_line_item_id
350 from
351 xdp_workitems wim,
352 XDP_FULFILL_WORKLIST fwt
353 where
354 wim.workitem_id = fwt.workitem_id and
355 fwt.workitem_instance_id = p_workitem_instance_id;
356
357 if lv_type = 'STATIC' then
358 for lv_fa_rec in lc_fa_map loop
359 lv_fa_id := XDP_ENG_UTIL.Add_FA_toWI(
360 p_wi_instance_id => p_workitem_instance_id,
361 p_fulfillment_action_id => lv_fa_rec.fulfillment_action_id);
362 end loop;
363 elsif lv_proc is NOT NULL then
364 XDP_UTILITIES.CallFAMapProc(
365 p_procedure_name => lv_proc,
366 p_order_id => lv_order_id,
367 p_line_item_id => lv_line_item_id,
368 p_wi_instance_id => p_workitem_instance_id,
369 p_return_code => return_code,
370 p_error_description => error_description);
371 if return_code <> 0 then
372 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
373 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := error_description;
374
375 -- Changed - sacsharm - 11.5.6 ErrorHandling
376 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_WI_PROV_ERROR',
377 -- p_message_ref_id => lv_ref_id,
378 -- p_message_param_list => lv_MessageList,
379 -- p_appl_name => 'XDP',
380 -- p_sql_code => lv_ret,
381 -- p_sql_desc => lv_str);
382
383 x_parameters := 'ERROR_STRING='||error_description||'#XDP#';
384 XDP_ERRORS_PKG.Set_Message(p_object_type => 'WORKITEM',
385 p_object_key => p_workitem_instance_id,
386 p_message_name => 'XDP_WI_PROV_ERROR',
387 p_message_parameters => x_parameters);
388
389 UPDATE XDP_FULFILL_WORKLIST
390 set status_code = 'ERROR',
391 -- error_ref_id = lv_ref_id,
392 last_update_date = sysdate,
393 last_updated_by = FND_GLOBAL.USER_ID,
394 last_update_login = FND_GLOBAL.LOGIN_ID
395 where
396 workitem_instance_id = p_workitem_instance_id;
397 /*COMMIT;*/
398
399 return;
400 end if;
401 else
402 return_code := -191272;
403 FND_MESSAGE.SET_NAME('XDP', 'XDP_WI_CONFIG_ERROR');
407 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := error_description;
404 FND_MESSAGE.SET_TOKEN('WORK_ITEM_NAME', lv_wi);
405 error_description := FND_MESSAGE.GET;
406 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
408
409 -- Changed - sacsharm - 11.5.6 ErrorHandling
410 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_WI_PROV_ERROR',
411 -- p_message_ref_id => lv_ref_id,
412 -- p_message_param_list => lv_MessageList,
413 -- p_appl_name => 'XDP',
414 -- p_sql_code => lv_ret,
415 -- p_sql_desc => lv_str);
416
417 x_parameters := 'ERROR_STRING='||error_description||'#XDP#';
418 XDP_ERRORS_PKG.Set_Message(p_object_type => 'WORKITEM',
419 p_object_key => p_workitem_instance_id,
420 p_message_name => 'XDP_WI_PROV_ERROR',
421 p_message_parameters => x_parameters);
422
423 UPDATE XDP_FULFILL_WORKLIST
424 set status_code = 'ERROR',
425 -- error_ref_id = lv_ref_id,
426 last_update_date = sysdate,
427 last_updated_by = FND_GLOBAL.USER_ID,
428 last_update_login = FND_GLOBAL.LOGIN_ID
429 where
430 workitem_instance_id = p_workitem_instance_id;
431 /*COMMIT;*/
432
433 return;
434 end if;
435
436 for lv_fa_rec2 in lc_fa_list loop
437 execute_fa_sync(
438 p_fa_instance_id => lv_fa_rec2.fa_instance_id,
439 return_code => lv_ret,
440 error_description => lv_str);
441 if lv_ret <> 0 then
442 lv_fa_fail := TRUE;
443 end if;
444 end loop;
445
446 IF lv_fa_fail = TRUE THEN
447 update XDP_FULFILL_WORKLIST
448 set status_code = 'ERROR',
449 state = 'COMPLETED',
450 last_update_date = sysdate,
451 last_updated_by = FND_GLOBAL.USER_ID,
452 last_update_login = FND_GLOBAL.LOGIN_ID
453 where workitem_instance_id = p_workitem_instance_id;
454 ELSE
455 update XDP_FULFILL_WORKLIST
456 set status_code = 'COMPLETED',
457 state = 'COMPLETED',
458 last_update_date = sysdate,
459 last_updated_by = FND_GLOBAL.USER_ID,
460 last_update_login = FND_GLOBAL.LOGIN_ID
461 where workitem_instance_id = p_workitem_instance_id;
462 END IF;
463 /*COMMIT;*/
464
465 EXCEPTION
466 WHEN OTHERS THEN
467 return_code := -191266;
468 FND_MESSAGE.SET_NAME('XDP', 'XDP_API_WHEN_OTHERS');
469 FND_MESSAGE.SET_TOKEN('API_NAME', 'XDPDRCPB');
470 FND_MESSAGE.SET_TOKEN('ERROR_STRING', SQLERRM);
471 error_description := FND_MESSAGE.GET;
472 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
473 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := error_description;
474
475 -- Changed - sacsharm - 11.5.6 ErrorHandling
476 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_WI_PROV_ERROR',
477 -- p_message_ref_id => lv_ref_id,
478 -- p_message_param_list => lv_MessageList,
479 -- p_appl_name => 'XDP',
480 -- p_sql_code => lv_ret,
481 -- p_sql_desc => lv_str);
482
483 x_parameters := 'ERROR_STRING='||error_description||'#XDP#';
484 XDP_ERRORS_PKG.Set_Message(p_object_type => 'WORKITEM',
485 p_object_key => p_workitem_instance_id,
486 p_message_name => 'XDP_WI_PROV_ERROR',
487 p_message_parameters => x_parameters);
488
489 UPDATE XDP_FULFILL_WORKLIST
490 set status_code = 'ERROR',
491 state = 'COMPLETED',
492 last_update_date = sysdate,
493 last_updated_by = FND_GLOBAL.USER_ID,
494 last_update_login = FND_GLOBAL.LOGIN_ID
495 -- ,error_ref_id = lv_ref_id
496 where
497 workitem_instance_id = p_workitem_instance_id;
498 /*COMMIT;*/
499 END Execute_Workitem_Sync;
500
501 /*
502 execute FA in a synchronous mode
503 */
504 PROCEDURE Execute_FA_Sync(
505 p_fa_instance_id in number,
506 return_code OUT NOCOPY number,
507 error_description OUT NOCOPY varchar2)
508 IS
509 lv_fe_name varchar2(80);
510 lv_fe_id number;
511 lv_fa_id number;
512 lv_fetype_id number;
513 lv_fetype varchar2(80);
514 lv_sw_generic varchar2(80);
515 lv_adapter varchar2(80);
516 lv_proc varchar2(80);
517 lv_channel varchar2(80);
518 lv_order_id number;
519 lv_wi_instance_id number;
520 lv_ret number;
521 lv_str varchar2(300);
522 -- lv_MessageList XDP_TYPES.MESSAGE_TOKEN_LIST;
523 lv_ref_id number := 0;
524 cursor lc_channels(l_fe_id number) is
525 select channel_name,adapter_status
526 from XDP_ADAPTER_REG
527 where adapter_status = 'IDLE' and
528 usage_code = 'TEST' and
529 fe_id = l_fe_id;
530 lv_found_lock BOOLEAN := FALSE;
531 lv_found_channel BOOLEAN := FALSE;
532 resource_busy exception;
533 pragma exception_init(resource_busy, -00054);
534 lv_count number;
535 lv_line_item_id number;
536
537 x_parameters varchar2(4000);
538 BEGIN
539 return_code := 0;
540 select
541 fe_routing_proc,
542 frt.workitem_instance_id,
543 fwt.order_id,
544 frt.fulfillment_action_id,
545 fwt.line_item_id
546 into
547 lv_proc,
548 lv_wi_instance_id,
549 lv_order_id,
550 lv_fa_id,
551 lv_line_item_id
552 from XDP_FULFILL_ACTIONS fan,
553 xdp_fa_runtime_list frt,
554 XDP_FULFILL_WORKLIST fwt
555 where
559
556 fan.fulfillment_action_id = frt.fulfillment_action_id and
557 fwt.workitem_instance_id = frt.workitem_instance_id and
558 frt.fa_instance_id = p_fa_instance_id;
560 XDP_UTILITIES.CallFERoutingProc(
561 p_procedure_name => lv_proc,
562 p_order_id => lv_order_id,
563 p_line_item_id => lv_line_item_id,
564 p_wi_instance_id => lv_wi_instance_id,
565 p_fa_instance_id => p_fa_instance_id,
566 p_fe_name => lv_fe_name,
567 p_return_code => return_code,
568 p_error_description => error_description);
569
570 IF return_code <> 0 THEN
571 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
572 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := error_description;
573
574 -- Changed - sacsharm - 11.5.6 ErrorHandling
575 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_FA_PROV_ERROR',
576 -- p_message_ref_id => lv_ref_id,
577 -- p_message_param_list => lv_MessageList,
578 -- p_appl_name => 'XDP',
579 -- p_sql_code => lv_ret,
580 -- p_sql_desc => lv_str);
581
582 x_parameters := 'ERROR_STRING='||error_description||'#XDP#';
583 XDP_ERRORS_PKG.Set_Message(p_object_type => 'FA',
584 p_object_key => p_fa_instance_id,
585 p_message_name => 'XDP_FA_PROV_ERROR',
586 p_message_parameters => x_parameters);
587
588 UPDATE xdp_fa_runtime_list
589 set status_code = 'ERROR',
590 state = 'COMPLETED',
591 last_update_date = sysdate,
592 last_updated_by = FND_GLOBAL.USER_ID,
593 last_update_login = FND_GLOBAL.LOGIN_ID
594 -- , error_ref_id = lv_ref_id
595 where
596 fa_instance_id = p_fa_instance_id;
597 /*COMMIT;*/
598 return;
599 ELSE
600 XDP_ENGINE.Get_FE_ConfigInfo(
601 lv_fe_name,
602 lv_fe_id,
603 lv_fetype_id,
604 lv_fetype,
605 lv_sw_generic,
606 lv_adapter);
607
608 select fulfillment_proc
609 into lv_proc
610 from xdp_fa_fulfillment_proc ffp,
611 xdp_fe_sw_gen_lookup fsp
612 where
613 ffp.fulfillment_action_id = lv_fa_id and
614 ffp.fe_sw_gen_lookup_id = fsp.fe_sw_gen_lookup_id and
615 fsp.fetype_id = lv_fetype_id and
616 fsp.sw_generic = lv_sw_generic and
617 fsp.adapter_type = lv_adapter;
618
619
620 FOR lv_count IN 1..3 LOOP
621 FOR lv_channel_rec IN lc_channels(lv_fe_id) loop
622 lv_found_channel := TRUE;
623 begin
624 select channel_name
625 into lv_channel
626 from XDP_ADAPTER_REG
627 where channel_name = lv_channel_rec.channel_name and
628 adapter_status = 'IDLE' and
629 usage_code = 'TEST'
630 FOR UPDATE NOWAIT;
631 lv_found_lock := TRUE;
632 lv_found_channel := TRUE;
633 goto l_Outer;
634 exception
635 when resource_busy then
636 null;
637 when no_data_found then
638 lv_found_channel := FALSE;
639 goto l_Outer;
640 end;
641 END LOOP;
642 if lv_found_channel = FALSE then
643 goto l_Outer;
644 else
645 dbms_lock.sleep(10);
646 end if;
647 END LOOP;
648
649 <<l_Outer>>
650 IF lv_found_channel = FALSE THEN
651 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'FE_NAME';
652 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := lv_fe_name;
653
654 -- Changed - sacsharm - 11.5.6 ErrorHandling
655 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_NO_TEST_CHANNEL',
656 -- p_message_ref_id => lv_ref_id,
657 -- p_message_param_list => lv_MessageList,
658 -- p_appl_name => 'XDP',
659 -- p_sql_code => lv_ret,
660 -- p_sql_desc => lv_str);
661
662 x_parameters := 'FE_NAME='||lv_fe_name||'#XDP#';
663 XDP_ERRORS_PKG.Set_Message(p_object_type => 'FA',
664 p_object_key => p_fa_instance_id,
665 p_message_name => 'XDP_NO_TEST_CHANNEL',
666 p_message_parameters => x_parameters);
667
668 UPDATE xdp_fa_runtime_list
669 set status_code = 'ERROR',
670 state = 'COMPLETED',
671 last_update_date = sysdate,
672 last_updated_by = FND_GLOBAL.USER_ID,
673 last_update_login = FND_GLOBAL.LOGIN_ID
674 -- ,error_ref_id = lv_ref_id
675 where
676 fa_instance_id = p_fa_instance_id;
677 /*COMMIT;*/
678 return;
679 ELSIF lv_found_lock = FALSE THEN
680 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'FE_NAME';
681 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := lv_fe_name;
682
683 -- Changed - sacsharm - 11.5.6 ErrorHandling
684 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_TEST_CHANNEL_BUSY',
685 -- p_message_ref_id => lv_ref_id,
686 -- p_message_param_list => lv_MessageList,
687 -- p_appl_name => 'XDP',
688 -- p_sql_code => lv_ret,
689 -- p_sql_desc => lv_str);
690
691 x_parameters := 'FE_NAME='||lv_fe_name||'#XDP#';
692 XDP_ERRORS_PKG.Set_Message(p_object_type => 'FA',
693 p_object_key => p_fa_instance_id,
694 p_message_name => 'XDP_TEST_CHANNEL_BUSY',
695 p_message_parameters => x_parameters);
696
697 UPDATE xdp_fa_runtime_list
698 set status_code = 'ERROR',
702 last_update_login = FND_GLOBAL.LOGIN_ID
699 state = 'COMPLETED',
700 last_update_date = sysdate,
701 last_updated_by = FND_GLOBAL.USER_ID,
703 -- ,error_ref_id = lv_ref_id
704 where
705 fa_instance_id = p_fa_instance_id;
706 /*COMMIT;*/
707 return;
708 END IF;
709
710
711 XDP_UTILITIES.CallFulfillmentProc(
712 p_procedure_name => lv_proc,
713 p_order_id => lv_order_id,
714 p_line_item_id => lv_line_item_id,
715 p_wi_instance_id => lv_wi_instance_id,
716 p_fa_instance_id => p_fa_instance_id,
717 p_channel_name => lv_channel,
718 p_fe_name =>lv_fe_name,
719 p_fa_item_type => NULL,
720 p_fa_item_key => NULL,
721 p_return_code => return_code,
722 p_error_description => error_description);
723 IF return_code = 0 THEN
724 UPDATE xdp_fa_runtime_list
725 set status_code = 'COMPLETED',
726 state = 'COMPLETED',
727 last_update_date = sysdate,
728 last_updated_by = FND_GLOBAL.USER_ID,
729 last_update_login = FND_GLOBAL.LOGIN_ID
730 where
731 fa_instance_id = p_fa_instance_id;
732 /*COMMIT;*/
733
734 ELSE
735 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
736 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := error_description;
737
738 -- Changed - sacsharm - 11.5.6 ErrorHandling
739 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_FA_PROV_ERROR',
740 -- p_message_ref_id => lv_ref_id,
741 -- p_message_param_list => lv_MessageList,
742 -- p_appl_name => 'XDP',
743 -- p_sql_code => lv_ret,
744 -- p_sql_desc => lv_str);
745
746 x_parameters := 'ERROR_STRING='||error_description||'#XDP#';
747 XDP_ERRORS_PKG.Set_Message(p_object_type => 'FA',
748 p_object_key => p_fa_instance_id,
749 p_message_name => 'XDP_FA_PROV_ERROR',
750 p_message_parameters => x_parameters);
751
752 UPDATE xdp_fa_runtime_list
753 set status_code = 'ERROR',
754 state = 'COMPLETED',
755 last_update_date = sysdate,
756 last_updated_by = FND_GLOBAL.USER_ID,
757 last_update_login = FND_GLOBAL.LOGIN_ID
758 -- ,error_ref_id = lv_ref_id
759 where
760 fa_instance_id = p_fa_instance_id;
761 /*COMMIT;*/
762 END IF;
763
764 END IF;
765
766
767 EXCEPTION
768 WHEN OTHERS THEN
769 return_code := -191266;
770 FND_MESSAGE.SET_NAME('XDP', 'XDP_API_WHEN_OTHERS');
771 FND_MESSAGE.SET_TOKEN('API_NAME', 'XDPDRCPB');
772 FND_MESSAGE.SET_TOKEN('ERROR_STRING', SQLERRM);
773 error_description := FND_MESSAGE.GET;
774 -- lv_MessageList(1).MESSAGE_TOKEN_NAME := 'ERROR_STRING';
775 -- lv_MessageList(1).MESSAGE_TOKEN_VALUE := SQLERRM;
776
777 -- Changed - sacsharm - 11.5.6 ErrorHandling
778 -- XDP_ERRORS_PKG.Set_Message(p_message_name => 'XDP_FA_PROV_ERROR',
779 -- p_message_ref_id => lv_ref_id,
780 -- p_message_param_list => lv_MessageList,
781 -- p_appl_name => 'XDP',
782 -- p_sql_code => lv_ret,
783 -- p_sql_desc => lv_str);
784
785 x_parameters := 'ERROR_STRING='||SQLERRM||'#XDP#';
786 XDP_ERRORS_PKG.Set_Message(p_object_type => 'FA',
787 p_object_key => p_fa_instance_id,
788 p_message_name => 'XDP_FA_PROV_ERROR',
789 p_message_parameters => x_parameters);
790
791 UPDATE xdp_fa_runtime_list
792 set status_code = 'ERROR',
793 state = 'COMPLETED',
794 last_update_date = sysdate,
795 last_updated_by = FND_GLOBAL.USER_ID,
796 last_update_login = FND_GLOBAL.LOGIN_ID
797 -- ,error_ref_id = lv_ref_id
798 where
799 fa_instance_id = p_fa_instance_id;
800 /*COMMIT;*/
801 END Execute_FA_Sync;
802
803
804
805 END XDP_DRC_UTIL_PVT;