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