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