[Home] [Help]
PACKAGE BODY: APPS.OKL_ECL_PVT_W
Source
1 package body okl_ecl_pvt_w as
2 /* $Header: OKLIECLB.pls 120.1 2005/10/30 04:58:39 appldev noship $ */
3 procedure rosetta_table_copy_in_p1(t out nocopy okl_ecl_pvt.okl_ecl_tbl, a0 JTF_NUMBER_TABLE
4 , a1 JTF_NUMBER_TABLE
5 , a2 JTF_NUMBER_TABLE
6 , a3 JTF_NUMBER_TABLE
7 , a4 JTF_DATE_TABLE
8 , a5 JTF_DATE_TABLE
9 , a6 JTF_VARCHAR2_TABLE_100
10 , a7 JTF_VARCHAR2_TABLE_100
11 , a8 JTF_NUMBER_TABLE
12 , a9 JTF_DATE_TABLE
13 , a10 JTF_NUMBER_TABLE
14 , a11 JTF_DATE_TABLE
15 , a12 JTF_NUMBER_TABLE
16 ) as
17 ddindx binary_integer; indx binary_integer;
18 begin
19 if a0 is not null and a0.count > 0 then
20 if a0.count > 0 then
21 indx := a0.first;
22 ddindx := 1;
23 while true loop
24 t(ddindx).criteria_id := a0(indx);
25 t(ddindx).object_version_number := a1(indx);
26 t(ddindx).criteria_set_id := a2(indx);
27 t(ddindx).crit_cat_def_id := a3(indx);
28 t(ddindx).effective_from_date := a4(indx);
29 t(ddindx).effective_to_date := a5(indx);
30 t(ddindx).match_criteria_code := a6(indx);
31 t(ddindx).is_new_flag := a7(indx);
32 t(ddindx).created_by := a8(indx);
33 t(ddindx).creation_date := a9(indx);
34 t(ddindx).last_updated_by := a10(indx);
35 t(ddindx).last_update_date := a11(indx);
36 t(ddindx).last_update_login := a12(indx);
37 ddindx := ddindx+1;
38 if a0.last =indx
39 then exit;
40 end if;
41 indx := a0.next(indx);
42 end loop;
43 end if;
44 end if;
45 end rosetta_table_copy_in_p1;
46 procedure rosetta_table_copy_out_p1(t okl_ecl_pvt.okl_ecl_tbl, a0 out nocopy JTF_NUMBER_TABLE
47 , a1 out nocopy JTF_NUMBER_TABLE
48 , a2 out nocopy JTF_NUMBER_TABLE
49 , a3 out nocopy JTF_NUMBER_TABLE
50 , a4 out nocopy JTF_DATE_TABLE
51 , a5 out nocopy JTF_DATE_TABLE
52 , a6 out nocopy JTF_VARCHAR2_TABLE_100
53 , a7 out nocopy JTF_VARCHAR2_TABLE_100
54 , a8 out nocopy JTF_NUMBER_TABLE
55 , a9 out nocopy JTF_DATE_TABLE
56 , a10 out nocopy JTF_NUMBER_TABLE
57 , a11 out nocopy JTF_DATE_TABLE
58 , a12 out nocopy JTF_NUMBER_TABLE
59 ) as
60 ddindx binary_integer; indx binary_integer;
61 begin
62 if t is null or t.count = 0 then
63 a0 := JTF_NUMBER_TABLE();
64 a1 := JTF_NUMBER_TABLE();
65 a2 := JTF_NUMBER_TABLE();
66 a3 := JTF_NUMBER_TABLE();
67 a4 := JTF_DATE_TABLE();
68 a5 := JTF_DATE_TABLE();
69 a6 := JTF_VARCHAR2_TABLE_100();
70 a7 := JTF_VARCHAR2_TABLE_100();
71 a8 := JTF_NUMBER_TABLE();
72 a9 := JTF_DATE_TABLE();
73 a10 := JTF_NUMBER_TABLE();
74 a11 := JTF_DATE_TABLE();
75 a12 := JTF_NUMBER_TABLE();
76 else
77 a0 := JTF_NUMBER_TABLE();
78 a1 := JTF_NUMBER_TABLE();
79 a2 := JTF_NUMBER_TABLE();
80 a3 := JTF_NUMBER_TABLE();
81 a4 := JTF_DATE_TABLE();
82 a5 := JTF_DATE_TABLE();
83 a6 := JTF_VARCHAR2_TABLE_100();
84 a7 := JTF_VARCHAR2_TABLE_100();
85 a8 := JTF_NUMBER_TABLE();
86 a9 := JTF_DATE_TABLE();
87 a10 := JTF_NUMBER_TABLE();
88 a11 := JTF_DATE_TABLE();
89 a12 := JTF_NUMBER_TABLE();
90 if t.count > 0 then
91 a0.extend(t.count);
92 a1.extend(t.count);
93 a2.extend(t.count);
94 a3.extend(t.count);
95 a4.extend(t.count);
96 a5.extend(t.count);
97 a6.extend(t.count);
98 a7.extend(t.count);
99 a8.extend(t.count);
100 a9.extend(t.count);
101 a10.extend(t.count);
102 a11.extend(t.count);
103 a12.extend(t.count);
104 ddindx := t.first;
105 indx := 1;
106 while true loop
107 a0(indx) := t(ddindx).criteria_id;
108 a1(indx) := t(ddindx).object_version_number;
109 a2(indx) := t(ddindx).criteria_set_id;
110 a3(indx) := t(ddindx).crit_cat_def_id;
111 a4(indx) := t(ddindx).effective_from_date;
112 a5(indx) := t(ddindx).effective_to_date;
113 a6(indx) := t(ddindx).match_criteria_code;
114 a7(indx) := t(ddindx).is_new_flag;
115 a8(indx) := t(ddindx).created_by;
116 a9(indx) := t(ddindx).creation_date;
117 a10(indx) := t(ddindx).last_updated_by;
118 a11(indx) := t(ddindx).last_update_date;
119 a12(indx) := t(ddindx).last_update_login;
120 indx := indx+1;
121 if t.last =ddindx
122 then exit;
123 end if;
124 ddindx := t.next(ddindx);
125 end loop;
126 end if;
127 end if;
128 end rosetta_table_copy_out_p1;
129
130 procedure insert_row(p_api_version NUMBER
131 , p_init_msg_list VARCHAR2
132 , x_return_status out nocopy VARCHAR2
133 , x_msg_count out nocopy NUMBER
134 , x_msg_data out nocopy VARCHAR2
135 , p5_a0 NUMBER
136 , p5_a1 NUMBER
137 , p5_a2 NUMBER
138 , p5_a3 NUMBER
139 , p5_a4 DATE
140 , p5_a5 DATE
141 , p5_a6 VARCHAR2
142 , p5_a7 VARCHAR2
143 , p5_a8 NUMBER
144 , p5_a9 DATE
145 , p5_a10 NUMBER
146 , p5_a11 DATE
147 , p5_a12 NUMBER
148 , p6_a0 out nocopy NUMBER
149 , p6_a1 out nocopy NUMBER
150 , p6_a2 out nocopy NUMBER
151 , p6_a3 out nocopy NUMBER
152 , p6_a4 out nocopy DATE
153 , p6_a5 out nocopy DATE
154 , p6_a6 out nocopy VARCHAR2
155 , p6_a7 out nocopy VARCHAR2
156 , p6_a8 out nocopy NUMBER
157 , p6_a9 out nocopy DATE
158 , p6_a10 out nocopy NUMBER
159 , p6_a11 out nocopy DATE
160 , p6_a12 out nocopy NUMBER
161 )
162
163 as
164 ddp_ecl_rec okl_ecl_pvt.okl_ecl_rec;
165 ddx_ecl_rec okl_ecl_pvt.okl_ecl_rec;
166 ddindx binary_integer; indx binary_integer;
167 begin
168
169 -- copy data to the local IN or IN-OUT args, if any
170
171
172
173
174
175 ddp_ecl_rec.criteria_id := p5_a0;
176 ddp_ecl_rec.object_version_number := p5_a1;
177 ddp_ecl_rec.criteria_set_id := p5_a2;
178 ddp_ecl_rec.crit_cat_def_id := p5_a3;
179 ddp_ecl_rec.effective_from_date := p5_a4;
180 ddp_ecl_rec.effective_to_date := p5_a5;
181 ddp_ecl_rec.match_criteria_code := p5_a6;
182 ddp_ecl_rec.is_new_flag := p5_a7;
183 ddp_ecl_rec.created_by := p5_a8;
184 ddp_ecl_rec.creation_date := p5_a9;
185 ddp_ecl_rec.last_updated_by := p5_a10;
186 ddp_ecl_rec.last_update_date := p5_a11;
187 ddp_ecl_rec.last_update_login := p5_a12;
188
189
190 -- here's the delegated call to the old PL/SQL routine
191 okl_ecl_pvt.insert_row(p_api_version,
192 p_init_msg_list,
193 x_return_status,
194 x_msg_count,
195 x_msg_data,
196 ddp_ecl_rec,
197 ddx_ecl_rec);
198
199 -- copy data back from the local variables to OUT or IN-OUT args, if any
200
201
202
203
204
205
206 p6_a0 := ddx_ecl_rec.criteria_id;
207 p6_a1 := ddx_ecl_rec.object_version_number;
208 p6_a2 := ddx_ecl_rec.criteria_set_id;
209 p6_a3 := ddx_ecl_rec.crit_cat_def_id;
210 p6_a4 := ddx_ecl_rec.effective_from_date;
211 p6_a5 := ddx_ecl_rec.effective_to_date;
212 p6_a6 := ddx_ecl_rec.match_criteria_code;
213 p6_a7 := ddx_ecl_rec.is_new_flag;
214 p6_a8 := ddx_ecl_rec.created_by;
215 p6_a9 := ddx_ecl_rec.creation_date;
216 p6_a10 := ddx_ecl_rec.last_updated_by;
217 p6_a11 := ddx_ecl_rec.last_update_date;
218 p6_a12 := ddx_ecl_rec.last_update_login;
219 end;
220
221 procedure insert_row(p_api_version NUMBER
222 , p_init_msg_list VARCHAR2
223 , x_return_status out nocopy VARCHAR2
224 , x_msg_count out nocopy NUMBER
225 , x_msg_data out nocopy VARCHAR2
226 , p5_a0 JTF_NUMBER_TABLE
227 , p5_a1 JTF_NUMBER_TABLE
228 , p5_a2 JTF_NUMBER_TABLE
229 , p5_a3 JTF_NUMBER_TABLE
230 , p5_a4 JTF_DATE_TABLE
231 , p5_a5 JTF_DATE_TABLE
232 , p5_a6 JTF_VARCHAR2_TABLE_100
233 , p5_a7 JTF_VARCHAR2_TABLE_100
234 , p5_a8 JTF_NUMBER_TABLE
235 , p5_a9 JTF_DATE_TABLE
236 , p5_a10 JTF_NUMBER_TABLE
237 , p5_a11 JTF_DATE_TABLE
238 , p5_a12 JTF_NUMBER_TABLE
239 , p6_a0 out nocopy JTF_NUMBER_TABLE
240 , p6_a1 out nocopy JTF_NUMBER_TABLE
241 , p6_a2 out nocopy JTF_NUMBER_TABLE
242 , p6_a3 out nocopy JTF_NUMBER_TABLE
243 , p6_a4 out nocopy JTF_DATE_TABLE
244 , p6_a5 out nocopy JTF_DATE_TABLE
245 , p6_a6 out nocopy JTF_VARCHAR2_TABLE_100
246 , p6_a7 out nocopy JTF_VARCHAR2_TABLE_100
247 , p6_a8 out nocopy JTF_NUMBER_TABLE
248 , p6_a9 out nocopy JTF_DATE_TABLE
249 , p6_a10 out nocopy JTF_NUMBER_TABLE
250 , p6_a11 out nocopy JTF_DATE_TABLE
251 , p6_a12 out nocopy JTF_NUMBER_TABLE
252 )
253
254 as
255 ddp_ecl_tbl okl_ecl_pvt.okl_ecl_tbl;
256 ddx_ecl_tbl okl_ecl_pvt.okl_ecl_tbl;
257 ddindx binary_integer; indx binary_integer;
258 begin
259
260 -- copy data to the local IN or IN-OUT args, if any
261
262
263
264
265
266 okl_ecl_pvt_w.rosetta_table_copy_in_p1(ddp_ecl_tbl, p5_a0
267 , p5_a1
268 , p5_a2
269 , p5_a3
270 , p5_a4
271 , p5_a5
272 , p5_a6
273 , p5_a7
274 , p5_a8
275 , p5_a9
276 , p5_a10
277 , p5_a11
278 , p5_a12
279 );
280
281
282 -- here's the delegated call to the old PL/SQL routine
283 okl_ecl_pvt.insert_row(p_api_version,
284 p_init_msg_list,
285 x_return_status,
286 x_msg_count,
287 x_msg_data,
288 ddp_ecl_tbl,
289 ddx_ecl_tbl);
290
291 -- copy data back from the local variables to OUT or IN-OUT args, if any
292
293
294
295
296
297
298 okl_ecl_pvt_w.rosetta_table_copy_out_p1(ddx_ecl_tbl, p6_a0
299 , p6_a1
300 , p6_a2
301 , p6_a3
302 , p6_a4
303 , p6_a5
304 , p6_a6
305 , p6_a7
306 , p6_a8
307 , p6_a9
308 , p6_a10
309 , p6_a11
310 , p6_a12
311 );
312 end;
313
314 procedure update_row(p_api_version NUMBER
315 , p_init_msg_list VARCHAR2
316 , x_return_status out nocopy VARCHAR2
317 , x_msg_count out nocopy NUMBER
318 , x_msg_data out nocopy VARCHAR2
319 , p5_a0 NUMBER
320 , p5_a1 NUMBER
321 , p5_a2 NUMBER
322 , p5_a3 NUMBER
323 , p5_a4 DATE
324 , p5_a5 DATE
325 , p5_a6 VARCHAR2
326 , p5_a7 VARCHAR2
327 , p5_a8 NUMBER
328 , p5_a9 DATE
329 , p5_a10 NUMBER
330 , p5_a11 DATE
331 , p5_a12 NUMBER
332 , p6_a0 out nocopy NUMBER
333 , p6_a1 out nocopy NUMBER
334 , p6_a2 out nocopy NUMBER
335 , p6_a3 out nocopy NUMBER
336 , p6_a4 out nocopy DATE
337 , p6_a5 out nocopy DATE
338 , p6_a6 out nocopy VARCHAR2
339 , p6_a7 out nocopy VARCHAR2
340 , p6_a8 out nocopy NUMBER
341 , p6_a9 out nocopy DATE
342 , p6_a10 out nocopy NUMBER
343 , p6_a11 out nocopy DATE
344 , p6_a12 out nocopy NUMBER
345 )
346
347 as
348 ddp_ecl_rec okl_ecl_pvt.okl_ecl_rec;
349 ddx_ecl_rec okl_ecl_pvt.okl_ecl_rec;
350 ddindx binary_integer; indx binary_integer;
351 begin
352
353 -- copy data to the local IN or IN-OUT args, if any
354
355
356
357
358
359 ddp_ecl_rec.criteria_id := p5_a0;
360 ddp_ecl_rec.object_version_number := p5_a1;
361 ddp_ecl_rec.criteria_set_id := p5_a2;
362 ddp_ecl_rec.crit_cat_def_id := p5_a3;
363 ddp_ecl_rec.effective_from_date := p5_a4;
364 ddp_ecl_rec.effective_to_date := p5_a5;
365 ddp_ecl_rec.match_criteria_code := p5_a6;
366 ddp_ecl_rec.is_new_flag := p5_a7;
367 ddp_ecl_rec.created_by := p5_a8;
368 ddp_ecl_rec.creation_date := p5_a9;
369 ddp_ecl_rec.last_updated_by := p5_a10;
370 ddp_ecl_rec.last_update_date := p5_a11;
371 ddp_ecl_rec.last_update_login := p5_a12;
372
373
374 -- here's the delegated call to the old PL/SQL routine
375 okl_ecl_pvt.update_row(p_api_version,
376 p_init_msg_list,
377 x_return_status,
378 x_msg_count,
379 x_msg_data,
380 ddp_ecl_rec,
381 ddx_ecl_rec);
382
383 -- copy data back from the local variables to OUT or IN-OUT args, if any
384
385
386
387
388
389
390 p6_a0 := ddx_ecl_rec.criteria_id;
391 p6_a1 := ddx_ecl_rec.object_version_number;
392 p6_a2 := ddx_ecl_rec.criteria_set_id;
393 p6_a3 := ddx_ecl_rec.crit_cat_def_id;
394 p6_a4 := ddx_ecl_rec.effective_from_date;
395 p6_a5 := ddx_ecl_rec.effective_to_date;
396 p6_a6 := ddx_ecl_rec.match_criteria_code;
397 p6_a7 := ddx_ecl_rec.is_new_flag;
398 p6_a8 := ddx_ecl_rec.created_by;
399 p6_a9 := ddx_ecl_rec.creation_date;
400 p6_a10 := ddx_ecl_rec.last_updated_by;
401 p6_a11 := ddx_ecl_rec.last_update_date;
402 p6_a12 := ddx_ecl_rec.last_update_login;
403 end;
404
405 procedure update_row(p_api_version NUMBER
406 , p_init_msg_list VARCHAR2
407 , x_return_status out nocopy VARCHAR2
408 , x_msg_count out nocopy NUMBER
409 , x_msg_data out nocopy VARCHAR2
410 , p5_a0 JTF_NUMBER_TABLE
411 , p5_a1 JTF_NUMBER_TABLE
412 , p5_a2 JTF_NUMBER_TABLE
413 , p5_a3 JTF_NUMBER_TABLE
414 , p5_a4 JTF_DATE_TABLE
415 , p5_a5 JTF_DATE_TABLE
416 , p5_a6 JTF_VARCHAR2_TABLE_100
417 , p5_a7 JTF_VARCHAR2_TABLE_100
418 , p5_a8 JTF_NUMBER_TABLE
419 , p5_a9 JTF_DATE_TABLE
420 , p5_a10 JTF_NUMBER_TABLE
421 , p5_a11 JTF_DATE_TABLE
422 , p5_a12 JTF_NUMBER_TABLE
423 , p6_a0 out nocopy JTF_NUMBER_TABLE
424 , p6_a1 out nocopy JTF_NUMBER_TABLE
425 , p6_a2 out nocopy JTF_NUMBER_TABLE
426 , p6_a3 out nocopy JTF_NUMBER_TABLE
427 , p6_a4 out nocopy JTF_DATE_TABLE
428 , p6_a5 out nocopy JTF_DATE_TABLE
429 , p6_a6 out nocopy JTF_VARCHAR2_TABLE_100
430 , p6_a7 out nocopy JTF_VARCHAR2_TABLE_100
431 , p6_a8 out nocopy JTF_NUMBER_TABLE
432 , p6_a9 out nocopy JTF_DATE_TABLE
433 , p6_a10 out nocopy JTF_NUMBER_TABLE
434 , p6_a11 out nocopy JTF_DATE_TABLE
435 , p6_a12 out nocopy JTF_NUMBER_TABLE
436 )
437
438 as
439 ddp_ecl_tbl okl_ecl_pvt.okl_ecl_tbl;
440 ddx_ecl_tbl okl_ecl_pvt.okl_ecl_tbl;
441 ddindx binary_integer; indx binary_integer;
442 begin
443
444 -- copy data to the local IN or IN-OUT args, if any
445
446
447
448
449
450 okl_ecl_pvt_w.rosetta_table_copy_in_p1(ddp_ecl_tbl, p5_a0
451 , p5_a1
452 , p5_a2
453 , p5_a3
454 , p5_a4
455 , p5_a5
456 , p5_a6
457 , p5_a7
458 , p5_a8
459 , p5_a9
460 , p5_a10
461 , p5_a11
462 , p5_a12
463 );
464
465
466 -- here's the delegated call to the old PL/SQL routine
467 okl_ecl_pvt.update_row(p_api_version,
468 p_init_msg_list,
469 x_return_status,
470 x_msg_count,
471 x_msg_data,
472 ddp_ecl_tbl,
473 ddx_ecl_tbl);
474
475 -- copy data back from the local variables to OUT or IN-OUT args, if any
476
477
478
479
480
481
482 okl_ecl_pvt_w.rosetta_table_copy_out_p1(ddx_ecl_tbl, p6_a0
483 , p6_a1
484 , p6_a2
485 , p6_a3
486 , p6_a4
487 , p6_a5
488 , p6_a6
489 , p6_a7
490 , p6_a8
491 , p6_a9
492 , p6_a10
493 , p6_a11
494 , p6_a12
495 );
496 end;
497
498 procedure delete_row(p_api_version NUMBER
499 , p_init_msg_list VARCHAR2
500 , x_return_status out nocopy VARCHAR2
501 , x_msg_count out nocopy NUMBER
502 , x_msg_data out nocopy VARCHAR2
503 , p5_a0 NUMBER
504 , p5_a1 NUMBER
505 , p5_a2 NUMBER
506 , p5_a3 NUMBER
507 , p5_a4 DATE
508 , p5_a5 DATE
509 , p5_a6 VARCHAR2
510 , p5_a7 VARCHAR2
511 , p5_a8 NUMBER
512 , p5_a9 DATE
513 , p5_a10 NUMBER
514 , p5_a11 DATE
515 , p5_a12 NUMBER
516 )
517
518 as
519 ddp_ecl_rec okl_ecl_pvt.okl_ecl_rec;
520 ddindx binary_integer; indx binary_integer;
521 begin
522
523 -- copy data to the local IN or IN-OUT args, if any
524
525
526
527
528
529 ddp_ecl_rec.criteria_id := p5_a0;
530 ddp_ecl_rec.object_version_number := p5_a1;
531 ddp_ecl_rec.criteria_set_id := p5_a2;
532 ddp_ecl_rec.crit_cat_def_id := p5_a3;
533 ddp_ecl_rec.effective_from_date := p5_a4;
534 ddp_ecl_rec.effective_to_date := p5_a5;
535 ddp_ecl_rec.match_criteria_code := p5_a6;
536 ddp_ecl_rec.is_new_flag := p5_a7;
537 ddp_ecl_rec.created_by := p5_a8;
538 ddp_ecl_rec.creation_date := p5_a9;
539 ddp_ecl_rec.last_updated_by := p5_a10;
540 ddp_ecl_rec.last_update_date := p5_a11;
541 ddp_ecl_rec.last_update_login := p5_a12;
542
543 -- here's the delegated call to the old PL/SQL routine
544 okl_ecl_pvt.delete_row(p_api_version,
545 p_init_msg_list,
546 x_return_status,
547 x_msg_count,
548 x_msg_data,
549 ddp_ecl_rec);
550
551 -- copy data back from the local variables to OUT or IN-OUT args, if any
552
553
554
555
556
557 end;
558
559 procedure delete_row(p_api_version NUMBER
560 , p_init_msg_list VARCHAR2
561 , x_return_status out nocopy VARCHAR2
562 , x_msg_count out nocopy NUMBER
563 , x_msg_data out nocopy VARCHAR2
564 , p5_a0 JTF_NUMBER_TABLE
565 , p5_a1 JTF_NUMBER_TABLE
566 , p5_a2 JTF_NUMBER_TABLE
567 , p5_a3 JTF_NUMBER_TABLE
568 , p5_a4 JTF_DATE_TABLE
569 , p5_a5 JTF_DATE_TABLE
570 , p5_a6 JTF_VARCHAR2_TABLE_100
571 , p5_a7 JTF_VARCHAR2_TABLE_100
572 , p5_a8 JTF_NUMBER_TABLE
573 , p5_a9 JTF_DATE_TABLE
574 , p5_a10 JTF_NUMBER_TABLE
575 , p5_a11 JTF_DATE_TABLE
576 , p5_a12 JTF_NUMBER_TABLE
577 )
578
579 as
580 ddp_ecl_tbl okl_ecl_pvt.okl_ecl_tbl;
581 ddindx binary_integer; indx binary_integer;
582 begin
583
584 -- copy data to the local IN or IN-OUT args, if any
585
586
587
588
589
590 okl_ecl_pvt_w.rosetta_table_copy_in_p1(ddp_ecl_tbl, p5_a0
591 , p5_a1
592 , p5_a2
593 , p5_a3
594 , p5_a4
595 , p5_a5
596 , p5_a6
597 , p5_a7
598 , p5_a8
599 , p5_a9
600 , p5_a10
601 , p5_a11
602 , p5_a12
603 );
604
605 -- here's the delegated call to the old PL/SQL routine
606 okl_ecl_pvt.delete_row(p_api_version,
607 p_init_msg_list,
608 x_return_status,
609 x_msg_count,
610 x_msg_data,
611 ddp_ecl_tbl);
612
613 -- copy data back from the local variables to OUT or IN-OUT args, if any
614
615
616
617
618
619 end;
620
621 end okl_ecl_pvt_w;