As mentioned, ATG’s Oracle Fusion Tree Management service provides a standardized implementation of Trees that has been adopted by a large number (but not all) of Oracle Fusion applications. Oracle Fusion Tree Management consists of standard metadata, database tables, Oracle ADF Business Components, UI components, and processes, for managing the complete life cycles of Trees on behalf of applications. The following are the most important of the ATG standard components for Trees administration, mainly as background for the subsequent discussion on Transactional Business Intelligence administrative processes for Tree flattening:
Tree Structure–A metadata construct defining a single family or class of Trees by name. Tree Structures are usually defined by application developers. An example of a Tree Structure: “DEPT_TS”.
Tree–A metadata construct defining a particular Tree (that is, an instance of a Tree Structure). Trees are likewise usually defined by application developers. An example of a Tree: “SALESDEPT”.
Tree Version–A metadata construct defining a particular version of a Tree. Versions are usually created by application users or administrators. A version of a Tree may carry an Effective Date. Tree versions and their content are transformed by the flattening processes. An example of a Tree Version: “SALEDEPT.09252011”.
Tree Node Table–ATG database table storing the parent-child representation of the Tree. The default, shared table defined by ATG is called FND_TREE_NODE. However, developers using ATG Oracle Fusion Tree Management services may create and register custom tree node tables with application-specific names; for example, ABC_TREE_NODE.
Row-Flattened Table–ATG database table storing the row-flattened representation of the Tree Node Table. The default, shared table defined by ATG is FND_TREE_NODE_RF. However, developers using ATG Oracle Fusion Tree Management services may create and register custom row-flattened tables with application-specific names; for example, ABC_TREE_NODE_RF.
Column-Flattened Table–ATG database table storing the column-flattened representation of the Tree Node Table. The default, shared table defined by ATG is called FND_TREE_NODE_CF. However, developers using ATG Oracle Fusion Tree Management services may create and register custom column-flattened tables with application-specific names; for example, ABC_TREE_NODE_CF.
Data Source View Object–Oracle ADF Business Components component representing the data source of a particular Tree Version. This object represents the physical data source whose stored values are effectively “shaped” by the content of FND_TREE_NODE (or an application-provided equivalent of the Tree Node table). Usually, a unique data source view object is defined for each level of the Tree Version.
Column-Flattened Business Intelligence View Object (BICVO)–Oracle ADF Business Components representing a column-flattened Tree Version. The BICVO joins the column-flattened representation of the Tree Version with relevant data source values otherwise exposed by the Data Source view object. It also defines security on the column-flattened Tree Version in terms of an attached Oracle ADF view criteria object. BICVOs, designed by developers, are automatically generated through the Trees Application Launch Page. The column-flattening process is the means by which a BICVO is populated for use by Transactional Business Intelligence. Notice that, in general, no equivalent BICVO-like construct exists for row-flattened Tree Versions. See the Oracle Fusion Developer Guide for additional information on how to construct BICVOs, including information on enabling data source attributes to be brought into the BICVO result set.
Effective Date–A range of start and end dates that indicate when a Tree Version of a Tree is “current” or “in effect.”
Trees Application Launch Page–Oracle ADF browser-based UI entry point for creating and managing Tree Structures, Trees, Tree Versions, and Labels, as well as the asynchronous processes of Auditing and Flattening, and the generation of BICVOs.
Auditing–ATG asynchronous process that validates the overall correctness of a Tree Structure and its instances. An Audit can be configured to run on demand (either immediately or as soon as possible), or scheduled for a specified date and time.
Flattening–ATG asynchronous process that reads the FND_TREE_NODE table (or an equivalent, application-specified, custom Tree Node Table) and converts it either to Column-Flattened or Row-Flattened format, storing it respectively in either the FND_TREE_NODE_CF table or FND_TREE_NODE_RF table (or an equivalent application-specified, custom Column or Row-Flattened Table). Flattening may be configured to run on-demand (either immediately or as soon as possible), or scheduled for a specified date and time.
Incremental Flattening–The method ATG uses in applying its flattening algorithm at any point after the initial time that Flattening is run after installation of the application. After the initial installation, running the Flattening process (whether on demand or scheduled) results in the entire Tree Node Table for a particular Tree Version being transformed and loaded into the relevant Column or Row-Flattened Table for that Tree Version. However, following this initial load, subsequent modifications to the Tree Node Table (in the form of a record of Tree Node operations–that is, the operations modifying specific Tree nodes) are recorded in a log file. The next time the Flattening process runs, it applies only those incremental changes to the Tree Node Table recorded in the log file, eliminating the need to transform and reflatten or reload the entire Tree. Specifically, incremental flattening is supported by the following ATG database tables:
FND_TREE_FLATTENING_HISTORY–Records the last Tree Node operation to be flattened.
FND_TREE_LOG–Records all updated Tree Node operations against the Tree Node Table since the last flattened Tree Node operation (captured in FND_TREE_FLATTENING HISTORY).
FND_TREE_LOG_PARAMS–A separate table that stores all relevant parameter values for the recorded update Tree Node operations against the Tree Node Table.
Tree Structure Service API–ATG service API for managing Tree Structures.
Tree Service API–ATG service API for managing Trees and Tree Versions. This service API implements the flattening processes.
Tree Node Service API–ATG service API for managing Tree Nodes (contents of the Tree Nodes Table). API implements Tree Node operations.
Enterprise Scheduler Service (ESS)–Generic Oracle Fusion Application scheduling service used to configure, schedule, and run asynchronous jobs. Using ESS together with the ATG Tree Service API is one way of developing custom Flattening jobs, or application-specific interfaces and UIs for Flattening jobs against ATG Trees. Most Oracle Fusion applications based on ATG Trees launch the ATG Flattening process in this manner, rather than through the ATG Trees UI.