Como administrador de NetSuite, hay ocasiones en las que necesita monitorear o auditar transacciones específicas en el sistema, como las órdenes de ventas. Esto puede ayudar a garantizar la precisión, rastrear problemas o simplemente comprender cómo fluyen los datos a través de su cuenta. Una forma eficaz de hacerlo es mediante el uso de un script programado para automatizar el proceso de identificación y registro de detalles clave de la transacción.
En este artículo se muestra cómo usar un script programado para buscar órdenes de ventas principales, cargar cada uno y registrar detalles críticos como el ID interno, el tipo de transacción y el nombre del cliente.
/**
* @NApiVersion 2.x
* @NScriptType ScheduledScript
*/
/**
* This script searches for mainline Sales Orders, maps their transaction type
* to the correct NetSuite record.Type, and loads each transaction record.
* It logs the internal ID, type, and customer name of each loaded transaction.
*/
define(['N/search', 'N/record', 'N/log'], function(search, record, log) {
var TRANSACTION_MAPPING = {
"SalesOrd": record.Type.SALES_ORDER
};
function execute(context) {
var txnSearch = search.create({
type: search.Type.TRANSACTION,
filters: [
["type", "anyof", Object.keys(TRANSACTION_MAPPING)],
"AND",
["mainline", "is", "T"]
],
columns: [
search.createColumn({ name: "internalid", label: "Internal ID" }),
search.createColumn({ name: "entity", label: "Customer" }),
search.createColumn({ name: "type", label: "Type" })
]
});
txnSearch.run().each(function(result) {
var internalId = result.getValue({ name: "internalid" });
var customerName = result.getText({ name: "entity" });
var typeCode = result.getValue({ name: "type" });
var recordType = TRANSACTION_MAPPING[typeCode];
if (recordType) {
var txnRecord = record.load({
type: recordType,
id: internalId
});
log.debug("Transaction Loaded", "Type: " + typeCode + " | ID: " + internalId + " | Customer: " + customerName);
} else {
log.error("Unmapped Type", "No mapping found for: " + typeCode);
}
return true;
});
}
return {
execute: execute
};
});
- Este script solo registra los pedidos de ventas de la línea principal. Puede expandir el objeto TRANSACTION_MAPPING para incluir otros tipos como CustInvc (Factura), CashSale (venta en efetivo), etc.
- Utiliza la búsqueda search.Type.TRANSACTION para recuperar varios tipos de transacciones, pero filtra las que desee usar.
- Asegúrese de implementar este script programado con el tiempo de ejecución y el estado de implementación adecuados en el registro de script.
El código de muestra descrito en este documento se proporciona "tal cual", sin garantía de ningún tipo, en la medida máxima permitida por la ley. Oracle + NetSuite Inc. no garantiza el éxito individual que los desarrolladores puedan tener en la implementación del código de muestra en sus plataformas de desarrollo o en el uso de sus propias configuraciones de servidor web.
Oracle + NetSuite Inc. no garantiza ni hace ninguna declaración con respecto al uso, los resultados del uso, la precisión, la puntualidad o la integridad de cualquier dato o información relacionada con el código de muestra. Oracle + NetSuite Inc. renuncia a todas las garantías, expresas o implícitas y, en particular, descarta cualquier garantía de comerciabilidad, idoneidad para un propósito particular y garantías relacionadas con el código, o cualquier servicio o software relacionado con el mismo.
Oracle + NetSuite Inc. no será responsable de ningún daño o costo directo, indirecto o consecuente de ningún tipo que surja de cualquier acción tomada por usted u otros en relación con el código de muestra.
Para obtener más información sobre la gestión de scripts, consulte lo siguiente:
¿Tiene otra forma de automatizar sus transacciones usando SuiteScript? ¡No dude en compartirlo aquí!