DBA Data[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;