Search Results is_lock_required
Overview
APPS.CZ_SECURITY_PVT is a private PL/SQL package belonging to the Oracle E-Business Suite Configure-to-Order (C2O) / Oracle Configurator application family, sharing the CZ object prefix with modules such as CZ_DEVELOPER_UTILS_PVT, CZ_MODELOPERATIONS_PUB, and CZ_POPULATORS_PKG. The package encapsulates the security, privilege‑grant, and locking infrastructure used across the configuration modeling schema. Its responsibilities are twofold: it enforces fine‑grained access control on configuration models, UI definitions, rule folders, and related entities, and it manages the lock and unlock lifecycle that prevents concurrent modification of those same structures. The package is classified as PVT (private), indicating that it is an internal implementation API rather than a published public interface; it is intended to be called by other CZ packages rather than directly by external consumers. As an APPS‑owned object, it executes with the privileges of the APPS schema and operates against tables reached through APPS synonyms. The ETRM report confirms the object is VALID in both 12.1.1 and 12.2.2, and it exposes 71 documented procedures and functions.
Key Procedures and Functions
The documented API falls into three functional clusters:
- Privilege management: GRANT_PRIVILEGE and REVOKE_PRIVILEGE assign or remove access for a user or role on a secured entity. GET_DEFAULT_ACCESS_PROFILE and GET_PROFILE_VALUE resolve the access profile or individual profile setting that applies to a given context, forming the basis of the default authorization decision.
- Privilege evaluation: HAS_PRIVILEGES and HAS_MODEL_PRIVILEGES test whether the current user holds the required rights against a generic secured object or specifically against a configuration model. ARE_MODELS_LOCKED performs a bulk check across multiple models.
- Locking and unlocking: LOCK_ENTITY and UNLOCK_ENTITY provide generic entity‑level locking, while UNLOCK_MODEL, UNLOCK_MODEL_STRUCTURE, and LOCK_MODEL_STRUCTURE manage the model and its structural hierarchy. LOCK_UI_DEF plus IS_UI_DEF_LOCKED, IS_ROOT_UI_LOCKED, IS_ROOT_RULEFOLDER_LOCKED, and IS_RULEFOLDER_LOCKED govern UI definition and rule folder locking. IS_LOCK_REQUIRED and IS_MODEL_LOCKED, together with IS_MODEL_STRUCTURE_LOCKED, determine whether a lock is needed or currently held, supporting check‑then‑act logic in callers.
Tables Accessed
Through APPS synonyms the package reads and writes the core C2O metadata tables. Security and grant information is held in FND_GRANTS, FND_FORM_FUNCTIONS, FND_COMPILED_MENU_FUNCTIONS, and FND_APPLICATION, which connect the CZ objects to the standard EBS function‑security model. Lock state and audit history are persisted in CZ_LOCK_HISTORY and CZ_PUBLICATION_LOCKS. Model and structure metadata reside in CZ_DEVL_PROJECTS, CZ_MODEL_REF_EXPLS, CZ_PS_NODES, CZ_RP_ENTRIES, and CZ_RULE_FOLDERS. User interface metadata is drawn from CZ_UI_DEFS, CZ_UI_NODES, CZ_UI_REFS, and CZ_UI_TEMPLATES. It also depends on the CZ_NUMBER_TBL_TYPE collection type for array‑based parameter handling.
Usage Notes
CZ_SECURITY_PVT is invoked indirectly. ETRM shows it is referenced by eight packages, including CZ_DEVELOPER_UTILS_PVT, CZ_MODELOPERATIONS_PUB (the public model operations API), CZ_IMP_SINGLE and CZ_RULE_IMPORT (import utilities), CZ_LOGIC_GEN, CZ_PB_MGR, CZ_POPULATORS_PKG, and CZ_UIOA_PVT. A typical call sequence checks HAS_MODEL_PRIVILEGES or IS_LOCK_REQUIRED before proceeding, then calls LOCK_MODEL_STRUCTURE or LOCK_UI_DEF prior to modification, writing to CZ_LOCK_HISTORY, and finally UNLOCK_MODEL on completion. Because the package is private and APPS‑owned, custom code should prefer the public CZ APIs or shared EBS function grants; direct invocation is unsupported and may bypass validation performed by the wrapper packages. All calls run under APPS privileges, so FND_GRANTS entries must be provisioned correctly for the acting user.