3

NetSuite ファイル キャビエント内に更新が必要なファイルがあります (url フィールドが変更されました)。このサイトで注目の記事を見つけましたが、要求を実行するためのコード例はありません。nlapiLoadFile および nlapiSubmitFile 呼び出しを使用することを示します。コード例を手伝ってくれる人はいますか?

リンク: Netsuite Suitescript はファイル キャビネット内のファイルを変更できますか?

4

4 に答える 4

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
}
于 2015-05-21T09:06:30.553 に答える
3

ええ、それは少し奇妙に思えます。私が見つけた唯一の方法は次のとおりです。

  1. ファイルをロード
  2. 以下を使用してファイル ハンドルを作成します。
    • ファイル名を意図したものに設定します。
    • コンテンツを意図したものに設定する
  3. フォルダを設定して送信します。

コードスニペットを添付しました

    var file = nlapiLoadFile(file_id);
    var content = file.getValue();
    content = '...あなたのコンテンツを入れてください...';
    file = nlapiCreateFile(file.getName(), 'ファイル タイプ', content);
    file.setFolder(required_folder_id);
    nlapiSubmitFile(ファイル);

お役に立てれば。

于 2013-02-13T15:45:16.753 に答える
1

フィールドではなくファイルのことですか?nlapiLoadFile(/path/file) を使用する場合は、getURL() を使用してそのファイルへのリンクを提供できます。

于 2012-11-29T22:59:59.100 に答える
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);
于 2014-12-23T13:31:04.067 に答える