[Home] [Help]
PACKAGE BODY: APPS.XDP_INTERFACES_PUB
Source
1 PACKAGE BODY XDP_INTERFACES_PUB AS
2 /* $Header: XDPINPBB.pls 120.1 2005/06/15 23:16:12 appldev $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'XDP_INTERFACES_PUB';
5
6 PROCEDURE Process_Order(
7 p_api_version IN NUMBER,
8 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
9 p_commit IN VARCHAR2 := FND_API.G_FALSE,
10 p_validation_level IN NUMBER :=
11 FND_API.G_VALID_LEVEL_FULL,
12 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
13 x_msg_count OUT NOCOPY NUMBER,
14 x_msg_data OUT NOCOPY VARCHAR2,
15 P_ORDER_HEADER IN XDP_TYPES.ORDER_HEADER,
16 P_ORDER_PARAMETER IN XDP_TYPES.ORDER_PARAMETER_LIST,
17 P_ORDER_LINE_LIST IN XDP_TYPES.ORDER_LINE_LIST,
18 P_LINE_PARAMETER_LIST IN XDP_TYPES.LINE_PARAM_LIST,
19 x_SDP_ORDER_ID OUT NOCOPY NUMBER)
20 IS
21 l_api_name CONSTANT VARCHAR2(30) := 'PROCESS_ORDER';
22 l_api_version CONSTANT NUMBER := 11.5;
23 lv_ret number;
24 lv_str varchar2(800);
25 lv_ORDER_HEADER XDP_TYPES.ORDER_HEADER;
26 lv_ORDER_PARAMETER XDP_TYPES.ORDER_PARAMETER_LIST;
27 lv_ORDER_LINE_LIST XDP_TYPES.ORDER_LINE_LIST;
28 lv_LINE_PARAMETER_LIST XDP_TYPES.LINE_PARAM_LIST;
29 lv_index binary_integer;
30 lv_count number;
31 lv_done varchar2(1);
32 lv_proc varchar2(80);
33 l_return_code varchar2(1);
34 l_data Varchar2(100);
35 l_count Number;
36 l_sdp_order_id number;
37 l_OAI_array JTF_USR_HKS.OAI_data_array_type ;
38 l_bind_data_id number;
39
40 BEGIN
41
42 -- Standard Start of API savepoint
43 -- SAVEPOINT l_order_tag;
44
45 -- Standard call to check for call compatibility.
46 IF NOT FND_API.Compatible_API_Call (
47 l_api_version,
48 p_api_version,
49 l_api_name,
50 G_PKG_NAME )
51 THEN
52 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
53 END IF;
54
55 -- Initialize message list if p_init_msg_list is set to TRUE.
56 IF FND_API.to_Boolean( p_init_msg_list ) THEN
57 FND_MSG_PUB.initialize;
58 END IF;
59
60 /******* Prepare for going into pre processing *******/
61
62 lv_ORDER_HEADER := P_ORDER_HEADER;
63 lv_ORDER_PARAMETER := P_ORDER_PARAMETER;
64 lv_ORDER_LINE_LIST := P_ORDER_LINE_LIST;
65 lv_LINE_PARAMETER_LIST := P_LINE_PARAMETER_LIST;
66 l_sdp_order_id := x_SDP_ORDER_ID;
67
68 if JTF_USR_HKS.Ok_to_Execute(
69 'XDP_INTERFACES_PO_CUHK',
70 'PROCESS_ORDER_PRE',
71 'B',
72 'C' )
73 then
74
75 XDP_INTERFACES_PO_CUHK.Process_order_Pre(
76 p_order_header => lv_ORDER_HEADER,
77 p_order_parameter => lv_ORDER_PARAMETER,
78 p_order_line_list => lv_ORDER_LINE_LIST,
79 p_line_parameter_list => lv_LINE_PARAMETER_LIST,
80 p_sdp_order_id => l_sdp_order_id,
81 x_data => l_data,
82 x_count => l_count,
83 x_return_code => l_return_code );
84 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
85 RAISE FND_API.G_EXC_ERROR;
86 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
87 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88 end if;
89 end if;
90
91 if JTF_USR_HKS.Ok_to_Execute(
92 'XDP_INTERFACES_PO_VUHK',
93 'PROCESS_ORDER_PRE',
94 'B',
95 'V' )
96 then
97 XDP_INTERFACES_PO_VUHK.Process_order_Pre(
98 p_order_header => lv_ORDER_HEADER,
99 p_order_parameter => lv_ORDER_PARAMETER,
100 p_order_line_list => lv_ORDER_LINE_LIST,
101 p_line_parameter_list => lv_LINE_PARAMETER_LIST,
102 p_sdp_order_id => l_sdp_order_id,
103 x_data => l_data,
104 x_count => l_count,
105 x_return_code => l_return_code );
106 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
107 RAISE FND_API.G_EXC_ERROR;
108 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
109 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
110 end if;
111 end if;
112
113
114 /******* Start of API Body *******/
115
116 XDP_INTERFACES.Process_Order(
117 P_ORDER_HEADER => P_ORDER_HEADER,
118 P_ORDER_PARAMETER => P_ORDER_PARAMETER,
119 P_ORDER_LINE_LIST => P_ORDER_LINE_LIST,
120 P_LINE_PARAMETER_LIST => P_LINE_PARAMETER_LIST,
121 SDP_ORDER_ID => x_SDP_ORDER_ID,
122 RETURN_CODE => lv_ret,
123 ERROR_DESCRIPTION => lv_str);
124
125 if lv_ret <> 0 then
126 x_return_status := FND_API.G_RET_STS_ERROR ;
127 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_PROCESS_FAIL');
128 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
129 FND_MSG_PUB.Add;
130 FND_MSG_PUB.COUNT_AND_GET
131 ( p_count => x_msg_count,
132 p_data => x_msg_data
133 );
134 return;
135 end if;
136
137
138 /******* End of API Body *******/
139
140
141 /******* Post Processing call *******/
142
143 l_sdp_order_id := x_SDP_ORDER_ID;
144
145 if JTF_USR_HKS.Ok_to_Execute(
146 'XDP_INTERFACES_PO_CUHK',
147 'PROCESS_ORDER_POST',
148 'A',
149 'C' )
150 then
151 XDP_INTERFACES_PO_CUHK.Process_order_Post(
152 p_order_header => lv_ORDER_HEADER,
153 p_order_parameter => lv_ORDER_PARAMETER,
154 p_order_line_list => lv_ORDER_LINE_LIST,
155 p_line_parameter_list => lv_LINE_PARAMETER_LIST,
156 p_sdp_order_id => l_sdp_order_id,
157 x_data => l_data,
158 x_count => l_count,
159 x_return_code => l_return_code );
160 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
161 RAISE FND_API.G_EXC_ERROR;
162 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
163 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
164 end if;
165 end if;
166
167 if JTF_USR_HKS.Ok_to_Execute(
168 'XDP_INTERFACES_PO_VUHK',
169 'PROCESS_ORDER_POST',
170 'A',
171 'V' )
172 then
173 XDP_INTERFACES_PO_VUHK.Process_order_Post(
174 p_order_header => lv_ORDER_HEADER,
175 p_order_parameter => lv_ORDER_PARAMETER,
176 p_order_line_list => lv_ORDER_LINE_LIST,
177 p_line_parameter_list => lv_LINE_PARAMETER_LIST,
178 p_sdp_order_id => l_sdp_order_id,
179 x_data => l_data,
180 x_count => l_count,
181 x_return_code => l_return_code );
182 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
183 RAISE FND_API.G_EXC_ERROR;
184 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
185 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
186 end if;
187 end if;
188
189
190
191 /******* Message Generation Section ********/
192
193 if JTF_USR_HKS.Ok_to_Execute('XDP_INTERFACES_PO_CUHK',
194 'Ok_to_Generate_msg',
195 'M',
196 'M'
197 ) then
198
199 if (XDP_INTERFACES_PO_CUHK.Ok_to_Generate_msg(
200 p_order_header => lv_ORDER_HEADER,
201 p_order_parameter => lv_ORDER_PARAMETER,
202 p_order_line_list => lv_ORDER_LINE_LIST,
203 p_line_parameter_list => lv_LINE_PARAMETER_LIST,
204 p_sdp_order_id => l_sdp_order_id
205 )) then
206
207 -- XMLGEN.clearBindValues;
208 -- XMLGEN.setBindValue('ORDER_ID', l_sdp_order_id);
209 l_bind_data_id := JTF_USR_HKS.get_bind_data_id;
210 JTF_USR_HKS.Load_Bind_Data(
211 l_bind_data_id,
212 'ORDER_ID',
213 TO_CHAR(l_sdp_order_id),
214 'S',
215 'NUMBER');
216
217 JTF_USR_HKS.generate_message(
218 p_prod_code => 'XDP',
219 p_bus_obj_code => 'PO',
220 p_action_code => 'I',
221 p_correlation => NULL,
222 p_bind_data_id => l_bind_data_id,
223 x_return_code => l_return_code
224 );
225
226 if (l_return_code = FND_API.G_RET_STS_ERROR) then
227 RAISE FND_API.G_EXC_ERROR;
228 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR) then
229 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
230 end if;
231 end if;
232 end if;
233
234 /******* End of Message Generation Section ********/
235
236 x_return_status := FND_API.G_RET_STS_SUCCESS;
237
238 -- Standard check of p_commit.
239 IF FND_API.To_Boolean( p_commit ) THEN
240 COMMIT WORK;
241 END IF;
242
243 -- Standard call to get message count and if count is 1, get message info.
244 FND_MSG_PUB.Count_And_Get (
245 p_count => x_msg_count,
246 p_data => x_msg_data );
247
248 EXCEPTION
249 WHEN FND_API.G_EXC_ERROR THEN
250 -- ROLLBACK TO l_order_tag;
251 x_return_status := FND_API.G_RET_STS_ERROR ;
252 FND_MSG_PUB.Count_And_Get
253 ( p_count => x_msg_count ,
254 p_data => x_msg_data
255 );
256 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
257 -- ROLLBACK TO l_order_tag;
258 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
259 FND_MSG_PUB.Count_And_Get
260 ( p_count => x_msg_count,
261 p_data => x_msg_data
262 );
263 WHEN OTHERS THEN
264 -- ROLLBACK TO l_order_tag;
265 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
266 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
267 THEN
268 FND_MSG_PUB.Add_Exc_Msg
269 ( G_PKG_NAME ,
270 l_api_name
271 );
272 END IF;
273 FND_MSG_PUB.Count_And_Get
274 ( p_count => x_msg_count,
275 p_data => x_msg_data
276 );
277
278 END Process_Order;
279
280 /************* End of Process Order ****************/
281
282
283 PROCEDURE Cancel_Order(
284 p_api_version IN NUMBER,
285 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
286 p_commit IN VARCHAR2 := FND_API.G_FALSE,
287 p_validation_level IN NUMBER :=
288 FND_API.G_VALID_LEVEL_FULL,
289 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
290 x_msg_count OUT NOCOPY NUMBER,
291 x_msg_data OUT NOCOPY VARCHAR2,
292 P_SDP_ORDER_ID IN NUMBER,
293 p_caller_name IN VARCHAR2 )
294 IS
295
296 l_api_name CONSTANT VARCHAR2(30) := 'CANCEL_ORDER';
297 l_api_version CONSTANT NUMBER := 11.5;
298 lv_ret number;
299 lv_str varchar2(800);
300 lv_index binary_integer;
301 lv_count number;
302 lv_done varchar2(1);
303 lv_proc varchar2(80);
304 l_caller_name varchar2(100);
305 l_return_code varchar2(1);
306 l_data Varchar2(100);
307 l_count Number;
308 l_sdp_order_id number;
309 l_OAI_array JTF_USR_HKS.OAI_data_array_type ;
310 l_bind_data_id number;
311
312 BEGIN
313
314 -- Standard Start of API savepoint
315 -- SAVEPOINT l_order_tag;
316
317 -- Standard call to check for call compatibility.
318 IF NOT FND_API.Compatible_API_Call (
319 l_api_version,
320 p_api_version,
321 l_api_name,
322 G_PKG_NAME )
323 THEN
324 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
325 END IF;
326
327 -- Initialize message list if p_init_msg_list is set to TRUE.
328 IF FND_API.to_Boolean( p_init_msg_list ) THEN
329 FND_MSG_PUB.initialize;
330 END IF;
331
332
333 /******* Prepare for going into pre processing *******/
334
335 l_caller_name := p_caller_name;
336 l_sdp_order_id := P_SDP_ORDER_ID;
337
338 if JTF_USR_HKS.Ok_to_Execute(
339 'XDP_INTERFACES_CO_CUHK',
340 'CANCEL_ORDER_PRE',
341 'B',
342 'C' )
343 then
344 XDP_INTERFACES_CO_CUHK.Cancel_order_Pre(
345 p_caller_name => l_caller_name,
346 p_sdp_order_id => l_sdp_order_id,
347 x_data => l_data,
348 x_count => l_count,
349 x_return_code => l_return_code );
350 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
351 RAISE FND_API.G_EXC_ERROR;
352 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
353 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354 end if;
355 end if;
356
357 if JTF_USR_HKS.Ok_to_Execute(
358 'XDP_INTERFACES_CO_VUHK',
359 'CANCEL_ORDER_PRE',
360 'B',
361 'V' )
362 then
363 XDP_INTERFACES_CO_VUHK.Cancel_order_Pre(
364 p_caller_name => l_caller_name,
365 p_sdp_order_id => l_sdp_order_id,
366 x_data => l_data,
367 x_count => l_count,
368 x_return_code => l_return_code );
369 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
370 RAISE FND_API.G_EXC_ERROR;
371 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
372 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
373 end if;
374 end if;
375
376
377 /******* Start of API Body *******/
378
379 XDP_INTERFACES.Cancel_Order(
380 P_SDP_ORDER_ID => P_SDP_ORDER_ID,
381 p_caller_name => p_caller_name,
382 RETURN_CODE => lv_ret,
383 ERROR_DESCRIPTION => lv_str);
384
385 if lv_ret <> 0 then
386 x_return_status := FND_API.G_RET_STS_ERROR ;
387 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_CANCEL_FAIL');
388 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
389 FND_MSG_PUB.Add;
390 FND_MSG_PUB.COUNT_AND_GET
391 ( p_count => x_msg_count,
392 p_data => x_msg_data
393 );
394 return;
395 end if;
396
397
398 /******* End of API Body *******/
399
400
401 /******* Post Processing call *******/
402
403 l_sdp_order_id := P_SDP_ORDER_ID;
404
405 if JTF_USR_HKS.Ok_to_Execute(
406 'XDP_INTERFACES_CO_CUHK',
407 'CANCEL_ORDER_POST',
408 'A',
409 'C' )
410 then
411 XDP_INTERFACES_CO_CUHK.Cancel_order_Post(
412 p_caller_name => l_caller_name,
413 p_sdp_order_id => l_sdp_order_id,
414 x_data => l_data,
415 x_count => l_count,
416 x_return_code => l_return_code );
417 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
418 RAISE FND_API.G_EXC_ERROR;
419 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
420 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
421 end if;
422 end if;
423
424 if JTF_USR_HKS.Ok_to_Execute(
425 'XDP_INTERFACES_CO_VUHK',
426 'CANCEL_ORDER_POST',
427 'A',
428 'V' )
429 then
430 XDP_INTERFACES_CO_VUHK.Cancel_order_Post(
431 p_caller_name => l_caller_name,
432 p_sdp_order_id => l_sdp_order_id,
433 x_data => l_data,
434 x_count => l_count,
435 x_return_code => l_return_code );
436 if ( l_return_code = FND_API.G_RET_STS_ERROR ) then
437 RAISE FND_API.G_EXC_ERROR;
438 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) then
439 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
440 end if;
441 end if;
442
443
444 /******* Message Generation Section ********/
445
446 if JTF_USR_HKS.Ok_to_Execute('XDP_INTERFACES_CO_CUHK',
447 'Ok_to_Generate_msg',
448 'M',
449 'M'
450 ) then
451
452 if (XDP_INTERFACES_CO_CUHK.Ok_to_Generate_msg(
453 p_caller_name => l_caller_name,
454 p_sdp_order_id => l_sdp_order_id
455 )) then
456
457 --XMLGEN.clearBindValues;
458 --XMLGEN.setBindValue('ORDER_ID', l_sdp_order_id);
459
460 l_bind_data_id := JTF_USR_HKS.get_bind_data_id;
461 JTF_USR_HKS.Load_Bind_Data(
462 l_bind_data_id,
463 'ORDER_ID',
464 TO_CHAR(l_sdp_order_id),
465 'S',
466 'NUMBER');
467
468 JTF_USR_HKS.generate_message(
469 p_prod_code => 'XDP',
470 p_bus_obj_code => 'CO',
471 p_action_code => 'I',
472 p_correlation => NULL,
473 p_bind_data_id => l_bind_data_id,
474 x_return_code => l_return_code
475 );
476
477 if (l_return_code = FND_API.G_RET_STS_ERROR) then
478 RAISE FND_API.G_EXC_ERROR;
479 elsif (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR) then
480 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
481 end if;
482 end if;
483 end if;
484
485 /******* End of Message Generation Section ********/
486
487 x_return_status := FND_API.G_RET_STS_SUCCESS;
488
489 -- Standard check of p_commit.
490 IF FND_API.To_Boolean( p_commit ) THEN
491 COMMIT WORK;
492 END IF;
493
494 -- Standard call to get message count and if count is 1, get message info.
495 FND_MSG_PUB.Count_And_Get (
496 p_count => x_msg_count,
497 p_data => x_msg_data );
498
499 EXCEPTION
500 WHEN FND_API.G_EXC_ERROR THEN
501 -- ROLLBACK TO l_order_tag;
502 x_return_status := FND_API.G_RET_STS_ERROR ;
503 FND_MSG_PUB.Count_And_Get
504 ( p_count => x_msg_count ,
505 p_data => x_msg_data
506 );
507 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
508 -- ROLLBACK TO l_order_tag;
509 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
510 FND_MSG_PUB.Count_And_Get
511 ( p_count => x_msg_count,
512 p_data => x_msg_data
513 );
514 WHEN OTHERS THEN
515 -- ROLLBACK TO l_order_tag;
516 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
517 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
518 THEN
519 FND_MSG_PUB.Add_Exc_Msg
520 ( G_PKG_NAME ,
521 l_api_name
522 );
523 END IF;
524 FND_MSG_PUB.Count_And_Get
525 ( p_count => x_msg_count,
526 p_data => x_msg_data
527 );
528
529 END Cancel_Order;
530
531 PROCEDURE Get_Order_Parameter_Value(
532 p_api_version IN NUMBER,
533 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
534 x_RETURN_MSG OUT NOCOPY VARCHAR2,
535 x_ORDER_PARAM_VALUE OUT NOCOPY VARCHAR2,
536 P_SDP_ORDER_ID IN NUMBER,
537 P_ORDER_PARAM_NAME IN VARCHAR2,
538 p_CALLER_NAME IN VARCHAR2 ) IS
539 l_api_name CONSTANT VARCHAR2(30) := 'GET_ORDER_PARAMETER_VALUE';
540 l_api_version CONSTANT NUMBER := 11.5;
541 l_ret_code NUMBER := 0;
542 l_ret_desc VARCHAR2(2000);
543 BEGIN
544 -- Standard call to check for call compatibility.
545 IF NOT FND_API.Compatible_API_Call (
546 l_api_version,
547 p_api_version,
548 l_api_name,
549 G_PKG_NAME )
550 THEN
551 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
552 END IF;
553
554 /******* Start of API Body *******/
555 XDP_INTERFACES.Get_Order_Param_Value(
556 P_ORDER_ID => P_SDP_ORDER_ID,
557 p_parameter_name => P_ORDER_PARAM_NAME,
558 x_parameter_value => x_ORDER_PARAM_VALUE,
559 x_RETURN_CODE => l_ret_code,
560 x_ERROR_DESCRIPTION => l_ret_desc);
561 IF l_ret_code = 0 THEN
562 x_return_status := FND_API.G_RET_STS_SUCCESS;
563 x_RETURN_MSG := '';
564 ELSE
565 x_return_status := FND_API.G_RET_STS_ERROR;
566 x_RETURN_MSG := l_ret_desc;
567 END IF;
568
569 /******* End of API Body *******/
570 EXCEPTION
571 WHEN FND_API.G_EXC_ERROR THEN
572 x_return_status := FND_API.G_RET_STS_ERROR ;
573 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
574 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
575 WHEN OTHERS THEN
576 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
577
578 END Get_Order_Parameter_Value;
579
580 PROCEDURE Get_Order_Parameter_List(
581 p_api_version IN NUMBER,
582 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
583 x_RETURN_MSG OUT NOCOPY VARCHAR2,
584 x_ORDER_PARAM_LIST OUT NOCOPY XDP_ENGINE.PARAMETER_LIST,
585 P_SDP_ORDER_ID IN NUMBER,
586 p_CALLER_NAME IN VARCHAR2) IS
587 l_api_name CONSTANT VARCHAR2(30) := 'GET_ORDER_PARAMETER_LIST';
588 l_api_version CONSTANT NUMBER := 11.5;
589 l_ret_code NUMBER := 0;
590 l_ret_desc VARCHAR2(2000);
591 BEGIN
592 -- Standard call to check for call compatibility.
593 IF NOT FND_API.Compatible_API_Call (
594 l_api_version,
595 p_api_version,
596 l_api_name,
597 G_PKG_NAME )
598 THEN
599 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
600 END IF;
601
602 /******* Start of API Body *******/
603
604 x_ORDER_PARAM_LIST := XDP_INTERFACES.Get_Order_Param_List(
605 P_ORDER_ID => P_SDP_ORDER_ID,
606 x_RETURN_CODE => L_ret_code,
607 x_ERROR_DESCRIPTION => l_ret_desc);
608 IF l_ret_code = 0 THEN
609 x_return_status := FND_API.G_RET_STS_SUCCESS;
610 x_RETURN_MSG := '';
611 ELSE
612 x_return_status := FND_API.G_RET_STS_ERROR;
613 x_RETURN_MSG := l_ret_desc;
614 END IF;
615
616 /******* End of API Body *******/
617 EXCEPTION
618 WHEN FND_API.G_EXC_ERROR THEN
619 x_return_status := FND_API.G_RET_STS_ERROR ;
620 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
621 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
622 WHEN OTHERS THEN
623 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
624 END Get_Order_Parameter_List;
625
626 PROCEDURE Get_Line_Parameter_Value(
627 p_api_version IN NUMBER,
628 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
629 x_RETURN_MSG OUT NOCOPY VARCHAR2,
630 x_LINE_PARAM_VALUE OUT NOCOPY VARCHAR2,
631 P_SDP_ORDER_ID IN NUMBER,
632 P_LINE_NUMBER IN NUMBER,
633 P_LINE_PARAM_NAME IN VARCHAR2,
634 p_CALLER_NAME IN VARCHAR2 ) IS
635 l_api_name CONSTANT VARCHAR2(30) := 'GET_LINE_PARAMETER_VALUE';
636 l_api_version CONSTANT NUMBER := 11.5;
637 l_ret_code NUMBER := 0;
638 l_ret_desc VARCHAR2(2000);
639 BEGIN
640 -- Standard call to check for call compatibility.
641 IF NOT FND_API.Compatible_API_Call (
642 l_api_version,
643 p_api_version,
644 l_api_name,
645 G_PKG_NAME )
646 THEN
647 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
648 END IF;
649
650 /******* Start of API Body *******/
651 XDP_INTERFACES.Get_Line_Param_Value(
652 P_ORDER_ID => P_SDP_ORDER_ID,
653 p_LINE_NUMBER => P_LINE_NUMBER,
654 p_parameter_name => p_LINE_PARAM_NAME,
655 x_parameter_value => x_LINE_PARAM_VALUE,
656 x_RETURN_CODE => l_ret_code,
657 x_ERROR_DESCRIPTION => l_ret_desc);
658 IF l_ret_code = 0 THEN
659 x_return_status := FND_API.G_RET_STS_SUCCESS;
660 x_RETURN_MSG := '';
661 ELSE
662 x_return_status := FND_API.G_RET_STS_ERROR;
663 x_RETURN_MSG := l_ret_desc;
664 END IF;
665
666 /******* End of API Body *******/
667 EXCEPTION
668 WHEN FND_API.G_EXC_ERROR THEN
669 x_return_status := FND_API.G_RET_STS_ERROR ;
670 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
671 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
672 WHEN OTHERS THEN
673 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
674 END Get_Line_Parameter_Value;
675
676
677 /*
678 Open interface new APIs.
679
680 The following private procedures null all the gmiss fields
681 for their respective data structures.
682 */
683
684 PROCEDURE TO_NULL(p_order_header IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_HEADER);
685 PROCEDURE TO_NULL(p_order_param_list IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_PARAM_LIST);
686 PROCEDURE TO_NULL(p_order_line_list IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_LINE_LIST);
687 PROCEDURE TO_NULL(p_line_param_list IN OUT NOCOPY XDP_TYPES.SERVICE_LINE_PARAM_LIST);
688
689
690 -- Process Order
691
692 PROCEDURE Process_Order(
693 p_api_version IN NUMBER,
694 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
695 p_commit IN VARCHAR2 := FND_API.G_FALSE,
696 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
697 x_return_status OUT NOCOPY VARCHAR2,
698 x_msg_count OUT NOCOPY NUMBER,
699 x_msg_data OUT NOCOPY VARCHAR2,
700 x_error_code OUT NOCOPY VARCHAR2,
701 p_order_header IN XDP_TYPES.SERVICE_ORDER_HEADER:= XDP_TYPES.G_MISS_SERVICE_ORDER_HEADER,
702 p_order_param_list IN XDP_TYPES.SERVICE_ORDER_PARAM_LIST:= XDP_TYPES.G_MISS_ORDER_PARAM_LIST,
703 p_order_line_list IN XDP_TYPES.SERVICE_ORDER_LINE_LIST:= XDP_TYPES.G_MISS_SERVICE_ORDER_LINE_LIST,
704 p_line_param_list IN XDP_TYPES.SERVICE_LINE_PARAM_LIST:= XDP_TYPES.G_MISS_LINE_PARAM_LIST,
705 x_order_id OUT NOCOPY NUMBER
706 )
707 IS
708 l_api_name CONSTANT VARCHAR2(30) := 'PROCESS_ORDER';
709 l_api_version CONSTANT NUMBER := 11.5;
710
711 lv_ret NUMBER;
712 lv_str VARCHAR2(800);
713 lv_index BINARY_INTEGER;
714 lv_count NUMBER;
715 lv_done VARCHAR2(1);
716 lv_proc VARCHAR2(80);
717
718 l_return_code VARCHAR2(1);
719 l_data VARCHAR2(100);
720 l_count NUMBER;
721 l_order_id NUMBER;
722 l_OAI_array JTF_USR_HKS.OAI_data_array_type ;
723 l_bind_data_id NUMBER;
724
725 lv_order_header XDP_TYPES.SERVICE_ORDER_HEADER;
726 lv_order_param_list XDP_TYPES.SERVICE_ORDER_PARAM_LIST;
727 lv_order_line_list XDP_TYPES.SERVICE_ORDER_LINE_LIST;
728 lv_line_param_list XDP_TYPES.SERVICE_LINE_PARAM_LIST;
729
730 BEGIN
731 -- Standard call to check for call compatibility.
732
733 IF NOT FND_API.Compatible_API_Call (
734 l_api_version,
735 p_api_version,
736 l_api_name,
737 G_PKG_NAME
738 )
739 THEN
740 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
741 END IF;
742
743 -- Initialize message list if p_init_msg_list is set to TRUE.
744
745 IF FND_API.to_Boolean( p_init_msg_list ) THEN
746 FND_MSG_PUB.initialize;
747 END IF;
748
749 -- Converting G_Miss variables
750 x_error_code := 0;
751 lv_order_header := p_order_header;
752 lv_order_param_list := p_order_param_list;
753 lv_order_line_list := p_order_line_list;
754 lv_line_param_list := p_line_param_list;
755
756 -- Converting G_Miss variables to null before calling any internal pl/sql procedures
757
758 TO_NULL(lv_order_header);
759 TO_NULL(lv_order_param_list);
760 TO_NULL(lv_order_line_list);
761 TO_NULL(lv_line_param_list);
762
763 IF JTF_USR_HKS.Ok_to_Execute(
764 'XDP_INTERFACES_SO_CUHK',
765 'PROCESS_ORDER_PRE',
766 'B','C' )
767 THEN
768 XDP_INTERFACES_SO_CUHK.Process_Order_Pre(
769 p_order_header => lv_order_header,
770 p_order_param_list => lv_order_param_list,
771 p_order_line_list => lv_order_line_list,
772 p_line_param_list => lv_line_param_list,
773 p_order_id => l_order_id,
774 x_data => l_data,
775 x_count => l_count,
776 x_return_code => l_return_code );
777 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
778 RAISE FND_API.G_EXC_ERROR;
779 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
780 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
781 END IF;
782 END IF;
783
784 IF JTF_USR_HKS.Ok_to_Execute(
785 'XDP_INTERFACES_SO_VUHK',
786 'PROCESS_ORDER_PRE',
787 'B','V')
788 THEN
789 XDP_INTERFACES_SO_VUHK.Process_Order_Pre(
790 p_order_header => lv_order_header,
791 p_order_param_list => lv_order_param_list,
792 p_order_line_list => lv_order_line_list,
793 p_line_param_list => lv_line_param_list,
794 p_order_id => l_order_id,
795 x_data => l_data,
796 x_count => l_count,
797 x_return_code => l_return_code );
798 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
799 RAISE FND_API.G_EXC_ERROR;
800 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
801 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
802 END IF;
803 END IF;
804
805 /******* Start of API Body *******/
806
807 XDP_ORDER.Process_Order(
808 lv_order_header,
809 lv_order_param_list,
810 lv_order_line_list,
811 lv_line_param_list,
812 l_order_id,
813 lv_ret,
814 lv_str
815 );
816
817 IF lv_ret <> 0 THEN
818 x_return_status := FND_API.G_RET_STS_ERROR ;
819 x_error_code := lv_ret;
820 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_PROCESS_FAIL');
821 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
822 FND_MSG_PUB.Add;
823 FND_MSG_PUB.COUNT_AND_GET(
824 p_count => x_msg_count,
825 p_data => x_msg_data
826 );
827 --
828 -- We do not wrap the error message as FND_MSG does for UI messages
829 -- This will return the error message only
830 --
831 x_msg_data := lv_str;
832 RETURN;
833 END IF;
834
835 /******* End of API Body *******/
836
837
838 /******* Post Processing call *******/
839 x_order_id := l_order_id;
840
841 IF JTF_USR_HKS.Ok_to_Execute(
842 'XDP_INTERFACES_SO_CUHK',
843 'PROCESS_ORDER_POST',
844 'A','C' )
845 THEN
846 XDP_INTERFACES_SO_CUHK.Process_Order_Post(
847 p_order_header => lv_order_header,
848 p_order_param_list => lv_order_param_list,
849 p_order_line_list => lv_order_line_list,
850 p_line_param_list => lv_line_param_list,
851 p_order_id => l_order_id,
852 x_data => l_data,
853 x_count => l_count,
854 x_return_code => l_return_code );
855 IF ( l_return_code = FND_API.G_RET_STS_ERROR ) THEN
856 RAISE FND_API.G_EXC_ERROR;
857 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
858 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
859 END IF;
860 END IF;
861
862 IF JTF_USR_HKS.Ok_to_Execute(
863 'XDP_INTERFACES_SO_VUHK',
864 'PROCESS_ORDER_POST',
865 'A','V' )
866 THEN
867 XDP_INTERFACES_SO_VUHK.Process_Order_Post(
868 p_order_header => lv_order_header,
869 p_order_param_list => lv_order_param_list,
870 p_order_line_list => lv_order_line_list,
871 p_line_param_list => lv_line_param_list,
872 p_order_id => l_order_id,
873 x_data => l_data,
874 x_count => l_count,
875 x_return_code => l_return_code );
876 IF ( l_return_code = FND_API.G_RET_STS_ERROR ) THEN
877 RAISE FND_API.G_EXC_ERROR;
878 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
879 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
880 END IF;
881 END IF;
882
883 /******* Message Generation Section ********/
884
885 IF JTF_USR_HKS.Ok_to_Execute(
886 'XDP_INTERFACES_SO_CUHK',
887 'Ok_to_Generate_msg',
888 'M','M')
889 THEN
890 IF (XDP_INTERFACES_SO_CUHK.Ok_to_Generate_msg(
891 p_order_header => lv_order_header,
892 p_order_param_list => lv_order_param_list,
893 p_order_line_list => lv_order_line_list,
894 p_line_param_list => lv_line_param_list,
895 p_order_id => l_order_id)) THEN
896
897 -- XMLGEN.clearBindValues;
898 -- XMLGEN.setBindValue('ORDER_ID', l_sdp_order_id);
899
900 l_bind_data_id := JTF_USR_HKS.get_bind_data_id;
901 JTF_USR_HKS.Load_Bind_Data(
902 l_bind_data_id,
903 'ORDER_ID',
904 TO_CHAR(l_order_id),
905 'S',
906 'NUMBER');
907
908 JTF_USR_HKS.generate_message(
909 p_prod_code => 'XDP',
910 p_bus_obj_code => 'PO',
911 p_action_code => 'I',
912 p_correlation => NULL,
913 p_bind_data_id => l_bind_data_id,
914 x_return_code => l_return_code
915 );
916
917 IF (l_return_code = FND_API.G_RET_STS_ERROR) THEN
918 RAISE FND_API.G_EXC_ERROR;
919 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR) THEN
920 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
921 END IF;
922 END IF;
923 END IF;
924
925 /******* End of Message Generation Section ********/
926
927 x_return_status := FND_API.G_RET_STS_SUCCESS;
928 x_error_code := 0;
929
930 -- Standard check of p_commit.
931
932 IF FND_API.To_Boolean(p_commit) THEN
933 COMMIT WORK;
934 END IF;
935
936 -- Standard call to get message count and if count is 1, get message info.
937
938 FND_MSG_PUB.Count_And_Get (
939 p_count => x_msg_count,
940 p_data => x_msg_data );
941
942 EXCEPTION
943 WHEN FND_API.G_EXC_ERROR THEN
944 -- ROLLBACK TO l_order_tag;
945 x_return_status := FND_API.G_RET_STS_ERROR ;
946 x_error_code := SQLCODE;
947 FND_MSG_PUB.Count_And_Get
948 ( p_count => x_msg_count ,
949 p_data => x_msg_data
950 );
951 x_msg_data := SQLERRM;
952 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
953 -- ROLLBACK TO l_order_tag;
954 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
955 x_error_code := SQLCODE;
956 FND_MSG_PUB.Count_And_Get
957 ( p_count => x_msg_count,
958 p_data => x_msg_data
959 );
960 x_msg_data := SQLERRM;
961 WHEN OTHERS THEN
962 -- ROLLBACK TO l_order_tag;
963 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
964 x_error_code := SQLCODE;
965 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
966 THEN
967 FND_MSG_PUB.Add_Exc_Msg
968 ( G_PKG_NAME ,
969 l_api_name
970 );
971 END IF;
972 FND_MSG_PUB.Count_And_Get
973 ( p_count => x_msg_count,
974 p_data => x_msg_data
975 );
976 x_msg_data := SQLERRM;
977 END Process_Order;
978
979
980 PROCEDURE Cancel_Order(
981 p_api_version IN NUMBER,
982 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
983 p_commit IN VARCHAR2 := FND_API.G_FALSE,
984 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
985 x_return_status OUT NOCOPY VARCHAR2,
986 x_msg_count OUT NOCOPY NUMBER,
987 x_msg_data OUT NOCOPY VARCHAR2,
988 p_order_number IN VARCHAR2,
989 p_order_version IN VARCHAR2,
990 p_order_id IN NUMBER,
991 x_error_code OUT NOCOPY VARCHAR2,
992 p_caller_name IN VARCHAR2
993 )
994 IS
995 l_api_name CONSTANT VARCHAR2(30) := 'CANCEL_ORDER';
996 l_api_version CONSTANT NUMBER := 11.5;
997
998 l_order_id NUMBER;
999 l_order_number VARCHAR2(40);
1000 l_order_version VARCHAR2(40);
1001
1002 lv_ret NUMBER;
1003 lv_str VARCHAR2(800);
1004 lv_index BINARY_INTEGER;
1005 lv_count NUMBER;
1006 lv_done VARCHAR2(1);
1007 lv_proc VARCHAR2(80);
1008
1009 l_return_code VARCHAR2(1);
1010 l_data Varchar2(100);
1011 l_count Number;
1012 l_caller_name VARCHAR2(100);
1013
1014 BEGIN
1015
1016 -- Standard call to check for call compatibility.
1017
1018 IF NOT FND_API.Compatible_API_Call (
1019 l_api_version,
1020 p_api_version,
1021 l_api_name,
1022 G_PKG_NAME )
1023 THEN
1024 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1025 END IF;
1026
1027 -- Initialize message list if p_init_msg_list is set to TRUE.
1028
1029 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1030 FND_MSG_PUB.initialize;
1031 END IF;
1032
1033 l_caller_name := p_caller_name;
1034
1035 l_order_id := p_order_id;
1036 l_order_number := p_order_number;
1037 l_order_version := p_order_version;
1038
1039 IF JTF_USR_HKS.Ok_to_Execute(
1040 'XDP_INTERFACES_CS_CUHK',
1041 'CANCEL_ORDER_PRE',
1042 'B','C' )
1043 THEN
1044 XDP_INTERFACES_CS_CUHK.Cancel_Order_Pre(
1045 p_caller_name => l_caller_name,
1046 p_order_id => l_order_id,
1047 p_order_number => l_order_number,
1048 p_order_version => l_order_version,
1049 x_data => l_data,
1050 x_count => l_count,
1051 x_return_code => l_return_code );
1052 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1053 RAISE FND_API.G_EXC_ERROR;
1054 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1055 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1056 END IF;
1057 END IF;
1058
1059 IF JTF_USR_HKS.Ok_to_Execute(
1060 'XDP_INTERFACES_CS_VUHK',
1061 'CANCEL_ORDER_PRE',
1062 'B','V' )
1063 THEN
1064 XDP_INTERFACES_CS_VUHK.Cancel_Order_Pre(
1065 p_caller_name => l_caller_name,
1066 p_order_id => l_order_id,
1067 p_order_number => l_order_number,
1068 p_order_version => l_order_version,
1069 x_data => l_data,
1070 x_count => l_count,
1071 x_return_code => l_return_code );
1072 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1073 RAISE FND_API.G_EXC_ERROR;
1074 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1075 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1076 END IF;
1077 END IF;
1078
1079
1080 /******* Start of API Body *******/
1081
1082 /*
1083 This one will go through XDP_INTERFACES as the detail implementation
1084 for cancelling an order is in XDP_INTERFACES. However, it will
1085 be moved to XDP_ORDER, then these calls should point to the respective
1086 Internal APIs.
1087 */
1088
1089 IF p_order_id is NOT NULL THEN
1090 XDP_INTERFACES.Cancel_Order(
1091 p_sdp_order_id => p_order_id,
1092 p_caller_name => p_caller_name,
1093 RETURN_CODE => lv_ret,
1094 ERROR_DESCRIPTION => lv_str);
1095 ELSE
1096 XDP_INTERFACES.Cancel_Order(
1097 p_order_number => p_order_number,
1098 p_order_version => p_order_version,
1099 p_caller_name => p_caller_name,
1100 RETURN_CODE => lv_ret,
1101 ERROR_DESCRIPTION => lv_str);
1102 END IF;
1103
1104
1105 IF lv_ret <> 0 THEN
1106 x_error_code := lv_ret;
1107 x_return_status := FND_API.G_RET_STS_ERROR ;
1108 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_CANCEL_FAIL');
1109 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
1110 FND_MSG_PUB.Add;
1111 FND_MSG_PUB.COUNT_AND_GET
1112 ( p_count => x_msg_count,
1113 p_data => x_msg_data
1114 );
1115 --
1116 -- We do not wrap the error message as FND_MSG does for UI messages
1117 -- This will return the error message only
1118 --
1119 x_msg_data := lv_str;
1120 RETURN;
1121 END IF;
1122
1123
1124 /******* End of API Body *******/
1125
1126 /******* Post Processing call *******/
1127
1128
1129 IF JTF_USR_HKS.Ok_to_Execute(
1130 'XDP_INTERFACES_CS_CUHK',
1131 'CANCEL_ORDER_POST',
1132 'A','C' )
1133 THEN
1134 XDP_INTERFACES_CS_CUHK.Cancel_Order_Post(
1135 p_caller_name => l_caller_name,
1136 p_order_id => l_order_id,
1137 p_order_number => l_order_number,
1138 p_order_version => l_order_version,
1139 x_data => l_data,
1140 x_count => l_count,
1141 x_return_code => l_return_code );
1142 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1143 RAISE FND_API.G_EXC_ERROR;
1144 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1145 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1146 END IF;
1147 END IF;
1148
1149 IF JTF_USR_HKS.Ok_to_Execute(
1150 'XDP_INTERFACES_CS_VUHK',
1151 'CANCEL_ORDER_POST',
1152 'A','V' )
1153 THEN
1154 XDP_INTERFACES_CS_VUHK.Cancel_Order_Post(
1155 p_caller_name => l_caller_name,
1156 p_order_id => l_order_id,
1157 p_order_number => l_order_number,
1158 p_order_version => l_order_version,
1159 x_data => l_data,
1160 x_count => l_count,
1161 x_return_code => l_return_code );
1162 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1163 RAISE FND_API.G_EXC_ERROR;
1164 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1165 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1166 END IF;
1167 END IF;
1168
1169 /******* Message Generation Section ********/
1170
1171 IF JTF_USR_HKS.Ok_to_Execute(
1172 'XDP_INTERFACES_CS_CUHK',
1173 'Ok_to_Generate_msg',
1174 'M','M')
1175 THEN
1176 lv_ret := 0;
1177 END IF;
1178
1179 /******* End of Message Generation Section ********/
1180
1181 x_return_status := FND_API.G_RET_STS_SUCCESS;
1182
1183 -- Standard check of p_commit.
1184
1185 IF FND_API.To_Boolean(p_commit) THEN
1186 COMMIT WORK;
1187 END IF;
1188
1189 -- Standard call to get message count and if count is 1, get message info.
1190
1191 FND_MSG_PUB.Count_And_Get (
1192 p_count => x_msg_count,
1193 p_data => x_msg_data );
1194
1195 EXCEPTION
1196 WHEN FND_API.G_EXC_ERROR THEN
1197 -- ROLLBACK TO l_order_tag;
1198 x_return_status := FND_API.G_RET_STS_ERROR ;
1199 x_error_code := SQLCODE;
1200 FND_MSG_PUB.Count_And_Get
1201 ( p_count => x_msg_count ,
1202 p_data => x_msg_data
1203 );
1204 x_msg_data := SQLERRM;
1205 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1206 -- ROLLBACK TO l_order_tag;
1207 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1208 x_error_code := SQLCODE;
1209 FND_MSG_PUB.Count_And_Get
1210 ( p_count => x_msg_count,
1211 p_data => x_msg_data
1212 );
1213 x_msg_data := SQLERRM;
1214 WHEN OTHERS THEN
1215 -- ROLLBACK TO l_order_tag;
1216 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1217 x_error_code := SQLCODE;
1218 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1219 THEN
1220 FND_MSG_PUB.Add_Exc_Msg
1221 ( G_PKG_NAME ,
1222 l_api_name
1223 );
1224 END IF;
1225 FND_MSG_PUB.Count_And_Get
1226 ( p_count => x_msg_count,
1227 p_data => x_msg_data
1228 );
1229 x_msg_data := SQLERRM;
1230 END Cancel_Order;
1231
1232
1233 PROCEDURE Get_Order_Details(
1234 p_api_version IN NUMBER,
1235 p_init_msg_list IN VARCHAR2,
1236 p_commit IN VARCHAR2,
1237 p_validation_level IN NUMBER,
1238 x_return_status OUT NOCOPY VARCHAR2,
1239 x_msg_count OUT NOCOPY NUMBER,
1240 x_msg_data OUT NOCOPY VARCHAR2,
1241 x_error_code OUT NOCOPY VARCHAR2,
1242 p_order_number IN VARCHAR2,
1243 p_order_version IN VARCHAR2,
1244 p_order_id IN NUMBER,
1245 x_order_header OUT NOCOPY XDP_TYPES.SERVICE_ORDER_HEADER,
1246 x_order_param_list OUT NOCOPY XDP_TYPES.SERVICE_ORDER_PARAM_LIST,
1247 x_line_item_list OUT NOCOPY XDP_TYPES.SERVICE_ORDER_LINE_LIST,
1248 x_line_param_list OUT NOCOPY XDP_TYPES.SERVICE_LINE_PARAM_LIST
1249 )
1250 IS
1251 l_api_name CONSTANT VARCHAR2(30) := 'GET_ORDER_DETAILS';
1252 l_api_version CONSTANT NUMBER := 11.5;
1253 lv_ret NUMBER;
1254 lv_str VARCHAR2(800);
1255 lv_index BINARY_INTEGER;
1256 lv_count NUMBER;
1257 lv_done VARCHAR2(1);
1258 lv_proc VARCHAR2(80);
1259
1260 l_return_code VARCHAR2(1);
1261 l_data Varchar2(100);
1262 l_count Number;
1263
1264 l_order_id NUMBER;
1265 l_order_number VARCHAR2(40);
1266 l_order_version VARCHAR2(40);
1267
1268 BEGIN
1269
1270 -- Standard call to check for call compatibility.
1271
1272 IF NOT FND_API.Compatible_API_Call (
1273 l_api_version,
1274 p_api_version,
1275 l_api_name,
1276 G_PKG_NAME )
1277 THEN
1278 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1279 END IF;
1280
1281 -- Initialize message list if p_init_msg_list is set to TRUE.
1282
1283 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1284 FND_MSG_PUB.initialize;
1285 END IF;
1286
1287 l_order_id := p_order_id;
1288 l_order_number := p_order_number;
1289 l_order_version := p_order_version;
1290
1291 IF JTF_USR_HKS.Ok_to_Execute(
1292 'XDP_INTERFACES_OD_CUHK',
1293 'GET_ORDER_DETAILS_PRE',
1294 'B','C' )
1295 THEN
1296 XDP_INTERFACES_OD_CUHK.GET_ORDER_DETAILS_PRE(
1297 p_order_id => l_order_id,
1298 p_order_number => l_order_number,
1299 p_order_version => l_order_version,
1300 x_order_header =>x_order_header,
1301 x_order_param_list =>x_order_param_list,
1302 x_line_item_list =>x_line_item_list,
1303 x_line_param_list =>x_line_param_list,
1304 x_data => l_data,
1305 x_count => l_count,
1306 x_return_code => l_return_code );
1307 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1308 RAISE FND_API.G_EXC_ERROR;
1309 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1310 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1311 END IF;
1312 END IF;
1313
1314 IF JTF_USR_HKS.Ok_to_Execute(
1315 'XDP_INTERFACES_OD_VUHK',
1316 'GET_ORDER_DETAILS_PRE',
1317 'B',
1318 'V' )
1319 THEN
1320 XDP_INTERFACES_OD_VUHK.GET_ORDER_DETAILS_PRE(
1321 p_order_id => l_order_id,
1322 p_order_number => l_order_number,
1323 p_order_version => l_order_version,
1324 x_order_header =>x_order_header,
1325 x_order_param_list =>x_order_param_list,
1326 x_line_item_list =>x_line_item_list,
1327 x_line_param_list =>x_line_param_list,
1328 x_data => l_data,
1329 x_count => l_count,
1330 x_return_code => l_return_code );
1331 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1332 RAISE FND_API.G_EXC_ERROR;
1333 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1334 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1335 END IF;
1336 END IF;
1337
1338
1339 /******* Start of API Body *******/
1340
1341 XDP_INTERFACES.Get_Order_Details(
1342 p_order_id,
1343 p_order_number,
1344 p_order_version,
1345 x_order_header,
1346 x_order_param_list,
1347 x_line_item_list,
1348 x_line_param_list,
1349 lv_ret,
1350 lv_str
1351 );
1352
1353 IF lv_ret <> 0 THEN
1354 x_return_status := FND_API.G_RET_STS_ERROR ;
1355 x_error_code := lv_ret;
1356 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_DETAILS_FAIL');
1357 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
1358 FND_MSG_PUB.Add;
1359 FND_MSG_PUB.COUNT_AND_GET
1360 ( p_count => x_msg_count,
1361 p_data => x_msg_data
1362 );
1363 --
1364 -- We do not wrap the error message as FND_MSG does for UI messages
1365 -- This will return the error message only
1366 --
1367 x_msg_data := lv_str;
1368 RETURN;
1369 END IF;
1370 /******* End of API Body *******/
1371
1372
1373 /******* Post Processing call *******/
1374
1375 IF JTF_USR_HKS.Ok_to_Execute(
1376 'XDP_INTERFACES_OD_CUHK',
1377 'GET_ORDER_DETAILS_POST',
1378 'A','C' )
1379 THEN
1380 XDP_INTERFACES_OD_CUHK.GET_ORDER_DETAILS_POST(
1381 p_order_id => l_order_id,
1382 p_order_number => l_order_number,
1383 p_order_version => l_order_version,
1384 x_order_header =>x_order_header,
1385 x_order_param_list =>x_order_param_list,
1386 x_line_item_list =>x_line_item_list,
1387 x_line_param_list =>x_line_param_list,
1388 x_data => l_data,
1389 x_count => l_count,
1390 x_return_code => l_return_code );
1391 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1392 RAISE FND_API.G_EXC_ERROR;
1393 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1394 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1395 END IF;
1396 END IF;
1397
1398 IF JTF_USR_HKS.Ok_to_Execute(
1399 'XDP_INTERFACES_OD_VUHK',
1400 'GET_ORDER_DETAILS_POST',
1401 'A','V' )
1402 THEN
1403 XDP_INTERFACES_OD_VUHK.GET_ORDER_DETAILS_POST(
1404 p_order_id => l_order_id,
1405 p_order_number => l_order_number,
1406 p_order_version => l_order_version,
1407 x_order_header =>x_order_header,
1408 x_order_param_list =>x_order_param_list,
1409 x_line_item_list =>x_line_item_list,
1410 x_line_param_list =>x_line_param_list,
1411 x_data => l_data,
1412 x_count => l_count,
1413 x_return_code => l_return_code );
1414 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1415 RAISE FND_API.G_EXC_ERROR;
1416 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1417 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1418 END IF;
1419 END IF;
1420
1421 x_return_status := FND_API.G_RET_STS_SUCCESS;
1422
1423 -- Standard check of p_commit. DO NOT NEED TO
1424
1425 -- IF FND_API.To_Boolean(p_commit) THEN
1426 -- COMMIT WORK;
1427 -- END IF;
1428
1429 -- Standard call to get message count and if count is 1, get message info.
1430
1431 FND_MSG_PUB.Count_And_Get (
1432 p_count => x_msg_count,
1433 p_data => x_msg_data );
1434
1435 EXCEPTION
1436 WHEN FND_API.G_EXC_ERROR THEN
1437 -- ROLLBACK TO l_order_tag;
1438 x_return_status := FND_API.G_RET_STS_ERROR ;
1439 x_error_code := SQLCODE;
1440 FND_MSG_PUB.Count_And_Get
1441 ( p_count => x_msg_count ,
1442 p_data => x_msg_data
1443 );
1444 x_msg_data := SQLERRM;
1445 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1446 -- ROLLBACK TO l_order_tag;
1447 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1448 x_error_code := SQLCODE;
1449 FND_MSG_PUB.Count_And_Get
1450 ( p_count => x_msg_count,
1451 p_data => x_msg_data
1452 );
1453 x_msg_data := SQLERRM;
1454 WHEN OTHERS THEN
1455 -- ROLLBACK TO l_order_tag;
1456 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1457 x_error_code := SQLCODE;
1458 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1459 THEN
1460 FND_MSG_PUB.Add_Exc_Msg
1461 ( G_PKG_NAME ,
1462 l_api_name
1463 );
1464 END IF;
1465 FND_MSG_PUB.Count_And_Get
1466 ( p_count => x_msg_count,
1467 p_data => x_msg_data
1468 );
1469 x_msg_data := SQLERRM;
1470 END Get_Order_Details;
1471
1472 --
1473 -- To retrieve order status as defined by XDP_TYPES.SERVICE_ORDER_STATUS
1474 --
1475 PROCEDURE Get_Order_Status(
1476 p_api_version IN NUMBER,
1477 p_init_msg_list IN VARCHAR2,
1478 p_commit IN VARCHAR2,
1479 p_validation_level IN NUMBER,
1480 x_return_status OUT NOCOPY VARCHAR2,
1481 x_msg_count OUT NOCOPY NUMBER,
1482 x_msg_data OUT NOCOPY VARCHAR2,
1483 x_error_code OUT NOCOPY VARCHAR2,
1484 p_order_number IN VARCHAR2,
1485 p_order_version IN VARCHAR2,
1486 p_order_id IN NUMBER,
1487 x_order_status OUT NOCOPY XDP_TYPES.SERVICE_ORDER_STATUS
1488 )
1489 IS
1490 l_api_name CONSTANT VARCHAR2(30) := 'GET_ORDER_STATUS';
1491 l_api_version CONSTANT NUMBER := 11.5;
1492 lv_ret NUMBER;
1493 lv_str VARCHAR2(800);
1494 lv_index BINARY_INTEGER;
1495 lv_count NUMBER;
1496 lv_done VARCHAR2(1);
1497 lv_proc VARCHAR2(80);
1498
1499 l_return_code VARCHAR2(1);
1500 l_data Varchar2(100);
1501 l_count Number;
1502
1503 l_order_id NUMBER;
1504 l_order_number VARCHAR2(40);
1505 l_order_version VARCHAR2(40);
1506
1507 BEGIN
1508
1509 -- Standard call to check for call compatibility.
1510
1511 IF NOT FND_API.Compatible_API_Call (
1512 l_api_version,
1513 p_api_version,
1514 l_api_name,
1515 G_PKG_NAME )
1516 THEN
1517 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1518 END IF;
1519
1520 -- Initialize message list if p_init_msg_list is set to TRUE.
1521
1522 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1523 FND_MSG_PUB.initialize;
1524 END IF;
1525
1526 l_order_id := p_order_id;
1527 l_order_number := p_order_number;
1528 l_order_version := p_order_version;
1529
1530 IF JTF_USR_HKS.Ok_to_Execute(
1531 'XDP_INTERFACES_OS_CUHK',
1532 'GET_ORDER_STATUS_PRE',
1533 'B','C' )
1534 THEN
1535 XDP_INTERFACES_OS_CUHK.GET_ORDER_STATUS_PRE(
1536 p_order_id => l_order_id,
1537 p_order_number => l_order_number,
1538 p_order_version => l_order_version,
1539 x_order_status =>x_order_status,
1540 x_data => l_data,
1541 x_count => l_count,
1542 x_return_code => l_return_code );
1543 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1544 RAISE FND_API.G_EXC_ERROR;
1545 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1546 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1547 END IF;
1548 END IF;
1549
1550 IF JTF_USR_HKS.Ok_to_Execute(
1551 'XDP_INTERFACES_OS_VUHK',
1552 'GET_ORDER_STATUS_PRE',
1553 'B',
1554 'V' )
1555 THEN
1556 XDP_INTERFACES_OS_VUHK.GET_ORDER_STATUS_PRE(
1557 p_order_id => l_order_id,
1558 p_order_number => l_order_number,
1559 p_order_version => l_order_version,
1560 x_order_status =>x_order_status,
1561 x_data => l_data,
1562 x_count => l_count,
1563 x_return_code => l_return_code );
1564 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1565 RAISE FND_API.G_EXC_ERROR;
1566 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1567 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1568 END IF;
1569 END IF;
1570
1571
1572 /******* Start of API Body *******/
1573 XDP_INTERFACES.Get_Order_Status(
1574 p_order_id,
1575 p_order_number,
1576 p_order_version,
1577 x_order_status,
1578 lv_ret,
1579 lv_str
1580 );
1581 IF lv_ret <> 0 THEN
1582 x_return_status := FND_API.G_RET_STS_ERROR ;
1583 x_error_code := lv_ret;
1584 FND_MESSAGE.SET_NAME('XDP', 'XDP_INTFACE_STATUS_FAIL');
1585 FND_MESSAGE.SET_TOKEN('ERROR_MSG',lv_str);
1586 FND_MSG_PUB.Add;
1587 FND_MSG_PUB.COUNT_AND_GET
1588 ( p_count => x_msg_count,
1589 p_data => x_msg_data
1590 );
1591 --
1592 -- We do not wrap the error message as FND_MSG does for UI messages
1593 -- This will return the error message only
1594 --
1595 x_msg_data := lv_str;
1596 RETURN;
1597 END IF;
1598 /******* End of API Body *******/
1599
1600
1601 /******* Post Processing call *******/
1602
1603 IF JTF_USR_HKS.Ok_to_Execute(
1604 'XDP_INTERFACES_OS_CUHK',
1605 'GET_ORDER_STATUS_POST',
1606 'A','C' )
1607 THEN
1608 XDP_INTERFACES_OS_CUHK.GET_ORDER_STATUS_POST(
1609 p_order_id => l_order_id,
1610 p_order_number => l_order_number,
1611 p_order_version => l_order_version,
1612 x_order_status =>x_order_status,
1613 x_data => l_data,
1614 x_count => l_count,
1615 x_return_code => l_return_code );
1616 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1617 RAISE FND_API.G_EXC_ERROR;
1618 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1619 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1620 END IF;
1621 END IF;
1622
1623 IF JTF_USR_HKS.Ok_to_Execute(
1624 'XDP_INTERFACES_OS_VUHK',
1625 'GET_ORDER_STATUS_POST',
1626 'A','V' )
1627 THEN
1628 XDP_INTERFACES_OS_VUHK.GET_ORDER_STATUS_POST(
1629 p_order_id => l_order_id,
1630 p_order_number => l_order_number,
1631 p_order_version => l_order_version,
1632 x_order_status =>x_order_status,
1633 x_data => l_data,
1634 x_count => l_count,
1635 x_return_code => l_return_code );
1636 IF (l_return_code = FND_API.G_RET_STS_ERROR ) THEN
1637 RAISE FND_API.G_EXC_ERROR;
1638 ELSIF (l_return_code = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1639 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1640 END IF;
1641 END IF;
1642
1643 x_return_status := FND_API.G_RET_STS_SUCCESS;
1644
1645 -- Standard check of p_commit. DO NOT NEED TO
1646
1647 -- IF FND_API.To_Boolean(p_commit) THEN
1648 -- COMMIT WORK;
1649 -- END IF;
1650
1651 -- Standard call to get message count and if count is 1, get message info.
1652
1653 FND_MSG_PUB.Count_And_Get (
1654 p_count => x_msg_count,
1655 p_data => x_msg_data );
1656
1657 EXCEPTION
1658 WHEN FND_API.G_EXC_ERROR THEN
1659 -- ROLLBACK TO l_order_tag;
1660 x_return_status := FND_API.G_RET_STS_ERROR ;
1661 x_error_code := SQLCODE;
1662 FND_MSG_PUB.Count_And_Get
1663 ( p_count => x_msg_count ,
1664 p_data => x_msg_data
1665 );
1666 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1667 -- ROLLBACK TO l_order_tag;
1668 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1669 x_error_code := SQLCODE;
1670 FND_MSG_PUB.Count_And_Get
1671 ( p_count => x_msg_count,
1672 p_data => x_msg_data
1673 );
1674 WHEN OTHERS THEN
1675 -- ROLLBACK TO l_order_tag;
1676 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1677 x_error_code := SQLCODE;
1678 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1679 THEN
1680 FND_MSG_PUB.Add_Exc_Msg
1681 ( G_PKG_NAME ,
1682 l_api_name
1683 );
1684 END IF;
1685 FND_MSG_PUB.Count_And_Get
1686 ( p_count => x_msg_count,
1687 p_data => x_msg_data
1688 );
1689 END Get_Order_Status;
1690
1691
1692 --PRIVATE PROCEDURE , CONVERTING G_MISSES TO NULL
1693
1694 PROCEDURE TO_NULL(p_order_header IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_HEADER)
1695 IS
1696 BEGIN
1697 IF p_order_header.order_number = FND_API.G_MISS_CHAR THEN
1698 p_order_header.order_number := NULL;
1699 END IF;
1700 IF p_order_header.account_number = FND_API.G_MISS_CHAR THEN
1701 p_order_header.account_number := NULL;
1702 END IF;
1703 IF p_order_header.cust_account_id = FND_API.G_MISS_NUM THEN
1704 p_order_header.cust_account_id := NULL;
1705 END IF;
1706 IF p_order_header.due_date = FND_API.G_MISS_DATE THEN
1707 p_order_header.due_date := NULL;
1708 END IF;
1709
1710 IF p_order_header.customer_required_date = FND_API.G_MISS_DATE THEN
1711 p_order_header.customer_required_date := NULL;
1712 END IF;
1713
1714 IF p_order_header.customer_name = FND_API.G_MISS_CHAR THEN
1715 p_order_header.customer_name := NULL;
1716 END IF;
1717 IF p_order_header.customer_id = FND_API.G_MISS_NUM THEN
1718 p_order_header.customer_id := NULL;
1719 END IF;
1720 IF p_order_header.telephone_number = FND_API.G_MISS_CHAR THEN
1721 p_order_header.telephone_number := NULL;
1722 END IF;
1723
1724 IF p_order_header.order_type = FND_API.G_MISS_CHAR THEN
1725 p_order_header.order_type := NULL;
1726 END IF;
1727
1728 IF p_order_header.order_source = FND_API.G_MISS_CHAR THEN
1729 p_order_header.order_source := NULL;
1730 END IF;
1731
1732 IF p_order_header.org_id = FND_API.G_MISS_NUM THEN
1733 p_order_header.org_id := NULL;
1734 END IF;
1735
1736 IF p_order_header.related_order_id = FND_API.G_MISS_NUM THEN
1737 p_order_header.related_order_id := NULL;
1738 END IF;
1739
1740 IF p_order_header.previous_order_id = FND_API.G_MISS_NUM THEN
1741 p_order_header.previous_order_id := NULL;
1742 END IF;
1743
1744 IF p_order_header.next_order_id = FND_API.G_MISS_NUM THEN
1745 p_order_header.next_order_id := NULL;
1746 END IF;
1747
1748 IF p_order_header.order_ref_name = FND_API.G_MISS_CHAR THEN
1749 p_order_header.order_ref_name := NULL;
1750 END IF;
1751
1752 IF p_order_header.order_ref_value = FND_API.G_MISS_CHAR THEN
1753 p_order_header.order_ref_value := NULL;
1754 END IF;
1755 IF p_order_header.order_comments = FND_API.G_MISS_CHAR THEN
1756 p_order_header.order_comments := NULL;
1757 END IF;
1758 IF p_order_header.order_ref_name = FND_API.G_MISS_CHAR THEN
1759 p_order_header.order_ref_name := NULL;
1760 END IF;
1761
1762 IF p_order_header.order_id = FND_API.G_MISS_NUM THEN
1763 p_order_header.order_id := NULL;
1764 END IF;
1765
1766 IF p_order_header.order_status = FND_API.G_MISS_CHAR THEN
1767 p_order_header.order_status := NULL;
1768 END IF;
1769 IF p_order_header.fulfillment_status = FND_API.G_MISS_CHAR THEN
1770 p_order_header.fulfillment_status := NULL;
1771 END IF;
1772 IF p_order_header.fulfillment_result = FND_API.G_MISS_CHAR THEN
1773 p_order_header.fulfillment_result := NULL;
1774 END IF;
1775 IF p_order_header.completion_date = FND_API.G_MISS_DATE THEN
1776 p_order_header.completion_date := NULL;
1777 END IF;
1778 IF p_order_header.actual_fulfillment_date = FND_API.G_MISS_DATE THEN
1779 p_order_header.actual_fulfillment_date := NULL;
1780 END IF;
1781
1782 IF p_order_header.attribute_category = FND_API.G_MISS_CHAR THEN
1783 p_order_header.attribute_category := NULL;
1784 END IF;
1785
1786 IF p_order_header.attribute1 = FND_API.G_MISS_CHAR THEN
1787 p_order_header.attribute1 := NULL;
1788 END IF;
1789 IF p_order_header.attribute2 = FND_API.G_MISS_CHAR THEN
1790 p_order_header.attribute2 := NULL;
1791 END IF;
1792 IF p_order_header.attribute3 = FND_API.G_MISS_CHAR THEN
1793 p_order_header.attribute3 := NULL;
1794 END IF;
1795 IF p_order_header.attribute4 = FND_API.G_MISS_CHAR THEN
1796 p_order_header.attribute4 := NULL;
1797 END IF;
1798 IF p_order_header.attribute5 = FND_API.G_MISS_CHAR THEN
1799 p_order_header.attribute5 := NULL;
1800 END IF;
1801 IF p_order_header.attribute6 = FND_API.G_MISS_CHAR THEN
1802 p_order_header.attribute6 := NULL;
1803 END IF;
1804 IF p_order_header.attribute7 = FND_API.G_MISS_CHAR THEN
1805 p_order_header.attribute7 := NULL;
1806 END IF;
1807 IF p_order_header.attribute8 = FND_API.G_MISS_CHAR THEN
1808 p_order_header.attribute8 := NULL;
1809 END IF;
1810 IF p_order_header.attribute9 = FND_API.G_MISS_CHAR THEN
1811 p_order_header.attribute9 := NULL;
1812 END IF;
1813 IF p_order_header.attribute10 = FND_API.G_MISS_CHAR THEN
1814 p_order_header.attribute10 := NULL;
1815 END IF;
1816 IF p_order_header.attribute11 = FND_API.G_MISS_CHAR THEN
1817 p_order_header.attribute11 := NULL;
1818 END IF;
1819 IF p_order_header.attribute12 = FND_API.G_MISS_CHAR THEN
1820 p_order_header.attribute12 := NULL;
1821 END IF;
1822 IF p_order_header.attribute13 = FND_API.G_MISS_CHAR THEN
1823 p_order_header.attribute13 := NULL;
1824 END IF;
1825 IF p_order_header.attribute14 = FND_API.G_MISS_CHAR THEN
1826 p_order_header.attribute14 := NULL;
1827 END IF;
1828 IF p_order_header.attribute15 = FND_API.G_MISS_CHAR THEN
1829 p_order_header.attribute15 := NULL;
1830 END IF;
1831 IF p_order_header.attribute16 = FND_API.G_MISS_CHAR THEN
1832 p_order_header.attribute16 := NULL;
1833 END IF;
1834 IF p_order_header.attribute17 = FND_API.G_MISS_CHAR THEN
1835 p_order_header.attribute17 := NULL;
1836 END IF;
1837 IF p_order_header.attribute18 = FND_API.G_MISS_CHAR THEN
1838 p_order_header.attribute18 := NULL;
1839 END IF;
1840 IF p_order_header.attribute19 = FND_API.G_MISS_CHAR THEN
1841 p_order_header.attribute19 := NULL;
1842 END IF;
1843 IF p_order_header.attribute20 = FND_API.G_MISS_CHAR THEN
1844 p_order_header.attribute20 := NULL;
1845 END IF;
1846
1847 IF p_order_header.order_version IS NULL THEN
1848 p_order_header.order_version := 1;
1849 END IF;
1850 IF p_order_header.required_fulfillment_date IS NULL THEN
1851 p_order_header.required_fulfillment_date := SYSDATE;
1852 END IF;
1853 IF p_order_header.priority IS NULL THEN
1854 p_order_header.priority := 100;
1855 END IF;
1856
1857 IF p_order_header.jeopardy_enabled_flag IS NULL THEN
1858 p_order_header.jeopardy_enabled_flag := 'Y';
1859 END IF;
1860
1861 IF p_order_header.execution_mode IS NULL THEN
1862 p_order_header.execution_mode := 'ASYNC';
1863 END IF;
1864 END;
1865
1866 PROCEDURE TO_NULL(p_order_param_list IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_PARAM_LIST)
1867 IS
1868 lv_param_index BINARY_INTEGER;
1869 BEGIN
1870 IF p_order_param_list.COUNT > 0 THEN
1871 lv_param_index := p_order_param_list.first;
1872 LOOP
1873
1874 IF p_order_param_list(lv_param_index).parameter_name = FND_API.G_MISS_CHAR
1875 THEN
1876 p_order_param_list(lv_param_index).parameter_name := NULL;
1877 END IF;
1878 IF p_order_param_list(lv_param_index).parameter_value = FND_API.G_MISS_CHAR
1879 THEN
1880 p_order_param_list(lv_param_index).parameter_value := NULL;
1881 END IF;
1882
1883 EXIT WHEN lv_param_index = p_order_param_list.last;
1884 lv_param_index := p_order_param_list.next(lv_param_index);
1885 END LOOP;
1886 END IF;
1887 END;
1888
1889 PROCEDURE TO_NULL(p_order_line_item IN OUT NOCOPY XDP_TYPES.SERVICE_LINE_ITEM)
1890 IS
1891 BEGIN
1892 IF p_order_line_item.line_number = FND_API.G_MISS_NUM THEN
1893 p_order_line_item.line_number := NULL;
1894 END IF;
1895 IF p_order_line_item.line_source = FND_API.G_MISS_CHAR THEN
1896 p_order_line_item.line_source := NULL;
1897 END IF;
1898
1899 IF p_order_line_item.inventory_item_id = FND_API.G_MISS_NUM THEN
1900 p_order_line_item.inventory_item_id := NULL;
1901 END IF;
1902
1903 IF p_order_line_item.service_item_name = FND_API.G_MISS_CHAR THEN
1904 p_order_line_item.service_item_name := NULL;
1905 END IF;
1906
1907 IF p_order_line_item.workitem_id = FND_API.G_MISS_NUM THEN
1908 p_order_line_item.workitem_id := NULL;
1909 END IF;
1910
1911 IF p_order_line_item.version = FND_API.G_MISS_CHAR THEN
1912 p_order_line_item.version := NULL;
1913 END IF;
1914
1915 IF p_order_line_item.action_code = FND_API.G_MISS_CHAR THEN
1916 p_order_line_item.action_code := NULL;
1917 END IF;
1918
1919 IF p_order_line_item.organization_code = FND_API.G_MISS_CHAR THEN
1920 p_order_line_item.organization_code := NULL;
1921 END IF;
1922
1923 IF p_order_line_item.organization_id = FND_API.G_MISS_NUM THEN
1924 p_order_line_item.organization_id := NULL;
1925 END IF;
1926 IF p_order_line_item.site_use_id = FND_API.G_MISS_NUM THEN
1927 p_order_line_item.site_use_id := NULL;
1928 END IF;
1929 IF p_order_line_item.ib_source_id = FND_API.G_MISS_NUM THEN
1930 p_order_line_item.ib_source_id := NULL;
1931 END IF;
1932
1933
1934 IF p_order_line_item.required_fulfillment_date = FND_API.G_MISS_DATE THEN
1935 p_order_line_item.required_fulfillment_date := NULL;
1936 END IF;
1937 IF p_order_line_item.bundle_id = FND_API.G_MISS_NUM THEN
1938 p_order_line_item.bundle_id := NULL;
1939 END IF;
1940 IF p_order_line_item.bundle_sequence = FND_API.G_MISS_NUM THEN
1941 p_order_line_item.bundle_sequence := NULL;
1942 END IF;
1943
1944 IF p_order_line_item.due_date = FND_API.G_MISS_DATE THEN
1945 p_order_line_item.due_date := NULL;
1946 END IF;
1947 IF p_order_line_item.customer_required_date = FND_API.G_MISS_DATE THEN
1948 p_order_line_item.customer_required_date := NULL;
1949 END IF;
1950
1951 IF p_order_line_item.starting_number = FND_API.G_MISS_NUM THEN
1952 p_order_line_item.starting_number := NULL;
1953 END IF;
1954 IF p_order_line_item.ending_number = FND_API.G_MISS_NUM THEN
1955 p_order_line_item.ending_number := NULL;
1956 END IF;
1957
1958 IF p_order_line_item.line_item_id = FND_API.G_MISS_NUM THEN
1959 p_order_line_item.line_item_id := NULL;
1960 END IF;
1961
1962 IF p_order_line_item.line_status = FND_API.G_MISS_CHAR THEN
1963 p_order_line_item.line_status := NULL;
1964 END IF;
1965
1966 IF p_order_line_item.completion_date = FND_API.G_MISS_DATE THEN
1967 p_order_line_item.completion_date := NULL;
1968 END IF;
1969
1970 IF p_order_line_item.actual_fulfillment_date = FND_API.G_MISS_DATE THEN
1971 p_order_line_item.actual_fulfillment_date := NULL;
1972 END IF;
1973
1974 IF p_order_line_item.parent_line_number = FND_API.G_MISS_NUM THEN
1975 p_order_line_item.parent_line_number := NULL;
1976 END IF;
1977
1978 IF p_order_line_item.attribute_category = FND_API.G_MISS_CHAR THEN
1979 p_order_line_item.attribute_category := NULL;
1980 END IF;
1981
1982 IF p_order_line_item.attribute1 = FND_API.G_MISS_CHAR THEN
1983 p_order_line_item.attribute1 := NULL;
1984 END IF;
1985 IF p_order_line_item.attribute2 = FND_API.G_MISS_CHAR THEN
1986 p_order_line_item.attribute2 := NULL;
1987 END IF;
1988 IF p_order_line_item.attribute3 = FND_API.G_MISS_CHAR THEN
1989 p_order_line_item.attribute3 := NULL;
1990 END IF;
1991 IF p_order_line_item.attribute4 = FND_API.G_MISS_CHAR THEN
1992 p_order_line_item.attribute4 := NULL;
1993 END IF;
1994 IF p_order_line_item.attribute5 = FND_API.G_MISS_CHAR THEN
1995 p_order_line_item.attribute5 := NULL;
1996 END IF;
1997 IF p_order_line_item.attribute6 = FND_API.G_MISS_CHAR THEN
1998 p_order_line_item.attribute6 := NULL;
1999 END IF;
2000 IF p_order_line_item.attribute7 = FND_API.G_MISS_CHAR THEN
2001 p_order_line_item.attribute7 := NULL;
2002 END IF;
2003 IF p_order_line_item.attribute8 = FND_API.G_MISS_CHAR THEN
2004 p_order_line_item.attribute8 := NULL;
2005 END IF;
2006 IF p_order_line_item.attribute9 = FND_API.G_MISS_CHAR THEN
2007 p_order_line_item.attribute9 := NULL;
2008 END IF;
2009 IF p_order_line_item.attribute10 = FND_API.G_MISS_CHAR THEN
2010 p_order_line_item.attribute10 := NULL;
2011 END IF;
2012 IF p_order_line_item.attribute11 = FND_API.G_MISS_CHAR THEN
2013 p_order_line_item.attribute11 := NULL;
2014 END IF;
2015 IF p_order_line_item.attribute12 = FND_API.G_MISS_CHAR THEN
2016 p_order_line_item.attribute12 := NULL;
2017 END IF;
2018 IF p_order_line_item.attribute13 = FND_API.G_MISS_CHAR THEN
2019 p_order_line_item.attribute13 := NULL;
2020 END IF;
2021 IF p_order_line_item.attribute14 = FND_API.G_MISS_CHAR THEN
2022 p_order_line_item.attribute14 := NULL;
2023 END IF;
2024 IF p_order_line_item.attribute15 = FND_API.G_MISS_CHAR THEN
2025 p_order_line_item.attribute15 := NULL;
2026 END IF;
2027 IF p_order_line_item.attribute16 = FND_API.G_MISS_CHAR THEN
2028 p_order_line_item.attribute16 := NULL;
2029 END IF;
2030 IF p_order_line_item.attribute17 = FND_API.G_MISS_CHAR THEN
2031 p_order_line_item.attribute17 := NULL;
2032 END IF;
2033 IF p_order_line_item.attribute18 = FND_API.G_MISS_CHAR THEN
2034 p_order_line_item.attribute18 := NULL;
2035 END IF;
2036 IF p_order_line_item.attribute19 = FND_API.G_MISS_CHAR THEN
2037 p_order_line_item.attribute19 := NULL;
2038 END IF;
2039 IF p_order_line_item.attribute20 = FND_API.G_MISS_CHAR THEN
2040 p_order_line_item.attribute20 := NULL;
2041 END IF;
2042
2043 IF p_order_line_item.ib_source IS NULL THEN
2044 p_order_line_item.ib_source := 'NONE';
2045 END IF;
2046
2047 IF p_order_line_item.fulfillment_required_flag IS NULL THEN
2048 p_order_line_item.fulfillment_required_flag := 'Y';
2049 END IF;
2050
2051 IF p_order_line_item.is_package_flag IS NULL THEN
2052 p_order_line_item.is_package_flag := 'N';
2053 END IF;
2054
2055 IF p_order_line_item.fulfillment_sequence IS NULL THEN
2056 p_order_line_item.fulfillment_sequence := 0;
2057 END IF;
2058
2059 IF p_order_line_item.jeopardy_enabled_flag IS NULL THEN
2060 p_order_line_item.jeopardy_enabled_flag := 'N';
2061 END IF;
2062
2063 IF p_order_line_item.is_virtual_line_flag IS NULL THEN
2064 p_order_line_item.is_virtual_line_flag := 'N';
2065 END IF;
2066 END;
2067
2068 PROCEDURE TO_NULL(p_order_line_list IN OUT NOCOPY XDP_TYPES.SERVICE_ORDER_LINE_LIST)
2069 IS
2070 lv_param_index BINARY_INTEGER;
2071 BEGIN
2072 IF p_order_line_list.COUNT > 0 THEN
2073 lv_param_index := p_order_line_list.first;
2074 LOOP
2075 TO_NULL(p_order_line_list(lv_param_index));
2076 EXIT WHEN lv_param_index = p_order_line_list.last;
2077 lv_param_index := p_order_line_list.next(lv_param_index);
2078 END LOOP;
2079 END IF;
2080 END;
2081
2082 PROCEDURE TO_NULL(p_line_param_list IN OUT NOCOPY XDP_TYPES.SERVICE_LINE_PARAM_LIST)
2083 IS
2084 lv_param_index BINARY_INTEGER;
2085 BEGIN
2086 IF p_line_param_list.COUNT > 0 THEN
2087 lv_param_index := p_line_param_list.first;
2088 LOOP
2089 IF p_line_param_list(lv_param_index).line_number = FND_API.G_MISS_NUM
2090 THEN
2091 p_line_param_list(lv_param_index).line_number := NULL;
2092 END IF;
2093
2094 IF p_line_param_list(lv_param_index).parameter_name = FND_API.G_MISS_CHAR
2095 THEN
2096 p_line_param_list(lv_param_index).parameter_name := NULL;
2097 END IF;
2098 IF p_line_param_list(lv_param_index).parameter_value = FND_API.G_MISS_CHAR
2099 THEN
2100 p_line_param_list(lv_param_index).parameter_value := NULL;
2101 END IF;
2102 IF p_line_param_list(lv_param_index).parameter_ref_value = FND_API.G_MISS_CHAR
2103 THEN
2104 p_line_param_list(lv_param_index).parameter_ref_value := NULL;
2105 END IF;
2106
2107 EXIT WHEN lv_param_index = p_line_param_list.last;
2108 lv_param_index := p_line_param_list.next(lv_param_index);
2109 END LOOP;
2110 END IF;
2111 END;
2112
2113
2114 END XDP_INTERFACES_PUB;