Search Results rule_hit_list




Overview

SYS.DBMS_RULE_INTERNAL is an Oracle Server-supplied internal PL/SQL package that underpins the Oracle Rules Manager and Expression Filter infrastructure used by the Oracle E-Business Suite Release 12.1.1 and 12.2.2. Declared with AUTHID CURRENT_USER, it executes with the privileges of the invoking schema, which allows the rule engine to evaluate rule sets on behalf of the calling application without requiring elevated grants. In the EBS context, this package provides the low-level evaluation kernel that drives event-driven rule processing, including Advanced Product Catalog, iStore personalization, sourcing, and approval management rules that ultimately depend on the database rule engine. Because the package is owned by SYS and is not part of the public EBS API surface, it is classified as OTHER in the ETRM documentation and is not intended for direct application-level invocation.

Key Procedures and Functions

The package exposes a single documented procedure, I_EVALUATE, which the ETRM documentation records as I_EVALUATE (the internal evaluate entry point). It is shown with two overloaded signatures that share the same name and differ primarily in the type of variable value list they accept. The purpose of I_EVALUATE is to evaluate a named rule set against a supplied evaluation context and return the set of rules that matched. The caller passes the rule set name, an evaluation context, and optional event, table, column, variable, and attribute value collections. Boolean switches such as stop_on_first_hit, simple_rules_only, and result_cache govern evaluation behaviour and caching. The variable_flag parameter — the term the user searched for — accepts a PLS_INTEGER and signals to the engine how variable-value input should be interpreted. Two OUT parameters, true_rules and maybe_rules, return the definitively matched rules and the conditionally matched rules respectively.

The package also declares the constant KWRX_CHN_ANYDTA (PLS_INTEGER := 1), an internal macro kept in sync with the C-layer kwrx.h definition. It is used to indicate that any data type is acceptable in the change notification path, and it shares the same integer domain as the variable_flag argument.

Tables Accessed

The documented metadata for this package lists no directly referenced tables through APPS synonyms. Internally, however, the rule engine operates on the SYS.RE$ repository objects — including the RE$NV_LIST, RE$TABLE_VALUE_LIST, RE$COLUMN_VALUE_LIST, RE$VARIABLE_VALUE_LIST, RE$ATTRIBUTE_VALUE_LIST, and RE$RULE_HIT_LIST types referenced in the signatures — which back the rule set definitions, rule conditions, and rule hit results. These are database-internal structures rather than EBS application tables, which is why no APPS-synonym tables are documented for the package.

Usage Notes

DBMS_RULE_INTERNAL is not called directly by Oracle EBS forms, concurrent programs, or customer extensions. It is invoked indirectly whenever an application executes a rule set through the supported Rules Manager or Expression Filter interfaces. The ETRM metadata records that this package is referenced by two other database packages, confirming that it functions as a dependency layer rather than an entry-point API. Because it is an internal, undocumented kernel package, Oracle EBS developers should not call I_EVALUATE directly; doing so risks incompatibility across patch levels. Any diagnostic work involving variable_flag or KWRX_CHN_ANYDTA should be treated as Oracle Support-driven investigation into rule engine behaviour rather than routine application customisation.