我有一个很大的产品列表,需要生成它的静态文件,并且可以在我的网站上访问该文件。目前,我生成列表,并将其上传到文件柜。我希望自动化这个过程。我想安排一个 SuiteScript 每晚运行并生成此列表并更新文件柜中的文件。
这可以做到吗?
谢谢
您可以使用 SuiteScript 自动执行此过程。您将使用 nlapiLoadFile 和 nlapiSubmitFile 调用来完成它。如果您的产品列表很大,您可能会遇到其他一些问题。您可能会达到治理限制,并且需要开发此脚本,以便它跟踪进度并适当地重新安排自己。SuiteScript 搜索将仅返回前 1000 条记录。如果您有超过 1000 个项目要包含在此文件中,您可能需要在项目记录上使用标志来跟踪哪些项目仍待导出。使用 SuiteScript 加载或创建文件时,当前文件大小限制为 5MB。
用于创建文件的示例 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
}