Recent Discussions
Automatically Flag Cells for Spreading in Cubeview
Hello, Currently we are working on a forecasting model, and we would like to be able to use the spreading process inherent in OS. Is there away to use conditional formatting or an XFBR to set a column of values to be flagged automatically based on the comparison between a parameter and the column member? Specifically, I am looking to have the first or first two periods of the quarter set as flagged so they can be excluded from the proportional distribution based on when the users are completing this forecast. Thanks,Tom_R14 days agoNew Contributor III27Views0likes2CommentsPass-thru Formatting on Cube Views
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, Brandonbmcwilliams14 days agoNew Contributor15Views0likes0CommentsRun a DM as a different user
Hi there, We have one Business Rule that reorganize some security groups adding/removing Parent Groups based on a certain hierarchy, however, we are facing the issue that when the user executing this Business Rule belongs to a group that is being reorganized, we get the following error message: "Security Access Error. You cannot add/remove yourself or a group that you belong to or an Administrators group to/from the current group." That error is perfectly reasonable, but we need to find a way to bypass that. In other softwares exists the possibility to execute a Job as a different user (usually non-interactive) which has the required security configuration to ensure the process is executed successfully. How can we achive that same result in OneStream? Thank you! Bests,ogonzalez15 days agoNew Contributor II42Views0likes2CommentsCustom Consolidation
Hi, I have a requirement from business that, want to restrict the roll-up in the entity dimension. for ex: i have Top entity, and all the members underneath are rolling up to Top, but i want to restrict one entity (ex: entity A) not to roll up for particular users which are part of group A. So, when Group A users retrieve the data at Top entity, he/she should see the total number except restricted entity(entity A) and all other can see the total numbers including entity A at Top. is there any way to restrict the roll-ups based on security. Thanks in Advance. any suggestions please, Appreciate your help. Thanks Satish PSatish16 days agoNew Contributor II138Views0likes9CommentsExecuting QuickViews using BRs
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!NicolasFarro21 days agoNew Contributor26Views0likes1CommentBusiness Rule: Copy data from one cube to another with different cube dimensions
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 dimensionality 'This handles the automatic mapping of extended members between the cubes Dim convertedDb As DataBuffer = api.Data.ConvertDataBufferExtendedMembers(targetCube, sourceScenario, sourceDb) '3. Set the converted data into the target cube (Detail) Dim destInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("") api.Data.SetDataBuffer(convertedDb, destInfo) Catch ex As Exception brapi.ErrorLog.LogMessage(si, "EXCEPTION: " & ex.Message) Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Sub Thank youSatyapal7723 days agoNew Contributor43Views0likes1CommentCreating FXRateType by BR
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.Benjamin23 days agoNew Contributor25Views0likes0CommentsTime always returns 0001-01-01 in BR when using XFBR in Cube View
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 = 0 If args.NameValuePairs.ContainsKey("Time") Then Dim POVTime As String = args.NameValuePairs("Time") wfYear = CInt(Left(POVTime, 4)) End If If wfYear >= 2026 Then ' Remove flows for specified entities Else ' Keep historical flows End If Problem: 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#POV in Cube Views for BRs? How can I get the actual workflow year in the BR so I can apply logic like wfYear >= 2026? Any guidance or examples on how to correctly get the year of the workflow/POV in a BR would be greatly appreciated.Manju23 days agoNew Contributor II67Views0likes5CommentsCopy Files from Application Database to FileShare
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, Brandonbmcwilliams29 days agoNew Contributor49Views0likes1CommentIssue Loading multiple CSV files into custom table using LoadCustomTableUsingDelimitedFile
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" '<-- Specify table name to load Dim blnSkipHeader As Boolean = True '<-- Specify if the first row should be skipped (True/False) Dim configSettings As AppServerConfigSettings = AppServerConfig.GetSettings(si) 'Note: file path must be accessible from all application servers Dim xfolderPath As String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si,True, configsettings.fileShareRootFolder,si.AppToken.AppName) & "\20251014" ' Dim filesToLoad As String = "*_CubeData.csv" Dim fileList = System.IO.Directory.GetFiles(xfolderPath, filesToLoad) ' 'Get list of files to copy For Each file As String In fileList 'Get the file name Dim fileName As String = file.Substring(xfolderPath.Length + 1) BRApi.ErrorLog.LogMessage(si, "FileName:" & fileName) ' Dim fileList = System.IO.Directory.GetFiles() For Each fName As String In fileName 'Define columns that are in the table (this must match the fields in the deminted file) 'Update the fields with the column names/types to match the table being loaded Dim fieldTokens As New List(Of String) fieldTokens.Add("xfText#:[Cube]") fieldTokens.Add("xfText#:[Entity]::NewGuid") fieldTokens.Add("xfText#:[Parent]") fieldTokens.Add("xfText#:[Cons]") fieldTokens.Add("xfText#:[Scenario]") fieldTokens.Add("xfText#:[Time]") fieldTokens.Add("xfText#:[View]") fieldTokens.Add("xfText#:[Account]") fieldTokens.Add("xfText#:[Flow]") fieldTokens.Add("xfText#:[Origin]") fieldTokens.Add("xfText#:[IC]") fieldTokens.Add("xfText#:[UD1]") fieldTokens.Add("xfText#:[UD2]") fieldTokens.Add("xfText#:[UD3]") fieldTokens.Add("xfText#:[UD4]") fieldTokens.Add("xfText#:[UD5]") fieldTokens.Add("xfText#:[UD6]") fieldTokens.Add("xfText#:[UD7]") fieldTokens.Add("xfText#:[UD8]") fieldTokens.Add("xfDec#:[Amount]") fieldTokens.Add("xfText#:[HasData]") fieldTokens.Add("xfText#:[Annotation]") fieldTokens.Add("xfText#:[Assumptions]") fieldTokens.Add("xfText#:[AuditComment]") fieldTokens.Add("xfText#:[Footnote]") fieldTokens.Add("xfText#:[VarianceExplanation]") 'Execute file load ' BRApi.Utilities.LoadCustomTableUsingDelimitedFile(si, SourceDataOriginTypes.FromFileShare, filePath & fileName, Nothing, ",", dbLocation, tableName, loadMethod, fieldTokens, blnSkipHeader) BRApi.Utilities.LoadCustomTableUsingDelimitedFile(si, SourceDataOriginTypes.FromFileShare, xfolderPath & "\" & fileName , Nothing, ",", dbLocation, tableName, loadMethod, fieldTokens, blnSkipHeader) Next Next End Select Return Nothing Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function End Class End Namespacefellow_Ones1 month agoNew Contributor III57Views0likes2Comments