Search Results add_dependency




Overview

APPS.RLM_MESSAGE_SV is a server-side PL/SQL package body in the Oracle E-Business Suite Release Management (RLM) module, part of the Advanced Supply Chain Planning / Distribution family. Its principal business function is centralised message and error handling for the RLM interface processing infrastructure. The package accumulates validation messages, dependency errors, and fatal errors in an in-memory PL/SQL table (the g_message_tab structure referenced in the source header) and flushes them to the persistent staging tables in a single bulk write when DUMP_MESSAGES is invoked. This deferred-write design avoids row-by-row inserts against the interface tables, which is significant because RLM processing typically involves high-volume record batches such as demand exceptions, order schedules, and customer item cross-references.

A second responsibility is dependency tracking. When a record fails validation, the package can record an error against a specific validation type in the dependency table so that downstream or dependent validations are skipped rather than re-executed. The app_error procedure documented in the source accepts a x_ValidationType argument for exactly this purpose; passing NULL suppresses the dependency check.

Key Procedures and Functions

  • NAME — Descriptive identifier function returning the package name for diagnostic and registration purposes.
  • APP_ERROR — Principal message-accumulation entry point. Stages an error message together with interface, schedule, and order context identifiers, optional validation type, and up to ten token/value substitution pairs. A NULL validation type bypasses dependency registration.
  • SET_DEPENDENT_ERROR — Records an error against a dependent validation so that related checks are suppressed for the affected record. This is the procedure most commonly associated with the search term set_dependent_error.
  • SET_FATAL_ERROR — Registers a fatal-level error that halts further processing for the current batch or record group.
  • FATAL_ERROR_FOUND — Boolean-style query returning whether a fatal error has been registered in the current session's message table.
  • DUMP_MESSAGES — Flushes the accumulated in-memory messages to the interface tables in one bulk operation and resets the message table.
  • INITIALIZE_MESSAGES — Clears and initialises the message collection structures prior to processing a batch.
  • REMOVEMESSAGES — Removes previously staged messages for a given context, used when retrying or correcting a record.
  • CHECK_DEPENDENCY — Tests whether a dependency error exists for the supplied validation type before allowing a validation to proceed.
  • INITIALIZE_DEPENDENCY / RESET_DEPENDENCY — Set up and clear dependency state between processing cycles.
  • INSERT_PURGE_ROW — Manages a purge marker row that controls retention of processed interface data.
  • POPULATE_REQ_ID / GET_CONC_REQ_ID — Capture and expose the concurrent request identifier so messages can be traced back to the originating concurrent program run.

Tables Accessed

The package writes primarily to the RLM interface and exception tables: RLM_INTERFACE_HEADERS, RLM_INTERFACE_LINES, and RLM_INTERFACE_LINES_ALL hold the staged interface rows that receive error text and status updates; RLM_DEMAND_EXCEPTIONS and RLM_DEMAND_EXCEPTIONS_S hold demand exception records produced during planning and order processing. Customer and item master tables — HZ_CUST_ACCOUNTS, HZ_CUST_ACCT_SITES, HZ_CUST_ACCT_SITES_ALL, HZ_PARTIES, MTL_CUSTOMER_ITEMS, and MTL_CUSTOMER_ITEM_XREFS — are referenced for context resolution and validation of ship-to, customer item, and inventory item identifiers passed into app_error. PLITBLM is the standard EBS error-message repository table used to resolve message names into translatable text.

Usage Notes

RLM_MESSAGE_SV is an internal utility package rather than an end-user facing API. It is invoked by concurrent programs and by other RLM packages during interface import, demand exception generation, and order scheduling. The metadata shows it is referenced by fifteen other packages, confirming its role as a shared service layer. Typical call patterns are: initialise messages at the start of a batch, invoke app_error or set_dependent_error as each record is validated, call fatal_error_found to short-circuit when required, and finally call dump_messages to persist results. Custom extensions that process RLM interface data should follow the same sequence so that messages remain consistent with standard concurrent request output and can be retrieved by request ID.