DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SPM_PVT_W

Source


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