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 isWsAssemblyServiceType.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 isWsAssemblyServiceType.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 andCellStatus
for additional information, such asNoData
andInvalid Status
. For Finance BRs, this isFinanceFunctionType.DataCell
and for Assemblies, the Service Type isWsAssemblyServiceType.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 isWsAssemblyServiceType.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 isWsAssemblyServiceType.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 asConditionalInputResultType.Default
,ConditionalInputResultType.NoInput
,ConditionalInputRestulType.NoInputAllowCellDetail
, andConditionalInputResultType.NoCellDetailAllowInput
. These results determine whether a cell is read-only or allows input and cell detail. For Finance BRs, this isFinanceFunctionType.ConditionalInput
and for Assemblies, the Service Type isWsAssemblyServiceType.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. BecauseCustomCaluclate
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 isFinanceFunctionType.CustomCalculate
and for Assemblies, the Service Type isWsAssemblyServiceType.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.