DBA Data[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;