Netsuite Suitescript可以修改文件柜中的文件吗?

时间:2009-11-19 19:24:47

标签: scripting netsuite

我有一个大型产品列表,需要生成一个静态文件,并且可以在我的网站上访问该文件。目前,我生成列表,并将其上传到文件柜。我希望自动化这个过程。我想安排一个SuiteScript每晚运行并生成此列表并更新文件柜中的文件。

可以这样做吗?

感谢

3 个答案:

答案 0 :(得分:4)

您可以使用SuiteScript自动执行此过程。您可以使用nlapiLoadFile和nlapiSubmitFile调用来完成它。如果您有大型产品列表,则可能会遇到其他一些问题。您可能会达到治理限制,并且需要开发此脚本以便跟踪进度并适当地重新安排自己。 SuiteScript搜索仅返回前1000条记录。如果要在此文件中包含的项目超过1000个,则可能需要在项目记录上使用标记来跟踪要导出的项目。使用SuiteScript加载或创建文件时,文件大小目前有5MB的限制。

答案 1 :(得分: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);

答案 2 :(得分:2)

是的,你可以使用预定的脚本来完成它并根据你的意愿安排它们。 编辑现有文件没有特殊的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
}