NetsuiteののSuiteScriptは、ファイルキャビネット内のファイルを変更することはできますか?

StackOverflow https://stackoverflow.com/questions/1765886

  •  21-09-2019
  •  | 
  •  

質問

私は、大規模な製品のリストと、それの静的なファイルを生成し、そのファイルが私のウェブサイトでアクセスできるように持っている必要があります。現在、私はリストを生成し、ファイルキャビネットにアップロードします。私はこのプロセスを自動化したいです。私は毎晩実行し、このリストを生成し、ファイルキャビネット内のファイルを更新するためのSuiteScriptをスケジュールしたいと思います。

これを行うことができますか?

感謝

役に立ちましたか?

解決

あなたはのSuiteScriptでこのプロセスを自動化することができます。あなたはそれを達成するためにnlapiLoadFileとnlapiSubmitFile呼び出しを使用します。あなたが大規模な製品のリストを持っている場合は、他のいくつかの問題が発生する可能性があります。あなたは、おそらくヒットガバナンスの限界にあり、それが進行状況を追跡し、適切に自分自身を再スケジュールするように、このスクリプトを開発する必要があります。 SuiteScript検索は唯一の最初の1000件のレコードを返します。あなたはこのファイルに含まれるように1000個の以上のアイテムを持っている場合、あなたはおそらく、輸出のために残っている項目を追跡するためにアイテムレコードにフラグを使用する必要があります。 SuiteScriptを使用してファイルをロードまたは作成するときに、ファイルサイズの5メガバイトの制限が現在あります。

他のヒント

:ファイルを作成するには、

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

はい、あなたは、スケジュールスクリプトを使用してそれを行うと、あなたの願いとしてそれらをスケジュールすることができます。 特別な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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top