[Home] [Help]
PACKAGE BODY: APPS.HR_MEE_WORKFLOW_SERVICE
Source
1 PACKAGE BODY hr_mee_workflow_service as
2 /* $Header: hrmeewfw.pkb 120.1 2005/09/23 15:02:35 svittal noship $ */
3
4 g_package VARCHAR2(31) := 'hr_mee_workflow_service.';
5 gv_package VARCHAR2(31) := 'hr_mee_workflow_service';
6 --
7 -- ----------------------------------------------------------------------------
8 -- |------------------------< get_activity_name >-----------------------------|
9 -- ----------------------------------------------------------------------------
10 procedure get_activity_name
11 (p_item_type in wf_items.item_type%type
12 ,p_item_key in wf_items.item_key%type
13 ,p_actid in number
14 ,p_activity_name out nocopy varchar2
15 ,p_activity_display_name out nocopy varchar2) is
16 --
17 cursor l_csr is
18 --BUG 3636429
19 SELECT distinct activity_name,activity_display_name
20 FROM
21 (
22 SELECT a.name activity_name,
23 a.display_name activity_display_name
24 FROM wf_activities_vl a
25 ,wf_item_activity_statuses ias
26 ,wf_process_activities pa
27 WHERE ias.item_type = p_item_type
28 AND ias.item_key = p_item_key
29 AND ias.process_activity = p_actid
30 AND ias.process_activity = pa.instance_id
31 AND pa.activity_name = a.name
32 AND pa.activity_item_type = a.item_type
33 UNION ALL
34 SELECT a.name activity_name,
35 a.display_name activity_display_name
36 FROM wf_activities_vl a
37 ,wf_item_activity_statuses_h iash
38 ,wf_process_activities pa
39 WHERE iash.item_type = p_item_type
40 AND iash.item_key = p_item_key
41 AND iash.process_activity = p_actid
42 AND iash.process_activity = pa.instance_id
43 AND pa.activity_name = a.name
44 AND pa.activity_item_type = a.item_type
45 );
46 --
47 begin
48 open l_csr;
49 fetch l_csr into p_activity_name, p_activity_display_name;
50 if l_csr%notfound then
51 p_activity_name := null;
52 p_activity_display_name := null;
53 end if;
54 close l_csr;
55 end get_activity_name;
56
57
58 -- ----------------------------------------------------------------------------
59 -- |-------------------------< get_act_attr_expanded_info >------------------|
60 -- ----------------------------------------------------------------------------
61 procedure get_act_attr_expanded_info
62 (p_item_type in wf_items.item_type%type
63 ,p_item_key in wf_items.item_key%type
64 ,p_actid in wf_activity_attr_values.process_activity_id%type
65 ,p_name in wf_activity_attributes.name%type
66 ,p_exists out nocopy boolean
67 ,p_subtype out nocopy wf_activity_attributes.subtype%type
68 ,p_type out nocopy wf_activity_attributes.type%type
69 ,p_format out nocopy wf_activity_attributes.format%type
70 ,p_date_value out nocopy wf_activity_attr_values.date_value%type
71 ,p_number_value out nocopy wf_activity_attr_values.number_value%type
72 ,p_text_value out nocopy wf_activity_attr_values.text_value%type) is
73 -- --------------------------------------------------------------------------
74 -- declare local variables
75 -- --------------------------------------------------------------------------
76 l_type wf_activity_attributes.type%type;
77 l_name wf_activity_attributes.name%type := upper(p_name);
78 --
79 begin
80 -- initialise the OUT parameters
81 p_exists := true;
82 p_subtype := null;
83 p_type := null;
84 p_format := null;
85 p_date_value := null;
86 p_number_value := null;
87 p_text_value := null;
88 -- get the item attribute information
89 wf_engine.GetActivityAttrInfo
90 (itemtype => p_item_type
91 ,itemkey => p_item_key
92 ,actid => p_actid
93 ,aname => l_name
94 ,atype => l_type
95 ,subtype => p_subtype
96 ,format => p_format);
97 --
98 p_type := l_type;
99 -- branch on the type
100 if l_type = 'NUMBER' then
101 p_number_value :=
102 wf_engine.GetActivityAttrNumber
103 (itemtype => p_item_type
104 ,itemkey => p_item_key
105 ,actid => p_actid
106 ,aname => l_name);
107 elsif l_type = 'DATE' then
108 p_date_value :=
109 wf_engine.GetActivityAttrDate
110 (itemtype => p_item_type
111 ,itemkey => p_item_key
112 ,actid => p_actid
113 ,aname => l_name);
114 else
115 p_text_value :=
116 wf_engine.GetActivityAttrText
117 (itemtype => p_item_type
118 ,itemkey => p_item_key
119 ,actid => p_actid
120 ,aname => l_name);
121 end if;
122 exception
123 -- an error has occurred because the item attribute does not exists
124 -- reset all of the OUT parameters ensuring
125 when others then
126 p_exists := false;
127 p_subtype := null;
128 p_type := null;
129 p_format := null;
130 p_date_value := null;
131 p_number_value := null;
132 p_text_value := null;
133 end get_act_attr_expanded_info;
137 function get_web_page_code
134 -- ----------------------------------------------------------------------------
135 -- |-----------------------------< get_web_page_code >------------------------|
136 -- ----------------------------------------------------------------------------
138 (p_item_type in wf_items.item_type%type
139 ,p_item_key in wf_items.item_key%type
140 ,p_actid in wf_activity_attr_values.process_activity_id%type
141 ,p_web_page_section_code in wf_activity_attributes.name%type)
142 return varchar2 is
143 --
144 l_exists boolean;
145 l_subtype wf_activity_attributes.subtype%type;
146 l_type wf_activity_attributes.type%type;
147 l_format wf_activity_attributes.format%type;
148 l_date_value wf_activity_attr_values.date_value%type;
149 l_number_value wf_activity_attr_values.number_value%type;
150 l_text_value wf_activity_attr_values.text_value%type;
151 --
152 begin
153 -- get the p_web_page_section_code activity attribute details
154 get_act_attr_expanded_info
155 (p_item_type => p_item_type
156 ,p_item_key => p_item_key
157 ,p_actid => p_actid
158 ,p_name => p_web_page_section_code
159 ,p_exists => l_exists
160 ,p_subtype => l_subtype
161 ,p_type => l_type
162 ,p_format => l_format
163 ,p_date_value => l_date_value
164 ,p_number_value => l_number_value
165 ,p_text_value => l_text_value);
166 --
167 if l_exists then
168 return(l_text_value);
169 else
170 return(NULL);
171 end if;
172 end get_web_page_code;
173 --
174
175 -- ----------------------------------------------------------------------------
176 -- |-------------------------< check_web_page_code >--------------------------|
177 -- ----------------------------------------------------------------------------
178 function check_web_page_code
179 (p_item_type in wf_items.item_type%type
180 ,p_item_key in wf_items.item_key%type
181 ,p_actid in wf_activity_attr_values.process_activity_id%type
182 ,p_web_page_section_code in wf_activity_attributes.name%type)
183 return boolean is
184 --
185 l_exists boolean;
186 l_subtype wf_activity_attributes.subtype%type;
187 l_type wf_activity_attributes.type%type;
188 l_format wf_activity_attributes.format%type;
189 l_date_value wf_activity_attr_values.date_value%type;
190 l_number_value wf_activity_attr_values.number_value%type;
191 l_text_value wf_activity_attr_values.text_value%type;
192 --
193 begin
194 -- check to see if the specified p_web_page_section_code activity
195 -- attribute exists
196 get_act_attr_expanded_info
197 (p_item_type => p_item_type
198 ,p_item_key => p_item_key
199 ,p_actid => p_actid
200 ,p_name => p_web_page_section_code
201 ,p_exists => l_exists
202 ,p_subtype => l_subtype
203 ,p_type => l_type
204 ,p_format => l_format
205 ,p_date_value => l_date_value
206 ,p_number_value => l_number_value
207 ,p_text_value => l_text_value);
208 --
209 if l_exists and l_text_value is not null then
210 return(TRUE);
211 else
212 return(FALSE);
213 end if;
214 end check_web_page_code;
215 --
216 -- --- Function to return Assignment_id and Effective date
217 PROCEDURE get_assignment_details(
218 p_item_type IN wf_items.item_type%type
219 ,p_item_key IN wf_items.item_key%type
220 ,p_assignment_id OUT NOCOPY NUMBER
221 ,p_effective_date OUT NOCOPY DATE)
222 IS
223 l_effective_date date;
224 l_effective_char VARCHAR2(200);
225 BEGIN
226 -- get assignment id from Workflow Item Attributes
227 p_assignment_id := wf_engine.getItemAttrNumber(
228 itemtype => p_item_type
229 ,itemkey => p_item_key
230 ,aname => 'CURRENT_ASSIGNMENT_ID');
231
232 -- get effective date from Workflow Item Attribute
233 l_effective_date := wf_engine.getItemAttrDate(
234 itemtype => p_item_type
235 ,itemkey => p_item_key
236 ,aname => 'CURRENT_EFFECTIVE_DATE');
237 p_effective_date := l_effective_date;
238 EXCEPTION
239 WHEN OTHERS THEN
240 RAISE;
241 END get_assignment_details;
242 END hr_mee_workflow_service;