Skip to main content

Finance Business Rules (BRs)

Finance Business Rules (BRs) and the Assembly Service Type Finance in OneStream enable calculations (simple to complex), management of financial data efficiently, and development of member lists. To simplify the documentation, Finance BRs and the Assembly Service Type Finance with feature parity will be referred to as Finance functionality. When there is no parity between Finance BRs and the Finance Assembly Service Type, this will be documented. The following is an overview of key properties for Finance Functionality based on Platform Version 9.#:

Purpose and Usage

Finance Functionality is designed to facilitate multi-dimensional “cube” calculations and enable complex financial data analysis and processing. One feature is the ability to generate calculations across various dimensions, such as time, entity, and scenario.

Types of Finance Functionality

Finance Functionality can be categorized into several Function Types (Finance BRs) and Assembly Service Types based on their functionality, such as:

  • MemberListHeaders defines the names of custom Member Lists. It focuses on setting up the headers or identifiers for these lists, which can then be used to organize and categorize data entities within the OneStream platform. When using MemberListHeaders, additional logic is implemented to specify the names of the custom lists. This is crucial for organizing data and ensuring that the lists are recognized and can be referenced in various parts of the application, such as Cube Views. For Finance BRs, this is FinanceFunctionType.MemberListHeaders and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceMemberLists.
  • MemberList defines the actual members within the custom Member Lists. It involves creating the criteria and logic for including specific members in the list, such as retrieving children of a particular entity or sorting members in a specific order. This functionality is essential for organizing data entities and ensuring that they can be referenced in various parts of the application, such as Cube Views. For Finance BRs, this is FinanceFunctionType.MemberList and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceGetDataCell.
  • DataCell enables dynamic calculations at the individual data cell level. The DataCell object is a wrapper that defines a cell’s eighteen-dimensional intersections and includes properties CellAmount for storing numbers and CellStatus for additional information, such as NoData and Invalid Status. For Finance BRs, this is FinanceFunctionType.DataCell and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceGetDataCell.
  • FxRate enables the implementation of custom logic to determine foreign exchange rates for any data intersection. Stated differently, the FX rate calculation can be tailored to meet specific business needs, such as translating actual data at budget rates or implementing constant currency scenarios. Occurs when a translation is triggered. For Finance BRs, this is FinanceFunctionType.FxRate and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceCore.
  • Calculate supports calculations for designated members within the OneStream platform across entities, scenarios, and time periods. It is particularly useful in consolidation scenarios, where it allows additional logic execution after sibling entities have calculated results. For Finance BRs, this is FinanceFunctionType.Calculate and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceCore.
  • ConditionalInput is used to manage the status of data cells during data loads and reporting. A ConditionalInput rule is attached to a cube and runs for every cell displayed in a Cube View or Quick View, as well as every record in a data load. Because the functionality is executed for every cell, the writing of efficient code is imperative. This function type can return different results such as ConditionalInputResultType.Default, ConditionalInputResultType.NoInput, ConditionalInputRestulType.NoInputAllowCellDetail, and ConditionalInputResultType.NoCellDetailAllowInput. These results determine whether a cell is read-only or allows input and cell detail. For Finance BRs, this is FinanceFunctionType.ConditionalInput and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceCore.
  • CustomCalculate is designed to provide flexibility and precision in executing calculations outside the Data Unit Calculation Sequence (DUCS). Stated differently, a CustomCalculate occurs based on an action such as executing a Data Management Step or Sequence. Because this function type allows for targeted calculations that do not execute during DUCS, the capabilities are useful for scenarios where only specific parts of the data need to be recalculated, rather than the entire data unit. Because CustomCaluclate does not store calculated data or run during a consolidation, it is considered a partial calculation with data cleared during the standard consolidation process unless the data is set as durable. For Finance BRs, this is FinanceFunctionType.CustomCalculate and for Assemblies, the Service Type is WsAssemblyServiceType.FinanceCustomCalculate.
  • ReadSourceDataRecords is designed to support Dynamic Source Data. A Finance BR enables reading data from a source scenario while presenting the data in a target scenario, which is a reporting technique especially with large data unit size, as the Finance BR is written to reduce data unit size. The assembly service type can read records from either an external data source or a OneStream application with applicable security. For Finance BRs, this is FinanceFunctionType.ReadSourceDataRecords and for Assemblies, the Service Type is Dynamic Cube Services.

Member Formula and Formula for Calculation Drill Down

Finance BRs when property, Contains Global Functions for Formulas, is set to True, can be the source for either the formula for a Member or the Calculation Drill Down Formula. This functionality enables central maintenance of code in the BR as the member code can be generic, i.e., passing of appropriate parameters to the Finance BR to return the calculation of the drill down appropriate for the member.

Was this page helpful?