[Home] [Help]
PACKAGE BODY: APPS.IEM_DPM_PP_QUEUE_PVT_W
Source
1 package body iem_dpm_pp_queue_pvt_w as
2 /* $Header: iemvdprb.pls 120.0 2005/09/06 11:29 liangxia 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_p1(t out nocopy iem_dpm_pp_queue_pvt.folder_worklist_tbl, a0 JTF_NUMBER_TABLE
14 , a1 JTF_NUMBER_TABLE
15 , a2 JTF_VARCHAR2_TABLE_100
16 , a3 JTF_VARCHAR2_TABLE_100
17 , a4 JTF_VARCHAR2_TABLE_300
18 , a5 JTF_VARCHAR2_TABLE_300
19 , a6 JTF_VARCHAR2_TABLE_100
20 , a7 JTF_NUMBER_TABLE
21 ) as
22 ddindx binary_integer; indx binary_integer;
23 begin
24 if a0 is not null and a0.count > 0 then
25 if a0.count > 0 then
26 indx := a0.first;
27 ddindx := 1;
28 while true loop
29 t(ddindx).migration_id := a0(indx);
30 t(ddindx).email_acct_id := a1(indx);
31 t(ddindx).folder_type := a2(indx);
32 t(ddindx).folder_name := a3(indx);
33 t(ddindx).user_name := a4(indx);
34 t(ddindx).password := a5(indx);
35 t(ddindx).server_name := a6(indx);
36 t(ddindx).port := a7(indx);
37 ddindx := ddindx+1;
38 if a0.last =indx
39 then exit;
40 end if;
41 indx := a0.next(indx);
42 end loop;
43 end if;
44 end if;
45 end rosetta_table_copy_in_p1;
46 procedure rosetta_table_copy_out_p1(t iem_dpm_pp_queue_pvt.folder_worklist_tbl, a0 out nocopy JTF_NUMBER_TABLE
47 , a1 out nocopy JTF_NUMBER_TABLE
48 , a2 out nocopy JTF_VARCHAR2_TABLE_100
49 , a3 out nocopy JTF_VARCHAR2_TABLE_100
50 , a4 out nocopy JTF_VARCHAR2_TABLE_300
51 , a5 out nocopy JTF_VARCHAR2_TABLE_300
52 , a6 out nocopy JTF_VARCHAR2_TABLE_100
53 , a7 out nocopy JTF_NUMBER_TABLE
54 ) as
55 ddindx binary_integer; indx binary_integer;
56 begin
57 if t is null or t.count = 0 then
58 a0 := JTF_NUMBER_TABLE();
59 a1 := JTF_NUMBER_TABLE();
60 a2 := JTF_VARCHAR2_TABLE_100();
61 a3 := JTF_VARCHAR2_TABLE_100();
62 a4 := JTF_VARCHAR2_TABLE_300();
63 a5 := JTF_VARCHAR2_TABLE_300();
64 a6 := JTF_VARCHAR2_TABLE_100();
65 a7 := JTF_NUMBER_TABLE();
66 else
67 a0 := JTF_NUMBER_TABLE();
68 a1 := JTF_NUMBER_TABLE();
69 a2 := JTF_VARCHAR2_TABLE_100();
70 a3 := JTF_VARCHAR2_TABLE_100();
71 a4 := JTF_VARCHAR2_TABLE_300();
72 a5 := JTF_VARCHAR2_TABLE_300();
73 a6 := JTF_VARCHAR2_TABLE_100();
74 a7 := JTF_NUMBER_TABLE();
75 if t.count > 0 then
76 a0.extend(t.count);
77 a1.extend(t.count);
78 a2.extend(t.count);
79 a3.extend(t.count);
80 a4.extend(t.count);
81 a5.extend(t.count);
82 a6.extend(t.count);
83 a7.extend(t.count);
84 ddindx := t.first;
85 indx := 1;
86 while true loop
87 a0(indx) := t(ddindx).migration_id;
88 a1(indx) := t(ddindx).email_acct_id;
89 a2(indx) := t(ddindx).folder_type;
90 a3(indx) := t(ddindx).folder_name;
91 a4(indx) := t(ddindx).user_name;
92 a5(indx) := t(ddindx).password;
93 a6(indx) := t(ddindx).server_name;
94 a7(indx) := t(ddindx).port;
95 indx := indx+1;
96 if t.last =ddindx
97 then exit;
98 end if;
99 ddindx := t.next(ddindx);
100 end loop;
101 end if;
102 end if;
103 end rosetta_table_copy_out_p1;
104
105 procedure get_folder_work_list(p_api_version_number NUMBER
106 , p_init_msg_list VARCHAR2
107 , p_commit VARCHAR2
108 , p3_a0 out nocopy JTF_NUMBER_TABLE
109 , p3_a1 out nocopy JTF_NUMBER_TABLE
110 , p3_a2 out nocopy JTF_VARCHAR2_TABLE_100
111 , p3_a3 out nocopy JTF_VARCHAR2_TABLE_100
112 , p3_a4 out nocopy JTF_VARCHAR2_TABLE_300
113 , p3_a5 out nocopy JTF_VARCHAR2_TABLE_300
114 , p3_a6 out nocopy JTF_VARCHAR2_TABLE_100
115 , p3_a7 out nocopy JTF_NUMBER_TABLE
116 , x_return_status out nocopy VARCHAR2
117 , x_msg_count out nocopy NUMBER
118 , x_msg_data out nocopy VARCHAR2
119 )
120
121 as
122 ddx_folder_work_list iem_dpm_pp_queue_pvt.folder_worklist_tbl;
123 ddindx binary_integer; indx binary_integer;
124 begin
125
126 -- copy data to the local IN or IN-OUT args, if any
127
128
129
130
131
132
133
134 -- here's the delegated call to the old PL/SQL routine
135 iem_dpm_pp_queue_pvt.get_folder_work_list(p_api_version_number,
136 p_init_msg_list,
137 p_commit,
138 ddx_folder_work_list,
139 x_return_status,
140 x_msg_count,
141 x_msg_data);
142
143 -- copy data back from the local variables to OUT or IN-OUT args, if any
144
145
146
147 iem_dpm_pp_queue_pvt_w.rosetta_table_copy_out_p1(ddx_folder_work_list, p3_a0
148 , p3_a1
149 , p3_a2
150 , p3_a3
151 , p3_a4
152 , p3_a5
153 , p3_a6
154 , p3_a7
155 );
156
157
158
159 end;
160
161 end iem_dpm_pp_queue_pvt_w;