Search Results po_control_rules_u1




Overview

PO.PO_CONTROL_RULES is a foundational Purchasing table that stores the individual control rules used to restrict document approval in Oracle E-Business Suite. A control group defines the overall approval restriction policy, and each row in PO_CONTROL_RULES represents one concrete rule within that policy. According to the ETRM metadata, a rule may be defined against one of several data objects: Items, Accounting Flexfields, Item Categories, Locations, or the Document Total. Each rule applies to exactly one object and occupies a single row, storing either a valid account flexfield range, item flexfield range, item category flexfield range, ship-to/deliver-to location, or a document total threshold.

The table resides in the APPS_TS_TX_DATA tablespace with a PCT Free of 10, and is owned by the PO schema. The heuristic Data Vault classification derived from its foreign key structure is satellite-leaning, suggesting that the table behaves primarily as a descriptive satellite attached to its parent control group rather than as an independent hub or link. It should be modeled as a dependent descriptor of the control group entity for most analytical purposes.

Key Information Stored

The table contains 92 documented columns in the 12.2.2 physical schema. The most consequential columns include the following:

The surrogate key CONTROL_RULE_ID should be distinguished from the business identifier formed by the parent group context (CONTROL_GROUP_ID) combined with the rule definition; the unique index PO_CONTROL_RULES_U1 enforces only the surrogate uniqueness.

Common Use Cases and Queries

Control rules are consulted during purchase order entry and approval to determine whether a document or line violates any defined restriction. Typical query patterns retrieve all active rules for a control group:

  • Listing active rules for a group: SELECT control_rule_id, object_code, rule_type_code FROM po_control_rules WHERE control_group_id = :p_group_id AND (inactive_date IS NULL OR inactive_date > SYSDATE);
  • Analyzing document-total rules: filter on OBJECT_CODE = 'DOCUMENT TOTAL' and inspect AMOUNT_LIMIT.
  • Auditing recently modified rules using LAST_UPDATE_DATE and the Who columns.
  • Tracing concurrent program updates via REQUEST_ID joined to FND_CONCURRENT_REQUESTS.
  • Reporting flexfield coverage by examining the SEGMENT*_LOW and SEGMENT*_HIGH ranges.

Related Objects

  • PO.PO_CONTROL_GROUPS_ALL — Parent table; join on PO_CONTROL_RULES.CONTROL_GROUP_ID = PO_CONTROL_GROUPS_ALL.CONTROL_GROUP_ID.
  • FND_USER — Resolves the Who columns CREATED_BY and LAST_UPDATED_BY.
  • FND_LOGINS — Resolves LAST_UPDATE_LOGIN.
  • FND_CONCURRENT_REQUESTS — Resolves REQUEST_ID for concurrent program audits.
  • PO.PO_CONTROL_RULES_U1 — The unique index supporting direct lookup by CONTROL_RULE_ID.
  • PO.PO_CONTROL_RULES_N1 — The non-unique index accelerating joins by CONTROL_GROUP_ID.