[Home] [Help]
PACKAGE BODY: APPS.JTF_RS_JSP_LOV_RECS_PUB_W
Source
1 package body jtf_rs_jsp_lov_recs_pub_w as
2 /* $Header: jtfrsjwb.pls 120.0 2005/05/11 08:20:26 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
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 jtf_rs_jsp_lov_recs_pub.lov_output_tbl_type, a0 JTF_VARCHAR2_TABLE_2000
23 , a1 JTF_VARCHAR2_TABLE_100
24 , a2 JTF_VARCHAR2_TABLE_2000
25 , a3 JTF_VARCHAR2_TABLE_2000
26 , a4 JTF_VARCHAR2_TABLE_2000
27 , a5 JTF_VARCHAR2_TABLE_2000
28 , a6 JTF_VARCHAR2_TABLE_2000
29 , a7 JTF_VARCHAR2_TABLE_2000
30 , a8 JTF_VARCHAR2_TABLE_2000
31 , a9 JTF_VARCHAR2_TABLE_2000
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).display_value := a0(indx);
41 t(ddindx).code_value := a1(indx);
42 t(ddindx).aux_value1 := a2(indx);
43 t(ddindx).aux_value2 := a3(indx);
44 t(ddindx).aux_value3 := a4(indx);
45 t(ddindx).ext_value1 := a5(indx);
46 t(ddindx).ext_value2 := a6(indx);
47 t(ddindx).ext_value3 := a7(indx);
48 t(ddindx).ext_value4 := a8(indx);
49 t(ddindx).ext_value5 := 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_p2;
59 procedure rosetta_table_copy_out_p2(t jtf_rs_jsp_lov_recs_pub.lov_output_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_2000
60 , a1 out nocopy JTF_VARCHAR2_TABLE_100
61 , a2 out nocopy JTF_VARCHAR2_TABLE_2000
62 , a3 out nocopy JTF_VARCHAR2_TABLE_2000
63 , a4 out nocopy JTF_VARCHAR2_TABLE_2000
64 , a5 out nocopy JTF_VARCHAR2_TABLE_2000
65 , a6 out nocopy JTF_VARCHAR2_TABLE_2000
66 , a7 out nocopy JTF_VARCHAR2_TABLE_2000
67 , a8 out nocopy JTF_VARCHAR2_TABLE_2000
68 , a9 out nocopy JTF_VARCHAR2_TABLE_2000
69 ) as
70 ddindx binary_integer; indx binary_integer;
71 begin
72 if t is null or t.count = 0 then
73 a0 := JTF_VARCHAR2_TABLE_2000();
74 a1 := JTF_VARCHAR2_TABLE_100();
75 a2 := JTF_VARCHAR2_TABLE_2000();
76 a3 := JTF_VARCHAR2_TABLE_2000();
77 a4 := JTF_VARCHAR2_TABLE_2000();
78 a5 := JTF_VARCHAR2_TABLE_2000();
79 a6 := JTF_VARCHAR2_TABLE_2000();
80 a7 := JTF_VARCHAR2_TABLE_2000();
81 a8 := JTF_VARCHAR2_TABLE_2000();
82 a9 := JTF_VARCHAR2_TABLE_2000();
83 else
84 a0 := JTF_VARCHAR2_TABLE_2000();
85 a1 := JTF_VARCHAR2_TABLE_100();
86 a2 := JTF_VARCHAR2_TABLE_2000();
87 a3 := JTF_VARCHAR2_TABLE_2000();
88 a4 := JTF_VARCHAR2_TABLE_2000();
89 a5 := JTF_VARCHAR2_TABLE_2000();
90 a6 := JTF_VARCHAR2_TABLE_2000();
91 a7 := JTF_VARCHAR2_TABLE_2000();
92 a8 := JTF_VARCHAR2_TABLE_2000();
93 a9 := JTF_VARCHAR2_TABLE_2000();
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) := t(ddindx).display_value;
109 a1(indx) := t(ddindx).code_value;
110 a2(indx) := t(ddindx).aux_value1;
111 a3(indx) := t(ddindx).aux_value2;
112 a4(indx) := t(ddindx).aux_value3;
113 a5(indx) := t(ddindx).ext_value1;
114 a6(indx) := t(ddindx).ext_value2;
115 a7(indx) := t(ddindx).ext_value3;
116 a8(indx) := t(ddindx).ext_value4;
117 a9(indx) := t(ddindx).ext_value5;
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_p2;
127
128 procedure get_lov_records(p_range_low NUMBER
129 , p_range_high NUMBER
130 , p_record_group_name VARCHAR2
131 , p_in_filter1 VARCHAR2
132 , p_in_filter2 VARCHAR2
133 , x_total_rows out nocopy NUMBER
134 , x_more_data_flag out nocopy VARCHAR2
135 , x_lov_ak_region out nocopy VARCHAR2
136 , p9_a0 out nocopy JTF_VARCHAR2_TABLE_2000
137 , p9_a1 out nocopy JTF_VARCHAR2_TABLE_100
138 , p9_a2 out nocopy JTF_VARCHAR2_TABLE_2000
139 , p9_a3 out nocopy JTF_VARCHAR2_TABLE_2000
140 , p9_a4 out nocopy JTF_VARCHAR2_TABLE_2000
141 , p9_a5 out nocopy JTF_VARCHAR2_TABLE_2000
142 , p9_a6 out nocopy JTF_VARCHAR2_TABLE_2000
143 , p9_a7 out nocopy JTF_VARCHAR2_TABLE_2000
144 , p9_a8 out nocopy JTF_VARCHAR2_TABLE_2000
145 , p9_a9 out nocopy JTF_VARCHAR2_TABLE_2000
146 , x_ext_col_cnt out nocopy NUMBER
147 , p3_a0 VARCHAR2 := fnd_api.g_miss_char
148 , p3_a1 VARCHAR2 := fnd_api.g_miss_char
149 , p3_a2 VARCHAR2 := fnd_api.g_miss_char
150 , p3_a3 VARCHAR2 := fnd_api.g_miss_char
151 , p3_a4 VARCHAR2 := fnd_api.g_miss_char
152 )
153
154 as
155 ddp_in_filter_lov_rec jtf_rs_jsp_lov_recs_pub.lov_input_rec_type;
156 ddx_result_tbl jtf_rs_jsp_lov_recs_pub.lov_output_tbl_type;
157 ddindx binary_integer; indx binary_integer;
158 begin
159
160 -- copy data to the local IN or IN-OUT args, if any
161
162
163
164 ddp_in_filter_lov_rec.display_value := p3_a0;
165 ddp_in_filter_lov_rec.code_value := p3_a1;
166 ddp_in_filter_lov_rec.aux_value1 := p3_a2;
167 ddp_in_filter_lov_rec.aux_value2 := p3_a3;
168 ddp_in_filter_lov_rec.aux_value3 := p3_a4;
169
170
171
172
173
174
175
176
177 -- here's the delegated call to the old PL/SQL routine
178 jtf_rs_jsp_lov_recs_pub.get_lov_records(p_range_low,
179 p_range_high,
180 p_record_group_name,
181 ddp_in_filter_lov_rec,
182 p_in_filter1,
183 p_in_filter2,
184 x_total_rows,
185 x_more_data_flag,
186 x_lov_ak_region,
187 ddx_result_tbl,
188 x_ext_col_cnt);
189
190 -- copy data back from the local variables to OUT or IN-OUT args, if any
191
192
193
194
195
196
197
198
199
200 jtf_rs_jsp_lov_recs_pub_w.rosetta_table_copy_out_p2(ddx_result_tbl, p9_a0
201 , p9_a1
202 , p9_a2
203 , p9_a3
204 , p9_a4
205 , p9_a5
206 , p9_a6
207 , p9_a7
208 , p9_a8
209 , p9_a9
210 );
211
212 end;
213
214 end jtf_rs_jsp_lov_recs_pub_w;