[Home] [Help]
PACKAGE BODY: APPS.HXC_APPROVAL_STATUS_PKG
Source
1 package body hxc_approval_status_pkg as
2 /* $Header: hxcapvst.pkb 120.6.12010000.2 2010/05/05 11:19:36 amakrish ship $ */
3 --
4 g_debug boolean :=hr_utility.debug_enabled;
5 --
6 -- procedure
7 -- update_status
8 --
9 -- description
10 -- Wrapper procedure the updates the status of an APPLICATION PERIOD
11 -- building block. Performs a validation to check if the correct
12 -- Time Building Block is being updated. Calls the Workflow to transisition
13 -- to HXC_APP_SET_PERIODS node.
14 -- parameters
15 -- p_approvals -PL/SQL Type holding item_type,key,aprv_comments.
16 -- p_aprv_status - new status of approval form row
17 --
18 --
19 PROCEDURE update_status
20 (p_approvals in APPROVAL_REC_TABLE_TYPE,
21 p_aprv_status in VARCHAR2) IS
22 --
23 --
24 l_index Number;
25 l_abs_enabled varchar2(1);
26 l_activity varchar2(100);
27
28 BEGIN
29
30 l_index := p_approvals.first;
31
32 WHILE p_approvals.exists(l_index)
33 LOOP
34 Begin
35 -- initialize
36 l_abs_enabled := 'N';
37 --
38 -- Set Approval Status
39 --
40 wf_engine.SetItemAttrText(itemtype => p_approvals(l_index).item_type,
41 itemkey => p_approvals(l_index).item_key,
42 aname => 'APPROVAL_STATUS',
43 avalue => p_aprv_status);
44 -- Set Comments
45 --
46 wf_engine.SetItemAttrText(itemtype => p_approvals(l_index).item_type,
47 itemkey => p_approvals(l_index).item_key,
48 aname => 'APR_REJ_REASON',
49 avalue => p_approvals(l_index).aprv_comments);
50 --
51 -- hr_utility.trace('Completing activity');
52 --
53
54 l_abs_enabled := wf_engine.GetItemAttrText(itemtype => p_approvals(l_index).item_type,
55 itemkey => p_approvals(l_index).item_key ,
56 aname => 'IS_ABS_ENABLED',
57 ignore_notfound => true);
58
59
60 IF l_abs_enabled = 'Y' THEN
61 l_activity := 'APPROVAL_NOTIFICATION:TC_APR_NOTIFICATION_ABS';
62 ELSE
63 l_activity := 'APPROVAL_NOTIFICATION:TC_APR_NOTIFICATION';
64 END IF;
65
66 -- Check that there is a NOTIFIED activity to complete.
67 --
68 wf_engine.CompleteActivityInternalName
69 (itemtype => p_approvals(l_index).item_type
70 ,itemkey => p_approvals(l_index).item_key
71 ,activity => l_activity
72 ,result => p_aprv_status); -- not using a result code
73
74 --
75 -- hr_utility.trace('Completed activity');
76 --
77 --
78 Exception
79 When others then
80 -- Probably errored with XXXX is not a notified activity for HXCEMP/XXXXX
81 -- Try the other notification
82
83 IF l_abs_enabled = 'Y' THEN
84 l_activity := 'FIND_AND_NOTIFY_APPROVERS:TC_APR_NOTIFICATION_ABS';
85 ELSE
86 l_activity := 'FIND_AND_NOTIFY_APPROVERS:TC_APR_NOTIFICATION';
87 END IF;
88
89 wf_engine.CompleteActivityInternalName
90 (itemtype => p_approvals(l_index).item_type
91 ,itemkey => p_approvals(l_index).item_key
92 ,activity => l_activity
93 ,result => p_aprv_status);
94 END;
95 l_index := p_approvals.next(l_index);
96 END LOOP;
97
98 END update_status;
99 --
100 END hxc_approval_status_pkg;