[Home] [Help]
PACKAGE BODY: APPS.AHL_MC_TREE_PVT_W
Source
1 package body ahl_mc_tree_pvt_w as
2 /* $Header: AHLWMCTB.pls 120.2 2005/07/30 06:32 tamdas noship $ */
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 procedure rosetta_table_copy_in_p2(t out nocopy ahl_mc_tree_pvt.tree_node_tbl_type, a0 JTF_NUMBER_TABLE
14 , a1 JTF_NUMBER_TABLE
15 , a2 JTF_NUMBER_TABLE
16 , a3 JTF_NUMBER_TABLE
17 , a4 JTF_NUMBER_TABLE
18 , a5 JTF_VARCHAR2_TABLE_100
19 , a6 JTF_VARCHAR2_TABLE_100
20 , a7 JTF_VARCHAR2_TABLE_100
21 , a8 JTF_VARCHAR2_TABLE_100
22 , a9 JTF_VARCHAR2_TABLE_100
23 , a10 JTF_VARCHAR2_TABLE_100
24 , a11 JTF_VARCHAR2_TABLE_100
25 , a12 JTF_NUMBER_TABLE
26 , a13 JTF_NUMBER_TABLE
27 , a14 JTF_DATE_TABLE
28 , a15 JTF_DATE_TABLE
29 , a16 JTF_NUMBER_TABLE
30 , a17 JTF_VARCHAR2_TABLE_100
31 , a18 JTF_VARCHAR2_TABLE_100
32 , a19 JTF_VARCHAR2_TABLE_100
33 , a20 JTF_VARCHAR2_TABLE_100
34 , a21 JTF_VARCHAR2_TABLE_4000
35 , a22 JTF_NUMBER_TABLE
36 , a23 JTF_NUMBER_TABLE
37 , a24 JTF_NUMBER_TABLE
38 , a25 JTF_NUMBER_TABLE
39 , a26 JTF_VARCHAR2_TABLE_100
40 ) as
41 ddindx binary_integer; indx binary_integer;
42 begin
43 if a0 is not null and a0.count > 0 then
44 if a0.count > 0 then
45 indx := a0.first;
46 ddindx := 1;
47 while true loop
48 t(ddindx).relationship_id := a0(indx);
49 t(ddindx).object_version_number := a1(indx);
50 t(ddindx).position_key := a2(indx);
51 t(ddindx).parent_relationship_id := a3(indx);
52 t(ddindx).item_group_id := a4(indx);
53 t(ddindx).position_ref_code := a5(indx);
54 t(ddindx).position_ref_meaning := a6(indx);
55 t(ddindx).ata_code := a7(indx);
56 t(ddindx).ata_meaning := a8(indx);
57 t(ddindx).position_necessity_code := a9(indx);
58 t(ddindx).position_necessity_meaning := a10(indx);
59 t(ddindx).uom_code := a11(indx);
60 t(ddindx).quantity := a12(indx);
61 t(ddindx).display_order := a13(indx);
62 t(ddindx).active_start_date := rosetta_g_miss_date_in_map(a14(indx));
63 t(ddindx).active_end_date := rosetta_g_miss_date_in_map(a15(indx));
64 t(ddindx).num_child_nodes := a16(indx);
65 t(ddindx).has_subconfigs := a17(indx);
66 t(ddindx).is_subconfig_node := a18(indx);
67 t(ddindx).is_subconfig_topnode := a19(indx);
68 t(ddindx).is_parent_subconfig := a20(indx);
69 t(ddindx).position_path := a21(indx);
70 t(ddindx).position_path_id := a22(indx);
71 t(ddindx).mc_header_id := a23(indx);
72 t(ddindx).mc_id := a24(indx);
73 t(ddindx).version_number := a25(indx);
74 t(ddindx).config_status_code := a26(indx);
75 ddindx := ddindx+1;
76 if a0.last =indx
77 then exit;
78 end if;
79 indx := a0.next(indx);
80 end loop;
81 end if;
82 end if;
83 end rosetta_table_copy_in_p2;
84 procedure rosetta_table_copy_out_p2(t ahl_mc_tree_pvt.tree_node_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
85 , a1 out nocopy JTF_NUMBER_TABLE
86 , a2 out nocopy JTF_NUMBER_TABLE
87 , a3 out nocopy JTF_NUMBER_TABLE
88 , a4 out nocopy JTF_NUMBER_TABLE
89 , a5 out nocopy JTF_VARCHAR2_TABLE_100
90 , a6 out nocopy JTF_VARCHAR2_TABLE_100
91 , a7 out nocopy JTF_VARCHAR2_TABLE_100
92 , a8 out nocopy JTF_VARCHAR2_TABLE_100
93 , a9 out nocopy JTF_VARCHAR2_TABLE_100
94 , a10 out nocopy JTF_VARCHAR2_TABLE_100
95 , a11 out nocopy JTF_VARCHAR2_TABLE_100
96 , a12 out nocopy JTF_NUMBER_TABLE
97 , a13 out nocopy JTF_NUMBER_TABLE
98 , a14 out nocopy JTF_DATE_TABLE
99 , a15 out nocopy JTF_DATE_TABLE
100 , a16 out nocopy JTF_NUMBER_TABLE
101 , a17 out nocopy JTF_VARCHAR2_TABLE_100
102 , a18 out nocopy JTF_VARCHAR2_TABLE_100
103 , a19 out nocopy JTF_VARCHAR2_TABLE_100
104 , a20 out nocopy JTF_VARCHAR2_TABLE_100
105 , a21 out nocopy JTF_VARCHAR2_TABLE_4000
106 , a22 out nocopy JTF_NUMBER_TABLE
107 , a23 out nocopy JTF_NUMBER_TABLE
108 , a24 out nocopy JTF_NUMBER_TABLE
109 , a25 out nocopy JTF_NUMBER_TABLE
110 , a26 out nocopy JTF_VARCHAR2_TABLE_100
111 ) as
112 ddindx binary_integer; indx binary_integer;
113 begin
114 if t is null or t.count = 0 then
115 a0 := JTF_NUMBER_TABLE();
116 a1 := JTF_NUMBER_TABLE();
117 a2 := JTF_NUMBER_TABLE();
118 a3 := JTF_NUMBER_TABLE();
119 a4 := JTF_NUMBER_TABLE();
120 a5 := JTF_VARCHAR2_TABLE_100();
121 a6 := JTF_VARCHAR2_TABLE_100();
122 a7 := JTF_VARCHAR2_TABLE_100();
123 a8 := JTF_VARCHAR2_TABLE_100();
124 a9 := JTF_VARCHAR2_TABLE_100();
125 a10 := JTF_VARCHAR2_TABLE_100();
126 a11 := JTF_VARCHAR2_TABLE_100();
127 a12 := JTF_NUMBER_TABLE();
128 a13 := JTF_NUMBER_TABLE();
129 a14 := JTF_DATE_TABLE();
130 a15 := JTF_DATE_TABLE();
131 a16 := JTF_NUMBER_TABLE();
132 a17 := JTF_VARCHAR2_TABLE_100();
133 a18 := JTF_VARCHAR2_TABLE_100();
134 a19 := JTF_VARCHAR2_TABLE_100();
135 a20 := JTF_VARCHAR2_TABLE_100();
136 a21 := JTF_VARCHAR2_TABLE_4000();
137 a22 := JTF_NUMBER_TABLE();
138 a23 := JTF_NUMBER_TABLE();
139 a24 := JTF_NUMBER_TABLE();
140 a25 := JTF_NUMBER_TABLE();
141 a26 := JTF_VARCHAR2_TABLE_100();
142 else
143 a0 := JTF_NUMBER_TABLE();
144 a1 := JTF_NUMBER_TABLE();
145 a2 := JTF_NUMBER_TABLE();
146 a3 := JTF_NUMBER_TABLE();
147 a4 := JTF_NUMBER_TABLE();
148 a5 := JTF_VARCHAR2_TABLE_100();
149 a6 := JTF_VARCHAR2_TABLE_100();
150 a7 := JTF_VARCHAR2_TABLE_100();
151 a8 := JTF_VARCHAR2_TABLE_100();
152 a9 := JTF_VARCHAR2_TABLE_100();
153 a10 := JTF_VARCHAR2_TABLE_100();
154 a11 := JTF_VARCHAR2_TABLE_100();
155 a12 := JTF_NUMBER_TABLE();
156 a13 := JTF_NUMBER_TABLE();
157 a14 := JTF_DATE_TABLE();
158 a15 := JTF_DATE_TABLE();
159 a16 := JTF_NUMBER_TABLE();
160 a17 := JTF_VARCHAR2_TABLE_100();
161 a18 := JTF_VARCHAR2_TABLE_100();
162 a19 := JTF_VARCHAR2_TABLE_100();
163 a20 := JTF_VARCHAR2_TABLE_100();
164 a21 := JTF_VARCHAR2_TABLE_4000();
165 a22 := JTF_NUMBER_TABLE();
166 a23 := JTF_NUMBER_TABLE();
167 a24 := JTF_NUMBER_TABLE();
168 a25 := JTF_NUMBER_TABLE();
169 a26 := JTF_VARCHAR2_TABLE_100();
170 if t.count > 0 then
171 a0.extend(t.count);
172 a1.extend(t.count);
173 a2.extend(t.count);
174 a3.extend(t.count);
175 a4.extend(t.count);
176 a5.extend(t.count);
177 a6.extend(t.count);
178 a7.extend(t.count);
179 a8.extend(t.count);
180 a9.extend(t.count);
181 a10.extend(t.count);
182 a11.extend(t.count);
183 a12.extend(t.count);
184 a13.extend(t.count);
185 a14.extend(t.count);
186 a15.extend(t.count);
187 a16.extend(t.count);
188 a17.extend(t.count);
189 a18.extend(t.count);
190 a19.extend(t.count);
191 a20.extend(t.count);
192 a21.extend(t.count);
193 a22.extend(t.count);
194 a23.extend(t.count);
195 a24.extend(t.count);
196 a25.extend(t.count);
197 a26.extend(t.count);
198 ddindx := t.first;
199 indx := 1;
200 while true loop
201 a0(indx) := t(ddindx).relationship_id;
202 a1(indx) := t(ddindx).object_version_number;
203 a2(indx) := t(ddindx).position_key;
204 a3(indx) := t(ddindx).parent_relationship_id;
205 a4(indx) := t(ddindx).item_group_id;
206 a5(indx) := t(ddindx).position_ref_code;
207 a6(indx) := t(ddindx).position_ref_meaning;
208 a7(indx) := t(ddindx).ata_code;
209 a8(indx) := t(ddindx).ata_meaning;
210 a9(indx) := t(ddindx).position_necessity_code;
211 a10(indx) := t(ddindx).position_necessity_meaning;
212 a11(indx) := t(ddindx).uom_code;
213 a12(indx) := t(ddindx).quantity;
214 a13(indx) := t(ddindx).display_order;
215 a14(indx) := t(ddindx).active_start_date;
216 a15(indx) := t(ddindx).active_end_date;
217 a16(indx) := t(ddindx).num_child_nodes;
218 a17(indx) := t(ddindx).has_subconfigs;
219 a18(indx) := t(ddindx).is_subconfig_node;
220 a19(indx) := t(ddindx).is_subconfig_topnode;
221 a20(indx) := t(ddindx).is_parent_subconfig;
222 a21(indx) := t(ddindx).position_path;
223 a22(indx) := t(ddindx).position_path_id;
224 a23(indx) := t(ddindx).mc_header_id;
225 a24(indx) := t(ddindx).mc_id;
226 a25(indx) := t(ddindx).version_number;
227 a26(indx) := t(ddindx).config_status_code;
228 indx := indx+1;
229 if t.last =ddindx
230 then exit;
231 end if;
232 ddindx := t.next(ddindx);
233 end loop;
234 end if;
235 end if;
236 end rosetta_table_copy_out_p2;
237
238 procedure get_masterconfig_nodes(p_api_version NUMBER
239 , x_return_status out nocopy VARCHAR2
240 , x_msg_count out nocopy NUMBER
241 , x_msg_data out nocopy VARCHAR2
242 , p_mc_header_id NUMBER
243 , p_parent_rel_id NUMBER
244 , p_is_parent_subconfig VARCHAR2
245 , p_parent_pos_path VARCHAR2
246 , p_is_top_config_node VARCHAR2
247 , p_is_sub_config_node VARCHAR2
248 , p10_a0 out nocopy JTF_NUMBER_TABLE
249 , p10_a1 out nocopy JTF_NUMBER_TABLE
250 , p10_a2 out nocopy JTF_NUMBER_TABLE
251 , p10_a3 out nocopy JTF_NUMBER_TABLE
252 , p10_a4 out nocopy JTF_NUMBER_TABLE
253 , p10_a5 out nocopy JTF_VARCHAR2_TABLE_100
254 , p10_a6 out nocopy JTF_VARCHAR2_TABLE_100
255 , p10_a7 out nocopy JTF_VARCHAR2_TABLE_100
259 , p10_a11 out nocopy JTF_VARCHAR2_TABLE_100
256 , p10_a8 out nocopy JTF_VARCHAR2_TABLE_100
257 , p10_a9 out nocopy JTF_VARCHAR2_TABLE_100
258 , p10_a10 out nocopy JTF_VARCHAR2_TABLE_100
260 , p10_a12 out nocopy JTF_NUMBER_TABLE
261 , p10_a13 out nocopy JTF_NUMBER_TABLE
262 , p10_a14 out nocopy JTF_DATE_TABLE
263 , p10_a15 out nocopy JTF_DATE_TABLE
264 , p10_a16 out nocopy JTF_NUMBER_TABLE
265 , p10_a17 out nocopy JTF_VARCHAR2_TABLE_100
266 , p10_a18 out nocopy JTF_VARCHAR2_TABLE_100
267 , p10_a19 out nocopy JTF_VARCHAR2_TABLE_100
268 , p10_a20 out nocopy JTF_VARCHAR2_TABLE_100
269 , p10_a21 out nocopy JTF_VARCHAR2_TABLE_4000
270 , p10_a22 out nocopy JTF_NUMBER_TABLE
271 , p10_a23 out nocopy JTF_NUMBER_TABLE
272 , p10_a24 out nocopy JTF_NUMBER_TABLE
273 , p10_a25 out nocopy JTF_NUMBER_TABLE
274 , p10_a26 out nocopy JTF_VARCHAR2_TABLE_100
275 )
276
277 as
278 ddx_tree_node_tbl ahl_mc_tree_pvt.tree_node_tbl_type;
279 ddindx binary_integer; indx binary_integer;
280 begin
281
282 -- copy data to the local IN or IN-OUT args, if any
283
284
285
286
287
288
289
290
291
292
293
294 -- here's the delegated call to the old PL/SQL routine
295 ahl_mc_tree_pvt.get_masterconfig_nodes(p_api_version,
296 x_return_status,
297 x_msg_count,
298 x_msg_data,
299 p_mc_header_id,
300 p_parent_rel_id,
301 p_is_parent_subconfig,
302 p_parent_pos_path,
303 p_is_top_config_node,
304 p_is_sub_config_node,
305 ddx_tree_node_tbl);
306
307 -- copy data back from the local variables to OUT or IN-OUT args, if any
308
309
310
311
312
313
314
315
316
317
318 ahl_mc_tree_pvt_w.rosetta_table_copy_out_p2(ddx_tree_node_tbl, p10_a0
319 , p10_a1
320 , p10_a2
321 , p10_a3
322 , p10_a4
323 , p10_a5
324 , p10_a6
325 , p10_a7
326 , p10_a8
327 , p10_a9
328 , p10_a10
329 , p10_a11
330 , p10_a12
331 , p10_a13
332 , p10_a14
333 , p10_a15
334 , p10_a16
335 , p10_a17
336 , p10_a18
337 , p10_a19
338 , p10_a20
339 , p10_a21
340 , p10_a22
341 , p10_a23
342 , p10_a24
343 , p10_a25
344 , p10_a26
345 );
346 end;
347
348 end ahl_mc_tree_pvt_w;