[Home] [Help]
PACKAGE BODY: APPS.AHL_UC_TREE_PVT_W
Source
1 package body ahl_uc_tree_pvt_w as
2 /* $Header: AHLWUCTB.pls 120.0.12010000.2 2008/11/06 11:00:33 sathapli 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 rosetta_g_mistake_date_high date := to_date('01/01/+4710', 'MM/DD/SYYYY');
6 rosetta_g_mistake_date_low date := to_date('01/01/-4710', 'MM/DD/SYYYY');
7
8 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
9 function rosetta_g_miss_date_in_map(d date) return date as
10 begin
11 if d > rosetta_g_mistake_date_high then return fnd_api.g_miss_date; end if;
12 if d < rosetta_g_mistake_date_low then return fnd_api.g_miss_date; end if;
13 return d;
14 end;
15
16 procedure rosetta_table_copy_in_p1(t out nocopy ahl_uc_tree_pvt.uc_descendant_tbl_type, a0 JTF_VARCHAR2_TABLE_100
17 , a1 JTF_NUMBER_TABLE
18 , a2 JTF_NUMBER_TABLE
19 , a3 JTF_VARCHAR2_TABLE_100
20 , a4 JTF_NUMBER_TABLE
21 , a5 JTF_NUMBER_TABLE
22 , a6 JTF_VARCHAR2_TABLE_100
23 , a7 JTF_VARCHAR2_TABLE_100
24 , a8 JTF_VARCHAR2_TABLE_100
25 , a9 JTF_VARCHAR2_TABLE_100
26 , a10 JTF_VARCHAR2_TABLE_100
27 ) as
28 ddindx binary_integer; indx binary_integer;
29 begin
30 if a0 is not null and a0.count > 0 then
31 if a0.count > 0 then
32 indx := a0.first;
33 ddindx := 1;
34 while true loop
35 t(ddindx).node_type := a0(indx);
36 t(ddindx).instance_id := a1(indx);
37 t(ddindx).parent_instance_id := a2(indx);
38 t(ddindx).part_info := a3(indx);
39 t(ddindx).relationship_id := a4(indx);
40 t(ddindx).parent_rel_id := a5(indx);
41 t(ddindx).position_reference := a6(indx);
42 t(ddindx).position_necessity := a7(indx);
43 t(ddindx).leaf_node_flag := a8(indx);
44 t(ddindx).has_subconfig_flag := a9(indx);
45 t(ddindx).ata_code := a10(indx);
46 ddindx := ddindx+1;
47 if a0.last =indx
48 then exit;
49 end if;
50 indx := a0.next(indx);
51 end loop;
52 end if;
53 end if;
54 end rosetta_table_copy_in_p1;
55 procedure rosetta_table_copy_out_p1(t ahl_uc_tree_pvt.uc_descendant_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_100
56 , a1 out nocopy JTF_NUMBER_TABLE
57 , a2 out nocopy JTF_NUMBER_TABLE
58 , a3 out nocopy JTF_VARCHAR2_TABLE_100
59 , a4 out nocopy JTF_NUMBER_TABLE
60 , a5 out nocopy JTF_NUMBER_TABLE
61 , a6 out nocopy JTF_VARCHAR2_TABLE_100
62 , a7 out nocopy JTF_VARCHAR2_TABLE_100
63 , a8 out nocopy JTF_VARCHAR2_TABLE_100
64 , a9 out nocopy JTF_VARCHAR2_TABLE_100
65 , a10 out nocopy JTF_VARCHAR2_TABLE_100
66 ) as
67 ddindx binary_integer; indx binary_integer;
68 begin
69 if t is null or t.count = 0 then
70 a0 := JTF_VARCHAR2_TABLE_100();
71 a1 := JTF_NUMBER_TABLE();
72 a2 := JTF_NUMBER_TABLE();
73 a3 := JTF_VARCHAR2_TABLE_100();
74 a4 := JTF_NUMBER_TABLE();
75 a5 := JTF_NUMBER_TABLE();
76 a6 := JTF_VARCHAR2_TABLE_100();
77 a7 := JTF_VARCHAR2_TABLE_100();
78 a8 := JTF_VARCHAR2_TABLE_100();
79 a9 := JTF_VARCHAR2_TABLE_100();
80 a10 := JTF_VARCHAR2_TABLE_100();
81 else
82 a0 := JTF_VARCHAR2_TABLE_100();
83 a1 := JTF_NUMBER_TABLE();
84 a2 := JTF_NUMBER_TABLE();
85 a3 := JTF_VARCHAR2_TABLE_100();
86 a4 := JTF_NUMBER_TABLE();
87 a5 := JTF_NUMBER_TABLE();
88 a6 := JTF_VARCHAR2_TABLE_100();
89 a7 := JTF_VARCHAR2_TABLE_100();
90 a8 := JTF_VARCHAR2_TABLE_100();
91 a9 := JTF_VARCHAR2_TABLE_100();
92 a10 := JTF_VARCHAR2_TABLE_100();
93 if t.count > 0 then
94 a0.extend(t.count);
95 a1.extend(t.count);
96 a2.extend(t.count);
97 a3.extend(t.count);
98 a4.extend(t.count);
99 a5.extend(t.count);
100 a6.extend(t.count);
101 a7.extend(t.count);
102 a8.extend(t.count);
103 a9.extend(t.count);
104 a10.extend(t.count);
105 ddindx := t.first;
106 indx := 1;
107 while true loop
108 a0(indx) := t(ddindx).node_type;
109 a1(indx) := t(ddindx).instance_id;
110 a2(indx) := t(ddindx).parent_instance_id;
111 a3(indx) := t(ddindx).part_info;
112 a4(indx) := t(ddindx).relationship_id;
113 a5(indx) := t(ddindx).parent_rel_id;
114 a6(indx) := t(ddindx).position_reference;
115 a7(indx) := t(ddindx).position_necessity;
116 a8(indx) := t(ddindx).leaf_node_flag;
117 a9(indx) := t(ddindx).has_subconfig_flag;
118 a10(indx) := t(ddindx).ata_code;
119 indx := indx+1;
120 if t.last =ddindx
121 then exit;
122 end if;
123 ddindx := t.next(ddindx);
124 end loop;
125 end if;
126 end if;
127 end rosetta_table_copy_out_p1;
128
129 procedure get_whole_uc_tree(p_api_version NUMBER
130 , p_init_msg_list VARCHAR2
131 , p_validation_level NUMBER
132 , x_return_status out nocopy VARCHAR2
133 , x_msg_count out nocopy NUMBER
134 , x_msg_data out nocopy VARCHAR2
135 , p_uc_header_id NUMBER
136 , p7_a0 out nocopy JTF_VARCHAR2_TABLE_100
137 , p7_a1 out nocopy JTF_NUMBER_TABLE
138 , p7_a2 out nocopy JTF_NUMBER_TABLE
139 , p7_a3 out nocopy JTF_VARCHAR2_TABLE_100
140 , p7_a4 out nocopy JTF_NUMBER_TABLE
141 , p7_a5 out nocopy JTF_NUMBER_TABLE
142 , p7_a6 out nocopy JTF_VARCHAR2_TABLE_100
143 , p7_a7 out nocopy JTF_VARCHAR2_TABLE_100
144 , p7_a8 out nocopy JTF_VARCHAR2_TABLE_100
145 , p7_a9 out nocopy JTF_VARCHAR2_TABLE_100
146 , p7_a10 out nocopy JTF_VARCHAR2_TABLE_100
147 )
148
149 as
150 ddx_uc_descendant_tbl ahl_uc_tree_pvt.uc_descendant_tbl_type;
151 ddindx binary_integer; indx binary_integer;
152 begin
153
154 -- copy data to the local IN or IN-OUT args, if any
155
156
157
158
159
160
161
162
163 -- here's the delegated call to the old PL/SQL routine
164 ahl_uc_tree_pvt.get_whole_uc_tree(p_api_version,
165 p_init_msg_list,
166 p_validation_level,
167 x_return_status,
168 x_msg_count,
169 x_msg_data,
170 p_uc_header_id,
171 ddx_uc_descendant_tbl);
172
173 -- copy data back from the local variables to OUT or IN-OUT args, if any
174
175
176
177
178
179
180
181 ahl_uc_tree_pvt_w.rosetta_table_copy_out_p1(ddx_uc_descendant_tbl, p7_a0
182 , p7_a1
183 , p7_a2
184 , p7_a3
185 , p7_a4
186 , p7_a5
187 , p7_a6
188 , p7_a7
189 , p7_a8
190 , p7_a9
191 , p7_a10
192 );
193 end;
194
195 end ahl_uc_tree_pvt_w;