Discuss formulas and business rules for your application.
Recently active
Good afternoon, I'm trying to pass through formatting from one cube view to another. The 2nd cube view is a dialog pop-up in a dashboard triggered by a selection changed event. So far I've been able to determine destination formatting based on Cell POV dimension members of the cell "clicked" but I'm hitting a snag on dynamically calculated cells (column is Actual versus Budget % for example). The Cell POV dimension members are the same with the only difference being a "GetDataCell" at the end. I haven't figured out a way to retrieve what, if anything, is in the "calculation script" for a cell intersection. Or if there's a way to retrieve the row and column names for a cell intersection at the time of a click? Looking for any guidance possible. Thanks, Brandon
Hello, I'm writing a confirmation rule that is a specific few cells are blank or if these cells are not 0 that the confirmation rule passes. I got the 2nd part to work fine, but when the cells are blank I'm having an issue. Can someone help me with my code and what I might be missing or need to change? Dim EntityName As String = api.Pov.Entity.Name.ToString Dim WFYear As Integer = api.Time.GetYearFromId(api.Pov.Time.MemberId) ' Retrieve amounts for each account Dim AccountPPEICSaleAmount As Decimal = api.Data.GetDataCell("Cb#Consol:C#Local:S#Actual:V#Periodic:A#0710:F#PPE_ICSale:O#BeforeAdj:I#None:U1#00:U2#DEF:U3#L_UNA:U4#None:U5#None:U6#None:U7#USGAAP_FORM:U8#None").cellAmount Dim AccountADICSaleAmount As Decimal = api.Data.GetDataCell("Cb#Consol:C#Local:S#Actual:V#Periodic:A#0771:F#AD_ICSale:O#BeforeAdj:I#None:U1#00:U2#DEF:U3#L_UNA:U4#None:U5#None:U6#None:U7#USGAAP_FORM:U8#None").cellAmount Dim AccountPPEICProceedAmount As Decimal = api.Data.GetDataCell("Cb#Consol:C#
Hi everyone,Does anyone know if there's a specific method to be able to run Quickviews using a Business Rule? Trying to understand if OS is capable of doing something like that. Presumably, what I would like is to execute a dashboard that would allow me to see one, just seeking for some ideas on this topic.Thank you!
Hi, Without entering into the discussion of whether this is a best practice or not. During some HFM replacement, we have seen occasionally that request being raised. So, is it possible to prevent a force consolidation to run on locked entity / period whilst making it run for the unlocked ones ? Aymar
Hello, I have following two cubes in onestream: Volumes Detail All the cube dimensions are the same except for UD1. For volumes, UD1 cube dimension is VintageDim and for detail its FunctionTotal. I am trying to copy data from "Volumes" cube to "Detail" Cube through a Business Rule. I am running this business rule from Data Management Step. The rule runs perfectly but it doesn't copy the data. I don't get any error too. Please can someone help to understand the issue? Public Sub CopyData() Try 'Define the source and target information Dim sourceCube As String = "Volumes" Dim targetCube As String = "Detail" Dim sourceScenario As String = api.Pov.Scenario.Name '1. Pull data from the source cube (Volumes) 'Using a formula to capture the desired data unit Dim sourceDb As DataBuffer = api.Data.GetDataBufferUsingFormula($"Cb#{sourceCube}:S#{sourceScenario}:A#Product_Sales") '2. Convert the data buffer to match the target cube's d
Hi,I am calling a Business Rule (BR) in a Cube View using XFBR as follows:XFBR( BR_ParamHelper, FunctionName, WFname = |WFText2|, SelectEntity = |!WF_AssignedEntity!|, Time = |!Time!| )Inside the BR, I parse the year from Time to control flows:Dim wfYear As Integer = 0If args.NameValuePairs.ContainsKey("Time") Then Dim POVTime As String = args.NameValuePairs("Time") wfYear = CInt(Left(POVTime, 4))End IfIf wfYear >= 2026 Then ' Remove flows for specified entitiesElse ' Keep historical flowsEnd IfProblem:When I log POVTime or wfYear, it always shows 0001-01-01, so my logic for removing ENT/EXIT based on the year never triggers.What I have tried:Verified the Cube View POV is correctly set.Passed Time = |!Time!| from the Cube View XFBR call.Logged args.NameValuePairs("Time") — still returns 0001-01-01.Question:Is Time = |!Time!| the correct way to pass the POV period to a BR?Is there a difference between |!Time!| and |!POV!| or T
Is there a way to create a FXRateType from a Business rule?FXRate types (average rate, closing rate...) are used to set FX rates in addition to Time, source and destination currencies.In addition to default FXRate types, new ones can be added:Is it possible to create such FXRate types by business rule?Indeed, by business rule (with BRAPI.Finance.MemberAdmin.SaveMemberInfo), we can create a scenario, set parameters, set an existing FXRateType for P&L and for BS, but I've not found how to create a new FXRateType that could be used for this scenario.
I'm hoping someone can verify behavior I'm seeing when trying to copy files between folders in File Explorer. I'm able to move files between Application Database and Application Database folders, File Share to Application Database, but not Application Database to File Share (DataManagement / Subfolder). Is that expected behavior? At first I thought I had an issue with the Business Rule but now I'm starting to suspect that you cannot pass a file from Application Database to File Share? Thanks, Brandon
Hi all! I know there's a Business Rule - Updated audit report but it doesn't actually show the changes in the BR, just reports on whether a rule changed in a date range. Is there anything out-of-the-box that I'm missing? I know the database table shows the rule code every time it changes but it's annoying to copy/paste and find the differences, especially the way the database table shows/resizes with giant rows to accommodate the whole script. Any guidance will be helpful! Thanks!
Hello Fellow OneStream team - I have multiple csv file in a file share folder, using BRApi.Utilities.LoadCustomTableUsingDelimitedFile to do the job, but it's loading only single csv file into the custom table. Below is extender BR , not sure what am I missing in the For loop, guidance is appreciated. Namespace OneStream.BusinessRule.Extender.Load_Table_Data Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object Try Select Case args.FunctionType Case Is = ExtenderFunctionType.Unknown 'Select Load options Dim loadMethod As String = "Replace" '<-- Select file load method (Replace, Merge) Dim dbLocation As String = "App" '<-- Specify db type Dim tableName As String = "XFC_OStoSF_BudgetData"
Hi,I ran into an issue that a data buffer rule does not work in a workspace assembly but does work in the Business Rules area. The data buffer rule is the one found in this forum topic and is relatively simple. See link.Question: Is there an option to clear non-calculated data in a “bulk” (as known from hs.clear) other than looping through the data buffer and use “SetDataCell” (which has a higher performance impact)? The “ClearCalculatedData“ is not impacting input/imported data – right? | OneStream CommunityI have this rule in an existing custom calculate rule in the assembly and the rule fails to get the source data buffer. I take this same rule and include it in a new Business Rule and it runs fine.Rules that work in the business rules should work in assemblies also.
Hello Team,I am currently writing a connector business rule that connects an EDM system to retrieve a file, apply mapping logic, and process the resulting DataTable into ACM. I have successfully implemented the same integration code for several other connectors, all of which are functioning as intended. However, when I attempt to apply the same logic for the Account connector, I encounter the following error:"Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')" I have rewritten the rule twice but have not been able to resolve the issue. Do you have any insights into why this might be occurring?
Hello, We are trying to automate a simple allocation of specific corporate expense accounts. The accounts allocate to different business based on their contribution to total GP. I currently have two calculations: Account Dynamic Calc - BU GP / Total GP, giving the business GP% UD8 Dynamic Calc - GP% * Corporate Expense Account, giving the expense to be allocated to each BU I run into an issue when data is pulled as either QTD or YTD. As an example, if someone is to pull the data at 2025M3/QTD, it will calculate calculate a separate GP% for the QTD information and complete the calculation. This creates a discrepancy when looking at data monthly vs. quarterly. Instead, I would need it to add together months 1-3 for consistency. (See below table for reference) Is there a way to make a dynamic calculation calculate only at the monthly level and instead aggregate months for other view selections (QTD/YTD)? What is happenin
Hello,We are facing the following issue, we use the following xfbr to generate accounts in a cubeview rows and retrieve descriptions : XFBR(CCF_XFBR, GetCCFDrillDownWithDescription2,memberExp=[A#CashFlow_Gestion.TreeDescendantsInclusive], Time=|CVTime|).However, the Cube View where this XFBR is applied always displays the descriptions in the default format. The description does not adapt based on the user’s culture settings.How can we make the XFBR return descriptions that vary according to the user culture?For reference, here is the XFBR code :Public Function GetCCFDrillDownWithDescription2(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As String Try 'Get the Dim PK for Entity Dimension Dim accountDimPk As DimPk = BRApi.Finance.Dim.GetDimPk(si,args.SubstVarSourceInfo.WFAccountDim) Dim flowDimPk As DimPk = BRApi.Finance.Dim.GetDimPk(si,args.SubstVarSourceInfo.WFFlowDim) 'Dim memberListClass As New O
HI Team, We have created a stored calc and it is working fine at Base and parent entity level, but when we are running at Top entity level and my Time is 2028, at this i am getting below error. could not able to figure it. Can you please help us resolve the issue.
Hi Team, I have created a dashboard with Vertical Stake Panel option and attached multiple Cube view components. when i scroll left to right in the dashboard my CV row headers are scrolling. how to freeze them in the dashboard.
I need to get, from a Custom Dimension, the characters starting after "D." or "T." when it's possible. Normally it comes as D. or T. at the beginning, followed by XYZ. What I want to get, as a direct mapping, is XYZ (these are the members created in the Custom Dimension in OneStream).What type of mapping can I use for this? I don’t want to trim the source member in the Data Source because I need the full original source member to appear in Stage.
Hello everyone, We currently have a business rule that allows us to display a certain number of accounts for our cash flow cube view. The problem is that when returning account.Member.NameAndDescription, it does not take into account the user's culture. resultString.Append("A#" & account.Member.Name & ":Name(" & space & account.Member.NameAndDescription & "):F#None,") So I think I need to retrieve the culture of the user displaying the cube view in my BR in order to return the correct name and description. However, I don't know how to retrieve the user's culture, nor what parameter to return instead of account.Member.NameAndDescription to get the one in US English, as the default is in French. Do you have any ideas?
Dynamic calc formula for an accountDim RATE As DataCell = api.Data.GetDataCell("A#RATE:F#99:U7#Top")Dim CALC As DataCell = api.Data.GetDataCell("A#CALC:F#F99:U7#Top") If api.Pov.Entity.Name <> "None" And api.Entity.HasChildren() ThenIf RATE.CellAmount < 0.15api.Data.Calculate("RATE = 0.15 * RemoveZeros(CALC)")Return RATEElseReturn 0End IfEnd If i'm calling A#RATE from the cube view.i have error unable to execute the formula for member RATE, error in processing script.when i compile the formula no issue
Hello,We're trying to change the storage type of an existing cell. Does anyone have an example? Thank you.Best regards,Carlos
Hello, Is it possible to dynamically update the Point of View after making changes to the Workflow Profile? I'd like my scenario and year to be in sync between the two areas if possible. I am aware this can probably be achieved asking a user to manually press a dashboard component such as a button or a combobox, but if possible I'd like this to happen automatically when a user opens a new workflow profile or an associated dashboard is loaded. This should help our users avoid potential conflicts understanding what data she is looking at when working with associated cube views. Don't think I was able to find a business rule or a data management step to help with this task. Many thanks,
I have a requirement to implement data integrity guardrails on several budgeting forms (Dashboards containing Cube Views/SQL Table Editor). I am looking for guidance on whether the following two features are technically feasible within OneStream: 1. Real-Time "Unsaved Changes" Indicator The goal is to display a status label at the top of the Dashboard that updates to "Data Hasn't Been Saved" the moment a user modifies a cell value (Cubeview/SQL Table Editor), before they actually click the Save button. Question: Is there a way to detect a "dirty" cell state or user input in real-time to update a dashboard component immediately, or are we limited to updating status only after a Save action is triggered? 2. Navigation Warning (Popup on Exit) The goal is to trigger a popup warning if a user attempts to navigate away from the current Workflow Unit or close the Dashboard tab without having Saved or Run Calculations. Question: Is there an event handler available that allows us to int
I have a need to move a scenario from under a parent to under Root. Take the example below. I want to move "Forecast" under Root before "ForecastArchive". To do that, my plan was to add a relationship for "Forecast" under Root, and then removing the relationship of "Forecast" under "BudgetScenarios". I am assuming there is not a more direct way to move a member in one step, but would love to be wrong. I am having issues with the first step trying to add "Forecast" before "ForecastArchive" under Root. Below is my code. Does anyone know what I may be doing wrong? Bonus points if you also know how to remove the "Forecast" relationship with the parent "BudgetScenarios" to complete the move. I am sure it's something simple but can't figure it out. When I run this as an extensibility rule, it completes without error but nothing changes in the sceanrio dimension. Dim ForecastArchive_Mem As Member = BRApi.Finance.Members.Get
Hello, I'm building Dashboard Data Set business rule to retrieve data from cubes. Besides the member filters in FdxExecuteDataUnit parameters, I'd like to add some additional filters, like account dimension filters, UD1,/UD2/UD4 dimension filters. And filters could include plenty of values. How can I make it work? I try to defined it in below manner, but the result is not filtered as expected. Dim additionalFilter As String = "Account = 'EBIT' OR ACCOUNT = 'CAPEX'" 'Execute FDX query dt = BRApi.Import.Data.FdxExecuteDataUnit( si, "Total_Magna", ' Cube name "E#Parent1,E#Parent2", "C#USD", ScenarioTypeId.Actual, "S#Actual", "T#2025M1", "V#Periodic", True, additionalFilter, 100000, False )
Hi, as the title suggests, I'm looking for a way to pull a list of all app names that reside within our Development environment. I know the Snapshot report provides this (but BR are encrypted), but I was wondering if there's a BR way to achieve it.Here is a snippet of what I was attempting to. Please feel free to critique or provide suggestion. Thank you! Dim brapi As BRApi = CType(api, BRApi) Dim dbConnFramework As DbConnInfo = brapi.Database.CreateFrameworkDbConnInfo(si) Using dbConnFramework Dim connectionlink As String = si.WebServerUrlUsedByClient 'Here I was trying to access the environment DB which I believe holds the records Dim sql As String = "SELECT AppName FROM dbo.App ORDER BY AppName" Dim sb As New StringBuilder() sb.AppendLine("----------- OneStream Applications in Dev ---------") sb.AppendLine("") Dim rowCount As Integer = 0 Using dt As Da
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.