[Home] [Help]
PACKAGE BODY: APPS.XDP_INTERFACES_PUB_W
Source
1 package body xdp_interfaces_pub_w as
2 /* $Header: XDPINPWB.pls 120.1 2005/06/22 07:11:58 appldev ship $ */
3 rosetta_g_mistake_date date := to_date('01/01/+4713', 'MM/DD/SYYYY');
4 rosetta_g_miss_date date := to_date('01/01/-4712', 'MM/DD/SYYYY');
5 g_date_fmtStr varchar2(30) := 'YYYY.MM.DD HH24:MI:SS';
6 --lg_delimiter varchar2(4) := chr(5)||chr(30);
7 lg_delimiter varchar2(4) := fnd_global.local_chr(5)||fnd_global.local_chr(30);
8 --lg_inline_delimiter varchar2(4) := chr(5)||chr(31);
9 lg_inline_delimiter varchar2(4) := fnd_global.local_chr(5)||fnd_global.local_chr(31);
10
11 lg_line_clob CLOB;
12 lg_line_param_clob CLOB;
13 lg_order_param_clob CLOB;
14
15 function rosetta_g_miss_num_map(n number) return number as
16 a number := fnd_api.g_miss_num;
17 b number := 0-1962.0724;
18 begin
19 if n=a then return b; end if;
20 if n=b then return a; end if;
21 return n;
22 end;
23
24 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
25 function rosetta_g_miss_date_in_map(d date) return date as
26 begin
27 if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
28 return d;
29 end;
30
31 procedure process_order(p_api_version NUMBER
32 , p_init_msg_list VARCHAR2
33 , p_commit VARCHAR2
34 , p_validation_level NUMBER
35 , x_return_status OUT NOCOPY VARCHAR2
36 , x_msg_count OUT NOCOPY NUMBER
37 , x_msg_data OUT NOCOPY VARCHAR2
38 , p7_a0 VARCHAR2
39 , p7_a1 VARCHAR2
40 , p7_a2 DATE
41 , p7_a3 NUMBER
42 , p7_a4 DATE
43 , p7_a5 DATE
44 , p7_a6 VARCHAR2
45 , p7_a7 VARCHAR2
46 , p7_a8 VARCHAR2
47 , p7_a9 NUMBER
48 , p7_a10 NUMBER
49 , p7_a11 VARCHAR2
50 , p7_a12 NUMBER
51 , p7_a13 NUMBER
52 , p7_a14 VARCHAR2
53 , p7_a15 VARCHAR2
54 , p7_a16 VARCHAR2
55 , p7_a17 DATE
56 , p7_a18 DATE
57 , p7_a19 NUMBER
58 , p7_a20 NUMBER
59 , p7_a21 NUMBER
60 , p7_a22 VARCHAR2
61 , p7_a23 VARCHAR2
62 , p7_a24 VARCHAR2
63 , p7_a25 VARCHAR2
64 , p7_a26 NUMBER
65 , p8_a0 JTF_VARCHAR2_TABLE_100
66 , p8_a1 JTF_VARCHAR2_TABLE_4000
67 , p9_a0 JTF_NUMBER_TABLE
68 , p9_a1 JTF_VARCHAR2_TABLE_100
69 , p9_a2 JTF_VARCHAR2_TABLE_100
70 , p9_a3 JTF_VARCHAR2_TABLE_100
71 , p9_a4 JTF_VARCHAR2_TABLE_100
72 , p9_a5 JTF_DATE_TABLE
73 , p9_a6 JTF_VARCHAR2_TABLE_100
74 , p9_a7 JTF_NUMBER_TABLE
75 , p9_a8 JTF_NUMBER_TABLE
76 , p9_a9 JTF_NUMBER_TABLE
77 , p9_a10 JTF_NUMBER_TABLE
78 , p9_a11 JTF_DATE_TABLE
79 , p9_a12 JTF_DATE_TABLE
80 , p9_a13 JTF_VARCHAR2_TABLE_100
81 , p9_a14 JTF_DATE_TABLE
82 , p9_a15 JTF_NUMBER_TABLE
83 , p9_a16 JTF_NUMBER_TABLE
84 , p9_a17 JTF_NUMBER_TABLE
85 , p9_a18 JTF_VARCHAR2_TABLE_100
86 , p9_a19 JTF_NUMBER_TABLE
87 , p9_a20 JTF_VARCHAR2_TABLE_100
88 , p9_a21 JTF_NUMBER_TABLE
89 , p9_a22 JTF_NUMBER_TABLE
90 , p10_a0 JTF_NUMBER_TABLE
91 , p10_a1 JTF_VARCHAR2_TABLE_100
92 , p10_a2 JTF_VARCHAR2_TABLE_4000
93 , p10_a3 JTF_VARCHAR2_TABLE_4000
94 , x_sdp_order_id OUT NOCOPY NUMBER
95 )
96 as
97 ddp_order_header xdp_types.order_header;
98 ddp_order_parameter xdp_types.order_parameter_list;
99 ddp_order_line_list xdp_types.order_line_list;
100 ddp_line_parameter_list xdp_types.line_param_list;
101 ddindx binary_integer; indx binary_integer;
102 begin
103
104 -- copy data to the local IN or IN-OUT args, if any
105
106
107
108
109
110
111
112 ddp_order_header.order_number := p7_a0;
113 ddp_order_header.order_version := p7_a1;
114 ddp_order_header.provisioning_date := rosetta_g_miss_date_in_map(p7_a2);
115 ddp_order_header.priority := p7_a3;
116 ddp_order_header.due_date := rosetta_g_miss_date_in_map(p7_a4);
117 ddp_order_header.customer_required_date := rosetta_g_miss_date_in_map(p7_a5);
118 ddp_order_header.order_type := p7_a6;
119 ddp_order_header.order_action := p7_a7;
120 ddp_order_header.order_source := p7_a8;
121 ddp_order_header.related_order_id := p7_a9;
122 ddp_order_header.org_id := p7_a10;
123 ddp_order_header.customer_name := p7_a11;
124 ddp_order_header.customer_id := p7_a12;
125 ddp_order_header.service_provider_id := p7_a13;
126 ddp_order_header.telephone_number := p7_a14;
127 ddp_order_header.order_status := p7_a15;
128 ddp_order_header.order_state := p7_a16;
129 ddp_order_header.actual_provisioning_date := rosetta_g_miss_date_in_map(p7_a17);
130 ddp_order_header.completion_date := rosetta_g_miss_date_in_map(p7_a18);
131 ddp_order_header.previous_order_id := p7_a19;
132 ddp_order_header.next_order_id := p7_a20;
133 ddp_order_header.sdp_order_id := p7_a21;
134 ddp_order_header.jeopardy_enabled_flag := p7_a22;
135 ddp_order_header.order_ref_name := p7_a23;
136 ddp_order_header.order_ref_value := p7_a24;
137 ddp_order_header.sp_order_number := p7_a25;
138 ddp_order_header.sp_userid := p7_a26;
139
140 xdp_types_w.rosetta_table_copy_in_p3(ddp_order_parameter, p8_a0
141 , p8_a1
142 );
143
144 xdp_types_w.rosetta_table_copy_in_p5(ddp_order_line_list, p9_a0
145 , p9_a1
146 , p9_a2
147 , p9_a3
148 , p9_a4
149 , p9_a5
150 , p9_a6
151 , p9_a7
152 , p9_a8
153 , p9_a9
154 , p9_a10
155 , p9_a11
156 , p9_a12
157 , p9_a13
158 , p9_a14
159 , p9_a15
160 , p9_a16
161 , p9_a17
162 , p9_a18
163 , p9_a19
164 , p9_a20
165 , p9_a21
166 , p9_a22
167 );
168
169 xdp_types_w.rosetta_table_copy_in_p7(ddp_line_parameter_list, p10_a0
170 , p10_a1
171 , p10_a2
172 , p10_a3
173 );
174
175
176 -- here's the delegated call to the old PL/SQL routine
177 xdp_interfaces_pub.process_order(p_api_version,
178 p_init_msg_list,
179 p_commit,
180 p_validation_level,
181 x_return_status,
182 x_msg_count,
183 x_msg_data,
184 ddp_order_header,
185 ddp_order_parameter,
186 ddp_order_line_list,
187 ddp_line_parameter_list,
188 x_sdp_order_id);
189
190 -- copy data back from the local OUT or IN-OUT args, if any
191
192
193
194
195
196
197
198
199
200
201
202 end;
203
204 procedure process_order(p_api_version NUMBER
205 , p_init_msg_list VARCHAR2
206 , p_commit VARCHAR2
207 , p_validation_level NUMBER
208 , x_return_status OUT NOCOPY VARCHAR2
209 , x_msg_count OUT NOCOPY NUMBER
210 , x_msg_data OUT NOCOPY VARCHAR2
211 , x_error_code OUT NOCOPY VARCHAR2
212 , p8_a0 VARCHAR2
213 , p8_a1 VARCHAR2
214 , p8_a2 DATE
215 , p8_a3 NUMBER
216 , p8_a4 VARCHAR2
217 , p8_a5 VARCHAR2
218 , p8_a6 VARCHAR2
219 , p8_a7 NUMBER
220 , p8_a8 DATE
221 , p8_a9 DATE
222 , p8_a10 VARCHAR2
223 , p8_a11 VARCHAR2
224 , p8_a12 NUMBER
225 , p8_a13 NUMBER
226 , p8_a14 NUMBER
227 , p8_a15 NUMBER
228 , p8_a16 VARCHAR2
229 , p8_a17 VARCHAR2
230 , p8_a18 VARCHAR2
231 , p8_a19 NUMBER
232 , p8_a20 VARCHAR2
233 , p8_a21 VARCHAR2
234 , p8_a22 VARCHAR2
235 , p8_a23 DATE
236 , p8_a24 DATE
237 , p8_a25 NUMBER
238 , p8_a26 VARCHAR2
239 , p8_a27 VARCHAR2
240 , p8_a28 VARCHAR2
241 , p8_a29 VARCHAR2
242 , p8_a30 VARCHAR2
243 , p8_a31 VARCHAR2
244 , p8_a32 VARCHAR2
245 , p8_a33 VARCHAR2
246 , p8_a34 VARCHAR2
247 , p8_a35 VARCHAR2
248 , p8_a36 VARCHAR2
249 , p8_a37 VARCHAR2
250 , p8_a38 VARCHAR2
251 , p8_a39 VARCHAR2
252 , p8_a40 VARCHAR2
253 , p8_a41 VARCHAR2
254 , p8_a42 VARCHAR2
255 , p8_a43 VARCHAR2
256 , p8_a44 VARCHAR2
257 , p8_a45 VARCHAR2
258 , p8_a46 VARCHAR2
259 , p8_a47 VARCHAR2
260 , p8_a48 VARCHAR2
261 , p9_a0 JTF_VARCHAR2_TABLE_100
262 , p9_a1 JTF_VARCHAR2_TABLE_4000
263 , p10_a0 JTF_NUMBER_TABLE
264 , p10_a1 JTF_VARCHAR2_TABLE_100
265 , p10_a2 JTF_NUMBER_TABLE
266 , p10_a3 JTF_VARCHAR2_TABLE_100
267 , p10_a4 JTF_VARCHAR2_TABLE_100
268 , p10_a5 JTF_VARCHAR2_TABLE_100
269 , p10_a6 JTF_VARCHAR2_TABLE_100
270 , p10_a7 JTF_NUMBER_TABLE
271 , p10_a8 JTF_NUMBER_TABLE
272 , p10_a9 JTF_VARCHAR2_TABLE_100
273 , p10_a10 JTF_NUMBER_TABLE
274 , p10_a11 JTF_DATE_TABLE
275 , p10_a12 JTF_VARCHAR2_TABLE_100
276 , p10_a13 JTF_VARCHAR2_TABLE_100
277 , p10_a14 JTF_NUMBER_TABLE
278 , p10_a15 JTF_NUMBER_TABLE
279 , p10_a16 JTF_NUMBER_TABLE
280 , p10_a17 JTF_NUMBER_TABLE
281 , p10_a18 JTF_DATE_TABLE
282 , p10_a19 JTF_VARCHAR2_TABLE_100
283 , p10_a20 JTF_DATE_TABLE
284 , p10_a21 JTF_NUMBER_TABLE
285 , p10_a22 JTF_NUMBER_TABLE
286 , p10_a23 JTF_NUMBER_TABLE
287 , p10_a24 JTF_NUMBER_TABLE
288 , p10_a25 JTF_VARCHAR2_TABLE_100
289 , p10_a26 JTF_DATE_TABLE
290 , p10_a27 JTF_DATE_TABLE
291 , p10_a28 JTF_NUMBER_TABLE
292 , p10_a29 JTF_VARCHAR2_TABLE_100
293 , p10_a30 JTF_VARCHAR2_TABLE_100
294 , p10_a31 JTF_VARCHAR2_TABLE_300
295 , p10_a32 JTF_VARCHAR2_TABLE_300
296 , p10_a33 JTF_VARCHAR2_TABLE_300
297 , p10_a34 JTF_VARCHAR2_TABLE_300
298 , p10_a35 JTF_VARCHAR2_TABLE_300
299 , p10_a36 JTF_VARCHAR2_TABLE_300
300 , p10_a37 JTF_VARCHAR2_TABLE_300
301 , p10_a38 JTF_VARCHAR2_TABLE_300
302 , p10_a39 JTF_VARCHAR2_TABLE_300
303 , p10_a40 JTF_VARCHAR2_TABLE_300
304 , p10_a41 JTF_VARCHAR2_TABLE_300
305 , p10_a42 JTF_VARCHAR2_TABLE_300
306 , p10_a43 JTF_VARCHAR2_TABLE_300
307 , p10_a44 JTF_VARCHAR2_TABLE_300
308 , p10_a45 JTF_VARCHAR2_TABLE_300
309 , p10_a46 JTF_VARCHAR2_TABLE_300
310 , p10_a47 JTF_VARCHAR2_TABLE_300
311 , p10_a48 JTF_VARCHAR2_TABLE_300
312 , p10_a49 JTF_VARCHAR2_TABLE_300
313 , p10_a50 JTF_VARCHAR2_TABLE_300
314 , p11_a0 JTF_NUMBER_TABLE
315 , p11_a1 JTF_VARCHAR2_TABLE_100
316 , p11_a2 JTF_VARCHAR2_TABLE_4000
317 , p11_a3 JTF_VARCHAR2_TABLE_4000
318 , x_order_id OUT NOCOPY NUMBER
319 )
320 as
321 ddp_order_header xdp_types.service_order_header;
322 ddp_order_param_list xdp_types.service_order_param_list;
323 ddp_order_line_list xdp_types.service_order_line_list;
324 ddp_line_param_list xdp_types.service_line_param_list;
325 ddindx binary_integer; indx binary_integer;
326 begin
327
328 -- copy data to the local IN or IN-OUT args, if any
329
330
331
332
333
334
335
336
337 ddp_order_header.order_number := p8_a0;
338 ddp_order_header.order_version := p8_a1;
339 ddp_order_header.required_fulfillment_date := rosetta_g_miss_date_in_map(p8_a2);
340 ddp_order_header.priority := p8_a3;
341 ddp_order_header.jeopardy_enabled_flag := p8_a4;
342 ddp_order_header.execution_mode := p8_a5;
343 ddp_order_header.account_number := p8_a6;
344 ddp_order_header.cust_account_id := p8_a7;
345 ddp_order_header.due_date := rosetta_g_miss_date_in_map(p8_a8);
346 ddp_order_header.customer_required_date := rosetta_g_miss_date_in_map(p8_a9);
347 ddp_order_header.order_type := p8_a10;
348 ddp_order_header.order_source := p8_a11;
349 ddp_order_header.org_id := p8_a12;
350 ddp_order_header.related_order_id := p8_a13;
351 ddp_order_header.previous_order_id := p8_a14;
352 ddp_order_header.next_order_id := p8_a15;
353 ddp_order_header.order_ref_name := p8_a16;
354 ddp_order_header.order_ref_value := p8_a17;
355 ddp_order_header.order_comments := p8_a18;
356 ddp_order_header.order_id := p8_a19;
357 ddp_order_header.order_status := p8_a20;
358 ddp_order_header.fulfillment_status := p8_a21;
359 ddp_order_header.fulfillment_result := p8_a22;
360 ddp_order_header.completion_date := rosetta_g_miss_date_in_map(p8_a23);
361 ddp_order_header.actual_fulfillment_date := rosetta_g_miss_date_in_map(p8_a24);
362 ddp_order_header.customer_id := p8_a25;
363 ddp_order_header.customer_name := p8_a26;
364 ddp_order_header.telephone_number := p8_a27;
365 ddp_order_header.attribute_category := p8_a28;
366 ddp_order_header.attribute1 := p8_a29;
367 ddp_order_header.attribute2 := p8_a30;
368 ddp_order_header.attribute3 := p8_a31;
369 ddp_order_header.attribute4 := p8_a32;
370 ddp_order_header.attribute5 := p8_a33;
371 ddp_order_header.attribute6 := p8_a34;
372 ddp_order_header.attribute7 := p8_a35;
373 ddp_order_header.attribute8 := p8_a36;
374 ddp_order_header.attribute9 := p8_a37;
375 ddp_order_header.attribute10 := p8_a38;
376 ddp_order_header.attribute11 := p8_a39;
377 ddp_order_header.attribute12 := p8_a40;
378 ddp_order_header.attribute13 := p8_a41;
379 ddp_order_header.attribute14 := p8_a42;
380 ddp_order_header.attribute15 := p8_a43;
381 ddp_order_header.attribute16 := p8_a44;
382 ddp_order_header.attribute17 := p8_a45;
383 ddp_order_header.attribute18 := p8_a46;
384 ddp_order_header.attribute19 := p8_a47;
385 ddp_order_header.attribute20 := p8_a48;
386
387 xdp_types_w.rosetta_table_copy_in_p15(ddp_order_param_list, p9_a0
388 , p9_a1
389 );
390
391 xdp_types_w.rosetta_table_copy_in_p11(ddp_order_line_list, p10_a0
392 , p10_a1
393 , p10_a2
394 , p10_a3
395 , p10_a4
396 , p10_a5
397 , p10_a6
398 , p10_a7
399 , p10_a8
400 , p10_a9
401 , p10_a10
402 , p10_a11
403 , p10_a12
404 , p10_a13
405 , p10_a14
406 , p10_a15
407 , p10_a16
408 , p10_a17
409 , p10_a18
410 , p10_a19
411 , p10_a20
412 , p10_a21
413 , p10_a22
414 , p10_a23
415 , p10_a24
416 , p10_a25
417 , p10_a26
418 , p10_a27
419 , p10_a28
420 , p10_a29
421 , p10_a30
422 , p10_a31
423 , p10_a32
424 , p10_a33
425 , p10_a34
426 , p10_a35
427 , p10_a36
428 , p10_a37
429 , p10_a38
430 , p10_a39
431 , p10_a40
432 , p10_a41
433 , p10_a42
434 , p10_a43
435 , p10_a44
436 , p10_a45
437 , p10_a46
438 , p10_a47
439 , p10_a48
440 , p10_a49
441 , p10_a50
442 );
443
444 xdp_types_w.rosetta_table_copy_in_p19(ddp_line_param_list, p11_a0
445 , p11_a1
446 , p11_a2
447 , p11_a3
448 );
449
450
451 -- here's the delegated call to the old PL/SQL routine
452 xdp_interfaces_pub.process_order(p_api_version,
453 p_init_msg_list,
454 p_commit,
455 p_validation_level,
456 x_return_status,
457 x_msg_count,
458 x_msg_data,
459 x_error_code,
460 ddp_order_header,
461 ddp_order_param_list,
462 ddp_order_line_list,
463 ddp_line_param_list,
464 x_order_id);
465
466 -- copy data back from the local OUT or IN-OUT args, if any
467
468
469
470
471
472
473
474
475
476
477
478
479 end;
480
484 , p_validation_level NUMBER
481 procedure get_order_details(p_api_version NUMBER
482 , p_init_msg_list VARCHAR2
483 , p_commit VARCHAR2
485 , x_return_status OUT NOCOPY VARCHAR2
486 , x_msg_count OUT NOCOPY NUMBER
487 , x_msg_data OUT NOCOPY VARCHAR2
488 , x_error_code OUT NOCOPY VARCHAR2
489 , p_order_number VARCHAR2
490 , p_order_version VARCHAR2
491 , p_order_id NUMBER
492 , p11_a0 OUT NOCOPY VARCHAR2
493 , p11_a1 OUT NOCOPY VARCHAR2
494 , p11_a2 OUT NOCOPY DATE
495 , p11_a3 OUT NOCOPY NUMBER
496 , p11_a4 OUT NOCOPY VARCHAR2
497 , p11_a5 OUT NOCOPY VARCHAR2
498 , p11_a6 OUT NOCOPY VARCHAR2
499 , p11_a7 OUT NOCOPY NUMBER
500 , p11_a8 OUT NOCOPY DATE
501 , p11_a9 OUT NOCOPY DATE
502 , p11_a10 OUT NOCOPY VARCHAR2
503 , p11_a11 OUT NOCOPY VARCHAR2
504 , p11_a12 OUT NOCOPY NUMBER
505 , p11_a13 OUT NOCOPY NUMBER
506 , p11_a14 OUT NOCOPY NUMBER
507 , p11_a15 OUT NOCOPY NUMBER
508 , p11_a16 OUT NOCOPY VARCHAR2
509 , p11_a17 OUT NOCOPY VARCHAR2
510 , p11_a18 OUT NOCOPY VARCHAR2
511 , p11_a19 OUT NOCOPY NUMBER
512 , p11_a20 OUT NOCOPY VARCHAR2
513 , p11_a21 OUT NOCOPY VARCHAR2
514 , p11_a22 OUT NOCOPY VARCHAR2
515 , p11_a23 OUT NOCOPY DATE
516 , p11_a24 OUT NOCOPY DATE
517 , p11_a25 OUT NOCOPY NUMBER
518 , p11_a26 OUT NOCOPY VARCHAR2
519 , p11_a27 OUT NOCOPY VARCHAR2
520 , p11_a28 OUT NOCOPY VARCHAR2
521 , p11_a29 OUT NOCOPY VARCHAR2
522 , p11_a30 OUT NOCOPY VARCHAR2
523 , p11_a31 OUT NOCOPY VARCHAR2
524 , p11_a32 OUT NOCOPY VARCHAR2
525 , p11_a33 OUT NOCOPY VARCHAR2
526 , p11_a34 OUT NOCOPY VARCHAR2
527 , p11_a35 OUT NOCOPY VARCHAR2
528 , p11_a36 OUT NOCOPY VARCHAR2
529 , p11_a37 OUT NOCOPY VARCHAR2
530 , p11_a38 OUT NOCOPY VARCHAR2
531 , p11_a39 OUT NOCOPY VARCHAR2
532 , p11_a40 OUT NOCOPY VARCHAR2
533 , p11_a41 OUT NOCOPY VARCHAR2
534 , p11_a42 OUT NOCOPY VARCHAR2
535 , p11_a43 OUT NOCOPY VARCHAR2
536 , p11_a44 OUT NOCOPY VARCHAR2
537 , p11_a45 OUT NOCOPY VARCHAR2
538 , p11_a46 OUT NOCOPY VARCHAR2
539 , p11_a47 OUT NOCOPY VARCHAR2
540 , p11_a48 OUT NOCOPY VARCHAR2
541 , p12_a0 OUT NOCOPY JTF_VARCHAR2_TABLE_100
542 , p12_a1 OUT NOCOPY JTF_VARCHAR2_TABLE_4000
543 , p13_a0 OUT NOCOPY JTF_NUMBER_TABLE
544 , p13_a1 OUT NOCOPY JTF_VARCHAR2_TABLE_100
545 , p13_a2 OUT NOCOPY JTF_NUMBER_TABLE
546 , p13_a3 OUT NOCOPY JTF_VARCHAR2_TABLE_100
547 , p13_a4 OUT NOCOPY JTF_VARCHAR2_TABLE_100
548 , p13_a5 OUT NOCOPY JTF_VARCHAR2_TABLE_100
549 , p13_a6 OUT NOCOPY JTF_VARCHAR2_TABLE_100
550 , p13_a7 OUT NOCOPY JTF_NUMBER_TABLE
551 , p13_a8 OUT NOCOPY JTF_NUMBER_TABLE
552 , p13_a9 OUT NOCOPY JTF_VARCHAR2_TABLE_100
553 , p13_a10 OUT NOCOPY JTF_NUMBER_TABLE
554 , p13_a11 OUT NOCOPY JTF_DATE_TABLE
555 , p13_a12 OUT NOCOPY JTF_VARCHAR2_TABLE_100
556 , p13_a13 OUT NOCOPY JTF_VARCHAR2_TABLE_100
557 , p13_a14 OUT NOCOPY JTF_NUMBER_TABLE
558 , p13_a15 OUT NOCOPY JTF_NUMBER_TABLE
559 , p13_a16 OUT NOCOPY JTF_NUMBER_TABLE
560 , p13_a17 OUT NOCOPY JTF_NUMBER_TABLE
561 , p13_a18 OUT NOCOPY JTF_DATE_TABLE
562 , p13_a19 OUT NOCOPY JTF_VARCHAR2_TABLE_100
563 , p13_a20 OUT NOCOPY JTF_DATE_TABLE
564 , p13_a21 OUT NOCOPY JTF_NUMBER_TABLE
565 , p13_a22 OUT NOCOPY JTF_NUMBER_TABLE
566 , p13_a23 OUT NOCOPY JTF_NUMBER_TABLE
567 , p13_a24 OUT NOCOPY JTF_NUMBER_TABLE
568 , p13_a25 OUT NOCOPY JTF_VARCHAR2_TABLE_100
569 , p13_a26 OUT NOCOPY JTF_DATE_TABLE
570 , p13_a27 OUT NOCOPY JTF_DATE_TABLE
571 , p13_a28 OUT NOCOPY JTF_NUMBER_TABLE
572 , p13_a29 OUT NOCOPY JTF_VARCHAR2_TABLE_100
573 , p13_a30 OUT NOCOPY JTF_VARCHAR2_TABLE_100
574 , p13_a31 OUT NOCOPY JTF_VARCHAR2_TABLE_300
575 , p13_a32 OUT NOCOPY JTF_VARCHAR2_TABLE_300
576 , p13_a33 OUT NOCOPY JTF_VARCHAR2_TABLE_300
577 , p13_a34 OUT NOCOPY JTF_VARCHAR2_TABLE_300
578 , p13_a35 OUT NOCOPY JTF_VARCHAR2_TABLE_300
579 , p13_a36 OUT NOCOPY JTF_VARCHAR2_TABLE_300
580 , p13_a37 OUT NOCOPY JTF_VARCHAR2_TABLE_300
581 , p13_a38 OUT NOCOPY JTF_VARCHAR2_TABLE_300
582 , p13_a39 OUT NOCOPY JTF_VARCHAR2_TABLE_300
583 , p13_a40 OUT NOCOPY JTF_VARCHAR2_TABLE_300
584 , p13_a41 OUT NOCOPY JTF_VARCHAR2_TABLE_300
585 , p13_a42 OUT NOCOPY JTF_VARCHAR2_TABLE_300
586 , p13_a43 OUT NOCOPY JTF_VARCHAR2_TABLE_300
587 , p13_a44 OUT NOCOPY JTF_VARCHAR2_TABLE_300
588 , p13_a45 OUT NOCOPY JTF_VARCHAR2_TABLE_300
589 , p13_a46 OUT NOCOPY JTF_VARCHAR2_TABLE_300
590 , p13_a47 OUT NOCOPY JTF_VARCHAR2_TABLE_300
591 , p13_a48 OUT NOCOPY JTF_VARCHAR2_TABLE_300
592 , p13_a49 OUT NOCOPY JTF_VARCHAR2_TABLE_300
593 , p13_a50 OUT NOCOPY JTF_VARCHAR2_TABLE_300
594 , p14_a0 OUT NOCOPY JTF_NUMBER_TABLE
595 , p14_a1 OUT NOCOPY JTF_VARCHAR2_TABLE_100
596 , p14_a2 OUT NOCOPY JTF_VARCHAR2_TABLE_4000
597 , p14_a3 OUT NOCOPY JTF_VARCHAR2_TABLE_4000
598 )
599 as
600 ddx_order_header xdp_types.service_order_header;
601 ddx_order_param_list xdp_types.service_order_param_list;
602 ddx_line_item_list xdp_types.service_order_line_list;
603 ddx_line_param_list xdp_types.service_line_param_list;
604 ddindx binary_integer; indx binary_integer;
605 begin
606
607 -- copy data to the local IN or IN-OUT args, if any
611
608
609
610
612
613
614
615
616
617
618
619
620
621
622
623 -- here's the delegated call to the old PL/SQL routine
624 xdp_interfaces_pub.get_order_details(p_api_version,
625 p_init_msg_list,
626 p_commit,
627 p_validation_level,
628 x_return_status,
629 x_msg_count,
630 x_msg_data,
631 x_error_code,
632 p_order_number,
633 p_order_version,
634 p_order_id,
635 ddx_order_header,
636 ddx_order_param_list,
637 ddx_line_item_list,
638 ddx_line_param_list);
639
640 -- copy data back from the local OUT or IN-OUT args, if any
641
642
643
644
645
646
647
648
649
650
651
652 p11_a0 := ddx_order_header.order_number;
653 p11_a1 := ddx_order_header.order_version;
654 p11_a2 := ddx_order_header.required_fulfillment_date;
655 p11_a3 := ddx_order_header.priority;
656 p11_a4 := ddx_order_header.jeopardy_enabled_flag;
657 p11_a5 := ddx_order_header.execution_mode;
658 p11_a6 := ddx_order_header.account_number;
659 p11_a7 := ddx_order_header.cust_account_id;
660 p11_a8 := ddx_order_header.due_date;
661 p11_a9 := ddx_order_header.customer_required_date;
662 p11_a10 := ddx_order_header.order_type;
663 p11_a11 := ddx_order_header.order_source;
664 p11_a12 := ddx_order_header.org_id;
665 p11_a13 := ddx_order_header.related_order_id;
666 p11_a14 := ddx_order_header.previous_order_id;
667 p11_a15 := ddx_order_header.next_order_id;
668 p11_a16 := ddx_order_header.order_ref_name;
669 p11_a17 := ddx_order_header.order_ref_value;
670 p11_a18 := ddx_order_header.order_comments;
671 p11_a19 := ddx_order_header.order_id;
672 p11_a20 := ddx_order_header.order_status;
673 p11_a21 := ddx_order_header.fulfillment_status;
674 p11_a22 := ddx_order_header.fulfillment_result;
675 p11_a23 := ddx_order_header.completion_date;
676 p11_a24 := ddx_order_header.actual_fulfillment_date;
677 p11_a25 := ddx_order_header.customer_id;
678 p11_a26 := ddx_order_header.customer_name;
679 p11_a27 := ddx_order_header.telephone_number;
680 p11_a28 := ddx_order_header.attribute_category;
681 p11_a29 := ddx_order_header.attribute1;
682 p11_a30 := ddx_order_header.attribute2;
683 p11_a31 := ddx_order_header.attribute3;
684 p11_a32 := ddx_order_header.attribute4;
685 p11_a33 := ddx_order_header.attribute5;
686 p11_a34 := ddx_order_header.attribute6;
687 p11_a35 := ddx_order_header.attribute7;
688 p11_a36 := ddx_order_header.attribute8;
689 p11_a37 := ddx_order_header.attribute9;
690 p11_a38 := ddx_order_header.attribute10;
691 p11_a39 := ddx_order_header.attribute11;
692 p11_a40 := ddx_order_header.attribute12;
693 p11_a41 := ddx_order_header.attribute13;
694 p11_a42 := ddx_order_header.attribute14;
695 p11_a43 := ddx_order_header.attribute15;
696 p11_a44 := ddx_order_header.attribute16;
697 p11_a45 := ddx_order_header.attribute17;
698 p11_a46 := ddx_order_header.attribute18;
699 p11_a47 := ddx_order_header.attribute19;
700 p11_a48 := ddx_order_header.attribute20;
701
702 xdp_types_w.rosetta_table_copy_out_p15(ddx_order_param_list, p12_a0
703 , p12_a1
704 );
705
706 xdp_types_w.rosetta_table_copy_out_p11(ddx_line_item_list, p13_a0
707 , p13_a1
708 , p13_a2
709 , p13_a3
710 , p13_a4
711 , p13_a5
712 , p13_a6
713 , p13_a7
714 , p13_a8
715 , p13_a9
716 , p13_a10
717 , p13_a11
718 , p13_a12
719 , p13_a13
720 , p13_a14
721 , p13_a15
722 , p13_a16
723 , p13_a17
724 , p13_a18
725 , p13_a19
726 , p13_a20
727 , p13_a21
728 , p13_a22
729 , p13_a23
730 , p13_a24
731 , p13_a25
732 , p13_a26
733 , p13_a27
734 , p13_a28
735 , p13_a29
736 , p13_a30
737 , p13_a31
738 , p13_a32
739 , p13_a33
740 , p13_a34
741 , p13_a35
742 , p13_a36
743 , p13_a37
744 , p13_a38
745 , p13_a39
746 , p13_a40
747 , p13_a41
748 , p13_a42
749 , p13_a43
750 , p13_a44
751 , p13_a45
752 , p13_a46
753 , p13_a47
754 , p13_a48
755 , p13_a49
756 , p13_a50
757 );
758
759 xdp_types_w.rosetta_table_copy_out_p19(ddx_line_param_list, p14_a0
760 , p14_a1
761 , p14_a2
762 , p14_a3
763 );
764 end;
765
766 procedure get_order_status(p_api_version NUMBER
767 , p_init_msg_list VARCHAR2
768 , p_commit VARCHAR2
769 , p_validation_level NUMBER
773 , x_error_code OUT NOCOPY VARCHAR2
770 , x_return_status OUT NOCOPY VARCHAR2
771 , x_msg_count OUT NOCOPY NUMBER
772 , x_msg_data OUT NOCOPY VARCHAR2
774 , p_order_number VARCHAR2
775 , p_order_version VARCHAR2
776 , p_order_id NUMBER
777 , p11_a0 OUT NOCOPY NUMBER
778 , p11_a1 OUT NOCOPY VARCHAR2
779 , p11_a2 OUT NOCOPY VARCHAR2
780 , p11_a3 OUT NOCOPY VARCHAR2
781 , p11_a4 OUT NOCOPY VARCHAR2
782 , p11_a5 OUT NOCOPY VARCHAR2
783 , p11_a6 OUT NOCOPY DATE
784 , p11_a7 OUT NOCOPY DATE
785 )
786 as
787 ddx_order_status xdp_types.service_order_status;
788 ddindx binary_integer; indx binary_integer;
789 begin
790
791 -- copy data to the local IN or IN-OUT args, if any
792
793
794
795
796
797
798
799
800
801
802
803
804 -- here's the delegated call to the old PL/SQL routine
805 xdp_interfaces_pub.get_order_status(p_api_version,
806 p_init_msg_list,
807 p_commit,
808 p_validation_level,
809 x_return_status,
810 x_msg_count,
811 x_msg_data,
812 x_error_code,
813 p_order_number,
814 p_order_version,
815 p_order_id,
816 ddx_order_status);
817
818 -- copy data back from the local OUT or IN-OUT args, if any
819
820
821
822
823
824
825
826
827
828
829
830 p11_a0 := ddx_order_status.order_id;
831 p11_a1 := ddx_order_status.order_status;
832 p11_a2 := ddx_order_status.order_number;
833 p11_a3 := ddx_order_status.order_version;
834 p11_a4 := ddx_order_status.fulfillment_status;
835 p11_a5 := ddx_order_status.fulfillment_result;
836 p11_a6 := ddx_order_status.completion_date;
837 p11_a7 := ddx_order_status.actual_fulfillment_date;
838 end;
839
840 --------------------------------------------------------
841 --This section is hand coded for pl/sql call
842 --------------------------------------------------------
843
844 FUNCTION STR2DATE(dateStr VARCHAR2)
845 RETURN DATE
846 AS
847 BEGIN
848 IF dateStr IS NULL THEN
849 RETURN NULL;
850 END IF;
851 IF LENGTH(dateStr) = 0 THEN
852 RETURN NULL;
853 END IF;
854
855 RETURN TO_DATE(dateStr,g_date_fmtStr);
856 END STR2DATE;
857
858 FUNCTION GET_FIRST_STR(p_inStr IN OUT NOCOPY VARCHAR2,p_delimiter IN VARCHAR2) RETURN VARCHAR2
859 AS
860 l_index NUMBER;
861 l_first_str VARCHAR2(32000);
862 BEGIN
863 l_index := INSTR(p_inStr,p_delimiter);
864 IF l_index = -1 THEN
865 l_first_str := p_inStr;
866 p_inStr := '';
867 ELSE
868 l_first_str := substr(p_inStr,1,l_index-1);
869 p_inStr := substr(p_inStr,l_index+length(p_delimiter));
870 END IF;
871
872 IF length(l_first_str)=0 THEN
873 l_first_str := NULL;
874 END IF;
875
876 RETURN l_first_str;
877 END GET_FIRST_STR;
878
879 FUNCTION GET_STR_IN_CLOB(p_inStr IN CLOB,p_start_index IN OUT NOCOPY NUMBER,p_delimiter IN VARCHAR2) RETURN VARCHAR2
880 AS
881 l_index NUMBER;
882 l_first_str VARCHAR2(32000);
883 BEGIN
884 l_index := dbms_lob.INSTR(p_inStr,p_delimiter,p_start_index);
885 IF l_index = 0 THEN
886 l_first_str := dbms_lob.substr(p_inStr);
887 p_start_index := dbms_lob.GETLENGTH(p_instr);
888 ELSE
889 l_first_str := dbms_lob.substr(p_inStr,l_index-p_start_index,p_start_index);
890 p_start_index := l_index+length(p_delimiter);
891 END IF;
892
893 IF length(l_first_str)=0 THEN
894 l_first_str := NULL;
895 END IF;
896 RETURN l_first_str;
897 END GET_STR_IN_CLOB;
898
902 l_param_pair VARCHAR2(32000);
899 FUNCTION GET_ORDER_PARAM(l_encoded_str IN OUT NOCOPY VARCHAR2) RETURN xdp_types.SERVICE_ORDER_PARAM
900 AS
901 l_order_param xdp_types.SERVICE_ORDER_PARAM;
903 l_clob CLOB;
904 l_index number := 1;
905 BEGIN
906 l_param_pair := get_first_str(l_encoded_str,lg_delimiter);
907 l_order_param.parameter_name := get_first_str(l_param_pair,lg_inline_delimiter);
908 l_order_param.parameter_value := get_first_str(l_param_pair,lg_inline_delimiter);
909 RETURN l_order_param;
910 END GET_ORDER_PARAM;
911
912 FUNCTION GET_ORDER_PARAM(p_clob IN CLOB, p_index in OUT NOCOPY NUMBER) RETURN xdp_types.SERVICE_ORDER_PARAM
913 AS
914 l_order_param xdp_types.SERVICE_ORDER_PARAM;
915 l_param_pair VARCHAR2(32024);
916 l_index number := 1;
917 BEGIN
918 l_param_pair := GET_STR_IN_CLOB(p_clob,p_index,lg_delimiter);
919 IF (l_param_pair) is NULL THEN
920 RETURN NULL;
921 END IF;
922 l_order_param.parameter_name := get_first_str(l_param_pair,lg_inline_delimiter);--||'_'||p_index;
923 l_order_param.parameter_value := get_first_str(l_param_pair,lg_inline_delimiter);
924 RETURN l_order_param;
925 END GET_ORDER_PARAM;
926
927 FUNCTION GET_ORDER_LINE_PARAM(p_clob IN CLOB, p_index in OUT NOCOPY NUMBER) RETURN xdp_types.SERVICE_LINE_PARAM
928 AS
929 l_line_param xdp_types.SERVICE_LINE_PARAM;
930 l_param_pair VARCHAR2(32000);
931 BEGIN
932 l_param_pair := GET_STR_IN_CLOB(p_clob,p_index,lg_delimiter);
933 IF (l_param_pair) is NULL THEN
934 RETURN NULL;
935 END IF;
936 l_line_param.line_number := get_first_str(l_param_pair,lg_inline_delimiter);
937 l_line_param.parameter_name := get_first_str(l_param_pair,lg_inline_delimiter);
938 l_line_param.parameter_value := get_first_str(l_param_pair,lg_inline_delimiter);
939 l_line_param.parameter_ref_value := get_first_str(l_param_pair,lg_inline_delimiter);
940 RETURN l_line_param;
941 END;
942
943 FUNCTION get_order_line_param(l_encoded_str IN OUT NOCOPY varchar2) RETURN xdp_types.SERVICE_LINE_PARAM
944 AS
945 l_line_param xdp_types.SERVICE_LINE_PARAM;
946 l_param_pair VARCHAR2(32000);
947 BEGIN
948 l_param_pair := get_first_str(l_encoded_str,lg_delimiter);
949 IF (l_param_pair) is NULL THEN
950 RETURN NULL;
951 END IF;
952 l_line_param.line_number := get_first_str(l_param_pair,lg_inline_delimiter);
953 l_line_param.parameter_name := get_first_str(l_param_pair,lg_inline_delimiter);
954 l_line_param.parameter_value := get_first_str(l_param_pair,lg_inline_delimiter);
955 l_line_param.parameter_ref_value := get_first_str(l_param_pair,lg_inline_delimiter);
956 RETURN l_line_param;
957 END;
958
959 FUNCTION CREATE_ORDER_LINE(l_line_details IN OUT NOCOPY VARCHAR2) RETURN xdp_types.SERVICE_LINE_ITEM
960 AS
961 l_line_item xdp_types.SERVICE_LINE_ITEM;
962 BEGIN
963 l_line_item.line_number := get_first_str(l_line_details,lg_inline_delimiter);
964 l_line_item.line_source := get_first_str(l_line_details,lg_inline_delimiter);
965 l_line_item.inventory_item_id := get_first_str(l_line_details,lg_inline_delimiter);
966 l_line_item.service_item_name := get_first_str(l_line_details,lg_inline_delimiter);
967 l_line_item.version := get_first_str(l_line_details,lg_inline_delimiter);
968 l_line_item.action_code := get_first_str(l_line_details,lg_inline_delimiter);
969 l_line_item.organization_code := get_first_str(l_line_details,lg_inline_delimiter);
970 l_line_item.organization_id := get_first_str(l_line_details,lg_inline_delimiter);
971 l_line_item.site_use_id := get_first_str(l_line_details,lg_inline_delimiter);
972 l_line_item.ib_source := get_first_str(l_line_details,lg_inline_delimiter);
973 l_line_item.ib_source_id := get_first_str(l_line_details,lg_inline_delimiter);
974 l_line_item.required_fulfillment_date := STR2DATE(get_first_str(l_line_details,lg_inline_delimiter));
975 l_line_item.fulfillment_required_flag := get_first_str(l_line_details,lg_inline_delimiter);
976 l_line_item.is_package_flag := get_first_str(l_line_details,lg_inline_delimiter);
977 l_line_item.fulfillment_sequence := get_first_str(l_line_details,lg_inline_delimiter);
978 l_line_item.bundle_id := get_first_str(l_line_details,lg_inline_delimiter);
979 l_line_item.bundle_sequence := get_first_str(l_line_details,lg_inline_delimiter);
980 l_line_item.priority := get_first_str(l_line_details,lg_inline_delimiter);
981 l_line_item.due_date := STR2DATE(get_first_str(l_line_details,lg_inline_delimiter));
982 l_line_item.jeopardy_enabled_flag := get_first_str(l_line_details,lg_inline_delimiter);
983 l_line_item.customer_required_date := STR2DATE(get_first_str(l_line_details,lg_inline_delimiter));
984 l_line_item.starting_number := get_first_str(l_line_details,lg_inline_delimiter);
985 l_line_item.ending_number := get_first_str(l_line_details,lg_inline_delimiter);
986 l_line_item.line_item_id := get_first_str(l_line_details,lg_inline_delimiter);
987 l_line_item.workitem_id := get_first_str(l_line_details,lg_inline_delimiter);
988 l_line_item.line_status := get_first_str(l_line_details,lg_inline_delimiter);
992 l_line_item.is_virtual_line_flag := get_first_str(l_line_details,lg_inline_delimiter);
989 l_line_item.completion_date := STR2DATE(get_first_str(l_line_details,lg_inline_delimiter));
990 l_line_item.actual_fulfillment_date := STR2DATE(get_first_str(l_line_details,lg_inline_delimiter));
991 l_line_item.parent_line_number := get_first_str(l_line_details,lg_inline_delimiter);
993 l_line_item.attribute_category := get_first_str(l_line_details,lg_inline_delimiter);
994 l_line_item.attribute1 := get_first_str(l_line_details,lg_inline_delimiter);
995 l_line_item.attribute2 := get_first_str(l_line_details,lg_inline_delimiter);
996 l_line_item.attribute3 := get_first_str(l_line_details,lg_inline_delimiter);
997 l_line_item.attribute4 := get_first_str(l_line_details,lg_inline_delimiter);
998 l_line_item.attribute5 := get_first_str(l_line_details,lg_inline_delimiter);
999 l_line_item.attribute6 := get_first_str(l_line_details,lg_inline_delimiter);
1000 l_line_item.attribute7 := get_first_str(l_line_details,lg_inline_delimiter);
1001 l_line_item.attribute8 := get_first_str(l_line_details,lg_inline_delimiter);
1002 l_line_item.attribute9 := get_first_str(l_line_details,lg_inline_delimiter);
1003 l_line_item.attribute10 := get_first_str(l_line_details,lg_inline_delimiter);
1004 l_line_item.attribute11 := get_first_str(l_line_details,lg_inline_delimiter);
1005 l_line_item.attribute12 := get_first_str(l_line_details,lg_inline_delimiter);
1006 l_line_item.attribute13 := get_first_str(l_line_details,lg_inline_delimiter);
1007 l_line_item.attribute14 := get_first_str(l_line_details,lg_inline_delimiter);
1008 l_line_item.attribute15 := get_first_str(l_line_details,lg_inline_delimiter);
1009 l_line_item.attribute16 := get_first_str(l_line_details,lg_inline_delimiter);
1010 l_line_item.attribute17 := get_first_str(l_line_details,lg_inline_delimiter);
1011 l_line_item.attribute18 := get_first_str(l_line_details,lg_inline_delimiter);
1012 l_line_item.attribute19 := get_first_str(l_line_details,lg_inline_delimiter);
1013 l_line_item.attribute20 := get_first_str(l_line_details,lg_inline_delimiter);
1014 RETURN l_line_item;
1015 END CREATE_ORDER_LINE;
1016
1017 FUNCTION CREATE_ORDER(l_encoded_str IN OUT NOCOPY VARCHAR2) RETURN XDP_TYPES.SERVICE_ORDER_HEADER
1018 AS
1019 ddp_order_header XDP_TYPES.SERVICE_ORDER_HEADER;
1020 BEGIN
1021 ddp_order_header.order_number := get_first_str(l_encoded_str,lg_inline_delimiter);
1022 ddp_order_header.order_version := get_first_str(l_encoded_str,lg_inline_delimiter);
1023 ddp_order_header.required_fulfillment_date := STR2DATE(get_first_str(l_encoded_str,lg_inline_delimiter));
1024 ddp_order_header.priority := get_first_str(l_encoded_str,lg_inline_delimiter);
1025 ddp_order_header.jeopardy_enabled_flag := get_first_str(l_encoded_str,lg_inline_delimiter);
1026 ddp_order_header.execution_mode := get_first_str(l_encoded_str,lg_inline_delimiter);
1027 ddp_order_header.account_number := get_first_str(l_encoded_str,lg_inline_delimiter);
1028 ddp_order_header.cust_account_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1029 ddp_order_header.due_date := STR2DATE(get_first_str(l_encoded_str,lg_inline_delimiter));
1030 ddp_order_header.customer_required_date := STR2DATE(get_first_str(l_encoded_str,lg_inline_delimiter));
1031 ddp_order_header.order_type := get_first_str(l_encoded_str,lg_inline_delimiter);
1032 ddp_order_header.order_source := get_first_str(l_encoded_str,lg_inline_delimiter);
1033 ddp_order_header.org_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1034 ddp_order_header.related_order_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1035 ddp_order_header.previous_order_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1036 ddp_order_header.next_order_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1037 ddp_order_header.order_ref_name := get_first_str(l_encoded_str,lg_inline_delimiter);
1038 ddp_order_header.order_ref_value := get_first_str(l_encoded_str,lg_inline_delimiter);
1039 ddp_order_header.order_comments := get_first_str(l_encoded_str,lg_inline_delimiter);
1040 ddp_order_header.order_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1041 ddp_order_header.order_status := get_first_str(l_encoded_str,lg_inline_delimiter);
1042 ddp_order_header.fulfillment_status := get_first_str(l_encoded_str,lg_inline_delimiter);
1043 ddp_order_header.fulfillment_result := get_first_str(l_encoded_str,lg_inline_delimiter);
1044 ddp_order_header.completion_date := STR2DATE(get_first_str(l_encoded_str,lg_inline_delimiter));
1045 ddp_order_header.actual_fulfillment_date := STR2DATE(get_first_str(l_encoded_str,lg_inline_delimiter));
1046 ddp_order_header.customer_id := get_first_str(l_encoded_str,lg_inline_delimiter);
1047 ddp_order_header.customer_name := get_first_str(l_encoded_str,lg_inline_delimiter);
1048 ddp_order_header.telephone_number := get_first_str(l_encoded_str,lg_inline_delimiter);
1049 ddp_order_header.attribute_category := get_first_str(l_encoded_str,lg_inline_delimiter);
1050 ddp_order_header.attribute1 := get_first_str(l_encoded_str,lg_inline_delimiter);
1051 ddp_order_header.attribute2 := get_first_str(l_encoded_str,lg_inline_delimiter);
1052 ddp_order_header.attribute3 := get_first_str(l_encoded_str,lg_inline_delimiter);
1053 ddp_order_header.attribute4 := get_first_str(l_encoded_str,lg_inline_delimiter);
1054 ddp_order_header.attribute5 := get_first_str(l_encoded_str,lg_inline_delimiter);
1058 ddp_order_header.attribute9 := get_first_str(l_encoded_str,lg_inline_delimiter);
1055 ddp_order_header.attribute6 := get_first_str(l_encoded_str,lg_inline_delimiter);
1056 ddp_order_header.attribute7 := get_first_str(l_encoded_str,lg_inline_delimiter);
1057 ddp_order_header.attribute8 := get_first_str(l_encoded_str,lg_inline_delimiter);
1059 ddp_order_header.attribute10 := get_first_str(l_encoded_str,lg_inline_delimiter);
1060 ddp_order_header.attribute11 := get_first_str(l_encoded_str,lg_inline_delimiter);
1061 ddp_order_header.attribute12 := get_first_str(l_encoded_str,lg_inline_delimiter);
1062 ddp_order_header.attribute13 := get_first_str(l_encoded_str,lg_inline_delimiter);
1063 ddp_order_header.attribute14 := get_first_str(l_encoded_str,lg_inline_delimiter);
1064 ddp_order_header.attribute15 := get_first_str(l_encoded_str,lg_inline_delimiter);
1065 ddp_order_header.attribute16 := get_first_str(l_encoded_str,lg_inline_delimiter);
1066 ddp_order_header.attribute17 := get_first_str(l_encoded_str,lg_inline_delimiter);
1067 ddp_order_header.attribute18 := get_first_str(l_encoded_str,lg_inline_delimiter);
1068 ddp_order_header.attribute19 := get_first_str(l_encoded_str,lg_inline_delimiter);
1069 ddp_order_header.attribute20 := get_first_str(l_encoded_str,lg_inline_delimiter);
1070 RETURN ddp_order_header;
1071 END CREATE_ORDER;
1072
1073
1074 FUNCTION GET_ORDER_LINE(l_encoded_str IN OUT NOCOPY VARCHAR2) RETURN xdp_types.SERVICE_LINE_ITEM
1075 AS
1076 l_line_item xdp_types.SERVICE_LINE_ITEM;
1077 l_line_details VARCHAR2(32000);
1078 BEGIN
1079 l_line_details := get_first_str(l_encoded_str,lg_delimiter);
1080 IF(l_line_details IS NULL) THEN
1081 RETURN NULL;
1082 END IF;
1083
1084 RETURN CREATE_ORDER_LINE(l_line_details);
1085 END GET_ORDER_LINE;
1086
1087 FUNCTION GET_ORDER_LINE(p_clob IN CLOB, p_index in OUT NOCOPY NUMBER) RETURN xdp_types.SERVICE_LINE_ITEM
1088 AS
1089 l_line_item xdp_types.SERVICE_LINE_ITEM;
1090 l_line_details VARCHAR2(32000);
1091 BEGIN
1092 l_line_details := GET_STR_IN_CLOB(p_clob,p_index,lg_delimiter);
1093 IF (l_line_details) is NULL THEN
1094 RETURN NULL;
1095 END IF;
1096 RETURN CREATE_ORDER_LINE(l_line_details);
1097 END GET_ORDER_LINE;
1098
1099 PROCEDURE PROCESS_ORDER(
1100 p_api_version VARCHAR2
1101 , p_init_msg_list VARCHAR2
1102 , p_commit VARCHAR2
1103 , p_validation_level VARCHAR2
1104 , x_return_status OUT NOCOPY VARCHAR2
1105 , x_msg_count OUT NOCOPY VARCHAR2
1106 , x_msg_data OUT NOCOPY VARCHAR2
1107 , x_error_code OUT NOCOPY NUMBER
1108 , p_order_header in VARCHAR2
1109 , p_order_line in VARCHAR2
1110 , p_order_params in VARCHAR2
1111 , p_order_line_params in VARCHAR2
1112 , x_order_id OUT NOCOPY NUMBER
1113 )
1114 AS
1115 ddp_order_header xdp_types.service_order_header;
1116 ddp_order_param_list xdp_types.service_order_param_list;
1117 ddp_order_line_list xdp_types.service_order_line_list;
1118 ddp_line_param_list xdp_types.service_line_param_list;
1119 ddindx BINARY_INTEGER;
1120 indx BINARY_INTEGER;
1121 l_pointer BINARY_INTEGER := 1;
1122 l_index number := 1;
1123 l_encoded_str VARCHAR2(32000);
1124 BEGIN
1125
1126 l_encoded_str := p_order_header;
1127 ddp_order_header := create_order(l_encoded_str);
1128 l_pointer := 1;
1129 IF length(p_order_params) > 0 THEN
1130 l_encoded_str := p_order_params;
1131 LOOP
1132 ddp_order_param_list(l_pointer) := get_order_param(l_encoded_str);
1133 l_pointer := l_pointer+1;
1134 IF(length(l_encoded_str) = 0) OR (l_encoded_str is null)THEN
1135 EXIT;
1136 END IF;
1137 END LOOP;
1138 END IF;
1139
1140 l_pointer := 1;
1141 IF length(p_order_line_params) > 0 THEN
1142 l_encoded_str := p_order_line_params;
1143 LOOP
1144 ddp_line_param_list(l_pointer) := get_order_line_param(l_encoded_str);
1145 l_pointer := l_pointer+1;
1146 IF(length(l_encoded_str) = 0) OR (l_encoded_str IS NULL) THEN
1147 EXIT;
1148 END IF;
1149 END LOOP;
1150 END IF;
1151
1152 l_pointer := 1;
1153 IF length(p_order_line) > 0 THEN
1154 l_encoded_str := p_order_line;
1155 LOOP
1156 ddp_order_line_list(l_pointer) := get_order_line(l_encoded_str);
1157 l_pointer := l_pointer+1;
1158 IF(length(l_encoded_str) = 0) OR (l_encoded_str IS NULL) THEN
1159 EXIT;
1160 END IF;
1161 END LOOP;
1162 END IF;
1163
1164 xdp_interfaces_pub.process_order(p_api_version,
1165 p_init_msg_list,
1166 p_commit,
1167 p_validation_level,
1168 x_return_status,
1169 x_msg_count,
1170 x_msg_data,
1171 x_error_code,
1172 ddp_order_header,
1173 ddp_order_param_list,
1174 ddp_order_line_list,
1175 ddp_line_param_list,
1176 x_order_id);
1180 PROCEDURE PROCESS_ORDER(
1177 -- copy data back from the local OUT or IN-OUT args, if any
1178 END PROCESS_ORDER;
1179
1181 p_api_version VARCHAR2
1182 , p_init_msg_list VARCHAR2
1183 , p_commit VARCHAR2
1184 , p_validation_level VARCHAR2
1185 , x_return_status OUT NOCOPY VARCHAR2
1186 , x_msg_count OUT NOCOPY VARCHAR2
1187 , x_msg_data OUT NOCOPY VARCHAR2
1188 , x_error_code OUT NOCOPY NUMBER
1189 , p_order_header in VARCHAR2
1190 , x_order_id OUT NOCOPY NUMBER
1191 )
1192 AS
1193 BEGIN
1194 PROCESS_ORDER(
1195 p_api_version
1196 , p_init_msg_list
1197 , p_commit
1198 , p_validation_level
1199 , x_return_status
1200 , x_msg_count
1201 , x_msg_data
1202 , x_error_code
1203 , p_order_header
1204 , lg_line_clob
1205 , lg_order_param_clob
1206 , lg_line_param_clob
1207 , x_order_id
1208 );
1209 END;
1210
1211 PROCEDURE GET_CLOBS(
1212 x_line OUT NOCOPY CLOB,
1213 x_order_param OUT NOCOPY CLOB,
1214 x_line_param OUT NOCOPY CLOB
1215 ) AS
1216 BEGIN
1217 dbms_lob.createtemporary(lg_order_param_clob,true);
1218 dbms_lob.open(lg_order_param_clob,dbms_lob.lob_readwrite);
1219 dbms_lob.createtemporary(lg_line_clob,true);
1220 dbms_lob.open(lg_line_clob,dbms_lob.lob_readwrite);
1221 dbms_lob.createtemporary(lg_line_param_clob,true);
1222 dbms_lob.open(lg_line_param_clob,dbms_lob.lob_readwrite);
1223 x_line := lg_line_clob;
1224 x_order_param := lg_order_param_clob;
1225 x_line_param := lg_line_param_clob;
1226 END GET_CLOBS;
1227
1228 PROCEDURE FREE_CLOBS AS
1229 BEGIN
1230 dbms_lob.freetemporary(lg_order_param_clob);
1231 dbms_lob.freetemporary(lg_line_clob);
1232 dbms_lob.freetemporary(lg_line_param_clob);
1233 END FREE_CLOBS;
1234
1235 PROCEDURE PROCESS_ORDER(
1236 p_api_version VARCHAR2
1237 , p_init_msg_list VARCHAR2
1238 , p_commit VARCHAR2
1239 , p_validation_level VARCHAR2
1240 , x_return_status OUT NOCOPY VARCHAR2
1241 , x_msg_count OUT NOCOPY VARCHAR2
1242 , x_msg_data OUT NOCOPY VARCHAR2
1243 , x_error_code OUT NOCOPY NUMBER
1244 , p_order_header in VARCHAR2
1245 , p_order_line in CLOB
1246 , p_order_params in CLOB
1247 , p_order_line_params in CLOB
1248 , x_order_id OUT NOCOPY NUMBER
1249 )
1250 AS
1251 ddp_order_header xdp_types.service_order_header;
1252 ddp_order_param_list xdp_types.service_order_param_list;
1253 ddp_order_line_list xdp_types.service_order_line_list;
1254 ddp_line_param_list xdp_types.service_line_param_list;
1255 ddindx BINARY_INTEGER;
1256 indx BINARY_INTEGER;
1257 l_pointer BINARY_INTEGER := 1;
1258 l_clob CLOB;
1259 l_index number := 1;
1260 l_encoded_str VARCHAR2(32000);
1261 l_clob_length NUMBER;
1262 BEGIN
1263 l_encoded_str := p_order_header;
1264 ddp_order_header := create_order(l_encoded_str);
1265 l_pointer := 1;
1266 l_clob_length := DBMS_LOB.GETLENGTH(p_order_params);
1267 IF l_clob_length > 0 THEN
1268 l_index := 1;
1269 LOOP
1270 ddp_order_param_list(l_pointer) := get_order_param(p_order_params,l_index);
1271 l_pointer := l_pointer+1;
1272 IF l_index >= l_clob_length THEN
1273 EXIT;
1274 END IF;
1275 END LOOP;
1276 END IF;
1277
1278 l_pointer := 1;
1279 l_clob_length := DBMS_LOB.GETLENGTH(p_order_line_params);
1280 IF l_clob_length > 0 THEN
1281 l_index := 1;
1282 LOOP
1283 ddp_line_param_list(l_pointer) := get_order_line_param(p_order_line_params,l_index);
1284 l_pointer := l_pointer+1;
1285 IF(l_index >= l_clob_length) THEN
1286 EXIT;
1287 END IF;
1288 END LOOP;
1289 END IF;
1290
1291 l_pointer := 1;
1292 l_clob_length := DBMS_LOB.GETLENGTH(p_order_line);
1293 IF l_clob_length > 0 THEN
1294 l_index := 1;
1295 LOOP
1296 ddp_order_line_list(l_pointer) := get_order_line(p_order_line,l_index);
1297 l_pointer := l_pointer+1;
1298 IF(l_index >= l_clob_length) THEN
1299 EXIT;
1300 END IF;
1301 END LOOP;
1302 END IF;
1303
1304 xdp_interfaces_pub.process_order(p_api_version,
1305 p_init_msg_list,
1306 p_commit,
1307 p_validation_level,
1308 x_return_status,
1309 x_msg_count,
1310 x_msg_data,
1311 x_error_code,
1312 ddp_order_header,
1313 ddp_order_param_list,
1314 ddp_order_line_list,
1315 ddp_line_param_list,
1316 x_order_id);
1317
1318 FREE_CLOBS();
1319
1320 END PROCESS_ORDER;
1321
1322 end xdp_interfaces_pub_w;