2009-11-19 2 views
2

У меня есть большой список продуктов и вам нужно создать статический файл, и этот файл будет доступен на моем сайте. В настоящее время я создаю список и загружаю его в файловый кабинет. Я хочу автоматизировать этот процесс. Я хотел бы запланировать запуск SuiteScript каждую ночь и создать этот список и обновить файл в файловом кабинете.Может ли Netsuite Suitescript изменить файл в файловом кабинете?

Можно ли это сделать?

спасибо

ответ

3

Вы можете автоматизировать этот процесс с помощью SuiteScript. Вы должны использовать вызовы nlapiLoadFile и nlapiSubmitFile для его выполнения. Если у вас есть большой список продуктов, вы, вероятно, столкнетесь с несколькими другими проблемами. Вероятно, вы столкнетесь с ограничениями управления и должны будете разработать этот скрипт так, чтобы он отслеживал прогресс и соответствующим образом перестраивался. Поиск в SuiteScript возвращает только первые 1000 записей. Если у вас есть более 1000 элементов для включения в этот файл, вам, скорее всего, понадобится использовать флаг в записи позиции, чтобы отслеживать, какие элементы остаются для экспорта. В настоящее время ограничение на размер файла при загрузке или создании файлов с помощью SuiteScript ограничено 5 МБ.

+0

Большое спасибо. Я готов двигаться дальше, наконец. Я прочитал документацию по API. Мой список продуктов будет составлять около 500 единиц, и мне нужно всего несколько столбцов, поэтому я не думаю, что удалю любые ограничения по управлению/размеру. Есть ли у вас предложение о том, где найти пример скриптов/кода, который выполняет это действие? Заранее спасибо за вашу помощь по этому поводу. – Rob

4

Пример SuiteScript для создания файла:

var data = 'Your,CSV,File,Here'; 
var folderId = 519; // Your File Cabinet folder ID here 

// Create the file and add it to the folder 
var f = nlapiCreateFile('products.csv', 'CSV', data); 
f.setFolder(folderId); 
var id = nlapiSubmitFile(f); 

// If you want to attach the file to a record, you can do something like this: 
nlapiAttachRecord('file', id, 'customrecord_x', recordId); 
+0

Спасибо Винсент ... Я проверю новое предложенное вами сообщество packexchange. – Rob

+0

Похож на то, что обменный стек netsuite никогда не происходил. – drewish

+0

Исправьте, просто используйте этот сайт и пометьте «netsuite» ... ссылка удалена – Vincent

1

Да, вы можете сделать это с помощью регулярных сценариев и планировать их по вашему желанию. Нет специальной функции API для редактирования существующего файла, вы можете взять информацию о существующем файле и создать новый файл с теми же данными, но только изменить поле данных и удалить старый файл.

var start = function(request, response) 
{ 
    var fileId = "107524";//get the existing file id 
    var file = nlapiLoadFile(fileId); 
    var data = file.getValue(); 
    var name = file.getName(); 
    var folderId = file.getFolder(); 
    var fileType = file.getType(); 
    nlapiDeleteFile(fileId);//delete the older file 

    data += "this is the appended data";//change the data 
    var newFile = nlapiCreateFile(name, fileType, data);//create a new file with the same details 
    newFile.setFolder(folderId); 
    nlapiSubmitFile(newFile);//submit it 
}