[Home] [Help]
PACKAGE BODY: APPS.PER_CKL_FYI_NOTIFICATIONS
Source
1 PACKAGE BODY per_ckl_fyi_notifications AS
2 -- $Header: pecklnot.pkb 120.5 2006/10/19 13:24:46 sturlapa noship $
3 --
4 -- Spawn the FYI notification workflow
5 --
6 PROCEDURE start_wf_process(p_task_id IN NUMBER
7 ,p_task_name IN VARCHAR2
8 ,p_checklist_name IN VARCHAR2
9 ,p_task_status IN VARCHAR2
10 ,p_owner_name IN VARCHAR2
11 ,p_performer_name IN VARCHAR2
12 ,p_recipient IN VARCHAR2
13 ,p_recipient_name IN VARCHAR2
14 ,p_mandatory_flag IN VARCHAR2
15 ,p_target_start_date IN DATE
16 ,p_target_end_date IN DATE
17 ,p_actual_start_date IN DATE
18 ,p_actual_end_date IN DATE
19 ,p_which_notification IN VARCHAR2
20 ,p_allocated_to IN VARCHAR2
21 ) IS
22 --
23 l_proc VARCHAR2(50);
24 l_item_type VARCHAR2(8);
25 l_item_key VARCHAR2(240);
26 l_process VARCHAR2(30);
27 l_user_key VARCHAR2(240);
28 --
29 varname Wf_Engine.NameTabTyp;
30 varvalue Wf_Engine.TextTabTyp;
31 numname Wf_Engine.NameTabTyp;
32 numvalue Wf_Engine.NumTabTyp;
33 --
34 BEGIN
35 l_proc:= 'per_ckl_fyi_notifications.start_wf_process';
36 hr_utility.set_location('Entering: '|| l_proc, 10);
37 --
38 l_item_type := 'HRCKLFYI';
39 l_item_key := 'ChecklistTask:'||p_task_id||':'||CURRENT_TIMESTAMP;
40 l_process := 'CHECKLISTNOTIFIERPROCESS';
41 l_user_key := l_item_key;
42 --
43 -- Initiate workflow process
44 --
45 Wf_Engine.CreateProcess(ItemType => l_item_type
46 ,ItemKey => l_item_key
47 ,Process => l_process
48 ,User_Key => l_user_key
49 ,Owner_Role => 'COREHR'
50 );
51 --
52 -- Set text item attributes
53 --
54 varname(1) := 'TASK_NAME';
55 varvalue(1) := p_task_name;
56 varname(2) := 'CHECKLIST_NAME';
57 varvalue(2) := p_checklist_name;
58 varname(3) := 'TASK_STATUS';
59 varvalue(3) := p_task_status;
60 varname(4) := 'OWNER';
61 varvalue(4) := p_owner_name;
62 varname(5) := 'PERFORMER';
63 varvalue(5) := p_performer_name;
64 varname(6) := 'MANDATORY';
65 varvalue(6) := p_mandatory_flag;
66 varname(7) := 'RECIPIENT';
67 varvalue(7) := p_recipient;
68 varname(8) := 'RECIPIENT_NAME';
69 varvalue(8) := p_recipient_name;
70 varname(9) := 'WHICH_NOTIFICATION';
71 varvalue(9) := p_which_notification;
72 varname(10) := 'ALLOCATED_TO';
73 varvalue(10) := p_allocated_to;
74
75 Wf_Engine.SetItemAttrTextArray(l_item_type
76 ,l_item_key
77 ,varname
78 ,varvalue
79 );
80 --
81 -- Set number item attributes
82 --
83 NULL;
84 --
85 -- Set date item attributes
86 --
87 Wf_Engine.SetItemAttrDate(itemtype => l_item_type
88 ,itemkey => l_item_key
89 ,aname => 'TARGET_START_DATE'
90 ,avalue => p_target_start_date
91 );
92 Wf_Engine.SetItemAttrDate(itemtype => l_item_type
93 ,itemkey => l_item_key
94 ,aname => 'TARGET_END_DATE'
95 ,avalue => p_target_end_date
96 );
97 Wf_Engine.SetItemAttrDate(itemtype => l_item_type
98 ,itemkey => l_item_key
99 ,aname => 'ACTUAL_START_DATE'
100 ,avalue => p_actual_start_date
101 );
102 Wf_Engine.SetItemAttrDate(itemtype => l_item_type
103 ,itemkey => l_item_key
104 ,aname => 'ACTUAL_END_DATE'
105 ,avalue => p_actual_end_date
106 );
107 --
108 -- Start workflow process
109 --
110 Wf_Engine.StartProcess(ItemType => l_item_type
111 ,ItemKey => l_item_key
112 );
113 --
114 COMMIT;
115 --
116 hr_utility.set_location('Leaving: '|| l_proc, 20);
117 --
118 EXCEPTION
119 --
120 WHEN OTHERS THEN
121 --
122 hr_utility.set_location('Leaving: '|| l_proc, 30);
123 hr_utility.set_location(SQLERRM, 35);
124 RAISE;
125 END start_wf_process;
126 --
127 PROCEDURE which_notification(itemtype IN VARCHAR2
128 ,itemkey IN VARCHAR2
129 ,actid IN NUMBER
130 ,funcmode IN VARCHAR2
131 ,resultout OUT NOCOPY VARCHAR2
132 ) IS
133 --
134 l_proc VARCHAR2(50);
135 --
136 BEGIN
137 l_proc:= 'per_ckl_fyi_notifications.which_notification';
138 hr_utility.set_location('Entering: '|| l_proc, 10);
139 --
140 IF funcmode = 'RUN' THEN
141 resultout := Wf_Engine.GetItemAttrText(itemtype => itemtype
142 ,itemkey => itemkey
143 ,aname => 'WHICH_NOTIFICATION'
144 ,ignore_notfound => FALSE
145 );
146 END IF;
147 --
148 hr_utility.set_location('Leaving: '|| l_proc, 20);
149 --
150 EXCEPTION
151 --
152 WHEN OTHERS THEN
153 --
154 hr_utility.set_location('Leaving: '|| l_proc, 30);
155 hr_utility.set_location(SQLERRM, 35);
156 RAISE;
157 END which_notification;
158 --
159 END per_ckl_fyi_notifications;