O NetSuite Suitescript pode modificar um arquivo no gabinete de arquivos?
Pergunta
Eu tenho uma grande lista de produtos e preciso gerar um arquivo estático e fazer com que esse arquivo seja acessível no meu site. Atualmente, eu gero a lista e a carrego para o gabinete de arquivos. Desejo automatizar esse processo. Gostaria de agendar um suites para executar todas as noites e gerar esta lista e atualizar um arquivo no gabinete do arquivo.
Isso pode ser feito?
obrigado
Solução
Você pode automatizar esse processo com o SuiteScript. Você usaria as chamadas Nlapiloadfile e NlapisubMitFile para realizá -lo. Se você tiver uma grande lista de produtos, provavelmente encontrará alguns outros problemas. É provável que você atinja os limites da governança e precisará desenvolver esse script para que ele rastreie o progresso e se reagenda adequadamente. As pesquisas do Suitescript retornarão apenas os primeiros 1000 registros. Se você tiver mais de 1000 itens a serem incluídos neste arquivo, provavelmente precisará usar um sinalizador no registro do item para rastrear quais itens permanecem para exportação. Atualmente, existe um limite de 5 MB no tamanho do arquivo ao carregar ou criar arquivos usando o SuiteScript.
Outras dicas
Exemplo do Suitescript para criar um arquivo:
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);
Sim, você pode fazer isso usando scripts programados e agendá -los como seu desejo. Não existe uma função API especial para editar um arquivo existente, você pode pegar os detalhes do arquivo existente e criar um novo arquivo com os mesmos detalhes, mas alterando apenas o campo de dados e excluindo o arquivo antigo.
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
}