Search Results cs_kb_secure_solutions_view




Overview

CS_KB_SECURE_SOLUTIONS_VIEW is an APPS-owned database view in the Oracle E-Business Suite Service (CS) product family, delivering a security-filtered projection of knowledge base solution sets. In EBS 12.1.1 and 12.2.2, the object is defined with VALID status and is exposed through the APPS schema for reporting, integration, and inquiry purposes. Functionally, the view enforces row-level security on knowledge base content: rather than returning every solution set in the repository, it restricts the result set to those categories and visibility levels that the current runtime user is authorized to access. This makes it the canonical read interface for downstream reports, custom concurrent programs, OBIEE/BI Publisher extracts, and API or interface programs that must respect Oracle Knowledge Base security semantics without re-implementing them.

The view derives its security context from session attributes resolved at query time through the CS_KB_SECURITY_PVT package, combined with the language of the active session. As a result, two users running identical SQL can legitimately receive different row counts, and any integration layer consuming this view must execute it in the context of an authenticated EBS session rather than as a standalone database query.

Underlying Base Objects

The view is defined over six documented objects:

  • CS_KB_CAT_GROUP_DENORM (synonym) — denormalized category group membership, supplying the child category and category group relationships used for security traversal.
  • CS_KB_SET_CATEGORIES (synonym) — associates solution sets with categories.
  • CS_KB_SETS_B (synonym) — the base solution set entity, carrying set number, type, status, and flags.
  • CS_KB_SETS_TL (synonym) — the translated (language-specific) names for solution sets.
  • CS_KB_VISIBILITIES_B (synonym) — visibility definitions and their ordinal positions.
  • CS_KB_SECURITY_PVT (package) — a private security package that resolves the caller's category group ID and solution visibility position.

Internally, the SQL joins the denormalized category group table to set categories, to the base set and translated set tables, and to the visibilities table. Security is imposed by comparing MV.CATEGORY_GROUP_ID to the value returned by CS_KB_SECURITY_PVT.GET_CATEGORY_GROUP_ID, and by filtering on visibility positions relative to CS_KB_SECURITY_PVT.GET_SOLN_VISIBILITY_POSITION. A final predicate on TL.LANGUAGE = USERENV('LANG') ensures only the session-language translation of each set name is surfaced.

Key Columns

  • SET_ID — primary identifier of the solution set, joining back to CS_KB_SETS_B.
  • SET_NUMBER — user-facing reference number for the solution set.
  • SET_TYPE_ID — discriminates the kind of set (for example standard versus template variants).
  • NAME — the translated name of the set, restricted to the session language.
  • COMPOSITE_ASSOC_INDEX — ordinal index used for composite set association ordering.
  • STATUS — lifecycle status of the set (e.g., draft, published, inactive).
  • LOCKED_BY — identifies the user holding an editing lock on the set.
  • FLOW_DETAILS_ID — reference to flow details associated with the set.
  • LAST_UPDATE_DATE — audit column used for incremental extracts.
  • VISIBILITY_ID — the visibility record governing who may see the set.
  • VIEWABLE_VERSION_FLAG — indicates whether the version is visible in the product.
  • LATEST_VERSION_FLAG — indicates whether the row represents the latest version.

Because security is applied by the view itself, the VISIBILITY_ID column is typically used for reporting validation rather than for adding additional predicates.

Common Use Cases and Queries

Typical uses include auditing which solution sets a given user can see, building knowledge base inventory reports, and exporting secured solution metadata to external portals. A basic query follows:

SELECT set_id, set_number, name, status, last_update_date
FROM   apps.cs_kb_secure_solutions_view
WHERE  latest_version_flag = 'Y'
ORDER  BY set_number;

For incremental integration, filter on the audit column:

SELECT set_id, set_number, name, visibility_id, last_update_date
FROM   apps.cs_kb_secure_solutions_view
WHERE  last_update_date >= :last_run_date;

Because the result set is session-dependent, such queries should be executed from within an EBS session or initialized session context (FND_GLOBAL) so USERENV('LANG') and the CS_KB_SECURITY_PVT calls resolve correctly. Omitting that context can lead to errors or empty results, and grants to the view should be limited to APPS and authorized custom schemas.