DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZPB_BISM

Source


1 PACKAGE BODY ZPB_BISM AS
2 /* $Header: zpbbism.plb 120.3.12010.2 2006/08/03 12:14:32 appldev noship $  */
3 
4 /*
5  * Public  */
6 
7 -------------------------------------------------------------------------------
8 -- GET_BISM_SUBJECT_ID - Given a user_id eg. 1008187, returns the
9 --                       bism subject id
10 --
11 -- IN:  p_user_id       - FND User id, integer
12 -- OUT: l_subject_id    - bism_subjects.subject_id, raw
13 -------------------------------------------------------------------------------
14 
15 FUNCTION get_bism_subject_id (
16   p_user_id IN fnd_user.user_id%TYPE)
17   return bism_subjects.subject_id%TYPE
18 
19 IS
20   l_subject_id   bism_subjects.subject_id%TYPE;
21 BEGIN
22 
23   SELECT subject_id
24     INTO l_subject_id
25   FROM
26     bism_subjects
27   WHERE
28     subject_type = 'u' and
29     subject_name = (SELECT user_name FROM fnd_user WHERE user_id = p_user_id);
30 
31 return l_subject_id;
32 
33 END;
34 
35 -------------------------------------------------------------------------------
36 -- GET_BISM_SUBJECT_ID - Given a varchar2 user_id eg. '1008187',
37 --                       returns the raw bism subject id.
38 --                       calls.
39 --
40 -- IN:  p_user_id       - FND User id, varchar2
41 -- OUT: l_subject_id    - bism_subjects.subject_id, raw
42 -------------------------------------------------------------------------------
43 
44 
45 FUNCTION get_bism_subject_id (
46   p_user_id IN varchar2)
47   return bism_subjects.subject_id%TYPE
48 
49 IS
50   l_subject_id   bism_subjects.subject_id%TYPE;
51 
52 BEGIN
53 
54   SELECT subject_id
55     INTO l_subject_id
56   FROM
57     bism_subjects
58   WHERE
59     subject_type = 'u' and
60     subject_name = (SELECT user_name FROM fnd_user WHERE user_id = p_user_id);
61 
62 return l_subject_id;
63 
64 END;
65 
66 
67 -------------------------------------------------------------------------------
68 -- GET_BISM_SUBJECT_ID_FROM_NAME - Given a user_name eg. 'JSMITH', returns the
69 --                                 bism subject id
70 --
71 -- IN:  p_user_name     - FND User name e.g. JSMITH
72 -- OUT: l_subject_id    - bism_subjects.subject_id, raw
73 -------------------------------------------------------------------------------
74 
75 FUNCTION get_bism_subject_id_from_name (
76   p_user_name      IN fnd_user.user_name%TYPE)
77   return bism_subjects.subject_id%TYPE
78 
79 IS
80   l_subject_id  bism_subjects.subject_id%TYPE;
81 BEGIN
82 
83   SELECT subject_id
84     INTO l_subject_id
85   FROM
86     bism_subjects
87   WHERE
88     subject_name = upper(p_user_name) and
89     subject_type = 'u';
90 
91 return l_subject_id;
92 
93 END;
94 
95 -------------------------------------------------------------------------------
96 -- GET_BISM_SUBJECT_ID_FROM_RESP - Given a responsibility key eg.' ZPB_MANAGER_RESP',
97 --                                 returns the bism subject id
98 --
99 -- IN:  p_resp_key   - FND responsibility key e.g. ZPB_MANAGER_RESP, varchar2
100 -- OUT: l_subject_id - bism_subjects.subject_id, raw
101 -------------------------------------------------------------------------------
102 
103 FUNCTION get_bism_subject_id_from_resp (
104   p_resp_key IN fnd_responsibility.responsibility_key%TYPE)
105   return bism_subjects.subject_id%TYPE
106 
107 IS
108   l_user_name fnd_user.user_name%TYPE;
109   subject_id   bism_subjects.subject_id%TYPE;
110 BEGIN
111 
112   SELECT
113     subject_id into subject_id
114   FROM
115     bism_subjects
116   WHERE subject_name = p_resp_key AND
117     subject_type = 'g';
118 
119  return subject_id;
120 
121 END;
122 
123 -------------------------------------------------------------------------------
124 -- GET_BISM_OBJECT_ID - Given an object path, returns the bism object id
125 --
126 -- IN:  p_object_path      - path 'oracle/apps/zpb/BusArea...', varchar2
127 -- IN:  p_bism_subject_id  - bism_subjects.subject_id, raw
128 -- OUT: l_folder_id        - bism_subjects.folder_id, raw
129 -------------------------------------------------------------------------------
130 
131 FUNCTION get_bism_object_id (
132   p_object_path IN varchar2,
133   p_bism_subject_id IN bism_subjects.subject_id%TYPE)
134   return bism_objects.folder_id%TYPE
135 
136 IS
137 
138   l_folder_id bism_objects.object_id%TYPE;
139   v_objid_out BISM_OBJECTS.OBJECT_ID%TYPE;
140   v_typeid_out BISM_OBJECTS.OBJECT_TYPE_ID%TYPE;
141   v_objname_out BISM_OBJECTS.OBJECT_NAME%TYPE;
142 
143 BEGIN
144 
145   bism_core.lookuphelper(UTL_RAW.CAST_TO_RAW (BIBEANS_ROOT_FOLDER),
146                          p_object_path,
147                          v_objname_out,
148                          v_objid_out,
149                          v_typeid_out,
150                          p_bism_subject_id);
151 
152   return v_objid_out;
153 
154 END;
155 
156 -------------------------------------------------------------------------------
157 -- GET_BISM_OBJECT_DESC - Given an object path, and apps numeric, returns the
158 --                        object description.
159 --
160 -- IN:  p_object_path      - path 'oracle/apps/zpb/BusArea...'
161 -- IN:  p_user_id          - apps numeric id
162 -- OUT: l_bism_object_desc - varchar2
163 -------------------------------------------------------------------------------
164 
165 FUNCTION get_bism_object_desc (
166   p_object_path IN varchar2,
167   p_user_id IN FND_USER.USER_ID%TYPE default NULL)
168   return BISM_OBJECTS.DESCRIPTION%TYPE
169 
170 IS
171 
172   l_bism_object_id BISM_OBJECTS.OBJECT_ID%TYPE;
173   l_bism_object_desc BISM_OBJECTS.DESCRIPTION%TYPE;
174   l_bism_subject_id BISM_SUBJECTS.subject_id%TYPE;
175 
176 BEGIN
177 
178   -- use apps id if null passed in.
179   if (p_user_id is null) then
180     l_bism_subject_id := get_bism_subject_id_from_name(BIBEANS_ROOT_USER);
181   else
182     l_bism_subject_id := get_bism_subject_id(p_user_id);
183   end if;
184 
185   l_bism_object_id  := get_bism_object_id(p_object_path, l_bism_subject_id);
186 
187   select description
188   into l_bism_object_desc
189   from bism_objects
190   where object_id = l_bism_object_id;
191 
192   return l_bism_object_desc;
193 
194 END;
195 
196 -------------------------------------------------------------------------------
197 -- DELETE_BISM_OBJECT - Given a folder path, object_name and apps numeric
198 --                      userid, deletes the object
199 --
200 -- IN: p_folder_path   - path 'oracle/apps/zpb/BusArea...', varchar2
201 -- IN: p_object_name   - object name 'USERDIR',  varchar2
202 -- IN: p_user_id       - fnd_user.user_id, varchar2
203 -------------------------------------------------------------------------------
204 
205 PROCEDURE delete_bism_object (
206   p_folder_path  varchar2,
207   p_object_name BISM_OBJECTS.OBJECT_NAME%TYPE,
208   p_user_id varchar2 default NULL)
209 
210 IS
211 
212   l_bism_folder_id BISM_OBJECTS.OBJECT_ID%TYPE;
213   l_bism_subject_id bism_subjects.subject_id%TYPE;
214 
215 BEGIN
216   BEGIN
217 
218     -- use apps id if null passed in.
219     if (p_user_id is null) then
220       l_bism_subject_id := get_bism_subject_id_from_name(BIBEANS_ROOT_USER);
221     else
222       l_bism_subject_id := get_bism_subject_id(p_user_id);
223     end if;
224 
225     l_bism_folder_id  := get_bism_object_id(p_folder_path, l_bism_subject_id);
226 
227     bism_core.delete_object(l_bism_folder_id, p_object_name, l_bism_subject_id);
228     exception
229       when others then
230         ZPB_ERROR_HANDLER.HANDLE_EXCEPTION (PKG_NAME,
231                                             'delete_bism_object');
232 
233         raise;
234 
235   END;
236 END;
237 
238 -------------------------------------------------------------------------------
239 -- DELETE_BISM_FOLDER - Given an folder path and user id,
240 --                      deletes the BISM folder
241 --
242 -- IN: p_folder_path   - path 'oracle/apps/zpb/BusArea25/...', varchar2
243 -- IN: p_user_id       - fnd_user.user_id, number
244 -------------------------------------------------------------------------------
245 
246 PROCEDURE delete_bism_folder (
247   p_folder_path  varchar2,
248   p_user_id IN fnd_user.user_id%TYPE)
249 
250 IS
251 
252   l_bism_folder_id BISM_OBJECTS.OBJECT_ID%TYPE;
253   l_bism_subject_id bism_subjects.subject_id%TYPE;
254 
255 BEGIN
256   BEGIN
257 
258     l_bism_subject_id := zpb_bism.get_bism_subject_id( p_user_id);
259     l_bism_folder_id  := get_bism_object_id(p_folder_path, l_bism_subject_id);
260 
261     bism_core.delete_folder(l_bism_folder_id, l_bism_subject_id);
262     exception
263       when others then
264         ZPB_ERROR_HANDLER.HANDLE_EXCEPTION (PKG_NAME,
265                                             'delete_bism_folder');
266 
267         raise;
268 
269   END;
270 END;
271 
272 -------------------------------------------------------------------------------
273 -- DELETE_BISM_FOLDER_WO_SECURITY - Given an folder path and apps userid
274 --                                  deletes the BISM object using APPS id.
275 --                                  user_id must be valid bibeans id, but does
276 --                                  not require write access to folder for deletion.
277 --
278 -- IN: p_folder_path   - path 'oracle/apps/zpb/BusArea25/...', varchar2
279 -- IN: p_user_id       - fnd_user.user_id, integer
280 -------------------------------------------------------------------------------
281 
282 PROCEDURE delete_bism_folder_wo_security (
283   p_folder_path  varchar2,
284   p_user_id IN fnd_user.user_id%TYPE)
285 
286 IS
287 
288   l_bism_folder_id BISM_OBJECTS.OBJECT_ID%TYPE;
289   l_bism_subject_id bism_subjects.subject_id%TYPE;
290 
291 BEGIN
292   BEGIN
293     l_bism_subject_id := zpb_bism.get_bism_subject_id(p_user_id);
294     l_bism_folder_id  := get_bism_object_id(p_folder_path, l_bism_subject_id);
295 
296     bism_core.delete_folder_wo_security(l_bism_folder_id, l_bism_subject_id);
297     exception
298       when others then
299         ZPB_ERROR_HANDLER.HANDLE_EXCEPTION (PKG_NAME,
300                                             'delete_bism_object_wo_security');
301 
302         raise;
303 
304   END;
305 END;
306 
307 END ZPB_BISM;