2012-09-25 34 views
2

我們在NetSuite文件cabient中有需要更新的文件(URL字段已更改)。我在這個網站上發現了一篇着名的文章,但沒有代碼示例來執行請求。它表示使用nlapiLoadFile和nlapiSubmitFile調用;任何人都可以幫助一個代碼示例?NetSuite SuiteScript修改文件櫃中的文件

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

+1

不幸的是,我沒有看到URL字段中SuiteScript記錄瀏覽器: https://system.netsuite.com/help/helpcenter/en_US/RecordsBrowser/2011_2/index.html 我發現「文件夾「但字段表不包含URL,因此看起來該字段不可用於腳本。 – user1698662

回答

1

你的意思是文件,而不是場?如果您使用nlapiLoadFile(/ path/file),則可以使用getURL()提供指向該文件的鏈接。

2

雅,看起來有點奇怪。我發現的唯一方法是:

  1. 加載文件
  2. 創建一個文件句柄:
    • 設置文件名以一個你意。
    • 將內容設置爲預期的內容
  3. 設置文件夾並提交。

我附上一段代碼

 

    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); 

希望這有助於。

+0

這是一個非常有用的答案和正確的問題,恕我直言。我不知道內容參數。 –

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); 
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 
}