大きな製品リストがあり、その静的ファイルを生成し、そのファイルを自分の Web サイトでアクセスできるようにする必要があります。現在、リストを生成し、ファイル キャビネットにアップロードしています。このプロセスを自動化したい。SuiteScript を毎晩実行してこのリストを生成し、ファイル キャビネット内のファイルを更新するようにスケジュールしたいと考えています。
これはできますか?
ありがとう
ファイルを作成するための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);
このプロセスは SuiteScript で自動化できます。nlapiLoadFile および nlapiSubmitFile 呼び出しを使用してそれを実現します。製品リストが大きい場合は、他にもいくつかの問題が発生する可能性があります。ガバナンスの限界に達する可能性が高いため、進行状況を追跡して適切に再スケジュールできるように、このスクリプトを作成する必要があります。SuiteScript の検索では、最初の 1000 レコードのみが返されます。このファイルに含めるアイテムが 1000 を超える場合は、アイテム レコードでフラグを使用して、エクスポートのために残っているアイテムを追跡する必要があります。現在、SuiteScript を使用してファイルをロードまたは作成する場合、ファイル サイズには 5MB の制限があります。
はい、スケジュールされたスクリプトを使用して実行し、必要に応じてスケジュールすることができます。既存のファイルを編集するための特別な 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
}