Se aplica a
Producto: NetSuite 2022.1
Escenario
El artículo se aplica a un escenario muy específico, pero también demuestra cómo usar SuiteScript para establecer valores en Campos de Selección Múltiple en NetSuite.
La siguiente solución se aplica a un Escenario en el que en el Registro del Caso de Soporte sería necesario rastrear en un solo campo a todos los empleados a los que se ha derivado el mismo Caso. A medida que se agrega un nuevo Empleado a la subpestaña Escalaciones > Sublista Escalación al guardar el registro, el nuevo Escalado se agregará al campo de Selección Múltiple que realiza un seguimiento de todos los Empleados.
Solución
Antes de lograr el objetivo mencionado a través de SuiteScript, en primer lugar es necesario crear un Campo de Selección Múltiple Personalizado:
- Vaya a Personalización > Lista, Registros y Campos > Campos de CRM
- Haga clic en Nuevo
- Etiquetar el campo Lista de Escalados
- Configure su propio campo ID Personalizado
- Establecer el Tipo en Selección Múltiple
- Establecer Lista / Registro para Empleado
- En la subpestaña Se Aplica a, marque el Caso
- Clic en Guardar
Implemente el siguiente SuiteScript 2.0 en el Registro del caso de soporte utilizando un Script de Evento de Usuario del lado del servidor utilizando el módulo de registro en el contexto Despues del Envío:
/** * @NApiVersion 2.x * @NScriptType UserEventScript * @NModuleScope SameAccount */ define(['N/record'], /** * @param {record} record */ function (record) { /** * Function definition to be triggered before record is loaded. * * @param {Object} scriptContext * @param {Record} scriptContext.newRecord - New record * @param {Record} scriptContext.oldRecord - Old record * @param {string} scriptContext.type - Trigger type * @Since 2015.2 */ function sortEscalatees(scriptContext) { try { var supportCaseId = scriptContext.newRecord.id; var oldEscalatees = new Array(); var newEscalatees = new Array(); log.debug({ title: 'Record ID', details: supportCaseId }); var supportCase = record.load({ type: record.Type.SUPPORT_CASE, id: supportCaseId, isDynamic: true }); oldEscalatees = supportCase.getValue({ fieldId: 'CRM_FIELD_CUSTOM_ID' }); log.debug({ title: 'oldEscalatees', details: oldEscalatees }); if (oldEscalatees != null) { for (var i = 0; i < oldEscalatees.length; i++) { newEscalatees.push(oldEscalatees[i]); } } log.debug({ title: 'newEscalatees', details: newEscalatees }); var escalateToCount = supportCase.getLineCount({ sublistId: 'escalateto' }); log.debug({ title: 'escalateToCount', details: escalateToCount }); for (var i = 0; i <= escalateToCount - 1; i++) { var escalatee = supportCase.getSublistValue({ sublistId: 'escalateto', fieldId: 'escalatee', line: i }); newEscalatees.push(escalatee); log.debug({ title: 'escalatee', details: escalatee }); } log.debug({ title: 'newEscalatees', details: newEscalatees }); supportCase.setValue({ fieldId: 'CRM_FIELD_CUSTOM_ID', value: newEscalatees }); supportCase.save(); } catch (error) { log.debug({ title: 'Catch Error', details: error }); } } return { afterSubmit: sortEscalatees }; });</code>
Descargo de Responsabilidad
El código de muestra descrito en este artículo se proporciona ""tal cual"", sin garantía de ningún tipo, en la mayor medida permitida por la ley. Oracle + NetSuite Inc. no garantiza ni respalda el éxito individual que los desarrolladores puedan tener al implementar el código de muestra en sus plataformas de desarrollo o al usar sus propias configuraciones de servidor Web.
Oracle + NetSuite Inc. no garantiza, respalda o hace ninguna representació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, renuncia a todas las garantías 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 otras personas relacionadas con el código de muestra.