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