Executing 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!8Views0likes0CommentsBusiness 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 you25Views0likes1CommentCreating 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.16Views0likes0CommentsCopy 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, Brandon31Views0likes1CommentIssue 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 Namespace46Views0likes2CommentsWhile consolidating on Top level getting error in Stored Calc
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.38Views0likes2CommentsTransformation Rule - Split - Complex Expression
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.Solved54Views0likes3CommentsDynamically synchronize Point of View after Workflow Profile changes
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,36Views1like2CommentsReal-time "Unsaved" status, Intercepting Workflow Navigation
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 intercept a navigation event, and potentially block the user from leaving the screen until they complete the required actions? If anyone has implemented a similar solution or knows which Business Rule events controls these interactions, I would appreciate the insight. Thanks!10Views0likes0CommentsHelp Needed Moving a Scenario Member
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.GetMember(si, DimTypeId.Scenario, "ForecastArchive") Dim Forecast_Mem As Member = BRApi.Finance.Members.GetMember(si, DimTypeId.Scenario, "Forecast") Dim scenarioDimPk As DimPk = BRApi.Finance.Dim.GetDimPk(si, "TopScenarioDim") Dim ForecastArchive_ParMem As Member = BRApi.Finance.Members.GetParents(si, scenarioDimPk, ForecastArchive_Mem.MemberId, True).Item(0) Dim newRootMemRelPos As New RelationshipPositionOptions newRootMemRelPos.SiblingId = ForecastArchive_Mem.MemberId newRootMemRelPos.MovementType = RelationshipMovementType.InsertBeforeSibling Dim newRootMemRelInfo As New RelationshipInfo Dim relationship As New Relationship Dim relationshipPK As New RelationshipPk relationshipPK.ParentId = ForecastArchive_ParMem.MemberId relationshipPK.ChildId = Forecast_Mem.MemberId relationship.RelationshipPk = relationshipPK newRootMemRelInfo.Relationship = relationship BRApi.Finance.MemberAdmin.SaveRelationshipInfo(si, newRootMemRelInfo, newRootMemRelPos)52Views0likes3Comments