X++ Upload and Download file - D365 FO
class RetailSharedParameters_Eventhandlers { /// <summary> /// Event handler for the "UploadFile" button click event. /// </summary> /// <param name="sender">The form control that triggered the event.</param> /// <param name="e">Event arguments.</param> [FormControlEventHandler(formControlStr(RetailSharedParameters, UploadFile), FormControlEventType::Clicked)] public static void UploadFile_OnClicked(FormControl sender, FormControlEventArgs e) { // Get the button that triggered the event FormButtonControl callerButton = sender as FormButtonControl; // Get the form run instance FormRun form = callerButton.formRun(); // Get the data source for the RetailSharedParameters table FormDataSource RetailSharedParameters_ds = form.dataSource(formDataSourceStr(RetailSharedParameters, RetailSharedParameters)) as FormDataSource; // Get the current record from the data source RetailSharedParameters RetailSharedParameters = RetailSharedParameters_ds.cursor(); // Prompt the user to upload a file FileUploadTemporaryStorageResult result = File::GetFileFromUser() as FileUploadTemporaryStorageResult; // Check if the file upload was successful if (result && result.getUploadStatus()) { // Store the file name and download URL in the table RetailSharedParameters.FileName = result.getFileName(); RetailSharedParameters.SoundFile = result.getDownloadUrl(); // Save the changes to the database RetailSharedParameters.write(); } } /// <summary> /// Event handler for the "DownloadFile" button click event. /// </summary> /// <param name="sender">The form control that triggered the event.</param> /// <param name="e">Event arguments.</param> [FormControlEventHandler(formControlStr(RetailSharedParameters, DownloadFile), FormControlEventType::Clicked)] public static void DownloadFile_OnClicked(FormControl sender, FormControlEventArgs e) { // Variable to store the file URL str fileUrl = ''; // Get the button that triggered the event FormButtonControl callerButton = sender as FormButtonControl; // Get the form run instance FormRun form = callerButton.formRun(); // Get the data source for the RetailSharedParameters table FormDataSource RetailSharedParameters_ds = form.dataSource(formDataSourceStr(RetailSharedParameters, RetailSharedParameters)) as FormDataSource; // Get the current record from the data source RetailSharedParameters RetailSharedParameters = RetailSharedParameters_ds.cursor(); // Retrieve the stored file URL fileUrl = RetailSharedParameters.SoundFile; // Open the file URL in a browser if (fileUrl) { new Browser().navigate(fileUrl); } else { // Notify the user if no file URL is found warning("No file URL found."); } } }
Published on:
Learn moreRelated posts
Simplifying License Management for Dynamics 365 Finance and Operations: Improved User License Validation
Starting April 30th, Dynamics 365 administrators will gain access to new license usage reporting tools, centralizing user license management. ...
D365FO Integration: Import Sales Orders from an External Web Application
Learn how to implement robust and efficient process to import complex documents into Dynamics 365 Finance and Operations from external Web ser...
Practical Hints for Technical Management of D365FO Go-Live
In this post, I share practical insights from my experience managing the technical side of Go-Live for D365FO projects, focusing on key activi...
D365FO Integration: Event-Based Exports to External Web Services
How to implement robust, efficient integrations between Dynamics 365 Finance and Operations and external Web Services. This post covers design...
Physical cost inclusion for Weighted Average Valuation in Microsoft Dynamics 365 Finance and Operations: Part-13
What is physical cost in Dynamics 365 F&O? Anything which has been received or shipped but not invoiced is considered as physical cost for...
Product bundles in Microsoft Dynamics 365 Finance and Operations
Product bundle was first introduced in module revenue recognition but as we all know the there is new modules which has been introduced and wi...