Search Results pjp_portfolio_set
Overview
FPA_SECURITY_PVT is a private PL/SQL package in the Oracle EBS Applications (APPS) schema that centralizes the security and privilege-checking logic for Oracle Project Portfolio Analysis (FPA). Its constant declarations reveal that the package governs authorization against portfolio objects, including the base portfolio object (PJP_PORTFOLIO) and the portfolio set object (PJP_PORTFOLIO_SET). The package defines named privileges such as FPA_SEC_VIEW_PORTFOLIO, FPA_SEC_UPDATE_PORTFOLIO, FPA_SEC_MAINTAIN_PC, FPA_SEC_COLLECT_PROJECT, FPA_SEC_DEVELOP_SCENARIO, and FPA_SEC_APPROVE_PC, and it recognizes portfolio roles including PORTFOLIO_OWNER, PORTFOLIO_ANALYST, and PORTFOLIO_APPROVER. The header comment and revision history ("120.4 2005/09/01") indicate the package has been stable since the early 11i releases and remains in the 12.1.1 and 12.2.2 code lines. The "PVT" classification denotes that it is an internal, private API intended for consumption by other Oracle application code rather than as a supported public interface.
Key Procedures and Functions
The package exposes eight documented procedures and functions that combine privilege evaluation with portfolio membership maintenance:
- CHECK_USER_PREVILEGE — Evaluates whether the current FND user holds a specified privilege on a portfolio. The header documentation states it returns 'T' when the grant exists, 'F' when it does not, 'E' for an exception, and 'U' for an unexpected error.
- CHECK_PRIVILEGE — A parallel or variant privilege-checking function that verifies authorization for a given privilege against a portfolio object.
- GET_OWNER — Returns the owner associated with a portfolio, used to determine ownership for security decisions.
- GET_ROLE_ID — Retrieves the role identifier corresponding to a portfolio role, supporting role-based grant creation and lookup.
- CREATE_PORTFOLIO_USER — Establishes a portfolio user record, granting a person a role or privilege on a portfolio.
- UPDATE_PORTFOLIO_USER — Modifies an existing portfolio user assignment, such as changing the assigned role or privilege for a person.
- UPDATE_PORTFOLIO_OWNER — Reassigns the owner of a portfolio, updating the security context accordingly.
- DELETE_PORTFOLIO_USER — Removes a portfolio user's role or privilege assignment, revoking access.
Tables Accessed
The package reads and writes several core EBS tables through APPS synonyms. PA_PROJECT_PARTIES and PA_PROJECT_ROLE_TYPES_B supply the project role and party relationship data used to resolve portfolio membership and roles. FND_GRANTS stores the actual security grants generated or validated by the privilege and user-management routines. FND_MENUS and FND_OBJECT_INSTANCE_SETS support the function-security and object-instance-set model that FPA relies on for row-level portfolio authorization. PER_ALL_PEOPLE_F provides person identifiers, linking grants to employees and other users.
Usage Notes
Because FPA_SECURITY_PVT is a private API, it is primarily invoked by other Oracle packages rather than directly by end users; the metadata confirms it is referenced by two other packages. In practice it is called when portfolio analysis forms and pages render, when a user opens or maintains a portfolio, and when portfolio owners, analysts, or approvers are added, changed, or removed. The update_portfolio_user entry point in particular is reached during maintenance of portfolio membership. Custom code should avoid calling FPA_SECURITY_PVT directly and instead use supported public APIs, since the private package may change without notice across releases.