Search Results process_rows




Overview

FEM_DATAX_LOADER_PKG is a PL/SQL package owned by the APPS schema that functions as the core load engine for Oracle Enterprise Performance Foundation (also marketed as Enterprise Planning and Budgeting) data integration within Oracle E-Business Suite 12.1.1 and 12.2.2. The package is responsible for moving source transactions and balances into the FEM (Financials Enterprise Model) staging and fact tables, transforming raw rows into dimensionally-qualified records that the analytic applications can consume. It is a generic, metadata-driven loader: rather than hard-coding source structures, it accepts a set of dimension SQL fragments that dynamically describe how each FEM dimension (cost center, financial element, product, natural account, channel, line item, project, customer, entity, geography, task, intercompany, and ten user-defined dimensions) is mapped from the source system. The package is classified as OTHER within the ETRM catalog, meaning it is an internal engine invoked by the standard FEM integration programs rather than a published, customer-facing API.

Key Procedures and Functions

The package exposes seven documented procedures. All are internal building blocks that cooperate in a single load cycle.

  • Master — The top-level orchestrator. It receives a mode flag, the object definition, ledger, dataset, source, and calendar period identifiers, and drives the overall load lifecycle by sequencing the remaining procedures.
  • Validation — Confirms that the object definition, source, and associated metadata are consistent and complete before any data movement begins.
  • Registration — Registers the run and its control context, establishing the tracking records used by downstream procedures and by process monitoring.
  • Pre_Process — Performs setup work such as preparing staging structures and initializing state before rows are fetched.
  • Process_Rows — The primary workhorse. It accepts the engine SQL, a slicing predicate, partition information, a fetch limit, the target data table, and the full complement of dimension SQL fragments. It reads source rows in bounded batches, applies the dimensional derivation logic, and writes the qualified rows to the FEM data table for the given object, ledger, dataset, period, and source.
  • Post_Process — Handles cleanup and finalization, including tallying results and releasing run-level state once loading is complete.
  • Get_Put_Messages — Retrieves or publishes status and error messages associated with a run, supporting the concurrent program log and the FEM message framework.

Tables Accessed

The package reads FEM metadata that defines the loading context and validates the dimensions being mapped. Calendar period qualification relies on FEM_CAL_PERIODS_B and FEM_CAL_PERIODS_ATTR; dataset and ledger definitions come from FEM_DATASETS_B, FEM_DATASETS_ATTR, FEM_LEDGERS_B, and FEM_LEDGERS_ATTR. Dimension structure is drawn from FEM_DIMENSIONS_B, FEM_DIMENSION_GRPS_B, FEM_DIM_ATTRIBUTES_B, and FEM_DIM_ATTR_VERSIONS_B. Physical column mapping and object-to-table binding are resolved through FEM_TAB_COLUMNS_B, FEM_TAB_COLUMN_PROP, and FEM_TABLE_CLASS_ASSIGNMT. Runtime execution state is tracked in FEM_MP_PROCESS_CTL_T, and user-facing organization of objects uses FEM_USER_FOLDERS. Collectively these tables supply the metadata that lets the loader operate generically against any registered FEM object.

Usage Notes

FEM_DATAX_LOADER_PKG is not intended for direct invocation from forms or custom code; ETRM records no packages that reference it, confirming it is called internally by the FEM integration concurrent programs. Administrators invoke the load indirectly by submitting the standard FEM data load concurrent request for a given object definition, ledger, dataset, and source, passing the execution mode and calendar period. The engine SQL and the dimension SQL fragments are assembled by the calling framework from the object's registered metadata, so extending a load generally means configuring new mappings rather than editing this package. Because parameters are positional and numerous, any custom wrapper should copy the published signature from the source and treat the package as subject to change between patch levels.