Move file from File Explorer to File Share

jrodgers
New Contributor II

I need to create a business rule that will move a file from a user's folder in File Explorer to the server's File Share. I am using the BRApi.FileSystem.GetFile method to successfully read the file, but I am unable to write the file to the server. I believe my issue is with the XFFileInfo parameters. I am not sure how many parameters to provide and what the value to provide for the folderFullName parameter. Here is my current code:

'Get the file
Dim sourceXFFileEx As New XFFileEx
sourceXFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, sourceDir & "/" & sourceFile,True,True)
												
'Save the file but this part is not working	 
Dim targetFileDataInfo As New XFFileInfo(FileSystemLocation.FileShare, fileName, ??)
Dim targetFileData As New XFFile(targetFileDataInfo, String.Empty, sourceXFFileEx.XFFile.ContentFileBytes)
BRApi.FileSystem.InsertOrUpdateFile(si, targetFileData)

 

1 ACCEPTED SOLUTION

manthangandhi
New Contributor III

Hi Jrodgers,

You can try the follwoing apprach to move the file from the user's public directory to File Share > applications > Groups > Everyone directory. I hope this is what you're looking for.

'Get the file
Dim sourceXFFileEx As New XFFileEx
Dim sourceDir As String = "Documents/Users/" & si.UserName.Replace(" ","")
Dim sourceFile As String = "test_move.txt"
sourceXFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, sourceDir & "/" & sourceFile,True,True)

'Save the file but this part is not working  

Dim tgt = brapi.FileSystem.GetFolder(si, FileSystemLocation.FileShare, "Applications/"& si.AppName.Replace(" ", String.Empty) & "\Groups\Everyone\").XFFolder.ParentFullName
Dim targetFileDataInfo As New XFFileInfo(FileSystemLocation.FileShare, sourceFile, tgt )
Dim targetFileData As New XFFile(targetFileDataInfo, String.Empty, sourceXFFileEx.XFFile.ContentFileBytes)
BRApi.FileSystem.InsertOrUpdateFile(si, targetFileData)

 

View solution in original post

2 REPLIES 2

manthangandhi
New Contributor III

Hi Jrodgers,

You can try the follwoing apprach to move the file from the user's public directory to File Share > applications > Groups > Everyone directory. I hope this is what you're looking for.

'Get the file
Dim sourceXFFileEx As New XFFileEx
Dim sourceDir As String = "Documents/Users/" & si.UserName.Replace(" ","")
Dim sourceFile As String = "test_move.txt"
sourceXFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, sourceDir & "/" & sourceFile,True,True)

'Save the file but this part is not working  

Dim tgt = brapi.FileSystem.GetFolder(si, FileSystemLocation.FileShare, "Applications/"& si.AppName.Replace(" ", String.Empty) & "\Groups\Everyone\").XFFolder.ParentFullName
Dim targetFileDataInfo As New XFFileInfo(FileSystemLocation.FileShare, sourceFile, tgt )
Dim targetFileData As New XFFile(targetFileDataInfo, String.Empty, sourceXFFileEx.XFFile.ContentFileBytes)
BRApi.FileSystem.InsertOrUpdateFile(si, targetFileData)

 

JackLacava
Community Manager
Community Manager

One thing people often don't realize, is that most OneStream classes are actually documented in the automatically-generated helper tree - but they might be a couple of level deeper than the starting tree.

In this case, we will pull up InsertOrUpdateFile from the tree. Because its definition includes custom OneStream-specific classes, if we click on the Objects tab, we will get such classes listed - but those are hyperlinks!

JackLacava_0-1709543770837.png

If you click on XFFile, you get the full documentation on that class, including all its constructors and methods. Here we see there is a FileInfo property, and again we can look in the Objects tab...

JackLacava_2-1709543936785.png

... and clicking on the hyperlink gives us all the goods on XFFileInfo, including a fairly straightforward constructor:

JackLacava_3-1709544011206.png

This technique should be enough to look up details for 80-90% of OneStream objects. Don't expect much descriptive text (although you will find occasionally find some, in the Definition tab), but the names are usually fairly explanatory.

I hope that helps!