Issue 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 Namespace34Views0likes2CommentsWhile 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.28Views0likes2CommentsTransformation 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.Solved39Views0likes3CommentsDynamically 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,33Views1like2CommentsReal-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!9Views0likes0CommentsHelp 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)40Views0likes3CommentsUpdate bound parameter value without refreshing Tree View
Hi, I have a Tree View in my dashboard that contains some items, I want that each time the user selects an item in the tree, this bound parameter in the Tree View updates: So I've set that each time an item is selected in the tree, the dashboard containing the Tree View gets refreshed to update the parameter. The Tree Type is set as "Search" and the problem is that when the dashboard gets refreshed the text box of the search bar gets cleaned and all the items the user might have opened to get to a specific one also get closed. A workaround that I have found is to call a component service function to store the bound parameter into a variable in order to get the value without refreshing (I'm using assemblies). I've already tried using XFSelectionChangedTaskResult, but it doesn't help. I was wondering if there was any other way to do this that I'm missing. Thanks :)Solved62Views0likes2CommentsUpdate bound parameter value without refreshing dashboard
Hi, I have a tree view component with this bound parameter: When an item in the Tree is selected, I want the parameter "userSelection" to update accordingly, for this reason I've set it to refresh once an item is selected. The problem is that all the parent items the user opened to get to the selected item get closed once the dashboard gets refreshed, but I can't find a way to update "userSelection" without refreshing. The only workaround I found is to save the parameter value into a variable, but it can be only accessed by components since I'm in a component service (I'm using assemblies). So, do you know any way to save the value into "userSelection" parameter without refreshing? (I've already tried using SelectionChangedTaskInfo but it doesn't work) Thank you.4Views0likes0CommentsCatch Button action (save/force calculte) with Eventhandler
Hello, I am currently working on some Eventhandlers to prevent a group of users to execute calculate/translate/consolidate in dedicated scenarios. This was easy to do and works fine. But we have created a button in a dashboard which combines a save action "save data for all components" with a Server Task "Force Calculated" and I don´t know how to catch this button in an Eventhandler. Any hints how to do this? Regards Martin25Views0likes1CommentHow do we write a BRApi code for SetDataCells?
Hello Community! I am trying to write a BRApi SetDataCells code but cant get the syntax right. Can someone please share an example? I am not sure how to get the "dataCellExs" in the below code: BRApi.Finance.Data.SetDataCells(si, dataCellExs) Thanks in advance.77Views0likes3Comments