DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_APR_PUB_W

Source


1 PACKAGE BODY ASO_APR_PUB_W  as
2 /* $Header: asowaprb.pls 120.1 2005/10/12 14:43:36 skulkarn noship $ */
3 -- Start of Comments
4 -- Package name     :  ASO_APR_PUB_W
5 -- Purpose          : Rosetta wrappers for ASO Approval APIs
6 -- History          : Created on 12/02/01
7 -- NOTE             :
8 -- END of Comments
9 ROSETTA_G_MISTAKE_DATE DATE   := TO_DATE('01/01/+4713', 'MM/DD/SYYYY');
10 ROSETTA_G_MISS_NUM     NUMBER := 0-1962.0724;
11 
12 G_PKG_NAME CONSTANT VARCHAR2(30)  := 'ASO_APR_PUB_W';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asowaprb.pls';
14 
15 FUNCTION rosetta_g_miss_num_map(n number) RETURN number as
16     a number := fnd_api.g_miss_num;
17     b number := 0-1962.0724;
18 BEGIN
19     IF n=a THEN RETURN b; END IF;
20     IF n=b THEN RETURN a; END IF;
21     RETURN n;
22 END;
23 
24 PROCEDURE Set_Approvers_List_Tbl_Out(
25    p_qte_approvers_list_tbl  IN  ASO_Apr_Pub.Approvers_List_Tbl_Type,
26    x_approval_det_id         OUT NOCOPY  jtf_number_table,
27    x_object_approval_id      OUT NOCOPY  jtf_number_table,
28    x_approver_person_id      OUT NOCOPY  jtf_number_table,
29    x_approver_user_id        OUT NOCOPY  jtf_number_table,
30    x_notification_id         OUT NOCOPY  jtf_number_table,
31    x_approver_sequence       OUT NOCOPY  jtf_number_table,
32    x_approver_status         OUT NOCOPY  jtf_varchar2_table_100,
33    x_approver_name           OUT NOCOPY  jtf_varchar2_table_100,
34    x_approval_comments       OUT NOCOPY  jtf_varchar2_table_300,
35    x_date_sent               OUT NOCOPY  jtf_date_table,
36    x_date_received           OUT NOCOPY  jtf_date_table
37 )
38 AS
39    ddindx binary_integer; indx binary_integer;
40 BEGIN
41    x_approval_det_id := jtf_number_table();
42    x_object_approval_id := jtf_number_table();
43    x_approver_person_id := jtf_number_table();
44    x_approver_user_id := jtf_number_table();
45    x_notification_id := jtf_number_table();
46    x_approver_sequence := jtf_number_table();
47    x_approver_status := jtf_varchar2_table_100();
48    x_approver_name := jtf_varchar2_table_100();
49    x_approval_comments := jtf_varchar2_table_300();
50    x_date_sent := jtf_date_table();
51    x_date_received := jtf_date_table();
52    IF p_qte_approvers_list_tbl.count > 0 THEN
53      x_approval_det_id.extend(p_qte_approvers_list_tbl.count);
54      x_object_approval_id.extend(p_qte_approvers_list_tbl.count);
55      x_approver_person_id.extend(p_qte_approvers_list_tbl.count);
56      x_approver_user_id.extend(p_qte_approvers_list_tbl.count);
57      x_notification_id.extend(p_qte_approvers_list_tbl.count);
58      x_approver_sequence.extend(p_qte_approvers_list_tbl.count);
59      x_approver_status.extend(p_qte_approvers_list_tbl.count);
60      x_approver_name.extend(p_qte_approvers_list_tbl.count);
61      x_approval_comments.extend(p_qte_approvers_list_tbl.count);
62      x_date_sent.extend(p_qte_approvers_list_tbl.count);
63      x_date_received.extend(p_qte_approvers_list_tbl.count);
64      ddindx := p_qte_approvers_list_tbl.first;
65      indx := 1;
66      WHILE true LOOP
67        x_approval_det_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approval_det_id);
68        x_object_approval_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).object_approval_id);
69        x_approver_person_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_person_id);
70        x_approver_user_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_user_id);
71        x_notification_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).notification_id);
72        x_approver_sequence(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_sequence);
73        x_approver_status(indx) := p_qte_approvers_list_tbl(ddindx).approver_status;
74        x_approver_name(indx) := p_qte_approvers_list_tbl(ddindx).approver_name;
75        x_approval_comments(indx) := p_qte_approvers_list_tbl(ddindx).approval_comments;
76        x_date_sent(indx) := p_qte_approvers_list_tbl(ddindx).date_sent;
77        x_date_received(indx) := p_qte_approvers_list_tbl(ddindx).date_recieved;
78        indx := indx+1;
79        IF p_qte_approvers_list_tbl.last =ddindx
80          THEN EXIT;
81        END IF;
82        ddindx := p_qte_approvers_list_tbl.next(ddindx);
83      END LOOP;
84    END IF;
85 END Set_Approvers_List_Tbl_Out;
86 
87 
88 
89 PROCEDURE Set_Rules_List_Tbl_Out(
90    p_qte_rules_list_tbl    IN  ASO_Apr_Pub.Rules_List_Tbl_Type,
91    x_rule_id               OUT NOCOPY  jtf_number_table,
92    x_object_approval_id    OUT NOCOPY  jtf_number_table,
93    x_rule_action_id        OUT NOCOPY  jtf_number_table,
94    x_rule_description      OUT NOCOPY  jtf_varchar2_table_300,
95    x_approval_level        OUT NOCOPY  jtf_varchar2_table_300
96 )
97 AS
98    ddindx binary_integer; indx binary_integer;
99 BEGIN
100    x_rule_id := jtf_number_table();
101    x_object_approval_id := jtf_number_table();
102    x_rule_action_id := jtf_number_table();
103    x_rule_description := jtf_varchar2_table_300();
104    x_approval_level := jtf_varchar2_table_300();
105    IF p_qte_rules_list_tbl.count > 0 THEN
106      x_rule_id.extend(p_qte_rules_list_tbl.count);
107      x_object_approval_id.extend(p_qte_rules_list_tbl.count);
108      x_rule_action_id.extend(p_qte_rules_list_tbl.count);
109      x_rule_description.extend(p_qte_rules_list_tbl.count);
110      x_approval_level.extend(p_qte_rules_list_tbl.count);
111      ddindx := p_qte_rules_list_tbl.first;
112      indx := 1;
113      WHILE true LOOP
114        x_rule_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).rule_id);
115        x_object_approval_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).object_approval_id);
116        x_rule_action_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).rule_action_id);
117        x_rule_description(indx) := p_qte_rules_list_tbl(ddindx).rule_description;
118        x_approval_level(indx) := p_qte_rules_list_tbl(ddindx).approval_level;
119        indx := indx+1;
120        IF p_qte_rules_list_tbl.last =ddindx
121          THEN EXIT;
122        END IF;
123        ddindx := p_qte_rules_list_tbl.next(ddindx);
124      END LOOP;
125    END IF;
126 END Set_Rules_List_Tbl_Out;
127 
128 
129 PROCEDURE Get_All_Approvers(
130    x_qa_approval_det_id         OUT NOCOPY jtf_number_table               ,
131    x_qa_object_approval_id      OUT NOCOPY jtf_number_table               ,
132    x_qa_approver_person_id      OUT NOCOPY jtf_number_table               ,
133    x_qa_approver_user_id        OUT NOCOPY jtf_number_table               ,
134    x_qa_notification_id         OUT NOCOPY jtf_number_table               ,
135    x_qa_approver_sequence       OUT NOCOPY jtf_number_table               ,
136    x_qa_approver_status         OUT NOCOPY jtf_varchar2_table_100         ,
137    x_qa_approver_name           OUT NOCOPY jtf_varchar2_table_100         ,
138    x_qa_approval_comments       OUT NOCOPY jtf_varchar2_table_300         ,
139    x_qa_date_sent               OUT NOCOPY jtf_date_table                 ,
140    x_qa_date_received           OUT NOCOPY jtf_date_table                 ,
141    x_qr_rule_id                 OUT NOCOPY jtf_number_table               ,
142    x_qr_object_approval_id      OUT NOCOPY jtf_number_table               ,
143    x_qr_rule_action_id          OUT NOCOPY jtf_number_table               ,
144    x_qr_rule_description        OUT NOCOPY jtf_varchar2_table_300         ,
145    x_qr_approval_level          OUT NOCOPY jtf_varchar2_table_300         ,
146    p_object_id                  IN  NUMBER   := FND_API.G_MISS_NUM ,
147    p_object_type                IN  VARCHAR2 := FND_API.G_MISS_CHAR,
148    p_application_id             IN  NUMBER   := FND_API.G_MISS_NUM ,
149    p_api_version_number         IN  NUMBER   := 1                  ,
150    p_init_msg_list              IN  VARCHAR2 := FND_API.G_TRUE     ,
151    p_commit                     IN  VARCHAR2 := FND_API.G_FALSE    ,
152    x_return_status              OUT NOCOPY VARCHAR2                       ,
153    x_msg_count                  OUT NOCOPY NUMBER                         ,
154    x_msg_data                   OUT NOCOPY VARCHAR2
155 )
156 AS
157   lx_approvers_list_tbl     ASO_Apr_Pub.Approvers_List_Tbl_Type;
158   lx_rules_list_tbl         ASO_Apr_Pub.Rules_List_Tbl_Type;
159 
160   l_debug                   VARCHAR2(1);
161   l_msg_count               NUMBER;
162   l_msg_data                VARCHAR2(10000);
163 
164 BEGIN
165 
166     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
167       aso_debug_pub.ADD (
168         'Begin calling ASO_Apr_Pub.Get_All_Approvers',
169         1,
170         'N'
171       );
172     END IF;
173 
174    ASO_Apr_Pub.Get_All_Approvers(
175       p_api_version_number  => p_api_version_number,
176       p_init_msg_list       => p_init_msg_list,
177       p_commit              => p_commit,
178       p_object_id           => p_object_id,
179       p_object_type         => p_object_type,
180       p_application_id      => p_application_id,
181       x_return_status       => x_return_status,
182       x_msg_count           => l_msg_count,
183       x_msg_data            => l_msg_data,
184       x_approvers_list      => lx_approvers_list_tbl,
185       x_rules_list          => lx_rules_list_tbl);
186 
187     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
188       aso_debug_pub.ADD (
189         'Returning from ASO_Apr_Pub.Get_All_Approvers',
190         1,
191         'N'
192       );
193     END IF;
194 
195    ASO_APR_PUB_W.Set_Approvers_List_Tbl_Out(
196       p_qte_approvers_list_tbl  => lx_approvers_list_tbl,
197       x_approval_det_id         => x_qa_approval_det_id,
198       x_object_approval_id      => x_qa_object_approval_id,
199       x_approver_person_id      => x_qa_approver_person_id,
200       x_approver_user_id        => x_qa_approver_user_id,
201       x_notification_id         => x_qa_notification_id,
202       x_approver_sequence       => x_qa_approver_sequence,
203       x_approver_status         => x_qa_approver_status,
204       x_approver_name           => x_qa_approver_name,
205       x_approval_comments       => x_qa_approval_comments,
206       x_date_sent               => x_qa_date_sent,
207       x_date_received           => x_qa_date_received
208    );
209 
210    ASO_APR_PUB_W.Set_Rules_List_Tbl_Out(
211       p_qte_rules_list_tbl    => lx_rules_list_tbl,
212       x_rule_id               => x_qr_rule_id,
213       x_object_approval_id    => x_qr_object_approval_id,
214       x_rule_action_id        => x_qr_rule_action_id,
215       x_rule_description      => x_qr_rule_description,
216       x_approval_level        => x_qr_approval_level
217    );
218 
219   x_msg_count := l_msg_count;
220 
221   for k in 1 .. l_msg_count loop
222 
223   x_msg_data := fnd_msg_pub.get( p_msg_index => k,
224                                    p_encoded => 'F');
225   end loop;
226 
227 
228 END Get_All_Approvers;
229 
230 
231 PROCEDURE Get_Rule_Details(
232    x_qr_rule_id                 OUT NOCOPY jtf_number_table        ,
233    x_qr_object_approval_id      OUT NOCOPY jtf_number_table        ,
234    x_qr_rule_action_id          OUT NOCOPY jtf_number_table        ,
235    x_qr_rule_description        OUT NOCOPY jtf_varchar2_table_300  ,
236    x_qr_approval_level          OUT NOCOPY jtf_varchar2_table_300  ,
237    p_object_approval_id         IN  NUMBER   := FND_API.G_MISS_NUM ,
238    p_api_version_number         IN  NUMBER   := 1                  ,
239    p_init_msg_list              IN  VARCHAR2 := FND_API.G_TRUE     ,
240    p_commit                     IN  VARCHAR2 := FND_API.G_FALSE    ,
241    x_return_status              OUT NOCOPY VARCHAR2                ,
242    x_msg_count                  OUT NOCOPY NUMBER                  ,
243    x_msg_data                   OUT NOCOPY VARCHAR2
244 )
245 AS
246   lx_rules_list_tbl         ASO_Apr_Pub.Rules_List_Tbl_Type;
247   l_debug                   VARCHAR2(1);
248 BEGIN
249 
250     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
251       aso_debug_pub.ADD (
252         'Begin calling ASO_Apr_Pub.Get_Rule_Details',
253         1,
254         'N'
255       );
256     END IF;
257 
258    ASO_Apr_Pub.Get_Rule_Details(
259       p_api_version_number  => p_api_version_number,
260       p_init_msg_list       => p_init_msg_list,
261       p_commit              => p_commit,
262       p_object_approval_id  => p_object_approval_id,
263       x_return_status       => x_return_status,
264       x_msg_count           => x_msg_count,
265       x_msg_data            => x_msg_data,
266       x_rules_list          => lx_rules_list_tbl);
267 
268     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
269       aso_debug_pub.ADD (
270         'Returning from ASO_Apr_Pub.Get_Rule_Details',
271         1,
272         'N'
273       );
274     END IF;
275 
276    ASO_APR_PUB_W.Set_Rules_List_Tbl_Out(
277       p_qte_rules_list_tbl    => lx_rules_list_tbl,
278       x_rule_id               => x_qr_rule_id,
279       x_object_approval_id    => x_qr_object_approval_id,
280       x_rule_action_id        => x_qr_rule_action_id,
281       x_rule_description      => x_qr_rule_description,
282       x_approval_level        => x_qr_approval_level
283    );
284 
285     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
286       aso_debug_pub.ADD (
287         'Returning from Set_Rules_List_Tbl_Out',
288         1,
289         'N'
290       );
291     END IF;
292 
293 END Get_Rule_Details;
294 
295 END ASO_APR_PUB_W;