Search Results process_request_for_entity
Overview
QP_DELAYED_REQUESTS_PVT is a private PL/SQL package body in the Oracle E-Business Suite Advanced Pricing (QP) module. It implements a deferred processing mechanism for pricing qualifier requests that cannot be resolved immediately at the point of transaction entry. The package maintains in-memory collections of delayed requests (g_delayed_requests) and the entities that originated them (g_requesting_entities), buffering work until it can be processed in a controlled batch. A package-level constant G_MAX_REQUESTS (default 1000) bounds the size of the pending request set, protecting against runaway memory consumption. The package is classified as PVT (private) within ETRM, meaning it is intended for internal use by the pricing engine and its related public APIs, notably QP_QUALIFIER_RULES_PUB, rather than as a directly callable integration surface.
Key Procedures and Functions
The package exposes nine documented procedures, each addressing a distinct stage of the deferred request lifecycle:
- LOG_REQUEST — Records a new delayed request into the pending collections. This is the entry point through which the pricing engine registers work that must be deferred.
- CHECK_FOR_REQUEST — Determines whether a request already exists for a given entity and request type. Per the source header, its search strategy is optimized for scalability: requests are indexed using a mod function on entity_id, so the existence check need only scan a subset of the request table (BUG 2502849). It returns an existence indicator and, when the request is absent, the index at which it should be inserted.
- DELETE_REQUEST — Removes a single delayed request from the pending collection.
- CLEAR_REQUEST — Clears request state, typically resetting buffers between processing cycles.
- PROCESS_REQUEST — Executes the deferred work for an individual request.
- PROCESS_REQUEST_FOR_ENTITY — Processes all pending requests associated with a specific requesting entity.
- PROCESS_REQUEST_FOR_REQTYPE — Processes pending requests filtered by request type. This is the procedure most directly associated with the search term "process_request_for_reqtype" and is the mechanism by which callers drain queued work of a particular category.
- PROCESS_DELAYED_REQUESTS — Drives the full batch, iterating over accumulated requests and dispatching them for processing, subject to the G_MAX_REQUESTS ceiling.
- DELETE_REQS_FOR_DELETED_ENTITY — Purges requests whose originating entity no longer exists, maintaining referential consistency of the buffer.
Tables Accessed
The package operates against two documented tables through APPS synonyms:
- QP_LIST_LINES — The core Advanced Pricing table storing list line definitions that back qualifiers. Deferred requests ultimately resolve against this data when qualifier rules are evaluated.
- PLITBLM — A pricing list index table used to support qualifier and list line lookups efficiently during rule evaluation.
At runtime, entity identifiers that key the mod-based indexing scheme derive from QP_LIST_LINES line IDs, which are generated sequentially.
Usage Notes
QP_DELAYED_REQUESTS_PVT is not intended for direct invocation by end users or external integrations. It is referenced by 33 other packages, indicating extensive internal reuse across the pricing codebase. Typical invocation occurs when the pricing engine cannot complete qualifier resolution synchronously—for example, during order capture, pricing or re-pricing cycles, or bulk pricing operations—and instead logs requests for later batch execution via PROCESS_DELAYED_REQUESTS. Because the package retains state in global PLS/SQL collections, correctness depends on disciplined clearing between cycles through CLEAR_REQUEST and DELETE_REQS_FOR_DELETED_ENTITY. Developers extending pricing logic should call the documented public API (QP_QUALIFIER_RULES_PUB) rather than this private package, and should be aware that the G_MAX_REQUESTS bound of 1000 governs how many requests may be buffered before processing is forced.
-
PACKAGE BODY: APPS.QP_DELAYED_REQUESTS_PVT
12.1.1
-
PACKAGE BODY: APPS.QP_DELAYED_REQUESTS_PVT
12.2.2
-
PACKAGE: APPS.QP_DELAYED_REQUESTS_PVT
12.2.2
-
PACKAGE: APPS.QP_DELAYED_REQUESTS_PVT
12.1.1
-
PACKAGE: APPS.OE_DELAYED_REQUESTS_PVT
12.1.1
-
PACKAGE: APPS.OE_DELAYED_REQUESTS_PVT
12.2.2
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on QP_DELAYED_REQUESTS_PVT
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on QP_DELAYED_REQUESTS_PVT
12.2.2
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on OE_DEBUG_PUB
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on OE_DEBUG_PUB
12.2.2
-
PACKAGE BODY: APPS.OE_DELAYED_REQUESTS_PVT
12.2.2
-
PACKAGE BODY: APPS.OE_DELAYED_REQUESTS_PVT
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on OE_MSG_PUB
12.2.2
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on OE_MSG_PUB
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on FND_API
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on FND_API
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on FND_API
12.1.1
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_MSG_PUB
12.1.1
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_MSG_PUB
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on FND_API
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_ORDER_PVT
12.1.1
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_ORDER_PVT
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_DEBUG_PUB
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on OE_DEBUG_PUB
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on FND_API
12.1.1
-
APPS.QP_DELAYED_REQUESTS_PVT dependencies on FND_API
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on FND_API
12.2.2
-
APPS.OE_DELAYED_REQUESTS_PVT dependencies on FND_API
12.1.1