2

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

これはできますか?

ありがとう

4

3 に答える 3

4

ファイルを作成するための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);
于 2010-10-19T03:02:54.163 に答える
4

このプロセスは SuiteScript で自動化できます。nlapiLoadFile および nlapiSubmitFile 呼び出しを使用してそれを実現します。製品リストが大きい場合は、他にもいくつかの問題が発生する可能性があります。ガバナンスの限界に達する可能性が高いため、進行状況を追跡して適切に再スケジュールできるように、このスクリプトを作成する必要があります。SuiteScript の検索では、最初の 1000 レコードのみが返されます。このファイルに含めるアイテムが 1000 を超える場合は、アイテム レコードでフラグを使用して、エクスポートのために残っているアイテムを追跡する必要があります。現在、SuiteScript を使用してファイルをロードまたは作成する場合、ファイル サイズには 5MB の制限があります。

于 2009-12-04T00:58:14.557 に答える
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
}
于 2015-05-21T09:12:22.713 に答える