NetSuite SuiteScript修改文件柜中的文件

时间:2012-09-25 23:11:33

标签: netsuite

我们在NetSuite文件cabient中有文件需要更新(url字段已更改)。我在这个网站上找到了这篇着名的文章,但没有代码示例来执行请求。它表示使用nlapiLoadFile和nlapiSubmitFile调用;有人能够协助代码示例吗?

链接: Can Netsuite Suitescript modify a file in the file cabinet?

4 个答案:

答案 0 :(得分:3)

雅,这似乎有点奇怪。我发现的唯一方法是:

  1. 加载文件
  2. 使用以下命令创建文件句柄:
    • 将文件名设置为您想要的名称。
    • 将内容设置为预期的
  3. 设置文件夹并提交。
  4. 我附上了一个代码段

    
        var file = nlapiLoadFile(file_id);
        var content = file.getValue();
        content = '...put your content...';
        file = nlapiCreateFile(file.getName(), 'FILE TYPE', content);
        file.setFolder(required_folder_id);
        nlapiSubmitFile(file);
    
    

    希望这有帮助。

答案 1 :(得分:3)

编辑现有文件没有特殊的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
}

答案 2 :(得分:1)

你的意思是文件而不是字段?如果使用nlapiLoadFile(/ path / file),则可以使用getURL()提供指向该文件的链接。

答案 3 :(得分:0)

NetSuite没有编辑文件类型的API。您必须加载原始文件,根据需要修改内容,然后通过创建具有相同文件名的新文件并在同一文件夹中提交该数据。这只是覆盖现有文件。

以下是代码示例:

var original = nlapiLoadFile(FILE_ID_OR_FILE_PATH_IN_FILE_CABINET);
var originalContent = original.getValue(); //Return the value (base64 encoded for binary types) of the file

var updated = nlapiCreateFile(original.getName(), FILE_TYPE, UPDATED_FILE_CONTENTS);
updated.setFolder(original.getFolder());
nlapiSubmitFile(updated);