[Home] [Help]
PACKAGE BODY: APPS.JTF_PRIME_W
Source
1 package body jtf_prime_w as
2 /* $Header: JTFPRMWB.pls 120.2 2005/11/28 22:22:44 skothe 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
6 function rosetta_g_miss_num_map(n number) return number as
7 a number := fnd_api.g_miss_num;
8 b number := 0-1962.0724;
9 begin
10 if n=a then return b; end if;
11 if n=b then return a; end if;
12 return n;
13 end;
14
15 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
16 function rosetta_g_miss_date_in_map(d date) return date as
17 begin
18 if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
19 return d;
20 end;
21
22 procedure rosetta_table_copy_in_p1(t OUT NOCOPY /* file.sql.39 change */ jtf_prime.tab01, a0 JTF_NUMBER_TABLE
23 , a1 JTF_DATE_TABLE
24 , a2 JTF_VARCHAR2_TABLE_100
25 , a3 JTF_VARCHAR2_TABLE_200
26 , a4 JTF_VARCHAR2_TABLE_300
27 , a5 JTF_VARCHAR2_TABLE_400
28 , a6 JTF_VARCHAR2_TABLE_1000
29 , a7 JTF_VARCHAR2_TABLE_2000
30 , a8 JTF_VARCHAR2_TABLE_3000
31 , a9 JTF_VARCHAR2_TABLE_4000
32 ) as
33 ddindx binary_integer; indx binary_integer;
34 begin
35 if a0 is not null and a0.count > 0 then
36 if a0.count > 0 then
37 indx := a0.first;
38 ddindx := 1;
39 while true loop
40 t(ddindx).n := rosetta_g_miss_num_map(a0(indx));
41 t(ddindx).d := rosetta_g_miss_date_in_map(a1(indx));
42 t(ddindx).vc01 := a2(indx);
43 t(ddindx).vc02 := a3(indx);
44 t(ddindx).vc03 := a4(indx);
45 t(ddindx).vc04 := a5(indx);
46 t(ddindx).vc10 := a6(indx);
47 t(ddindx).vc20 := a7(indx);
48 t(ddindx).vc30 := a8(indx);
49 t(ddindx).vc40 := a9(indx);
50 ddindx := ddindx+1;
51 if a0.last =indx
52 then exit;
53 end if;
54 indx := a0.next(indx);
55 end loop;
56 end if;
57 end if;
58 end rosetta_table_copy_in_p1;
59 procedure rosetta_table_copy_out_p1(t jtf_prime.tab01, a0 OUT NOCOPY /* file.sql.39 change */ JTF_NUMBER_TABLE
60 , a1 OUT NOCOPY /* file.sql.39 change */ JTF_DATE_TABLE
61 , a2 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_100
62 , a3 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_200
63 , a4 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_300
64 , a5 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_400
65 , a6 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_1000
66 , a7 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_2000
67 , a8 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_3000
68 , a9 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_4000
69 ) as
70 ddindx binary_integer; indx binary_integer;
71 begin
72 if t is null or t.count = 0 then
73 a0 := JTF_NUMBER_TABLE();
74 a1 := JTF_DATE_TABLE();
75 a2 := JTF_VARCHAR2_TABLE_100();
76 a3 := JTF_VARCHAR2_TABLE_200();
77 a4 := JTF_VARCHAR2_TABLE_300();
78 a5 := JTF_VARCHAR2_TABLE_400();
79 a6 := JTF_VARCHAR2_TABLE_1000();
80 a7 := JTF_VARCHAR2_TABLE_2000();
81 a8 := JTF_VARCHAR2_TABLE_3000();
82 a9 := JTF_VARCHAR2_TABLE_4000();
83 else
84 a0 := JTF_NUMBER_TABLE();
85 a1 := JTF_DATE_TABLE();
86 a2 := JTF_VARCHAR2_TABLE_100();
87 a3 := JTF_VARCHAR2_TABLE_200();
88 a4 := JTF_VARCHAR2_TABLE_300();
89 a5 := JTF_VARCHAR2_TABLE_400();
90 a6 := JTF_VARCHAR2_TABLE_1000();
91 a7 := JTF_VARCHAR2_TABLE_2000();
92 a8 := JTF_VARCHAR2_TABLE_3000();
93 a9 := JTF_VARCHAR2_TABLE_4000();
94 if t.count > 0 then
95 a0.extend(t.count);
96 a1.extend(t.count);
97 a2.extend(t.count);
98 a3.extend(t.count);
99 a4.extend(t.count);
100 a5.extend(t.count);
101 a6.extend(t.count);
102 a7.extend(t.count);
103 a8.extend(t.count);
104 a9.extend(t.count);
105 ddindx := t.first;
106 indx := 1;
107 while true loop
108 a0(indx) := rosetta_g_miss_num_map(t(ddindx).n);
109 a1(indx) := t(ddindx).d;
110 a2(indx) := t(ddindx).vc01;
111 a3(indx) := t(ddindx).vc02;
112 a4(indx) := t(ddindx).vc03;
113 a5(indx) := t(ddindx).vc04;
114 a6(indx) := t(ddindx).vc10;
115 a7(indx) := t(ddindx).vc20;
116 a8(indx) := t(ddindx).vc30;
117 a9(indx) := t(ddindx).vc40;
118 indx := indx+1;
119 if t.last =ddindx
120 then exit;
121 end if;
122 ddindx := t.next(ddindx);
123 end loop;
124 end if;
125 end if;
126 end rosetta_table_copy_out_p1;
127
128 procedure proc1(p0_a0 OUT NOCOPY /* file.sql.39 change */ JTF_NUMBER_TABLE
129 , p0_a1 OUT NOCOPY /* file.sql.39 change */ JTF_DATE_TABLE
130 , p0_a2 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_100
131 , p0_a3 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_200
132 , p0_a4 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_300
133 , p0_a5 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_400
134 , p0_a6 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_1000
135 , p0_a7 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_2000
136 , p0_a8 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_3000
137 , p0_a9 OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_4000
138 )
139 as
140 ddt jtf_prime.tab01;
141 ddindx binary_integer; indx binary_integer;
142 begin
143
144 -- copy data to the local IN or IN-OUT args, if any
145
146 -- here's the delegated call to the old PL/SQL routine
147 jtf_prime.proc1(ddt);
148
149 -- copy data back from the local OUT or IN-OUT args, if any
150 jtf_prime_w.rosetta_table_copy_out_p1(ddt, p0_a0
151 , p0_a1
152 , p0_a2
153 , p0_a3
154 , p0_a4
155 , p0_a5
156 , p0_a6
157 , p0_a7
158 , p0_a8
159 , p0_a9
160 );
161 end;
162
163 procedure proc2(p0_a0 IN OUT NOCOPY /* file.sql.39 change */ JTF_NUMBER_TABLE
164 , p0_a1 IN OUT NOCOPY /* file.sql.39 change */ JTF_DATE_TABLE
165 , p0_a2 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_100
166 , p0_a3 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_200
167 , p0_a4 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_300
168 , p0_a5 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_400
169 , p0_a6 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_1000
170 , p0_a7 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_2000
171 , p0_a8 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_3000
172 , p0_a9 IN OUT NOCOPY /* file.sql.39 change */ JTF_VARCHAR2_TABLE_4000
173 )
174 as
175 ddt jtf_prime.tab01;
176 ddindx binary_integer; indx binary_integer;
177 begin
178
179 -- copy data to the local IN or IN-OUT args, if any
180 jtf_prime_w.rosetta_table_copy_in_p1(ddt, p0_a0
181 , p0_a1
182 , p0_a2
183 , p0_a3
184 , p0_a4
185 , p0_a5
186 , p0_a6
187 , p0_a7
188 , p0_a8
189 , p0_a9
190 );
191
192 -- here's the delegated call to the old PL/SQL routine
193 jtf_prime.proc2(ddt);
194
195 -- copy data back from the local OUT or IN-OUT args, if any
196 jtf_prime_w.rosetta_table_copy_out_p1(ddt, p0_a0
197 , p0_a1
198 , p0_a2
199 , p0_a3
200 , p0_a4
201 , p0_a5
202 , p0_a6
203 , p0_a7
204 , p0_a8
205 , p0_a9
206 );
207 end;
208
209 end jtf_prime_w;