DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_DUP_PVT_W

Source


1 package body hz_dup_pvt_w as
2   /* $Header: ARHWDUPB.pls 120.3 2005/06/18 04:28:09 jhuang 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   -- 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_p1(t out nocopy hz_dup_pvt.dup_party_tbl_type, a0 JTF_NUMBER_TABLE
14     , a1 JTF_NUMBER_TABLE
15     , a2 JTF_VARCHAR2_TABLE_100
16     , a3 JTF_VARCHAR2_TABLE_100
17     , a4 JTF_NUMBER_TABLE
18     , a5 JTF_NUMBER_TABLE
19     , a6 JTF_VARCHAR2_TABLE_100
20     ) as
21     ddindx binary_integer; indx binary_integer;
22   begin
23   if a0 is not null and a0.count > 0 then
24       if a0.count > 0 then
25         indx := a0.first;
26         ddindx := 1;
27         while true loop
28           t(ddindx).party_id := a0(indx);
29           t(ddindx).score := a1(indx);
30           t(ddindx).merge_flag := a2(indx);
31           t(ddindx).not_dup := a3(indx);
32           t(ddindx).merge_seq_id := a4(indx);
33           t(ddindx).merge_batch_id := a5(indx);
34           t(ddindx).merge_batch_name := a6(indx);
35           ddindx := ddindx+1;
36           if a0.last =indx
37             then exit;
38           end if;
39           indx := a0.next(indx);
40         end loop;
41       end if;
42    end if;
43   end rosetta_table_copy_in_p1;
44   procedure rosetta_table_copy_out_p1(t hz_dup_pvt.dup_party_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
45     , a1 out nocopy JTF_NUMBER_TABLE
46     , a2 out nocopy JTF_VARCHAR2_TABLE_100
47     , a3 out nocopy JTF_VARCHAR2_TABLE_100
48     , a4 out nocopy JTF_NUMBER_TABLE
49     , a5 out nocopy JTF_NUMBER_TABLE
50     , a6 out nocopy JTF_VARCHAR2_TABLE_100
51     ) as
52     ddindx binary_integer; indx binary_integer;
53   begin
54   if t is null or t.count = 0 then
55     a0 := JTF_NUMBER_TABLE();
56     a1 := JTF_NUMBER_TABLE();
57     a2 := JTF_VARCHAR2_TABLE_100();
58     a3 := JTF_VARCHAR2_TABLE_100();
59     a4 := JTF_NUMBER_TABLE();
60     a5 := JTF_NUMBER_TABLE();
61     a6 := JTF_VARCHAR2_TABLE_100();
62   else
63       a0 := JTF_NUMBER_TABLE();
64       a1 := JTF_NUMBER_TABLE();
65       a2 := JTF_VARCHAR2_TABLE_100();
66       a3 := JTF_VARCHAR2_TABLE_100();
67       a4 := JTF_NUMBER_TABLE();
68       a5 := JTF_NUMBER_TABLE();
69       a6 := JTF_VARCHAR2_TABLE_100();
70       if t.count > 0 then
71         a0.extend(t.count);
72         a1.extend(t.count);
73         a2.extend(t.count);
74         a3.extend(t.count);
75         a4.extend(t.count);
76         a5.extend(t.count);
77         a6.extend(t.count);
78         ddindx := t.first;
79         indx := 1;
80         while true loop
81           a0(indx) := t(ddindx).party_id;
82           a1(indx) := t(ddindx).score;
83           a2(indx) := t(ddindx).merge_flag;
84           a3(indx) := t(ddindx).not_dup;
85           a4(indx) := t(ddindx).merge_seq_id;
86           a5(indx) := t(ddindx).merge_batch_id;
87           a6(indx) := t(ddindx).merge_batch_name;
88           indx := indx+1;
89           if t.last =ddindx
90             then exit;
91           end if;
92           ddindx := t.next(ddindx);
93         end loop;
94       end if;
95    end if;
96   end rosetta_table_copy_out_p1;
97 
98   procedure create_dup_set_1(p0_a0  NUMBER
99     , p0_a1  NUMBER
100     , p0_a2  VARCHAR2
101     , p0_a3  NUMBER
102     , p0_a4  VARCHAR2
103     , p1_a0 JTF_NUMBER_TABLE
104     , p1_a1 JTF_NUMBER_TABLE
105     , p1_a2 JTF_VARCHAR2_TABLE_100
106     , p1_a3 JTF_VARCHAR2_TABLE_100
107     , p1_a4 JTF_NUMBER_TABLE
108     , p1_a5 JTF_NUMBER_TABLE
109     , p1_a6 JTF_VARCHAR2_TABLE_100
110     , x_dup_set_id out nocopy  NUMBER
111     , x_return_status out nocopy  VARCHAR2
112     , x_msg_count out nocopy  NUMBER
113     , x_msg_data out nocopy  VARCHAR2
114   )
115 
116   as
117     ddp_dup_set_rec hz_dup_pvt.dup_set_rec_type;
118     ddp_dup_party_tbl hz_dup_pvt.dup_party_tbl_type;
119     ddindx binary_integer; indx binary_integer;
120   begin
121 
122     -- copy data to the local IN or IN-OUT args, if any
123     ddp_dup_set_rec.dup_batch_id := p0_a0;
124     ddp_dup_set_rec.winner_party_id := p0_a1;
125     ddp_dup_set_rec.status := p0_a2;
126     ddp_dup_set_rec.assigned_to_user_id := p0_a3;
127     ddp_dup_set_rec.merge_type := p0_a4;
128 
129     hz_dup_pvt_w.rosetta_table_copy_in_p1(ddp_dup_party_tbl, p1_a0
130       , p1_a1
131       , p1_a2
132       , p1_a3
133       , p1_a4
134       , p1_a5
135       , p1_a6
136       );
137 
138 
139 
140 
141 
142     -- here's the delegated call to the old PL/SQL routine
143     hz_dup_pvt.create_dup_set(ddp_dup_set_rec,
144       ddp_dup_party_tbl,
145       x_dup_set_id,
146       x_return_status,
147       x_msg_count,
148       x_msg_data);
149 
150     -- copy data back from the local variables to OUT or IN-OUT args, if any
151 
152 
153 
154 
155 
156   end;
157 
158   procedure create_dup_batch_2(p0_a0  VARCHAR2
159     , p0_a1  NUMBER
160     , p0_a2  NUMBER
161     , p0_a3  VARCHAR2
162     , p1_a0  NUMBER
163     , p1_a1  NUMBER
164     , p1_a2  VARCHAR2
165     , p1_a3  NUMBER
166     , p1_a4  VARCHAR2
167     , p2_a0 JTF_NUMBER_TABLE
168     , p2_a1 JTF_NUMBER_TABLE
169     , p2_a2 JTF_VARCHAR2_TABLE_100
170     , p2_a3 JTF_VARCHAR2_TABLE_100
171     , p2_a4 JTF_NUMBER_TABLE
172     , p2_a5 JTF_NUMBER_TABLE
173     , p2_a6 JTF_VARCHAR2_TABLE_100
174     , x_dup_batch_id out nocopy  NUMBER
175     , x_dup_set_id out nocopy  NUMBER
176     , x_return_status out nocopy  VARCHAR2
177     , x_msg_count out nocopy  NUMBER
178     , x_msg_data out nocopy  VARCHAR2
179   )
180 
181   as
182     ddp_dup_batch_rec hz_dup_pvt.dup_batch_rec_type;
183     ddp_dup_set_rec hz_dup_pvt.dup_set_rec_type;
184     ddp_dup_party_tbl hz_dup_pvt.dup_party_tbl_type;
185     ddindx binary_integer; indx binary_integer;
186   begin
187 
188     -- copy data to the local IN or IN-OUT args, if any
189     ddp_dup_batch_rec.dup_batch_name := p0_a0;
190     ddp_dup_batch_rec.match_rule_id := p0_a1;
191     ddp_dup_batch_rec.application_id := p0_a2;
192     ddp_dup_batch_rec.request_type := p0_a3;
193 
194     ddp_dup_set_rec.dup_batch_id := p1_a0;
195     ddp_dup_set_rec.winner_party_id := p1_a1;
196     ddp_dup_set_rec.status := p1_a2;
197     ddp_dup_set_rec.assigned_to_user_id := p1_a3;
198     ddp_dup_set_rec.merge_type := p1_a4;
199 
200     hz_dup_pvt_w.rosetta_table_copy_in_p1(ddp_dup_party_tbl, p2_a0
201       , p2_a1
202       , p2_a2
203       , p2_a3
204       , p2_a4
205       , p2_a5
206       , p2_a6
207       );
208 
209 
210 
211 
212 
213 
214     -- here's the delegated call to the old PL/SQL routine
215     hz_dup_pvt.create_dup_batch(ddp_dup_batch_rec,
216       ddp_dup_set_rec,
217       ddp_dup_party_tbl,
218       x_dup_batch_id,
219       x_dup_set_id,
220       x_return_status,
221       x_msg_count,
222       x_msg_data);
223 
224     -- copy data back from the local variables to OUT or IN-OUT args, if any
225 
226 
227 
228 
229 
230 
231 
232   end;
233 
234 end hz_dup_pvt_w;