Forum Discussion

fellow_Ones's avatar
fellow_Ones
New Contributor III
20 hours ago

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 Namespace

 

 

1 Reply