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