Busquedas
Para realizar una búsqueda en múltiples tipos de registros (custom records) en NetSuite usando SuiteScript 2.0, puedes utilizar la función search.create() junto con los criterios y filtros adecuados. Aquí tienes un ejemplo de cómo hacerlo:
/** * @NApiVersion 2.x * @NScriptType Suitelet * @NModuleScope SameAccount */
define(['N/search'], function (search) {
function executeSearch() { // Crear objeto de búsqueda var mySearch = search.create({ type: [ 'customrecord1', // Primer tipo de registro personalizado 'customrecord2' // Segundo tipo de registro personalizado ], filters: [ // Agrega tus filtros personalizados aquí ], columns: [ // Agrega tus columnas personalizadas aquí ] });
// Ejecutar la búsqueda var searchResult = mySearch.run().getRange({ start: 0, end: 1000 // Cambia este número según tus necesidades });
// Procesar los resultados de la búsqueda searchResult.forEach(function (result) { var recordType = result.recordType; var recordId = result.id;
// Realizar acciones adicionales con cada registro encontrado // ... }); }
function onRequest(context) { executeSearch();
// Resto del código de la Suitelet }
return { onRequest: onRequest };});
Aquí tienes un ejemplo de cómo se utiliza la función lookupField() en un script de SuiteScript:
/** * @NApiVersion 2.x * @NScriptType UserEventScript * @NModuleScope SameAccount */
define(['N/record'], function (record) { function beforeSubmit(context) { var currentRecord = context.newRecord; // Ejemplo de búsqueda de un campo específico utilizando lookupField() var customerName = record.lookupField({ type: record.Type.CUSTOMER, // Tipo de registro a buscar (en este ejemplo, Customer) id: currentRecord.getValue('entity'), // ID del registro actual fieldId: 'companyname' // ID del campo a buscar }); if (customerName) { log.debug('Customer Name:', customerName); } } return { beforeSubmit: beforeSubmit };});
Aquí tienes un ejemplo de cómo podría ser el código de un script tipo RESTlet en NetSuite 2.0:
/** * @NApiVersion 2.x * @NScriptType Restlet * @NModuleScope SameAccount */
define(['N/search'], function (search) { function get(context) { // Crea y ejecuta la búsqueda var mySearch = search.create({ type: search.Type.CUSTOMER, // Tipo de registro a buscar (en este ejemplo, Customer) filters: [], // Criterios de búsqueda (puedes agregar filtros según tus necesidades) columns: ['internalid', 'companyname', 'email'] // Campos a recuperar }); var searchResults = mySearch.run().getRange({ start: 0, end: 100 // Número máximo de resultados a obtener });
// Procesa los resultados de la búsqueda y organízalos en un objeto JSON var data = []; searchResults.forEach(function (result) { var customerId = result.getValue({ name: 'internalid' }); var companyName = result.getValue({ name: 'companyname' }); var email = result.getValue({ name: 'email' });
data.push({ customerId: customerId, companyName: companyName, email: email }); });
// Devuelve los datos como una cadena de texto en formato JSON return JSON.stringify({ success: true, data: data }); } return { get: get };});
Enviar un correo // Enviar el correo electrónicoemail.send({ author: -5, // ID del empleado o -5 Administrador recipients: recipientEmail, subject: subject, body: body});
Comentarios
Publicar un comentario