Em nosso artigo anterior, Novo no NetSuite | Entendendo os módulos do SuiteScript 2.x, exploramos os módulos do SuiteScript e o módulo N/record, Novo no NetSuite | Visão geral do módulo N/record, que é usado para interagir com registros. Agora, vamos dar uma olhada mais de perto em um dos membros do N/record: record. Objeto de sublista
O registro. Sublist representa uma sublista dentro de um registro. Uma sublista é essencialmente uma lista de itens de linha associados a um registro (por exemplo, a sublista Itens em um Pedido de Venda ou a sublista Despesas em uma Fatura de Fornecedor).
Pontos chave:
- O registro. O objeto Sublist fornece métodos e propriedades para interagir com a sublista, como acessar linhas, definir e obter valores e manipular dados de linha de sublista.
- Você não instancia o registro. Sublist diretamente. Em vez disso, você os acessa por meio de métodos no objeto Record, geralmente usando:
registro.getSublist({ sublistId: 'item' });
- A manipulação direta de linhas de sublista é mais frequentemente feita usando:
- record.getSublistValue(opções)
- record.setSublistValue(opções)
- E outros métodos relacionados para trabalhar com sublistas.
- Uma "sublista" refere-se a toda a lista/matriz de linhas; você interage com linhas específicas usando as APIs fornecidas.
Tipos de script suportados
O registro. Sublist tem suporte em scripts do lado do cliente e do servidor.
Exemplo: carrega um registro de Pedido de Vendas, itera por todos os itens em sua sublista Itens e registra a ID interna de cada item.
/**
* @NApiVersion 2 .x
* @NScriptType ScheduledScript
*/
define(['N/record', 'N/log'],
function(record, log) {
function execute(context) {
try {
var salesOrderId = 12345; // Replace with your Sales Order internal ID
var soRecord = record.load({
type: record.Type.SALES_ORDER,
id: salesOrderId
});
var lineCount = soRecord.getLineCount({sublistId: 'item'});
log.audit('Line Count', lineCount);
for (var i = 0; i < lineCount; i++) {
var itemId = soRecord.getSublistValue({
sublistId: 'item',
fieldId: 'item',
line: i
});
var quantity = soRecord.getSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: i
});
log.debug('Item Line', 'Line: ' + i + ', Item ID: ' + itemId + ', Quantity: ' + quantity);
// Add your processing logic here
}
} catch (e) {
log.error('Error Processing Sales Order', e);
}
}
return {
execute: execute
};
});
Trecho de código | Descrição |
|---|
var soRecord = record.load({...}); | Carrega o registro de Pedido de Vendas especificado para processamento. |
var lineCount = soRecord.getLineCount({sublistId: 'item'}); | Determina quantos itens (linhas) estão na sublista "Itens" da Ordem de Venda. |
for (var i = 0; i < lineCount; i++) { ... } | Itera por meio de cada linha de item na sublista. |
getSublistValue({ fieldId: 'item', ... }) | Recupera a ID interna do item na linha atual. |
getSublistValue({ fieldId: 'quantidade', ... }) | Recupera a quantidade do item na linha atual. |
log.debug(...) | Gera a ID e a quantidade do item de cada linha para os logs de script para depuração/monitoramento. |
catch (e) { log.error(...); } | Fornece tratamento de erros para que os problemas de script sejam registrados e visíveis. |
O código de exemplo aqui descrito é fornecido "no estado em que se encontra", sem garantia de qualquer tipo, na máxima extensão permitida por lei. não garante o sucesso individual que os desenvolvedores possam ter na implementação do código de exemplo em suas plataformas de desenvolvimento ou no uso de suas próprias configurações de servidor Web.
não garante, garante ou faz qualquer representação em relação ao uso, resultados de uso, precisão, atualidade ou integridade de quaisquer dados ou informações relacionadas ao código de exemplo. 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.
não será responsável por quaisquer danos diretos, indiretos ou consequenciais ou custos de qualquer tipo decorrentes de qualquer ação tomada por você ou outros relacionados ao código de exemplo.
Para mais informação no tratamento de scripts, consulte o seguinte:
Nos próximos artigos, detalharemos os Módulos do SuiteScript 2.x e explicar como usá-los de forma eficaz em seus scripts emSuíte CloudÁrea de produtos. Mantenha-se atualizado seguindo o Novo no NetSuite >SuíteCloud para receber notificações sempre que novos artigos forem publicados.