1 PACKAGE cz_security_pvt AS
2 /* $Header: czsecurs.pls 120.1 2008/02/18 15:02:34 ethomas ship $ */
3
4 --------------------------Pkg level constants------
5 ----entity access user types
6 ENTITY_CREATOR CONSTANT VARCHAR2(20) := 'CREATOR';
7 ENTITY_USER CONSTANT VARCHAR2(20) := 'USER';
8
9 ----user privilege constants
10 EDIT_ENTITY CONSTANT VARCHAR2(100) := 'E';
11 MANAGE_ENTITY CONSTANT VARCHAR2(100) := 'M';
12 MANAGE_AND_EDIT_ENTITY CONSTANT VARCHAR2(100) := 'ME';
13 NO_MANAGE_AND_EDIT_ENTITY CONSTANT VARCHAR2(100) := 'N';
14
15 ----entity type constants
16 MODEL CONSTANT VARCHAR2(30) := 'MODEL';
17 UI CONSTANT VARCHAR2(30) := 'UI';
18 RULEFOLDER CONSTANT VARCHAR2(30) := 'RULEFOLDER';
19
20 ----has privilege constants
21 HAS_PRIVILEGE CONSTANT VARCHAR2(1) := 'T';
22 HAS_NO_PRIVILEGE CONSTANT VARCHAR2(1) := 'F';
23 UNEXPECTED_ERROR CONSTANT VARCHAR2(100) := 'U';
24
25 ----default user access constants
26 DEFAULT_ENTITY_ACCESS CONSTANT VARCHAR2(100) := 'CZ_DEFAULT_MODEL_ACCESS';
27 USE_ENTITY_ACCESS_CONTROL CONSTANT VARCHAR2(100) := 'CZ_USE_ENTITY_ACCESS_CONTROL';
28
29 -----model global operations constants
30 PUBLISH_MODEL_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVPUBLISHFUNC';
31 GENERATE_ACTIVE_MODEL_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVLOGICGENFUNC';
32 GENERATE_UI_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVUIGENFUNC';
33 IMPORT_MODEL_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVIMPORTMODELFUNC';
34 POPULATORS_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVPOPULATORSFUNC';
35 DEEP_MODEL_COPY_FUNC CONSTANT VARCHAR2(100) := 'CZDEVDEEPMODELCOPYFUNC';
36 UNLOCK_FUNCTION CONSTANT VARCHAR2(100) := 'CZDEVFORCEUNLOCKFUNC';
37 UNLOCK_CHILD_MODELS CONSTANT VARCHAR2(1) := '1';
38 DO_NOT_UNLOCK_CHILD_MODELS CONSTANT VARCHAR2(1) := '0';
39 DO_COMMIT CONSTANT VARCHAR2(1) := '1';
40 DO_NOT_COMMIT CONSTANT VARCHAR2(1) := '0';
41 LOCK_CHILD_MODELS CONSTANT VARCHAR2(1) := '1';
42 DO_NOT_LOCK_CHILD_MODELS CONSTANT VARCHAR2(1) := '0';
43 DO_INIT_MSG_LIST CONSTANT VARCHAR2(1) := '1';
44
45 -----lock profiles
46 LOCK_MODELS_FOR_EDIT CONSTANT VARCHAR2(100) := 'CZ_EDIT_MODELS_NO_LOCK';
47 LOCK_REQUIRE_LOCKING CONSTANT VARCHAR2(100) := 'CZ_REQUIRE_LOCKING';
48 LOCK_MODELS_FOR_GLOPS CONSTANT VARCHAR2(100) := 'CZ_ALLOW_GLOBAL_OPERATIONS_WITHOUT_LOCK';
49 LOCK_PUBLICATION_FOR_TEST CONSTANT VARCHAR2(100) := 'CZ_ALLOW_PUBLISH_TO_TEST_WHEN_LOCKED';
50 LOCK_PUBLICATION_FOR_PROD CONSTANT VARCHAR2(100) := 'CZ_ALLOW_PUBLISH_TO_PRODUCTION_WHEN_LOCKED';
51
52 ------constants for lock
53 LOCK_REQUIRED CONSTANT VARCHAR2(1) := 'Y';
54 LOCK_NOT_REQUIRED CONSTANT VARCHAR2(1) := 'N';
55
56 -----constants for deep and shallow lock
57 DEEP_LOCK CONSTANT VARCHAR2(1) := '1';
58 SHALLOW_LOCK CONSTANT VARCHAR2(1) := '0';
59
60 ----entity table names
61 DEVL_PROJECT_TABLE CONSTANT VARCHAR2(100) := 'CZ_DEVL_PROJECTS';
62 UI_DEFS_TABLE CONSTANT VARCHAR2(100) := 'CZ_UI_DEFS';
63 RULE_FOLDERS_TABLE CONSTANT VARCHAR2(100) := 'CZ_RULE_FOLDERS';
64
65 INVALID_ENTITY_TYPE EXCEPTION;
66
67 ----role type constants
68 MANAGE_MODEL_ROLE CONSTANT VARCHAR2(100) := 'CZMANAGEMODELROLE';
69 EDIT_MODEL_ROLE CONSTANT VARCHAR2(100) := 'CZEDITMODELROLE';
70 EDIT_RULE_ROLE CONSTANT VARCHAR2(100) := 'CZEDITRULEROLE';
71 EDIT_UI_ROLE CONSTANT VARCHAR2(100) := 'CZEDITUIROLE';
72 SECURITY_MENU CONSTANT VARCHAR2(100) := 'SECURITY';
73 MANAGE_ACCESS_ROLE CONSTANT VARCHAR2(100) := 'CZMANAGEACCESSROLE';
74
75
76 -----lock functions
77 LOCK_MODEL_FUNC CONSTANT VARCHAR2(100) := 'CZDEVEDITMODELFUNC';
78 LOCK_UI_FUNC CONSTANT VARCHAR2(100) := 'CZDEVEDITUIFUNC';
79 LOCK_RULEFOLDER_FUNC CONSTANT VARCHAR2(100) := 'CZDEVEDITRULEFUNC';
80
81 G_PKG_NAME CONSTANT VARCHAR2(100) := 'cz_security_pvt';
82 G_INCOMPATIBLE_API EXCEPTION;
83
84 TYPE number_type_tbl IS TABLE OF NUMBER index by BINARY_INTEGER;
85 TYPE varchar_type_tbl IS TABLE OF VARCHAR2(100) index by BINARY_INTEGER;
86
87 TYPE model_name_tbl IS TABLE OF VARCHAR2(255) index by BINARY_INTEGER;
88 TYPE checkout_user_tbl IS TABLE OF VARCHAR2(100) index by BINARY_INTEGER;
89
90 l_grant_entity_tbl number_type_tbl;
91 l_grant_entity_type_tbl varchar_type_tbl;
92 g_models_locked number_type_tbl;
93
94
95 g_entity_profile_value VARCHAR2(100) := NULL;
96 g_lock_profile_value VARCHAR2(100) := NULL;
97 g_has_priv_status VARCHAR2(1) := 'N';
98
99 ------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
100 ---Start of comments
101 ---API name : get_default_access_profile
102 ---Type : Public
103 ---Pre-reqs : None
104 ---Function : Returns entity access profile
105 ---Parameters :
106 ---IN :
107 ---
108 ---
109 ---RETURN VALUE : VARCHAR2
110 ---
111 ---
112 ---Version: Current version :1.0
113
114 ---End of comments
115
116 FUNCTION get_default_access_profile
117 RETURN VARCHAR2;
118
119 ------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
120 ---Start of comments
121 ---API name : grant_privilege
122 ---Type : Public
123 ---Pre-reqs : None
124 ---Function : grant access to a user on an entity
125 ---Parameters :
126 ---IN : p_api_version IN NUMBER Required
127 --- p_user_name IN VARCHAR2 Required
128 --- p_privilege IN VARCHAR2 Required
129 --- p_entity_type IN VARCHAR2 Required
130 --- p_instance_pk1_value IN NUMBER Required
131 ---
132 ---OUT :
133 --- x_return_status OUT NOCOPY VARCHAR2
134 --- x_msg_count OUT NOCOPY NUMBER
135 --- x_msg_data OUT NOCOPY VARCHAR2
136 ---
137 ---
138 ---Version: Current version :1.0
139 ---End of comments
140
141 PROCEDURE grant_privilege(p_api_version IN NUMBER,
142 p_user_name IN VARCHAR2,
143 p_entity_role IN VARCHAR2,
144 p_instance_pk1_value IN NUMBER,
145 x_return_status OUT NOCOPY VARCHAR2,
146 x_msg_count OUT NOCOPY NUMBER,
147 x_msg_data OUT NOCOPY VARCHAR2);
148
149 --------------------------------------------------------------------------
150 ---Start of comments
151 ---API name : revoke_privilege
152 ---Type : Public
153 ---Pre-reqs : None
154 ---Function : revoke access to a user on an entity
155 ---Parameters :
156 ---IN : p_api_version IN NUMBER Required
157 --- p_user_name IN VARCHAR2 Required
158 --- p_privilege IN VARCHAR2 Required
159 --- p_entity_type IN VARCHAR2 Required
160 --- p_instance_pk1_value IN NUMBER Required
161 ---
162 ---OUT :
163 --- x_return_status OUT NOCOPY VARCHAR2
164 --- x_msg_count OUT NOCOPY NUMBER
165 --- x_msg_data OUT NOCOPY VARCHAR2
166 ---
167 ---
168 ---Version: Current version :1.0
169 ---End of comments
170
171 PROCEDURE revoke_privilege(p_api_version IN NUMBER,
172 p_user_name IN VARCHAR2,
173 p_entity_role IN VARCHAR2,
174 p_instance_pk1_value IN NUMBER,
175 x_return_status OUT NOCOPY VARCHAR2,
176 x_msg_count OUT NOCOPY NUMBER,
177 x_msg_data OUT NOCOPY VARCHAR2);
178 --------------------------------------------------------------------------------
179 ---Start of comments
180 ---API name : has_privileges
181 ---Type : Public
182 ---Pre-reqs : None
183 ---Function : check user privilege on an entity
184 ---Parameters :
185 ---IN : p_api_version IN NUMBER Required
186 --- p_user_name IN VARCHAR2 Required
187 --- p_function_name IN VARCHAR2 Required
188 --- p_entity_type IN VARCHAR2 Required
189 --- p_instance_pk1_value IN NUMBER Required
190 ---
191 ---RETURN VALUE :
192 --- VARCHAR2 (allowable values are
193 --- CZ_SECURITY_PUB.HAS_PRIVILEGE
194 --- CZ_SECURITY_PUB.HAS_NO_PRIVILEGE)
195 ---
196 ---Version: Current version :1.0
197 ---End of comments
198
199 FUNCTION has_privileges (p_api_version IN NUMBER,
200 p_user_name IN VARCHAR2,
201 p_function_name IN VARCHAR2,
202 p_entity_type IN VARCHAR2,
203 p_instance_pk1_value IN NUMBER)
204 RETURN VARCHAR2;
205
206 --------------------------
207 ----This API would return 'T' if the user has edit access on atleast one entity (MODEL,UI,RULEFOLDER),
208 -----otherwise it will return 'F'. This is used for the enable or disable the edit icon in the repository.
209 FUNCTION has_model_privileges(p_model_id IN NUMBER)
210 RETURN VARCHAR2;
211
212 -----------------------------------------------------------------------------------
213 ---Start of comments
214 ---API name : lock_entity
215 ---Type : Public
216 ---Pre-reqs : None
217 ---Function : lock on an entity
218 ---Parameters :
219 ---IN : p_api_version IN NUMBER Required
220 --- p_user_name IN VARCHAR2 Required
221 --- p_entity_type IN VARCHAR2 Required
222 --- p_instance_pk1_value IN NUMBER Required
223 --- p_lock_type IN VARCHAR2 Required
224 --- allowed values cz_security_pvt.DEEP_LOCK
225 --- cz_security_pvt.SHALLOW_LOCK
226 ---OUT :
227 --- x_return_status OUT NOCOPY VARCHAR2
228 --- x_msg_count OUT NOCOPY NUMBER
229 --- x_msg_data OUT NOCOPY VARCHAR2
230 ---
231 ---Version: Current version :1.0
232 ---End of comments
233
234 PROCEDURE lock_entity (p_api_version IN NUMBER,
235 p_user_name IN VARCHAR2,
236 p_entity_type IN VARCHAR2,
237 p_instance_pk1_value IN NUMBER,
238 p_lock_type IN VARCHAR2,
239 x_locked_entities OUT NOCOPY number_type_tbl,
240 x_return_status OUT NOCOPY VARCHAR2,
241 x_msg_count OUT NOCOPY NUMBER,
242 x_msg_data OUT NOCOPY VARCHAR2);
243
244 ----------------
245 PROCEDURE lock_entity (p_model_id IN NUMBER,
246 p_function_name IN VARCHAR2,
247 x_locked_entities OUT NOCOPY number_type_tbl,
248 x_return_status OUT NOCOPY VARCHAR2,
249 x_msg_count OUT NOCOPY NUMBER,
250 x_msg_data OUT NOCOPY VARCHAR2);
251
252 ----------------
253 PROCEDURE lock_entity (p_api_version IN NUMBER,
254 p_user_name IN VARCHAR2,
255 p_entity_type IN VARCHAR2,
256 p_instance_pk1_value IN NUMBER,
257 p_lock_type IN VARCHAR2,
258 x_return_status OUT NOCOPY VARCHAR2,
259 x_msg_count OUT NOCOPY NUMBER,
260 x_msg_data OUT NOCOPY VARCHAR2);
261 -----------------
262 ------------------------------------------------------------------------------------------
263 ---Start of comments
264 ---API name : unlock_entity
265 ---Type : Public
266 ---Pre-reqs : None
267 ---Procedure : unlock on an entity
268 ---Parameters :
269 ---IN : p_api_version IN NUMBER Required
270 --- p_user_name IN VARCHAR2 Required
271 --- p_entity_type IN VARCHAR2 Required
272 --- p_instance_pk1_value IN NUMBER Required
273 ---
274 ---OUT :
275 --- x_return_status OUT NOCOPY VARCHAR2
276 --- x_msg_count OUT NOCOPY NUMBER
277 --- x_msg_data OUT NOCOPY VARCHAR2
278 ---
279 ---Version: Current version :1.0
280 ---p_user_name : FND_USERS.USER_NAME
281 ---p_entity_type : FND_OBJECTS.OBJ_NAME (ALlowable values are CZ_SECURITY_PUB.MODEL,
282 --- CZ_SECURITY_PUB.UI, CZ_SECURITY_PUB.RULEFOLDER)
283 ---p_instance_pk1_value : Allowable values
284 --- devl_project_id (if p_entity_type is CZ_SECURITY_PUB.MODEL or
285 --- CZ_SECURITY_PUB.UI)
286 --- rule_folder_id (if p_entity_type is CZ_SECURITY_PUB.RULEFOLDER)
287 ---x_locked_entities : entities locked by the API. The calling application must keep a track of the
288 --- entities locked, so that when unlock is done only on these entities.
289 ---End of comments
290
291 PROCEDURE unlock_entity (p_api_version IN NUMBER,
292 p_user_name IN VARCHAR2,
293 p_entity_type IN VARCHAR2,
294 p_instance_pk1_value IN NUMBER,
295 p_locked_entities IN OUT NOCOPY number_type_tbl,
296 x_return_status OUT NOCOPY VARCHAR2,
297 x_msg_count OUT NOCOPY NUMBER,
298 x_msg_data OUT NOCOPY VARCHAR2);
299
300 -------------------------
301 PROCEDURE unlock_entity (p_model_id IN NUMBER,
302 p_function_name IN VARCHAR2,
303 p_locked_entities IN OUT NOCOPY number_type_tbl,
304 x_return_status OUT NOCOPY VARCHAR2,
305 x_msg_count OUT NOCOPY NUMBER,
306 x_msg_data OUT NOCOPY VARCHAR2);
307
308 -------------------------
309 PROCEDURE unlock_entity (p_model_id IN NUMBER,
310 p_function_name IN VARCHAR2,
311 x_return_status OUT NOCOPY VARCHAR2,
312 x_msg_count OUT NOCOPY NUMBER,
313 x_msg_data OUT NOCOPY VARCHAR2);
314
315 -------------------------
316 PROCEDURE unlock_entity (p_api_version IN NUMBER,
317 p_user_name IN VARCHAR2,
318 p_entity_type IN VARCHAR2,
319 p_instance_pk1_value IN NUMBER,
320 p_lock_type IN VARCHAR2,
321 x_return_status OUT NOCOPY VARCHAR2,
322 x_msg_count OUT NOCOPY NUMBER,
323 x_msg_data OUT NOCOPY VARCHAR2);
324
325 -------------------------
326 -----unlocks whole model
327 PROCEDURE unlock_model (p_model_id IN NUMBER,
328 x_return_status OUT NOCOPY VARCHAR2,
329 x_msg_count OUT NOCOPY NUMBER,
330 x_msg_data OUT NOCOPY VARCHAR2);
331
332 ---------------------------
333 FUNCTION get_profile_value(p_profile IN VARCHAR2)
334 RETURN VARCHAR2;
335
336 ---------------------------------------------------------------------
337 PROCEDURE has_privileges(p_model_id IN NUMBER,
338 p_function_name IN VARCHAR2,
339 x_return_status OUT NOCOPY VARCHAR2,
340 x_msg_data OUT NOCOPY VARCHAR2,
341 x_msg_count OUT NOCOPY NUMBER);
342
343 ----------------------------------------------------------------------
344 PROCEDURE is_lock_required (p_lock_profile IN VARCHAR2,
345 x_return_status OUT NOCOPY VARCHAR2,
346 x_msg_data OUT NOCOPY VARCHAR2,
347 x_msg_count OUT NOCOPY NUMBER);
348
349 ---------------------------------------------------------------------
350 PROCEDURE revoke_privilege(p_api_version IN NUMBER,
351 p_instance_pk1_value IN NUMBER,
352 x_return_status OUT NOCOPY VARCHAR2,
353 x_msg_count OUT NOCOPY NUMBER,
354 x_msg_data OUT NOCOPY VARCHAR2);
355
356 --------------------------------------
357 -----This API returns 'N' if the MODEL(and its references),
358 -----UI (and its children) and RULEFOLDER (and subfolders under it) are not locked,
359 -----Otherwise it returns 'Y'. This is used for the display of the Lock icon in the repository.
360 FUNCTION is_model_locked (p_model_id IN NUMBER)
361 RETURN VARCHAR2;
362
363 PROCEDURE is_model_locked (p_devl_project_id IN VARCHAR2,
364 x_return_status OUT NOCOPY VARCHAR2,
365 x_msg_count OUT NOCOPY NUMBER,
366 x_msg_data OUT NOCOPY VARCHAR2);
367
368 -------------------------------------
369 --------Is_root_model_locked (p_model_id IN NUMBER) is used to check
370 --------lock on a single model. It would return 'N' if not locked otherwise it would return 'Y'.
371 FUNCTION is_model_structure_locked (p_model_id IN NUMBER)
372 RETURN VARCHAR2;
373
374 -------------------------------------
375 -----API that check if the root UI or any of ites children are locked.
376 -----It would return a status of 'N' if not locked else 'Y'
377 FUNCTION is_root_ui_locked (p_ui_def_id IN NUMBER)
378 RETURN VARCHAR2;
379
380 ------------------------------------
381 -----API used to check lock on a single model
382 -----It would return a status of 'N' if not locked else 'Y'
383 FUNCTION is_ui_def_locked (p_ui_def_id IN NUMBER)
384 RETURN VARCHAR2;
385
386 ------------------------------------
387 -----API used to check lock on a single model and its children
388 -----It would return a status of 'N' if not locked else 'Y'
389 FUNCTION are_models_locked (p_model_id IN NUMBER)
390 RETURN VARCHAR2;
391
392 ------------------------------------
393 -----API used to check lock on a all rule folders of a given model (includes sub folders)
394 -----It would return a status of 'N' if not locked else 'Y'
398 ---------------------------------
395 FUNCTION is_root_rulefolder_locked (p_model_id IN NUMBER)
396 RETURN VARCHAR2;
397
399 -----API used to check lock on a single rule folder
400 -----It would return a status of 'N' if not locked else 'Y'
401 FUNCTION is_rulefolder_locked (p_rule_folder_id IN NUMBER)
402 RETURN VARCHAR2;
403
404 ------------------------------------
405 PROCEDURE lock_entity (p_model_id IN NUMBER,
406 p_function_name IN VARCHAR2,
407 x_return_status OUT NOCOPY VARCHAR2,
408 x_msg_count OUT NOCOPY NUMBER,
409 x_msg_data OUT NOCOPY VARCHAR2);
410
411 FUNCTION unlock_model_structure (p_model_id IN NUMBER)
412 RETURN VARCHAR2;
413
414 FUNCTION lock_model_structure (p_model_id IN NUMBER)
415 RETURN VARCHAR2;
416
417 FUNCTION lock_ui_def (p_ui_def_id IN NUMBER)
418 RETURN VARCHAR2;
419
420 FUNCTION unlock_ui_def (p_ui_def_id IN NUMBER)
421 RETURN VARCHAR2;
422
423 FUNCTION lock_rulefolder(p_rule_folder_id IN NUMBER)
424 RETURN VARCHAR2;
425
426 FUNCTION unlock_rulefolder(p_rule_folder_id IN NUMBER)
427 RETURN VARCHAR2;
428
429 FUNCTION is_model_lockable (p_model_id IN NUMBER)
430 RETURN VARCHAR2;
431
432 FUNCTION is_rulefolder_lockable (p_rule_folder_id IN NUMBER)
433 RETURN VARCHAR2;
434
435 FUNCTION is_model_editable (p_model_id IN NUMBER)
436 RETURN VARCHAR2;
437
438 FUNCTION is_ui_def_editable(p_ui_def_id IN NUMBER)
439 RETURN VARCHAR2;
440
441 FUNCTION is_rulefolder_editable(p_rulefolder_id IN NUMBER)
442 RETURN VARCHAR2;
443
444 FUNCTION is_structure_editable (p_model_id IN NUMBER)
445 RETURN VARCHAR2;
446
447 FUNCTION has_model_privileges(p_model_id IN NUMBER, p_object_type IN VARCHAR2)
448 RETURN VARCHAR2;
449
450 FUNCTION is_rulefolder_locked(p_rule_folder_id IN NUMBER,p_object_type IN VARCHAR2)
451 RETURN VARCHAR2;
452
453 FUNCTION is_rulefolder_editable(p_rulefolder_id IN NUMBER,
454 p_object_type IN VARCHAR2,
455 p_parent_rulefolder_id IN NUMBER)
456 RETURN VARCHAR2;
457
458 FUNCTION is_model_locked (p_model_id IN NUMBER,p_object_type IN VARCHAR2)
459 RETURN VARCHAR2;
460
461 FUNCTION is_model_locked (p_model_id IN NUMBER,
462 p_object_type IN VARCHAR2,
463 p_checkout_user IN VARCHAR2,
464 p_flag IN NUMBER)
465 RETURN VARCHAR2;
466
467 FUNCTION is_model_editable (p_model_id IN NUMBER,p_object_type IN VARCHAR2)
468 RETURN VARCHAR2;
469
470 FUNCTION is_model_editable (p_model_id IN NUMBER,
471 p_object_type IN VARCHAR2,
472 p_checkout_user IN VARCHAR2,
473 p_flag IN VARCHAR2 )
474 RETURN VARCHAR2;
475
476 ----->>>>>>>>>>>>>>>>>>>>>>>>>
477 FUNCTION get_user_name(p_user_id IN NUMBER)
478 RETURN VARCHAR2 ;
479
480 FUNCTION get_resp_name (p_user_id IN NUMBER)
481 RETURN VARCHAR2;
482
483 PROCEDURE GET_CZ_GRANTS_VIEW;
484
485 PROCEDURE GET_CZ_GRANTS_UPDATE (p_entity_id IN NUMBER,
486 p_entity_type IN VARCHAR2,
487 p_model_id IN NUMBER,
488 p_priv IN VARCHAR2,
489 p_user_name in varchar2,
490 p_role in varchar2);
491 FUNCTION get_grant_access(p_model_id IN NUMBER)
492 RETURN VARCHAR2;
493
494 ------>>>>>>>>>>>>>>>>>>>>>>>>>>>>
495 /*
496 * This is the public interface for force unlock operations on a model in Oracle Configurator
497 * @param p_api_version number. Current version of the API is 1.0
498 * @param p_model_id number. devl_project_id of the model from cz_devl_projects table
499 * @param p_unlock_references A value of FND_API.G_TRUE indicates that the child models if any should be
500 * force unlocked. A value of FND_API.G_FALSE indicates that only the root model
501 * will be unlocked
502 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
503 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
504 * @param x_msg_count number of messages on the stack.
505 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
506 * @rep:scope public
507 * @rep:product CZ
508 * @rep:displayname API for working with force unlock operations on a model
509 * @rep:lifecycle active
510 * @rep:compatibility S
511 * @rep:category BUSINESS_ENTITY CZ_SECURITY
512 */
513
514 PROCEDURE force_unlock_model (p_api_version IN NUMBER,
515 p_model_id IN NUMBER,
516 p_unlock_references IN VARCHAR2,
517 p_init_msg_list IN VARCHAR2,
518 x_return_status OUT NOCOPY VARCHAR2,
519 x_msg_count OUT NOCOPY NUMBER,
520 x_msg_data OUT NOCOPY VARCHAR2);
521
522 /*
523 * This is the public interface for lock operations on a model in Oracle Configurator
527 * will be locked
524 * @param p_model_id number. devl_project_id of the model from cz_devl_projects table
525 * @param p_lock_child_models A value of FND_API.G_TRUE indicates that the child models if any should be
526 * locked. A value of FND_API.G_FALSE indicates that only the root model
528 * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
529 * the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
530 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
531 * @param x_locked_entities Contains models locked by this procedure call.
532 * This when passed as an input parameter to unlock_model
533 * API would ensure that only those models that have been locked by the lock API are unlocked. Models
534 * that were previously locked would not be unlocked (by the same user). The retaining of the lock state
535 * is done only during implicit locks and not when an unlock is done from developer.
536 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
537 * @param x_msg_count number of messages on the stack.
538 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
539 * @rep:scope public
540 * @rep:product CZ
541 * @rep:displayname API for working with lock operations on a model
542 * @rep:lifecycle active
543 * @rep:compatibility S
544 * @rep:category BUSINESS_ENTITY CZ_SECURITY
545 *
546 * Validations: The lock_model API validates the following:
547 * 1. validate input parameters
548 * 2. Check for the profile value 'CZ: Require Locking'. If 'Yes' then lock model
549 * otherwise return a status of 'S'
550 * 3. When doing a lock on the model and its children, if any of the model(s)
551 * are locked by a different user (it is ok to be locked by the same user)
552 * an exception is raised.
553 * The error messages are written to the FND stack and there would be one message
554 * for each model locked by a different user.
555 * The message would contain the name of the model and the user who locked it.
556 *
557 * Error reporting: Messages are written to FND error stack. The caller would have to get all the
558 * messages from the stack. No messages are logged to cz_db_logs.
559 *
560 * Usage
561 * lock model and its children : cz_security_pvt.lock_model(
562 * p_model_id => <devl_project_id of the model>,
563 * p_lock_child_models => FND_API.G_TRUE,
564 * p_commit_flag => FND_API.G_TRUE,
565 * p_init_msg_list => FND_API.G_TRUE,
566 * x_locked_entities => l_locked_entities,
567 * x_return_status => x_return_status,
568 * x_msg_count => x_msg_count,
569 * x_msg_data => x_msg_data);
570 *
571 * lock root model only : cz_security_pvt.lock_model(
572 * p_model_id => <devl_project_id of the model>,
573 * p_lock_child_models => FND_API.G_FALSE,
574 * p_commit_flag => FND_API.G_TRUE,
575 * p_init_msg_list => FND_API.G_TRUE,
576 * x_locked_entities => l_locked_entities,
577 * x_return_status => x_return_status,
578 * x_msg_count => x_msg_count,
579 * x_msg_data => x_msg_data);
580 */
581
582 PROCEDURE lock_model(p_api_version IN NUMBER,
583 p_model_id IN NUMBER,
584 p_lock_child_models IN VARCHAR2,
585 p_commit_flag IN VARCHAR2,
586 p_init_msg_list IN VARCHAR2,
587 x_locked_entities OUT NOCOPY number_type_tbl,
588 x_return_status OUT NOCOPY VARCHAR2,
589 x_msg_count OUT NOCOPY NUMBER,
590 x_msg_data OUT NOCOPY VARCHAR2);
591
592 /*
593 * This is the public interface for unlock operations on a model in Oracle Configurator
594 * @param p_model_id number. devl_project_id of the model from cz_devl_projects table
595 * @param p_unlock_child_models A value of FND_API.G_TRUE indicates that the child models if any should be
596 * unlocked. A value of FND_API.G_FALSE indicates that only the root model
597 * will be unlocked
598 * @param p_models_to_unlock would contain an array of model id(s) that have been populated with
599 * locked models during the execution of the lock model API. The unlock_model API will unlock the models
600 * in this array only.
601 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
602 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
603 * @param x_msg_count number of messages on the stack.
604 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
605 * @rep:scope public
606 * @rep:product CZ
607 * @rep:displayname API for working with unlock operations on a model
608 * @rep:lifecycle active
609 * @rep:compatibility S
613 * unlock model and its children : cz_security_pvt.unlock_model(
610 * @rep:category BUSINESS_ENTITY CZ_SECURITY
611 *
612 * Usage
614 * p_model_id => <devl_project_id of the model>,
615 * p_unlock_child_models => FND_API.G_TRUE,
616 * p_commit_flag => FND_API.G_TRUE,
617 * p_models_to_unlock => l_locked_entities,
618 * p_init_msg_list => FND_API.G_TRUE,
619 * x_return_status => x_return_status,
620 * x_msg_count => x_msg_count,
621 * x_msg_data => x_msg_data);
622 *
623 * unlock root model only : cz_security_pvt.unlock_model(
624 * p_model_id => <devl_project_id of the model>,
625 * p_unlock_child_models => FND_API.G_FALSE,
626 * p_commit_flag => FND_API.G_TRUE,
627 * p_models_to_unlock => l_locked_entities,
628 * p_init_msg_list => FND_API.G_TRUE,
629 * x_return_status => x_return_status,
630 * x_msg_count => x_msg_count,
631 * x_msg_data => x_msg_data);
632 *
633 */
634
635 PROCEDURE unlock_model(p_api_version IN NUMBER,
636 p_commit_flag IN VARCHAR2,
637 p_models_to_unlock IN number_type_tbl,
638 p_init_msg_list IN VARCHAR2,
639 x_return_status OUT NOCOPY VARCHAR2,
640 x_msg_count OUT NOCOPY NUMBER,
641 x_msg_data OUT NOCOPY VARCHAR2);
642
643 ------------>>>>>>>>>>>>>>>>>>>>>>>>>>>>
644 ----for developer
645 PROCEDURE lock_model(p_api_version IN NUMBER,
646 p_model_id IN NUMBER,
647 p_lock_child_models IN VARCHAR2,
648 p_commit_flag IN VARCHAR2,
649 p_init_msg_list IN VARCHAR2,
650 x_return_status OUT NOCOPY VARCHAR2,
651 x_msg_count OUT NOCOPY NUMBER,
652 x_msg_data OUT NOCOPY VARCHAR2);
653
654 PROCEDURE unlock_model(p_api_version IN NUMBER,
655 p_model_id IN NUMBER,
656 p_commit_flag IN VARCHAR2,
657 p_init_msg_list IN VARCHAR2,
658 x_return_status OUT NOCOPY VARCHAR2,
659 x_msg_count OUT NOCOPY NUMBER,
660 x_msg_data OUT NOCOPY VARCHAR2);
661
662 PROCEDURE lock_template(p_api_version IN NUMBER,
663 p_template_id IN NUMBER,
664 p_init_msg_list IN VARCHAR2,
665 x_return_status OUT NOCOPY VARCHAR2,
666 x_msg_count OUT NOCOPY NUMBER,
667 x_msg_data OUT NOCOPY VARCHAR2);
668
669 PROCEDURE unlock_template(p_api_version IN NUMBER,
670 p_template_id IN NUMBER,
671 p_force_unlock IN VARCHAR2,
672 p_init_msg_list IN VARCHAR2,
673 x_return_status OUT NOCOPY VARCHAR2,
674 x_msg_count OUT NOCOPY NUMBER,
675 x_msg_data OUT NOCOPY VARCHAR2);
676
677 ------------->>>>>>>>>>>>>>>>>>>>>>>>>
678 ----Wrappers to be used by Import, Publishing, Logic Gen and UI Gen. Hide the p_init_msg_list parameter.
679 ----The message list is not initialized.
680
681 PROCEDURE lock_model(p_api_version IN NUMBER,
682 p_model_id IN NUMBER,
683 p_lock_child_models IN VARCHAR2,
684 p_commit_flag IN VARCHAR2,
685 x_locked_entities OUT NOCOPY number_type_tbl,
686 x_return_status OUT NOCOPY VARCHAR2,
687 x_msg_count OUT NOCOPY NUMBER,
688 x_msg_data OUT NOCOPY VARCHAR2);
689
690 PROCEDURE unlock_model(p_api_version IN NUMBER,
691 p_commit_flag IN VARCHAR2,
692 p_models_to_unlock IN number_type_tbl,
693 x_return_status OUT NOCOPY VARCHAR2,
694 x_msg_count OUT NOCOPY NUMBER,
695 x_msg_data OUT NOCOPY VARCHAR2);
696
697 ------------->>>>>>>>>>>>>>>>>>>>>>>>>
698 /*
699 * This is the public interface for force unlock operations on a UI content template in Oracle Configurator
700 * @param p_api_version number. Current version of the API is 1.0
701 * @param p_template_id number. Template_id of the template from cz_ui_templates table
702 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
703 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
704 * @param x_msg_count number of messages on the stack.
705 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
706 * @rep:scope public
707 * @rep:product CZ
708 * @rep:displayname API for working with force unlock operations on a UI content template
709 * @rep:lifecycle active
710 * @rep:compatibility S
711 * @rep:category BUSINESS_ENTITY CZ_SECURITY
712 */
713
714 PROCEDURE force_unlock_template (p_api_version IN NUMBER,
715 p_template_id IN NUMBER,
716 p_init_msg_list IN VARCHAR2,
717 x_return_status OUT NOCOPY VARCHAR2,
718 x_msg_count OUT NOCOPY NUMBER,
719 x_msg_data OUT NOCOPY VARCHAR2);
720
721 /*
722 * This is the public interface for lock operations on a UI content template in Oracle Configurator
723 * @param p_api_version number. Current version of the API is 1.0
724 * @param p_template_id number. Template_id of the template from cz_ui_templates table
725 * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
726 * the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
727 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
728 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
729 * @param x_msg_count number of messages on the stack.
730 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
731 * @rep:scope public
732 * @rep:product CZ
733 * @rep:displayname API for working with force lock operations on a UI content template
734 * @rep:lifecycle active
735 * @rep:compatibility S
736 * @rep:category BUSINESS_ENTITY CZ_SECURITY
737 */
738
739 PROCEDURE lock_template(p_api_version IN NUMBER,
740 p_template_id IN NUMBER,
741 p_commit_flag IN VARCHAR2,
742 p_init_msg_list IN VARCHAR2,
743 x_return_status OUT NOCOPY VARCHAR2,
744 x_msg_count OUT NOCOPY NUMBER,
745 x_msg_data OUT NOCOPY VARCHAR2);
746
747 /*
748 * This is the public interface for lock operations on a UI content template in Oracle Configurator
749 * @param p_api_version number. Current version of the API is 1.0
750 * @param p_templates_to_lock array of templates to lock
751 * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
752 * the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
753 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
754 * @param x_locked_templates templates locked by this procedure
755 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
756 * @param x_msg_count number of messages on the stack.
757 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
758 * @rep:scope public
759 * @rep:product CZ
760 * @rep:displayname API for working with force lock operations on a UI content template
761 * @rep:lifecycle active
762 * @rep:compatibility S
763 * @rep:category BUSINESS_ENTITY CZ_SECURITY
764 */
765 PROCEDURE lock_template(p_api_version IN NUMBER,
766 p_templates_to_lock IN cz_security_pvt.number_type_tbl,
767 p_commit_flag IN VARCHAR2,
768 p_init_msg_list IN VARCHAR2,
769 x_locked_templates OUT NOCOPY cz_security_pvt.number_type_tbl,
770 x_return_status OUT NOCOPY VARCHAR2,
771 x_msg_count OUT NOCOPY NUMBER,
772 x_msg_data OUT NOCOPY VARCHAR2);
773
774
775 /*
776 * This is the public interface for unlock operations on a UI content template in Oracle Configurator
777 * @param p_template_id number. Template_id of the template from cz_ui_templates table
778 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
779 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
780 * @param x_msg_count number of messages on the stack.
781 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
782 * @rep:scope public
783 * @rep:product CZ
784 * @rep:displayname API for working with unlock operations on a UI content template
785 * @rep:lifecycle active
786 * @rep:compatibility S
787 * @rep:category BUSINESS_ENTITY CZ_SECURITY
788 */
789
790 PROCEDURE unlock_template(p_api_version IN NUMBER,
791 p_template_id IN NUMBER,
792 p_init_msg_list IN VARCHAR2,
793 x_return_status OUT NOCOPY VARCHAR2,
794 x_msg_count OUT NOCOPY NUMBER,
795 x_msg_data OUT NOCOPY VARCHAR2);
796
797 /*
798 * This is the public interface for unlock operations on a UI content template in Oracle Configurator
799 * @param p_templates_to_unlock array of Template_ids from cz_ui_templates table to unlock
800 * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
801 * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
802 * @param x_msg_count number of messages on the stack.
803 * @param x_msg_data standard FND OUT parameter for message. Messages are written to the FND error stack
804 * @rep:scope public
805 * @rep:product CZ
806 * @rep:displayname API for working with unlock operations on a UI content template
807 * @rep:lifecycle active
808 * @rep:compatibility S
809 * @rep:category BUSINESS_ENTITY CZ_SECURITY
810 */
811
812 PROCEDURE unlock_template(p_api_version IN NUMBER,
813 p_templates_to_unlock IN cz_security_pvt.number_type_tbl,
814 p_commit_flag IN VARCHAR2,
815 p_init_msg_list IN VARCHAR2,
816 x_return_status OUT NOCOPY VARCHAR2,
817 x_msg_count OUT NOCOPY NUMBER,
818 x_msg_data OUT NOCOPY VARCHAR2);
819
820
821
822
823 ----------------------------
824 ----procedures for rule import
825 PROCEDURE unlock_model(p_api_version IN NUMBER,
826 p_models_to_unlock IN SYSTEM.CZ_NUMBER_TBL_TYPE,
827 p_commit_flag IN VARCHAR2,
828 p_init_msg_list IN VARCHAR2,
829 x_return_status OUT NOCOPY VARCHAR2,
830 x_msg_count OUT NOCOPY NUMBER,
831 x_msg_data OUT NOCOPY VARCHAR2);
832
833 PROCEDURE unlock_model (p_api_version IN NUMBER,
834 p_model_id IN NUMBER,
835 x_return_status OUT NOCOPY VARCHAR2,
836 x_msg_count OUT NOCOPY NUMBER,
837 x_msg_data OUT NOCOPY VARCHAR2);
838
839 -------------------------------------------------
840 -----11.5.10 + Locking only
841 ----
842 ------------------------------------------------
843 FUNCTION get_locking_profile_value
844 RETURN VARCHAR2;
845 -----------------------------
846
847 END cz_security_pvt; /* end of package spec */