Visão geral
Os scripts programados no NetSuite permitem automatizar tarefas recorrentes, como limpeza, relatórios e atualizações de registros. Para iniciantes, esta é uma das maneiras mais poderosas de reduzir o trabalho manual.
Neste guia, criaremos um script agendado simples que é executado todas as noites para limpar dados obsoletos ou desnecessários (por exemplo, fechar pedidos de vendas antigos que estão presos em "Atendimento pendente").
Guia passo a passo: Criando e implantando um script agendado
- Faça login com a função de acesso de administrador ou script - Navegue até Personalização > Scripts de > Scripts > Novo.
- Carregue o arquivo de script
- Em Arquivo de script, carregue seu arquivo '.js' contendo a lógica do script agendado.
- Clique em Salvar e depois em Criar registro de script.
- Criar o registro de script
- Digite um nome (por exemplo, "Limpeza noturna de dados").
- Salve o registro.
- Clique em Implantar - Implantar o Script
- Na subguia Implantações, clique em Nova Implantação.
- Selecione:
• Status: Liberado
• Nível de Log: Depurar (recomendado durante o teste)
• Execução Agendada: Selecione Diariamente e escolha 2:00 AM ou outro horário de baixo tráfego.
-Salve a implantação.
Código de exemplo: Limpeza noturna de ordens de venda antigas
/**
• @NApiVersion 2.x
• @NScriptType ScheduledScript
• @NModuleScope SameAccount
*/ define(['N/registro', 'N/pesquisa', 'N/log'], function(registro, pesquisa, log) { function execute(context) { try { var soSearch = search.create({ type: search. Type.SALES_ORDER, filtros: [ ['status', 'anyof', 'SalesOrd:B'], // Processamento pendente 'AND', ['datecreated', 'onorbefore', 'daysago90'] // mais de 90 dias ], columns: ['internalid'] });
soSearch.run().each(function(result) {
var soId = result.getValue('internalid');
var soRec = record.load({
type: record. Type.SALES_ORDER,
id: soId,
isDynamic: false
});
var lineCount = soRec.getLineCount({sublistId: 'item'});
for (var i = 0; i < lineCount; i++) {
// Defina o campo "isclosed" como true para cada linha
soRec.setSublistValue({
sublistId: 'item',
fieldId: 'isclosed',
line: i,
value: true
});
}
soRec.save();
log.debug('Ordem de venda fechada', 'ID: ' + soId);
retornar true;
});
} catch (e) {
log.error('Erro de script agendado', e.message);
}
}
return { executar: executar };
});
Testando o script
• Crie alguns pedidos de vendas de teste antigos (90+ dias atrás) no status Pending Fulfillment.
• Edite a implantação do script Registre e implante o script com um gatilho manual primeiro (Executar agora) para confirmar que ele é executado corretamente.
• Verifique se as Ordens de Venda estão atualizadas para Fechadas.
• Examine os Logs de Execução de Script em Personalização > Scripts > Logs de Execução de Script para depuração.
AVISO LEGAL: O código de amostra aqui descrito é fornecido "no estado em que se encontra", sem garantia de qualquer tipo, na extensão máxima permitida por lei. A Oracle + NetSuite Inc. não garante o sucesso individual que os desenvolvedores podem ter na implementação do código de amostra em suas plataformas de desenvolvimento ou no uso de suas próprias configurações de servidor Web.
A Oracle + NetSuite Inc. não garante ou faz qualquer representação em relação ao uso, resultados de uso, precisão, pontualidade ou integridade de quaisquer dados ou informações relacionadas ao código de amostra. A Oracle + NetSuite Inc. se isenta de todas as garantias, expressas ou implícitas, e, em particular, se isenta de todas as garantias de comercialização, adequação a uma finalidade específica e garantias relacionadas ao código ou a qualquer serviço ou software relacionado a ele.
A Oracle + NetSuite Inc. não será responsável por quaisquer danos ou custos diretos, indiretos ou conseqüenciais de qualquer tipo decorrentes de qualquer ação tomada por você ou outros relacionados ao código de amostra.
Visite a seção SuiteCloud na categoria Novo no NetSuite para explorar uma variedade de guias para iniciantes que o orientam pelos recursos essenciais de contabilidade do NetSuite.