[Home] [Help]
PACKAGE BODY: APPS.CN_COMP_GRP_HIER_PUB_W
Source
1 package body cn_comp_grp_hier_pub_w as
2 /* $Header: cnwcghrb.pls 115.3 2002/01/28 20:12:32 pkm 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 cn_comp_grp_hier_pub.comp_group_tbl, a0 JTF_VARCHAR2_TABLE_100
23 , a1 JTF_VARCHAR2_TABLE_100
24 , a2 JTF_NUMBER_TABLE
25 , a3 JTF_NUMBER_TABLE
26 , a4 JTF_VARCHAR2_TABLE_100
27 , a5 JTF_VARCHAR2_TABLE_100
28 , a6 JTF_NUMBER_TABLE
29 , a7 JTF_DATE_TABLE
30 , a8 JTF_DATE_TABLE
31 , a9 JTF_NUMBER_TABLE
32 , a10 JTF_NUMBER_TABLE
33 , a11 JTF_VARCHAR2_TABLE_100
34 , a12 JTF_VARCHAR2_TABLE_100
35 ) as
36 ddindx binary_integer; indx binary_integer;
37 begin
38 if a0 is not null and a0.count > 0 then
39 if a0.count > 0 then
40 indx := a0.first;
41 ddindx := 1;
42 while true loop
43 t(ddindx).level := a0(indx);
44 t(ddindx).cg_salesrep_name := a1(indx);
45 t(ddindx).cg_salesrep_id := a2(indx);
46 t(ddindx).parent_comp_group_id := a3(indx);
47 t(ddindx).grp_or_name_flag := a4(indx);
48 t(ddindx).role_name := a5(indx);
49 t(ddindx).role_id := a6(indx);
50 t(ddindx).start_date_active := rosetta_g_miss_date_in_map(a7(indx));
51 t(ddindx).end_date_active := rosetta_g_miss_date_in_map(a8(indx));
52 t(ddindx).start_cg_id := a9(indx);
53 t(ddindx).end_cg_id := a10(indx);
54 t(ddindx).image := a11(indx);
55 t(ddindx).expand := a12(indx);
56 ddindx := ddindx+1;
57 if a0.last =indx
58 then exit;
59 end if;
60 indx := a0.next(indx);
61 end loop;
62 end if;
63 end if;
64 end rosetta_table_copy_in_p1;
65 procedure rosetta_table_copy_out_p1(t cn_comp_grp_hier_pub.comp_group_tbl, a0 out JTF_VARCHAR2_TABLE_100
66 , a1 out JTF_VARCHAR2_TABLE_100
67 , a2 out JTF_NUMBER_TABLE
68 , a3 out JTF_NUMBER_TABLE
69 , a4 out JTF_VARCHAR2_TABLE_100
70 , a5 out JTF_VARCHAR2_TABLE_100
71 , a6 out JTF_NUMBER_TABLE
72 , a7 out JTF_DATE_TABLE
73 , a8 out JTF_DATE_TABLE
74 , a9 out JTF_NUMBER_TABLE
75 , a10 out JTF_NUMBER_TABLE
76 , a11 out JTF_VARCHAR2_TABLE_100
77 , a12 out JTF_VARCHAR2_TABLE_100
78 ) as
79 ddindx binary_integer; indx binary_integer;
80 begin
81 if t is null or t.count = 0 then
82 a0 := JTF_VARCHAR2_TABLE_100();
83 a1 := JTF_VARCHAR2_TABLE_100();
84 a2 := JTF_NUMBER_TABLE();
85 a3 := JTF_NUMBER_TABLE();
86 a4 := JTF_VARCHAR2_TABLE_100();
87 a5 := JTF_VARCHAR2_TABLE_100();
88 a6 := JTF_NUMBER_TABLE();
89 a7 := JTF_DATE_TABLE();
90 a8 := JTF_DATE_TABLE();
91 a9 := JTF_NUMBER_TABLE();
92 a10 := JTF_NUMBER_TABLE();
93 a11 := JTF_VARCHAR2_TABLE_100();
94 a12 := JTF_VARCHAR2_TABLE_100();
95 else
96 a0 := JTF_VARCHAR2_TABLE_100();
97 a1 := JTF_VARCHAR2_TABLE_100();
98 a2 := JTF_NUMBER_TABLE();
99 a3 := JTF_NUMBER_TABLE();
100 a4 := JTF_VARCHAR2_TABLE_100();
101 a5 := JTF_VARCHAR2_TABLE_100();
102 a6 := JTF_NUMBER_TABLE();
103 a7 := JTF_DATE_TABLE();
104 a8 := JTF_DATE_TABLE();
105 a9 := JTF_NUMBER_TABLE();
106 a10 := JTF_NUMBER_TABLE();
107 a11 := JTF_VARCHAR2_TABLE_100();
108 a12 := JTF_VARCHAR2_TABLE_100();
109 if t.count > 0 then
110 a0.extend(t.count);
111 a1.extend(t.count);
112 a2.extend(t.count);
113 a3.extend(t.count);
114 a4.extend(t.count);
115 a5.extend(t.count);
116 a6.extend(t.count);
117 a7.extend(t.count);
118 a8.extend(t.count);
119 a9.extend(t.count);
120 a10.extend(t.count);
121 a11.extend(t.count);
122 a12.extend(t.count);
123 ddindx := t.first;
124 indx := 1;
125 while true loop
126 a0(indx) := t(ddindx).level;
127 a1(indx) := t(ddindx).cg_salesrep_name;
128 a2(indx) := t(ddindx).cg_salesrep_id;
129 a3(indx) := t(ddindx).parent_comp_group_id;
130 a4(indx) := t(ddindx).grp_or_name_flag;
131 a5(indx) := t(ddindx).role_name;
132 a6(indx) := t(ddindx).role_id;
133 a7(indx) := t(ddindx).start_date_active;
134 a8(indx) := t(ddindx).end_date_active;
135 a9(indx) := t(ddindx).start_cg_id;
136 a10(indx) := t(ddindx).end_cg_id;
137 a11(indx) := t(ddindx).image;
138 a12(indx) := t(ddindx).expand;
139 indx := indx+1;
140 if t.last =ddindx
141 then exit;
142 end if;
143 ddindx := t.next(ddindx);
144 end loop;
145 end if;
146 end if;
147 end rosetta_table_copy_out_p1;
148
149 procedure get_comp_group_hier(p_api_version NUMBER
150 , p_init_msg_list VARCHAR2
151 , p_validation_level VARCHAR2
152 , p_salesrep_id NUMBER
153 , p_comp_group_id NUMBER
154 , p_focus_cg_id NUMBER
155 , p_expand CHAR
156 , p_date date
157 , p8_a0 out JTF_VARCHAR2_TABLE_100
158 , p8_a1 out JTF_VARCHAR2_TABLE_100
159 , p8_a2 out JTF_NUMBER_TABLE
160 , p8_a3 out JTF_NUMBER_TABLE
161 , p8_a4 out JTF_VARCHAR2_TABLE_100
162 , p8_a5 out JTF_VARCHAR2_TABLE_100
163 , p8_a6 out JTF_NUMBER_TABLE
164 , p8_a7 out JTF_DATE_TABLE
165 , p8_a8 out JTF_DATE_TABLE
166 , p8_a9 out JTF_NUMBER_TABLE
167 , p8_a10 out JTF_NUMBER_TABLE
168 , p8_a11 out JTF_VARCHAR2_TABLE_100
169 , p8_a12 out JTF_VARCHAR2_TABLE_100
170 , l_mgr_count out NUMBER
171 , x_period_year out VARCHAR2
172 , x_return_status out VARCHAR2
173 , x_msg_count out NUMBER
174 , x_msg_data out VARCHAR2
175 , x_loading_status out VARCHAR2
176 )
177 as
178 ddp_date date;
179 ddx_mgr_tbl cn_comp_grp_hier_pub.comp_group_tbl;
180 ddindx binary_integer; indx binary_integer;
181 begin
182
183 -- copy data to the local IN or IN-OUT args, if any
184
185
186
187
188
189
190
191 ddp_date := rosetta_g_miss_date_in_map(p_date);
192
193
194
195
196
197
198
199
200 -- here's the delegated call to the old PL/SQL routine
201 cn_comp_grp_hier_pub.get_comp_group_hier(p_api_version,
202 p_init_msg_list,
203 p_validation_level,
204 p_salesrep_id,
205 p_comp_group_id,
206 p_focus_cg_id,
207 p_expand,
208 ddp_date,
209 ddx_mgr_tbl,
210 l_mgr_count,
211 x_period_year,
212 x_return_status,
213 x_msg_count,
214 x_msg_data,
215 x_loading_status);
216
217 -- copy data back from the local OUT or IN-OUT args, if any
218
219
220
221
222
223
224
225
226 cn_comp_grp_hier_pub_w.rosetta_table_copy_out_p1(ddx_mgr_tbl, p8_a0
227 , p8_a1
228 , p8_a2
229 , p8_a3
230 , p8_a4
231 , p8_a5
232 , p8_a6
233 , p8_a7
234 , p8_a8
235 , p8_a9
236 , p8_a10
237 , p8_a11
238 , p8_a12
239 );
240
241
242
243
244
245
246 end;
247
248 end cn_comp_grp_hier_pub_w;