Basic Suitelet script structure for uploading a CSV file

We can use the following Suitelet for uploading a file and passing the contents. We can use the contents in the CSV file as per our requirements.

We can upload though the UI from the script:

Script:

/**
 * @NApiVersion 2.0
 * @NScriptType Suitelet
 * @NModuleScope Public
 */
define(['N/ui/serverWidget', 'N/record','N/ui/message','N/search'], function(ui, record,message,search) {
  
    function onRequest(context) {
      var request = context.request;
      var response = context.response;
      
      if (request.method === 'GET') {
        // Display the upload form
        var form = createUploadForm(context);
        response.writePage(form);
      } else if (request.method === 'POST') {
        // Process the uploaded file
        var fileObj = request.files.file;
        log.error("fileObj",fileObj)
        
        if (fileObj) {
          var successMessage = 'Sales orders have been created.';
          log.error(successMessage)
        } else {
          var errorMessage = 'Please choose a file to upload.';
          log.error(errorMessage)
        }
      }
    }
    
    /**
     * Create the upload form
     */
    function createUploadForm(context, Message) {
      var form = ui.createForm({
        title: 'Upload CSV File'
      });
      
      // Add a file field for the user to upload the CSV file
      form.addField({
        id: 'file',
        type: ui.FieldType.FILE,
        label: 'CSV File'
      });
      
      // Add a submit button to upload the file
      form.addSubmitButton({
        label: 'Upload'
      });
      
      return form;
    }
    function createSalesOrderFromCsv(context) {
      var file = context.request.files.file;
      
      if (file) {
        // Parse the CSV file and we can use these values as per the requirements
        var csvData = file.getContents();
        var csvArray = csvData.split('\n');
        log.error("csvData",csvData)
        log.error("csvArray",csvArray)
      
        
   } else {
        log.error('No file', 'No file was uploaded');
      }
    }
   
    return {
      onRequest: onRequest
    };
  });

  

Leave a comment

Your email address will not be published. Required fields are marked *