DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_PA_APR_PUB_W

Source


1 PACKAGE BODY ASO_PA_APR_PUB_W  as
2 /* $Header: asowpapb.pls 120.0.12020000.1 2013/03/19 20:30:27 cazhou noship $ */
3 -- Start of Comments
4 -- Package name     :  ASO_PA_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_PA_APR_PUB_W';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asowpapb.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 FUNCTION Construct_Approvers_List_Tbl(
25    p_approval_det_id         IN  jtf_number_table := NULL,
26    p_object_approval_id      IN  jtf_number_table := NULL,
27    p_approver_person_id      IN  jtf_number_table := NULL,
28    p_approver_user_id        IN  jtf_number_table := NULL,
29    p_notification_id         IN  jtf_number_table := NULL,
30    p_approver_sequence       IN  jtf_number_table := NULL,
31    p_approver_status         IN  jtf_varchar2_table_100 := NULL,
32    p_name                    IN  jtf_varchar2_table_300 := NULL,
33    p_approver_name           IN  jtf_varchar2_table_100 := NULL,
34    p_approval_comments       IN  jtf_varchar2_table_300 := NULL,
35    p_approver_category       IN  jtf_varchar2_table_100 := NULL,
36    p_approver_category_desc  IN  jtf_varchar2_table_100 := NULL,
37    p_approver_type_desc      IN  jtf_varchar2_table_100 := NULL,
38    p_sub_list_desc           IN  jtf_varchar2_table_100 := NULL,
39    p_item_id                 IN  jtf_varchar2_table_100 := NULL,
40    p_item_class              IN  jtf_varchar2_table_100 := NULL,
41    p_action_type             IN  jtf_varchar2_table_300 := NULL,
42    p_action_type_id          IN  jtf_number_table := NULL,
43    p_chain_number            IN  jtf_number_table := NULL,
44    p_occurrence              IN  jtf_number_table := NULL,
45    p_authority               IN  jtf_varchar2_table_100 := NULL,
46    p_date_sent               IN  jtf_date_table := NULL,
47    p_date_received           IN  jtf_date_table := NULL
48 )RETURN ASO_PA_APR_PUB.approvers_list_tbl_type
49 IS
50    l_approvers_list_tbl ASO_PA_APR_Pub.approvers_list_tbl_type;
51    l_table_size     PLS_INTEGER := 0;
52    i                PLS_INTEGER;
53 BEGIN
54    IF p_approver_name IS NOT NULL THEN
55       l_table_size :=  p_approver_name.COUNT;
56    END IF;
57 
58    IF l_table_size > 0 THEN
59       FOR i IN 1..l_table_size LOOP
60 
61         IF p_approval_det_id IS NOT NULL THEN
62          IF p_approval_det_id(i)= ROSETTA_G_MISS_NUM THEN
63             l_approvers_list_tbl(i).approval_det_id := FND_API.G_MISS_NUM;
64          ELSE
65             l_approvers_list_tbl(i).approval_det_id := p_approval_det_id(i);
66          END IF;
67         END IF;
68         IF p_object_approval_id IS NOT NULL THEN
69          IF p_object_approval_id(i)= ROSETTA_G_MISS_NUM THEN
70             l_approvers_list_tbl(i).object_approval_id := FND_API.G_MISS_NUM;
71          ELSE
72             l_approvers_list_tbl(i).object_approval_id := p_object_approval_id(i);
73          END IF;
74         END IF;
75         IF p_approver_person_id IS NOT NULL THEN
76          IF p_approver_person_id(i)= ROSETTA_G_MISS_NUM THEN
77             l_approvers_list_tbl(i).approver_person_id := FND_API.G_MISS_NUM;
78          ELSE
79             l_approvers_list_tbl(i).approver_person_id := p_approver_person_id(i);
80          END IF;
81         END IF;
82         IF p_approver_user_id IS NOT NULL THEN
83          IF p_approver_user_id(i)= ROSETTA_G_MISS_NUM THEN
84             l_approvers_list_tbl(i).approver_user_id := FND_API.G_MISS_NUM;
85          ELSE
86             l_approvers_list_tbl(i).approver_user_id := p_approver_user_id(i);
87          END IF;
88         END IF;
89         IF p_notification_id IS NOT NULL THEN
90          IF p_notification_id(i)= ROSETTA_G_MISS_NUM THEN
91             l_approvers_list_tbl(i).notification_id := FND_API.G_MISS_NUM;
92          ELSE
93             l_approvers_list_tbl(i).notification_id := p_notification_id(i);
94          END IF;
95         END IF;
96         IF p_approver_sequence IS NOT NULL THEN
97          IF p_approver_sequence(i)= ROSETTA_G_MISS_NUM THEN
98             l_approvers_list_tbl(i).approver_sequence := FND_API.G_MISS_NUM;
99          ELSE
100             l_approvers_list_tbl(i).approver_sequence := p_approver_sequence(i);
101          END IF;
102         END IF;
103         IF p_approver_status IS NOT NULL THEN
104             l_approvers_list_tbl(i).approver_status := p_approver_status(i);
105         END IF;
106         IF p_name IS NOT NULL THEN
107             l_approvers_list_tbl(i).name := p_name(i);
108         END IF;
109         IF p_approver_name IS NOT NULL THEN
110             l_approvers_list_tbl(i).approver_name := p_approver_name(i);
111         END IF;
112         IF p_approval_comments IS NOT NULL THEN
113             l_approvers_list_tbl(i).approval_comments := p_approval_comments(i);
114         END IF;
115         IF p_approver_category IS NOT NULL THEN
116             l_approvers_list_tbl(i).approver_category := p_approver_category(i);
117         END IF;
118         IF p_approver_category_desc IS NOT NULL THEN
119             l_approvers_list_tbl(i).approver_category_desc := p_approver_category_desc(i);
120         END IF;
121         IF p_approver_type_desc IS NOT NULL THEN
122             l_approvers_list_tbl(i).approver_type_desc := p_approver_type_desc(i);
123         END IF;
124         IF p_sub_list_desc IS NOT NULL THEN
125             l_approvers_list_tbl(i).sub_list_desc := p_sub_list_desc(i);
126         END IF;
127         IF p_item_id IS NOT NULL THEN
128             l_approvers_list_tbl(i).item_id := p_item_id(i);
129         END IF;
130         IF p_item_class IS NOT NULL THEN
131             l_approvers_list_tbl(i).item_class := p_item_class(i);
132         END IF;
133         IF p_action_type IS NOT NULL THEN
134             l_approvers_list_tbl(i).action_type := p_action_type(i);
135         END IF;
136         IF p_action_type_id IS NOT NULL THEN
137          IF p_action_type_id(i)= ROSETTA_G_MISS_NUM THEN
138             l_approvers_list_tbl(i).action_type_id := FND_API.G_MISS_NUM;
139          ELSE
140             l_approvers_list_tbl(i).action_type_id := p_action_type_id(i);
141          END IF;
142         END IF;
143         IF p_chain_number IS NOT NULL THEN
144          IF p_chain_number(i)= ROSETTA_G_MISS_NUM THEN
145             l_approvers_list_tbl(i).chain_number := FND_API.G_MISS_NUM;
146          ELSE
147             l_approvers_list_tbl(i).chain_number := p_chain_number(i);
148          END IF;
149         END IF;
150         IF p_occurrence IS NOT NULL THEN
151          IF p_occurrence(i)= ROSETTA_G_MISS_NUM THEN
152             l_approvers_list_tbl(i).occurrence := FND_API.G_MISS_NUM;
153          ELSE
154             l_approvers_list_tbl(i).occurrence := p_occurrence(i);
155          END IF;
156         END IF;
157         IF p_authority IS NOT NULL THEN
158             l_approvers_list_tbl(i).authority := p_authority(i);
159         END IF;
160         IF p_date_sent IS NOT NULL THEN
161          IF p_date_sent(i)= ROSETTA_G_MISTAKE_DATE THEN
162             l_approvers_list_tbl(i).date_sent := FND_API.G_MISS_DATE;
163          ELSE
164             l_approvers_list_tbl(i).date_sent := p_date_sent(i);
165          END IF;
166         END IF;
167         IF p_date_received IS NOT NULL THEN
168          IF p_date_received(i)= ROSETTA_G_MISTAKE_DATE THEN
169             l_approvers_list_tbl(i).date_received := FND_API.G_MISS_DATE;
170          ELSE
171             l_approvers_list_tbl(i).date_received := p_date_received(i);
172          END IF;
173         END IF;
174       END LOOP;
175 
176       RETURN l_approvers_list_tbl;
177    ELSE
178       RETURN ASO_PA_APR_Pub.G_MISS_APPROVERS_LIST_TBL;
179    END IF;
180 END Construct_Approvers_List_Tbl;
181 
182 
183 PROCEDURE Set_Approvers_List_Tbl_Out(
184    p_qte_approvers_list_tbl  IN  ASO_PA_Apr_Pub.Approvers_List_Tbl_Type,
185    x_approval_det_id         OUT NOCOPY  jtf_number_table,
186    x_object_approval_id      OUT NOCOPY  jtf_number_table,
187    x_approver_person_id      OUT NOCOPY  jtf_number_table,
188    x_approver_user_id        OUT NOCOPY  jtf_number_table,
189    x_notification_id         OUT NOCOPY  jtf_number_table,
190    x_approver_sequence       OUT NOCOPY  jtf_number_table,
191    x_approver_status         OUT NOCOPY  jtf_varchar2_table_100,
192    x_name                    OUT NOCOPY  jtf_varchar2_table_300,
193    x_approver_name           OUT NOCOPY  jtf_varchar2_table_100,
194    x_approval_comments       OUT NOCOPY  jtf_varchar2_table_300,
195    x_approver_category       OUT NOCOPY  jtf_varchar2_table_100,
196    x_approver_category_desc  OUT NOCOPY  jtf_varchar2_table_100,
197    x_approver_type_desc      OUT NOCOPY  jtf_varchar2_table_100,
198    x_sub_list_desc           OUT NOCOPY  jtf_varchar2_table_100,
199    x_item_id                 OUT NOCOPY  jtf_varchar2_table_100,
200    x_item_class              OUT NOCOPY  jtf_varchar2_table_100,
201    x_action_type             OUT NOCOPY  jtf_varchar2_table_300,
202    x_action_type_id          OUT NOCOPY  jtf_number_table,
203    x_chain_number            OUT NOCOPY  jtf_number_table,
204    x_occurrence              OUT NOCOPY  jtf_number_table,
205    x_authority               OUT NOCOPY  jtf_varchar2_table_100,
206    x_date_sent               OUT NOCOPY  jtf_date_table,
207    x_date_received           OUT NOCOPY  jtf_date_table
208 )
209 AS
210    ddindx binary_integer; indx binary_integer;
211 BEGIN
212    x_approval_det_id := jtf_number_table();
213    x_object_approval_id := jtf_number_table();
214    x_approver_person_id := jtf_number_table();
215    x_approver_user_id := jtf_number_table();
216    x_notification_id := jtf_number_table();
217    x_approver_sequence := jtf_number_table();
218    x_name := jtf_varchar2_table_300();
219    x_approver_status := jtf_varchar2_table_100();
220    x_approver_name := jtf_varchar2_table_100();
221    x_approval_comments := jtf_varchar2_table_300();
222    x_approver_category :=jtf_varchar2_table_100();
223    x_approver_category_desc := jtf_varchar2_table_100();
224    x_approver_type_desc := jtf_varchar2_table_100();
225    x_sub_list_desc := jtf_varchar2_table_100();
226    x_item_id := jtf_varchar2_table_100();
227    x_item_class := jtf_varchar2_table_100();
228    x_action_type := jtf_varchar2_table_300();
229    x_action_type_id := jtf_number_table();
230    x_chain_number := jtf_number_table();
231    x_occurrence := jtf_number_table();
232    x_authority := jtf_varchar2_table_100();
233    x_date_sent := jtf_date_table();
234    x_date_received := jtf_date_table();
235    IF p_qte_approvers_list_tbl.count > 0 THEN
236      x_approval_det_id.extend(p_qte_approvers_list_tbl.count);
237      x_object_approval_id.extend(p_qte_approvers_list_tbl.count);
238      x_approver_person_id.extend(p_qte_approvers_list_tbl.count);
239      x_approver_user_id.extend(p_qte_approvers_list_tbl.count);
240      x_notification_id.extend(p_qte_approvers_list_tbl.count);
241      x_approver_sequence.extend(p_qte_approvers_list_tbl.count);
242      x_approver_status.extend(p_qte_approvers_list_tbl.count);
243      x_name.extend(p_qte_approvers_list_tbl.count);
244      x_approver_name.extend(p_qte_approvers_list_tbl.count);
245      x_approval_comments.extend(p_qte_approvers_list_tbl.count);
246      x_approver_category.extend(p_qte_approvers_list_tbl.count);
247      x_approver_category_desc.extend(p_qte_approvers_list_tbl.count);
248      x_approver_type_desc.extend(p_qte_approvers_list_tbl.count);
249      x_sub_list_desc.extend(p_qte_approvers_list_tbl.count);
250      x_item_id.extend(p_qte_approvers_list_tbl.count);
251      x_item_class.extend(p_qte_approvers_list_tbl.count);
252      x_action_type.extend(p_qte_approvers_list_tbl.count);
253      x_action_type_id.extend(p_qte_approvers_list_tbl.count);
254      x_chain_number.extend(p_qte_approvers_list_tbl.count);
255      x_occurrence.extend(p_qte_approvers_list_tbl.count);
256      x_authority.extend(p_qte_approvers_list_tbl.count);
257      x_date_sent.extend(p_qte_approvers_list_tbl.count);
258      x_date_received.extend(p_qte_approvers_list_tbl.count);
259      ddindx := p_qte_approvers_list_tbl.first;
260      indx := 1;
261      WHILE true LOOP
262        x_approval_det_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approval_det_id);
263        x_object_approval_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).object_approval_id);
264        x_approver_person_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_person_id);
265        x_approver_user_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_user_id);
266        x_notification_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).notification_id);
267        x_approver_sequence(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).approver_sequence);
268        x_approver_status(indx) := p_qte_approvers_list_tbl(ddindx).approver_status;
269        x_name(indx) := p_qte_approvers_list_tbl(ddindx).name;
270        x_approver_name(indx) := p_qte_approvers_list_tbl(ddindx).approver_name;
271        x_approval_comments(indx) := p_qte_approvers_list_tbl(ddindx).approval_comments;
272        x_approver_category(indx) :=	p_qte_approvers_list_tbl(ddindx).approver_category;
273        x_approver_category_desc(indx) := p_qte_approvers_list_tbl(ddindx).approver_category_desc;
274        x_approver_type_desc(indx) := p_qte_approvers_list_tbl(ddindx).approver_type_desc;
275        x_sub_list_desc(indx) := p_qte_approvers_list_tbl(ddindx).sub_list_desc;
276        x_item_id(indx) := p_qte_approvers_list_tbl(ddindx).item_id;
277        x_item_class(indx)	:= p_qte_approvers_list_tbl(ddindx).item_class;
278        x_action_type(indx) := p_qte_approvers_list_tbl(ddindx).action_type;
279        x_action_type_id(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).action_type_id);
280        x_chain_number(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).chain_number);
281        x_occurrence(indx) := rosetta_g_miss_num_map(p_qte_approvers_list_tbl(ddindx).occurrence);
282        x_authority(indx) :=  p_qte_approvers_list_tbl(ddindx).authority;
283        x_date_sent(indx) := p_qte_approvers_list_tbl(ddindx).date_sent;
284        x_date_received(indx) := p_qte_approvers_list_tbl(ddindx).date_received;
285        indx := indx+1;
286        IF p_qte_approvers_list_tbl.last =ddindx
287          THEN EXIT;
288        END IF;
289        ddindx := p_qte_approvers_list_tbl.next(ddindx);
290      END LOOP;
291    END IF;
292 END Set_Approvers_List_Tbl_Out;
293 
294 
295 
296 PROCEDURE Set_Rules_List_Tbl_Out(
297    p_qte_rules_list_tbl    IN  ASO_PA_Apr_Pub.Rules_List_Tbl_Type,
298    x_rule_id               OUT NOCOPY  jtf_number_table,
299    x_object_approval_id    OUT NOCOPY  jtf_number_table,
300    x_rule_action_id        OUT NOCOPY  jtf_number_table,
301    x_rule_description      OUT NOCOPY  jtf_varchar2_table_300,
302    x_rule_type             OUT NOCOPY  jtf_varchar2_table_100,
303    x_approval_level        OUT NOCOPY  jtf_varchar2_table_300,
304    x_rule_item_class       OUT NOCOPY  jtf_varchar2_table_100,
305    x_rule_category_desc    OUT NOCOPY  jtf_varchar2_table_100
306 )
307 AS
308    ddindx binary_integer; indx binary_integer;
309 BEGIN
310    x_rule_id := jtf_number_table();
311    x_object_approval_id := jtf_number_table();
312    x_rule_action_id := jtf_number_table();
313    x_rule_description := jtf_varchar2_table_300();
314    x_rule_type  := jtf_varchar2_table_100();
315    x_approval_level := jtf_varchar2_table_300();
316    x_rule_item_class := jtf_varchar2_table_100();
317    x_rule_category_desc := jtf_varchar2_table_100();
318    IF p_qte_rules_list_tbl.count > 0 THEN
319      x_rule_id.extend(p_qte_rules_list_tbl.count);
320      x_object_approval_id.extend(p_qte_rules_list_tbl.count);
321      x_rule_action_id.extend(p_qte_rules_list_tbl.count);
322      x_rule_description.extend(p_qte_rules_list_tbl.count);
323      x_rule_type.extend(p_qte_rules_list_tbl.count);
324      x_approval_level.extend(p_qte_rules_list_tbl.count);
325      x_rule_item_class.extend(p_qte_rules_list_tbl.count);
326      x_rule_category_desc.extend(p_qte_rules_list_tbl.count);
327      ddindx := p_qte_rules_list_tbl.first;
328      indx := 1;
329      WHILE true LOOP
330        x_rule_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).rule_id);
331        x_object_approval_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).object_approval_id);
332        x_rule_action_id(indx) := rosetta_g_miss_num_map(p_qte_rules_list_tbl(ddindx).rule_action_id);
333        x_rule_description(indx) := p_qte_rules_list_tbl(ddindx).rule_description;
334        x_rule_type(indx) := p_qte_rules_list_tbl(ddindx).rule_type;
335        x_approval_level(indx) := p_qte_rules_list_tbl(ddindx).approval_level;
336        x_rule_item_class(indx) := p_qte_rules_list_tbl(ddindx).rule_item_class;
337        x_rule_category_desc(indx) := p_qte_rules_list_tbl(ddindx).rule_category_desc;
338        indx := indx+1;
339        IF p_qte_rules_list_tbl.last =ddindx
340          THEN EXIT;
341        END IF;
342        ddindx := p_qte_rules_list_tbl.next(ddindx);
343      END LOOP;
344    END IF;
345 END Set_Rules_List_Tbl_Out;
346 
347 
348 PROCEDURE Get_All_Approvers(
349    x_qa_approval_det_id         OUT NOCOPY jtf_number_table               ,
350    x_qa_object_approval_id      OUT NOCOPY jtf_number_table               ,
351    x_qa_approver_person_id      OUT NOCOPY jtf_number_table               ,
352    x_qa_approver_user_id        OUT NOCOPY jtf_number_table               ,
353    x_qa_notification_id         OUT NOCOPY jtf_number_table               ,
354    x_qa_approver_sequence       OUT NOCOPY jtf_number_table               ,
355    x_qa_approver_status         OUT NOCOPY jtf_varchar2_table_100         ,
356    x_qa_name                    OUT NOCOPY  jtf_varchar2_table_300        ,
357    x_qa_approver_name           OUT NOCOPY jtf_varchar2_table_100         ,
358    x_qa_approval_comments       OUT NOCOPY jtf_varchar2_table_300         ,
359    x_qa_approver_category       OUT NOCOPY  jtf_varchar2_table_100         ,
360    x_qa_approver_category_desc  OUT NOCOPY  jtf_varchar2_table_100        ,
361    x_qa_approver_type_desc      OUT NOCOPY  jtf_varchar2_table_100        ,
362    x_qa_sub_list_desc           OUT NOCOPY  jtf_varchar2_table_100        ,
363    x_qa_item_id                 OUT NOCOPY  jtf_varchar2_table_100        ,
364    x_qa_item_class              OUT NOCOPY  jtf_varchar2_table_100        ,
365    x_qa_action_type             OUT NOCOPY  jtf_varchar2_table_300        ,
366    x_qa_action_type_id          OUT NOCOPY  jtf_number_table              ,
367    x_qa_chain_number            OUT NOCOPY  jtf_number_table              ,
368    x_qa_occurrence              OUT NOCOPY  jtf_number_table              ,
369    x_qa_authority               OUT NOCOPY  jtf_varchar2_table_100        ,
370    x_qa_date_sent               OUT NOCOPY jtf_date_table                 ,
371    x_qa_date_received           OUT NOCOPY jtf_date_table                 ,
372    x_qr_rule_id                 OUT NOCOPY jtf_number_table               ,
373    x_qr_object_approval_id      OUT NOCOPY jtf_number_table               ,
374    x_qr_rule_action_id          OUT NOCOPY jtf_number_table               ,
375    x_qr_rule_description        OUT NOCOPY jtf_varchar2_table_300         ,
376    x_qr_rule_type               OUT NOCOPY  jtf_varchar2_table_100        ,
377    x_qr_approval_level          OUT NOCOPY jtf_varchar2_table_300         ,
378    x_qr_rule_item_class         OUT NOCOPY  jtf_varchar2_table_100        ,
379    x_qr_rule_category_desc      OUT NOCOPY  jtf_varchar2_table_100        ,
380    p_object_id                  IN  NUMBER   := FND_API.G_MISS_NUM ,
381    p_object_type                IN  VARCHAR2 := FND_API.G_MISS_CHAR,
382    p_application_id             IN  NUMBER   := FND_API.G_MISS_NUM ,
383    p_object_approval_id         IN  NUMBER   := FND_API.G_MISS_NUM ,
384    p_clear_transaction_flag     IN  VARCHAR2 := fnd_api.g_true,
385    p_data_flag                  IN  VARCHAR2 :='X',
386    p_api_version_number         IN  NUMBER   := 1                  ,
387    p_init_msg_list              IN  VARCHAR2 := FND_API.G_TRUE     ,
388    p_commit                     IN  VARCHAR2 := FND_API.G_FALSE    ,
389    x_return_status              OUT NOCOPY VARCHAR2                       ,
390    x_msg_count                  OUT NOCOPY NUMBER                         ,
391    x_msg_data                   OUT NOCOPY VARCHAR2
392 )
393 AS
394   lx_approvers_list_tbl     ASO_PA_Apr_Pub.Approvers_List_Tbl_Type;
395   lx_rules_list_tbl         ASO_PA_Apr_Pub.Rules_List_Tbl_Type;
396 
397   l_debug                   VARCHAR2(1);
398   l_msg_count               NUMBER;
399   l_msg_data                VARCHAR2(10000);
400 
401 BEGIN
402 
403     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
404       aso_debug_pub.ADD (
405         'Begin calling ASO_PA_Apr_Pub.Get_All_Approvers',
406         1,
407         'N'
408       );
409     END IF;
410 
411    ASO_PA_Apr_Pub.Get_All_Approvers(
412       p_api_version_number  => p_api_version_number,
413       p_init_msg_list       => p_init_msg_list,
414       p_commit              => p_commit,
415       p_object_id           => p_object_id,
416       p_object_type         => p_object_type,
417       p_application_id      => p_application_id,
418       p_object_approval_id  => p_object_approval_id,
419       p_clear_transaction_flag  => p_clear_transaction_flag,
420       p_data_flag           => p_data_flag,
421       x_return_status       => x_return_status,
422       x_msg_count           => l_msg_count,
423       x_msg_data            => l_msg_data,
424       x_approvers_list      => lx_approvers_list_tbl,
425       x_rules_list          => lx_rules_list_tbl);
426 
427     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
428       aso_debug_pub.ADD (
429         'Returning from ASO_Apr_Pub.Get_All_Approvers',
430         1,
431         'N'
432       );
433     END IF;
434 
435    ASO_PA_APR_PUB_W.Set_Approvers_List_Tbl_Out(
436       p_qte_approvers_list_tbl  => lx_approvers_list_tbl,
437       x_approval_det_id         => x_qa_approval_det_id,
438       x_object_approval_id      => x_qa_object_approval_id,
439       x_approver_person_id      => x_qa_approver_person_id,
440       x_approver_user_id        => x_qa_approver_user_id,
441       x_notification_id         => x_qa_notification_id,
442       x_approver_sequence       => x_qa_approver_sequence,
443       x_approver_status         => x_qa_approver_status,
444       x_name                    => x_qa_name,
445       x_approver_name           => x_qa_approver_name,
446       x_approval_comments       => x_qa_approval_comments,
447       x_approver_category       => x_qa_approver_category,
448       x_approver_category_desc  => x_qa_approver_category_desc,
449       x_approver_type_desc      => x_qa_approver_type_desc,
450       x_sub_list_desc           => x_qa_sub_list_desc,
451       x_item_id                 => x_qa_item_id,
452       x_item_class              => x_qa_item_class,
453       x_action_type             => x_qa_action_type,
454       x_action_type_id          => x_qa_action_type_id,
455       x_chain_number            => x_qa_chain_number,
456       x_occurrence              => x_qa_occurrence,
457       x_authority               => x_qa_authority,
458       x_date_sent               => x_qa_date_sent,
459       x_date_received           => x_qa_date_received
460    );
461 
462    ASO_PA_APR_PUB_W.Set_Rules_List_Tbl_Out(
463       p_qte_rules_list_tbl    => lx_rules_list_tbl,
464       x_rule_id               => x_qr_rule_id,
465       x_object_approval_id    => x_qr_object_approval_id,
466       x_rule_action_id        => x_qr_rule_action_id,
467       x_rule_description      => x_qr_rule_description,
468       x_rule_type             => x_qr_rule_type,
469       x_approval_level        => x_qr_approval_level,
470       x_rule_item_class       => x_qr_rule_item_class,
471       x_rule_category_desc    => x_qr_rule_category_desc
472 
473    );
474 
475   x_msg_count := l_msg_count;
476 
477   for k in 1 .. l_msg_count loop
478 
479   x_msg_data := fnd_msg_pub.get( p_msg_index => k,
480                                    p_encoded => 'F');
481   end loop;
482 
483 
484 END Get_All_Approvers;
485 
486 
487  PROCEDURE start_papproval_process (
488     p_api_version_number        IN       NUMBER := 1,
489     p_init_msg_list             IN       VARCHAR2 := fnd_api.g_true,
490     p_commit                    IN       VARCHAR2 := fnd_api.g_false,
491     p_object_id                 IN       NUMBER := FND_API.G_MISS_NUM ,
492     p_object_type               IN       VARCHAR2 := FND_API.G_MISS_CHAR,
493     p_application_id            IN       NUMBER  := FND_API.G_MISS_NUM,
494     p_requester_comments        IN       VARCHAR2 := FND_API.G_MISS_CHAR,
495     p_qa_approval_det_id           IN      jtf_number_table := NULL,
496     p_qa_object_approval_id        IN      jtf_number_table := NULL,
497     p_qa_approver_person_id        IN      jtf_number_table := NULL,
498     p_qa_approver_user_id          IN      jtf_number_table := NULL,
499     p_qa_notification_id           IN      jtf_number_table := NULL,
500     p_qa_approver_sequence         IN      jtf_number_table := NULL,
501     p_qa_approver_status           IN      jtf_varchar2_table_100 := NULL,
502     p_qa_name                      IN      jtf_varchar2_table_300 := NULL,
503     p_qa_approver_name             IN      jtf_varchar2_table_100 := NULL,
504     p_qa_approval_comments         IN      jtf_varchar2_table_300 := NULL,
505     p_qa_approver_category         IN      jtf_varchar2_table_100  := NULL,
506     p_qa_approver_category_desc    IN      jtf_varchar2_table_100 := NULL,
507     p_qa_approver_type_desc        IN      jtf_varchar2_table_100 := NULL,
508     p_qa_sub_list_desc             IN      jtf_varchar2_table_100 := NULL,
509     p_qa_item_id                   IN      jtf_varchar2_table_100 := NULL,
510     p_qa_item_class                IN      jtf_varchar2_table_100 := NULL,
511     p_qa_action_type               IN      jtf_varchar2_table_300 := NULL,
512     p_qa_action_type_id            IN      jtf_number_table := NULL,
513     p_qa_chain_number              IN      jtf_number_table := NULL,
514     p_qa_occurrence                IN      jtf_number_table := NULL,
515     p_qa_authority                 IN      jtf_varchar2_table_100 := NULL,
516     p_qa_date_sent                 IN      jtf_date_table := NULL,
517     p_qa_date_received             IN      jtf_date_table := NULL,
518     x_object_approval_id        OUT NOCOPY   NUMBER,
519     x_approval_instance_id      OUT NOCOPY   NUMBER,
520     x_return_status             OUT NOCOPY   VARCHAR2,
521     x_msg_count                 OUT NOCOPY   NUMBER,
522     x_msg_data                  OUT NOCOPY   VARCHAR2
523   )
524 AS
525   l_approvers_list_tbl         ASO_PA_Apr_Pub.Approvers_list_Tbl_Type;
526   l_debug                   VARCHAR2(1);
527   l_msg_count               NUMBER;
528   l_msg_data                VARCHAR2(10000);
529 BEGIN
530 
531     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
532       aso_debug_pub.ADD (
533         'Begin calling ASO_PA_Apr_Pub.start_papproval_proccess',
534         1,
535         'N'
536       );
537     END IF;
538 
539    l_approvers_list_tbl := ASO_PA_APR_PUB_W.Construct_Approvers_List_Tbl(
540       p_approval_det_id       => p_qa_approval_det_id,
541       p_object_approval_id    => p_qa_object_approval_id,
542       p_approver_person_id    => p_qa_approver_person_id,
543       p_approver_user_id      => p_qa_approver_user_id,
544       p_notification_id       => p_qa_notification_id,
545       p_approver_sequence     => p_qa_approver_sequence,
546       p_approver_status       => p_qa_approver_status,
547       p_name                  => p_qa_name,
548       p_approver_name         => p_qa_approver_name,
549       p_approval_comments     => p_qa_approval_comments,
550       p_approver_category     => p_qa_approver_category,
551       p_approver_category_desc  => p_qa_approver_category_desc,
552       p_approver_type_desc    => p_qa_approver_type_desc,
553       p_sub_list_desc         => p_qa_sub_list_desc,
554       p_item_id               => p_qa_item_id,
555       p_item_class            => p_qa_item_class,
556       p_action_type           => p_qa_action_type,
557       p_action_type_id        => p_qa_action_type_id,
558       p_chain_number          => p_qa_chain_number,
559       p_occurrence            => p_qa_occurrence,
560       p_authority             => p_qa_authority,
561       p_date_sent             => p_qa_date_sent,
562       p_date_received         => p_qa_date_received
563    );
564 
565    ASO_PA_Apr_Pub.start_papproval_process (
566       p_api_version_number  => p_api_version_number,
567       p_init_msg_list       => p_init_msg_list,
568       p_commit              => p_commit,
569       p_object_id           => p_object_id,
570       p_object_type         => p_object_type,
571       p_application_id      => p_application_id,
572       p_requester_comments  => p_requester_comments,
573       p_del_appr_table      => l_approvers_list_tbl,
574       x_object_approval_id  => x_object_approval_id,
575       x_approval_instance_id  => x_approval_instance_id,
576       x_return_status         => x_return_status,
577       x_msg_count             => x_msg_count,
578       x_msg_data              => x_msg_data
579    );
580 
581     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
582       aso_debug_pub.ADD (
583         'Returning from ASO_PA_Apr_Pub.start_papproval_process',
584         1,
585         'N'
586       );
587     END IF;
588 
589 END start_papproval_process;
590 
591 END ASO_PA_APR_PUB_W;