[Home] [Help]
PACKAGE BODY: APPS.UMX_ACCESS_ROLES_PVT
Source
1 PACKAGE BODY UMX_ACCESS_ROLES_PVT AS
2 /*$Header: UMXVARPB.pls 120.3.12010000.4 2010/02/23 13:37:45 jstyles ship $*/
3
4 procedure populateRecord(p_role_name in varchar2,
5 p_display_name in varchar2,
6 p_owner_tag in varchar2,
7 p_description in varchar2,
8 p_params in out nocopy wf_parameter_list_t) IS
9
10 l_notif_preference varchar2(30);
11
12 begin
13
14 -- Populating the structure wf_parameter_list_t
15
16 WF_EVENT.AddParameterToList(p_name => 'USER_NAME',
17 p_value => p_role_name,
18 p_parameterlist => p_params);
19
20 WF_EVENT.AddParameterToList(p_name => 'DISPLAYNAME',
21 p_value => p_display_name,
22 p_parameterlist => p_params);
23
24 WF_EVENT.AddParameterToList(p_name => 'DESCRIPTION',
25 p_value => p_description,
26 p_parameterlist => p_params);
27
28 WF_EVENT.AddParameterToList(p_name => 'OWNER_TAG',
29 p_value => p_owner_tag,
30 p_parameterlist => p_params);
31
32 -- Setting the default values
33
34 WF_EVENT.AddParameterToList(p_name => 'ORCLNLSTERRITORY',
35 p_value => 'AMERICA',
36 p_parameterlist => p_params);
37
38 WF_EVENT.AddParameterToList(p_name => 'RAISEERRORS',
39 p_value => 'TRUE',
40 p_parameterlist => p_params);
41
42 l_notif_preference := NVL(wf_pref.get_pref('-WF_DEFAULT-', 'MAILTYPE'), 'QUERY');
43
44 WF_EVENT.AddParameterToList(p_name => 'orclWorkFlowNotificationPref',
45 p_value => l_notif_preference,
46 p_parameterlist => p_params);
47
48 end populateRecord;
49
50 function getParentRoles(p_role_name varchar2) return varchar2 is
51
52 l_superiors WF_ROLE_HIERARCHY.relTAB;
53 l_subordinates WF_ROLE_HIERARCHY.relTAB;
54 length_sup number :=0;
55 l_role_name WF_ALL_ROLES_VL.NAME%TYPE;
56 l_role_display_name WF_ALL_ROLES_VL.DISPLAY_NAME%TYPE;
57 i number :=1;
58
59 cursor find_role_disp_name is select display_name from
60 WF_ALL_ROLES_vl where name = l_role_name;
61
62 begin
63
64 IF p_role_name IS NULL THEN
65 RETURN NULL;
66 END IF;
67
68 WF_ROLE_HIERARCHY.GetRelationships(p_name => p_role_name,
69 p_superiors => l_superiors,
70 p_subordinates => l_subordinates);
71
72 length_sup := l_superiors.count;
73
74 IF length_sup = 0 THEN
75 RETURN NULL;
76 END IF;
77
78 jtf_dbstream_utils.clearOutputStream;
79 jtf_dbstream_utils.writeInt(length_sup);
80
81 -- Iterate through the table and create a delimited string
82 loop
83
84 if i > length_sup then -- terminating condition
85 exit;
86 end if;
87
88 l_role_name := l_superiors(i).SUPER_NAME;
89
90 open find_role_disp_name;
91 fetch find_role_disp_name into l_role_display_name;
92
93 jtf_dbstream_utils.writeString(l_role_display_name);
94 close find_role_disp_name;
95 i := i+1;
96 end loop;
97
98 return jtf_dbstream_utils.getOutputStream;
99
100 end getParentRoles;
101
102 function getAffectedRoles(p_role_name varchar2) return varchar2 is
103
104 l_superiors WF_ROLE_HIERARCHY.relTAB;
105 l_subordinates WF_ROLE_HIERARCHY.relTAB;
106 length_sup number :=0;
107 l_role_name WF_ALL_ROLES_VL.NAME%TYPE;
108 l_role_display_name WF_ALL_ROLES_VL.DISPLAY_NAME%TYPE;
109 i number :=1;
110
111 cursor find_role_disp_name is select display_name from
112 WF_ALL_ROLES_vl where name = l_role_name;
113
114 begin
115
116 IF p_role_name IS NULL THEN
117 RETURN NULL;
118 END IF;
119
120 WF_ROLE_HIERARCHY.GetRelationships(p_name => p_role_name,
121 p_superiors => l_superiors,
122 p_subordinates => l_subordinates);
123
124 length_sup := l_subordinates.count;
125
126 IF length_sup = 0 THEN
127 RETURN NULL;
128 END IF;
129
130 jtf_dbstream_utils.clearOutputStream;
131 jtf_dbstream_utils.writeInt(length_sup);
132
133 -- Iterate through the table and create a delimited string
134 loop
135
136 if i > length_sup then -- terminating condition
137 exit;
138 end if;
139
140 l_role_name := l_subordinates(i).SUB_NAME;
141
142 open find_role_disp_name;
143 fetch find_role_disp_name into l_role_display_name;
144
145 jtf_dbstream_utils.writeString(l_role_display_name);
146 close find_role_disp_name;
147 i := i+1;
148 end loop;
149
150 return jtf_dbstream_utils.getOutputStream;
151
152 end getAffectedRoles;
153
154 PROCEDURE insert_role(p_role_name in varchar2,
155 p_orig_system in varchar2,
156 p_orig_system_id in number,
157 p_start_date in date,
158 p_expiration_date in date,
159 p_display_name in varchar2,
160 p_owner_tag in varchar2,
161 p_description in varchar2) IS
162
163 l_params wf_parameter_list_t;
164 begin
165
166 populateRecord(p_role_name => p_role_name,
167 p_display_name => p_display_name,
168 p_owner_tag => p_owner_tag,
169 p_description => p_description,
170 p_params => l_params );
171
172 WF_LOCAL_SYNCH.propagate_role(p_orig_system => p_orig_system,
173 p_orig_system_id => p_orig_system_id,
174 p_attributes => l_params,
175 p_start_date => p_start_date,
176 p_expiration_date => p_expiration_date);
177
178
179 end insert_role;
180
181 PROCEDURE update_role(p_role_name in varchar2,
182 p_orig_system in varchar2,
183 p_orig_system_id in number,
184 p_start_date in date,
185 p_expiration_date in date,
186 p_display_name in varchar2,
187 p_owner_tag in varchar2,
188 p_description in varchar2) IS
189
190 l_params wf_parameter_list_t;
191 begin
192
193 populateRecord(p_role_name => p_role_name,
194 p_display_name => p_display_name,
195 p_owner_tag => p_owner_tag,
196 p_description => p_description,
197 p_params => l_params );
198
199 WF_EVENT.AddParameterToList(p_name => 'UPDATEONLY',
200 p_value => 'TRUE',
201 p_parameterlist => l_params);
202
203
204 WF_EVENT.AddParameterToList(p_name => 'WFSYNCH_OVERWRITE',
205 p_value => 'TRUE',
206 p_parameterlist => l_params);
207
208 WF_LOCAL_SYNCH.propagate_role(p_orig_system => p_orig_system,
209 p_orig_system_id => p_orig_system_id,
210 p_attributes => l_params,
211 p_start_date => p_start_date,
212 p_expiration_date => p_expiration_date);
213
214
215 end update_role;
216
217 PROCEDURE propagateUserRole(p_user_name in varchar2,
218 p_role_name in varchar2,
219 p_start_date in date,
220 p_expiration_date in date
221 )IS
222
223 begin
224
225 WF_LOCAL_SYNCH.propagateUserRole(p_user_name => p_user_name,
226 p_role_name => p_role_name,
227 p_start_date => p_start_date,
228 p_expiration_date => p_expiration_date,
229 p_overwrite => TRUE ,
230 p_raiseErrors => TRUE);
231
232 end propagateUserRole;
233
234 PROCEDURE propagateUserRole(p_user_name in varchar2,
235 p_role_name in varchar2,
236 p_start_date in date,
237 p_expiration_date in date,
238 p_assignmentReason in varchar2
239 )IS
240
241 begin
242
243 WF_LOCAL_SYNCH.propagateUserRole(p_user_name => p_user_name,
244 p_role_name => p_role_name,
245 p_start_date => p_start_date,
246 p_expiration_date => p_expiration_date,
247 p_overwrite => TRUE ,
248 p_raiseErrors => TRUE,
249 p_assignmentReason => p_assignmentreason);
250
251 end propagateUserRole;
252
253 --
254 -- HierarchyEnabled
255 --
256 -- IN
257 -- p_origSystem (VARCHAR2)
258 --
259 -- RETURNS
260 -- 'Y' - if orig system is hierarchy enabled, 'N' otherwise
261 --
262 -- NOTES
263 -- Wrapper on top of WF_ROLE_HIERARCHY.HierarchyEnabled
264 --
265 function HierarchyEnabled (p_origSystem in VARCHAR2) return varchar2
266 is
267 l_result boolean;
268
269 begin
270
271 -- for orig system UMX or FND_RESP, always return 'Y'
272 if( (p_origSystem = 'UMX') or ( p_origSystem = 'FND_RESP' ) ) then
273 return 'Y';
274 end if;
275
276 l_result := WF_ROLE_HIERARCHY.HierarchyEnabled( p_origSystem);
277
278 if( l_result = TRUE ) then
279 return 'Y';
280 else
281 return 'N';
282 end if;
283 end HierarchyEnabled;
284
285 --
286 -- TEST
287 -- Wrapper to Test if function is accessible under current responsibility.
288 -- IN
289 -- p_function_name - function to test
290 -- p_TEST_MAINT_AVAILABILTY - 'Y' (default) means check if available for
291 -- current value of profile APPS_MAINTENANCE_MODE
292 -- 'N' means the caller is checking so it's
293 -- unnecessary to check.
294 -- RETURNS
295 -- 'Y' if function is accessible
296 --
297 function test (p_function_name in varchar2,
298 p_test_maint_availability in varchar2 default 'Y') return varchar2 is
299
300 begin
301 if (fnd_function.test(p_function_name, p_test_maint_availability)) then
302 return ('Y');
303 else
304 return ('N');
305 end if;
306 end test;
307
308 end UMX_ACCESS_ROLES_PVT;