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