“No Man is an island” was the title of John Donne’s poem that explored the idea of the connectedness of people. “No ERP system is an island” is my extension of this quote that explores the connectedness of our data.

Today no system acts alone. Vendors send out price lists to add new products and prices. Leads are also passed between systems to capture and track new customers. Sales Orders are routinely automated to avoid the dreaded “hand” entry. Invoices are almost never sent in the mail anymore. Payments are often made by passing payment data between systems to automate the A/R process. Add EDI to this and we prove our point.

To fulfill this need we have become specialists in connecting disparate systems. Our team routinely hooks these systems data together using a host of tools to accomplish this. One technique utilizes custom .NET apps to move data into NetSuite using CSV Imports. We have found CSV Imports to be one of the fastest ways to get data into NetSuite. At times we are forced to use the REST API to handle imports, but time has proven that CSV Imports is the clear winner here.

The .NET app is used to create a CSV file suitable for importing. Data is uploaded by external FTP processes or file copies to an Inbound folder. If a file has bad data or corrupted format it gets moved to an Error folder and the user is alerted to the issue via email.  Alternatively, SQL data can also be read instead of the windows file system. When the import is completed, the CSV gets moved to an archive folder for a specified period of time.

To process Inbound data, we take the created CSV file and upload it to NetSuite. The REST API is used to call on NetSuite’s file handling API to send the data to the host.

NetSuite CSV Import Task

The next step is to create a CSV Import task to call the importer to do the work. Here we reference the uploaded file and create the task to do the work.

salesData = file.load(fileId);

var jobName = batchId;
try{
var csvTask = task.create({
taskType: task.TaskType.CSV_IMPORT,
mappingId: csvImportId,
importFile: salesData,
name: jobName
});
var csvImportTaskId = csvTask.submit();

If the import task fails, the errors are returned to the .NET app and the user is alerted via email.

The import log is a NetSuite table created during the upload with key information like number of items and /or Orders. A scheduled script runs nightly in NetSuite to check the import record counts and the user is alerted to any discrepancies so records that failed during import are fixed and reprocessed.

NetSuite Support and .NET Integration Apps From MIBAR

While I may admit no ERP system is an island, we can always build bridges to get from one island to another. This is our bridge. Contact us at MIBAR for more details about our .NET integration apps.

Our NetSuite experts and support team can provide ongoing maintenance, troubleshoot issues, provide training, and more.