[Home] [Help]
PACKAGE BODY: APPS.AHL_PRD_SERN_CHANGE_PVT_W
Source
1 package body ahl_prd_sern_change_pvt_w as
2 /* $Header: AHLWSNCB.pls 120.2 2008/03/06 00:24:36 adivenka 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_prd_sern_change_pvt.sernum_change_tbl_type, a0 JTF_NUMBER_TABLE
17 , a1 JTF_VARCHAR2_TABLE_100
18 , a2 JTF_VARCHAR2_TABLE_100
19 , a3 JTF_VARCHAR2_TABLE_100
20 , a4 JTF_VARCHAR2_TABLE_100
21 , a5 JTF_VARCHAR2_TABLE_100
22 , a6 JTF_NUMBER_TABLE
23 , a7 JTF_NUMBER_TABLE
24 , a8 JTF_VARCHAR2_TABLE_100
25 , a9 JTF_VARCHAR2_TABLE_100
26 , a10 JTF_VARCHAR2_TABLE_100
27 , a11 JTF_VARCHAR2_TABLE_100
28 , a12 JTF_VARCHAR2_TABLE_100
29 ) as
30 ddindx binary_integer; indx binary_integer;
31 begin
32 if a0 is not null and a0.count > 0 then
33 if a0.count > 0 then
34 indx := a0.first;
35 ddindx := 1;
36 while true loop
37 t(ddindx).workorder_id := a0(indx);
38 t(ddindx).job_number := a1(indx);
39 t(ddindx).item_number := a2(indx);
40 t(ddindx).new_item_number := a3(indx);
41 t(ddindx).new_lot_number := a4(indx);
42 t(ddindx).new_item_rev_number := a5(indx);
43 t(ddindx).osp_line_id := a6(indx);
44 t(ddindx).instance_id := a7(indx);
45 t(ddindx).current_serial_number := a8(indx);
46 t(ddindx).current_serail_tag := a9(indx);
47 t(ddindx).new_serial_number := a10(indx);
48 t(ddindx).new_serial_tag_code := a11(indx);
49 t(ddindx).new_serial_tag_mean := a12(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_p1;
59 procedure rosetta_table_copy_out_p1(t ahl_prd_sern_change_pvt.sernum_change_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
60 , a1 out nocopy JTF_VARCHAR2_TABLE_100
61 , a2 out nocopy JTF_VARCHAR2_TABLE_100
62 , a3 out nocopy JTF_VARCHAR2_TABLE_100
63 , a4 out nocopy JTF_VARCHAR2_TABLE_100
64 , a5 out nocopy JTF_VARCHAR2_TABLE_100
65 , a6 out nocopy JTF_NUMBER_TABLE
66 , a7 out nocopy JTF_NUMBER_TABLE
67 , a8 out nocopy JTF_VARCHAR2_TABLE_100
68 , a9 out nocopy JTF_VARCHAR2_TABLE_100
69 , a10 out nocopy JTF_VARCHAR2_TABLE_100
70 , a11 out nocopy JTF_VARCHAR2_TABLE_100
71 , a12 out nocopy JTF_VARCHAR2_TABLE_100
72 ) as
73 ddindx binary_integer; indx binary_integer;
74 begin
75 if t is null or t.count = 0 then
76 a0 := JTF_NUMBER_TABLE();
77 a1 := JTF_VARCHAR2_TABLE_100();
78 a2 := JTF_VARCHAR2_TABLE_100();
79 a3 := JTF_VARCHAR2_TABLE_100();
80 a4 := JTF_VARCHAR2_TABLE_100();
81 a5 := JTF_VARCHAR2_TABLE_100();
82 a6 := JTF_NUMBER_TABLE();
83 a7 := JTF_NUMBER_TABLE();
84 a8 := JTF_VARCHAR2_TABLE_100();
85 a9 := JTF_VARCHAR2_TABLE_100();
86 a10 := JTF_VARCHAR2_TABLE_100();
87 a11 := JTF_VARCHAR2_TABLE_100();
88 a12 := JTF_VARCHAR2_TABLE_100();
89 else
90 a0 := JTF_NUMBER_TABLE();
91 a1 := JTF_VARCHAR2_TABLE_100();
92 a2 := JTF_VARCHAR2_TABLE_100();
93 a3 := JTF_VARCHAR2_TABLE_100();
94 a4 := JTF_VARCHAR2_TABLE_100();
95 a5 := JTF_VARCHAR2_TABLE_100();
96 a6 := JTF_NUMBER_TABLE();
97 a7 := JTF_NUMBER_TABLE();
98 a8 := JTF_VARCHAR2_TABLE_100();
99 a9 := JTF_VARCHAR2_TABLE_100();
100 a10 := JTF_VARCHAR2_TABLE_100();
101 a11 := JTF_VARCHAR2_TABLE_100();
102 a12 := JTF_VARCHAR2_TABLE_100();
103 if t.count > 0 then
104 a0.extend(t.count);
105 a1.extend(t.count);
106 a2.extend(t.count);
107 a3.extend(t.count);
108 a4.extend(t.count);
109 a5.extend(t.count);
110 a6.extend(t.count);
111 a7.extend(t.count);
112 a8.extend(t.count);
113 a9.extend(t.count);
114 a10.extend(t.count);
115 a11.extend(t.count);
116 a12.extend(t.count);
117 ddindx := t.first;
118 indx := 1;
119 while true loop
120 a0(indx) := t(ddindx).workorder_id;
121 a1(indx) := t(ddindx).job_number;
122 a2(indx) := t(ddindx).item_number;
123 a3(indx) := t(ddindx).new_item_number;
124 a4(indx) := t(ddindx).new_lot_number;
125 a5(indx) := t(ddindx).new_item_rev_number;
126 a6(indx) := t(ddindx).osp_line_id;
127 a7(indx) := t(ddindx).instance_id;
128 a8(indx) := t(ddindx).current_serial_number;
129 a9(indx) := t(ddindx).current_serail_tag;
130 a10(indx) := t(ddindx).new_serial_number;
131 a11(indx) := t(ddindx).new_serial_tag_code;
132 a12(indx) := t(ddindx).new_serial_tag_mean;
133 indx := indx+1;
134 if t.last =ddindx
135 then exit;
136 end if;
137 ddindx := t.next(ddindx);
138 end loop;
139 end if;
140 end if;
141 end rosetta_table_copy_out_p1;
142
143 procedure process_serialnum_change(p_api_version NUMBER
144 , p_init_msg_list VARCHAR2
145 , p_commit VARCHAR2
146 , p_validation_level NUMBER
147 , p4_a0 NUMBER
148 , p4_a1 VARCHAR2
149 , p4_a2 VARCHAR2
150 , p4_a3 VARCHAR2
151 , p4_a4 VARCHAR2
152 , p4_a5 VARCHAR2
153 , p4_a6 NUMBER
154 , p4_a7 NUMBER
155 , p4_a8 VARCHAR2
156 , p4_a9 VARCHAR2
157 , p4_a10 VARCHAR2
158 , p4_a11 VARCHAR2
159 , p4_a12 VARCHAR2
160 , x_return_status out nocopy VARCHAR2
161 , x_msg_count out nocopy NUMBER
162 , x_msg_data out nocopy VARCHAR2
163 , x_warning_msg_tbl out nocopy JTF_VARCHAR2_TABLE_2000
164 )
165
166 as
167 ddp_serialnum_change_rec ahl_prd_sern_change_pvt.sernum_change_rec_type;
168 ddx_warning_msg_tbl ahl_uc_validation_pub.error_tbl_type;
169 ddindx binary_integer; indx binary_integer;
170 begin
171
172 -- copy data to the local IN or IN-OUT args, if any
173
174
175
176
177 ddp_serialnum_change_rec.workorder_id := p4_a0;
178 ddp_serialnum_change_rec.job_number := p4_a1;
179 ddp_serialnum_change_rec.item_number := p4_a2;
180 ddp_serialnum_change_rec.new_item_number := p4_a3;
181 ddp_serialnum_change_rec.new_lot_number := p4_a4;
182 ddp_serialnum_change_rec.new_item_rev_number := p4_a5;
183 ddp_serialnum_change_rec.osp_line_id := p4_a6;
184 ddp_serialnum_change_rec.instance_id := p4_a7;
185 ddp_serialnum_change_rec.current_serial_number := p4_a8;
186 ddp_serialnum_change_rec.current_serail_tag := p4_a9;
187 ddp_serialnum_change_rec.new_serial_number := p4_a10;
188 ddp_serialnum_change_rec.new_serial_tag_code := p4_a11;
189 ddp_serialnum_change_rec.new_serial_tag_mean := p4_a12;
190
191
192
193
194
195 -- here's the delegated call to the old PL/SQL routine
196 ahl_prd_sern_change_pvt.process_serialnum_change(p_api_version,
197 p_init_msg_list,
198 p_commit,
199 p_validation_level,
200 ddp_serialnum_change_rec,
201 x_return_status,
202 x_msg_count,
203 x_msg_data,
204 ddx_warning_msg_tbl);
205
206 -- copy data back from the local variables to OUT or IN-OUT args, if any
207
208
209
210
211
212
213
214
215 ahl_uc_validation_pub_w.rosetta_table_copy_out_p0(ddx_warning_msg_tbl, x_warning_msg_tbl);
216 end;
217
218 end ahl_prd_sern_change_pvt_w;