Borrado Masivo de Registros

Antecedentes

Una de las cosas más comunes en NetSuite es que con el paso del tiempo llegamos a acumular una gran cantidad de registros, muchos de ellos nunca se usaron y probablemente jamas se usarán, otros ya no tienen razón de existir, lo que nos lleva a querer eliminarlos, lo cual es sencillo (Editar > Más acciones > Eliminar), pero cuando son muchos registros esta tarea se vuelve muy tediosa.

Por suerte existe el borrado masivo de registros, ahora te mostramos como utilizarlo.

¿Como borrar registros de manera masiva?

Solo debemos ejecutar los siguientes pasos:

  1. Crea un Script tipo Actualización masiva. 
    • El Script debe contener el siguiente código:
      function DeleteRecord(recordType, recordId)
      {
          try
          {
              nlapiDeleteRecord(recordType, recordId);
          }
          catch(error)
          {
          	if(error instanceof nlobjError)
              {
            	    var errorCode 	 = returnBlank(error.getCode());
          	    var errorDetails 	 = returnBlank(error.getDetails());
          	    var errorID 	 = returnBlank(error.getId());
          	    var errorInternalID	 = returnBlank(error.getInternalId());
          	    var errorStackTrace	 = returnBlank(error.getStackTrace());
          	    if(errorStackTrace != '')
          	    {
          		errorStackTrace	 = errorStackTrace.join();
          	    }
          	    var errorUserEvent 	 = returnBlank(error.getUserEvent());
                  nlapiLogExecution( 'ERROR', 'Error Code',errorCode);
                  nlapiLogExecution( 'ERROR', 'Error Details',errorDetails);
                  nlapiLogExecution( 'ERROR', 'Error ID',errorID);
                  nlapiLogExecution( 'ERROR', 'Error Internal ID',errorInternalID);
                  nlapiLogExecution( 'ERROR', 'Error StackTrace',errorStackTrace);
                  nlapiLogExecution( 'ERROR', 'Error UserEvent',errorUserEvent);
              }
              else
              {
                  var errorString	 = returnBlank(error.toString());
                  nlapiLogExecution( 'ERROR', 'Unexpected Error',errorString);
              }
          }
      }
      
    • Crea una implementación por cada tipo de registro que quieras borrar.
  2. Ir a Listas > Actualización masiva > Actualizaciones masivas > Actualizaciones personalizadas > [Registro a borrar] > [Script creado en el paso 1]
  3. Filtra los registros que deseas borrar.
  4. Presiona el botón Vista previa.
  5. Presiona el botón Ejecutar actualización.

Importante: antes de borrar registros debemos de asegurarnos que no hay dependencias, ejemplo, un Lead tiene asignada un Evento.

¿Cómo podemos ayudar?

NetSuite es una gran plataforma que configurada adecuadamente puede dar resultados extraordinarios en su negocio. En IMR contamos con la experiencia y conocimientos para apoyar el logro de sus objetivos. Si necesita ayuda, por favor contactanos.

Preferencias Generales & Parámetros personalizados

Antecedentes

Las Preferencias generales de NetSuite como su nombre lo indica, son preferencias generales disponibles para todas las subsidiarias y empleados, las cuales indican o establecen los parámetros con los que la cuenta de NetSuite va a funcionar. Sin embargo, es común, que al implementar NetSuite surjan procesos personalizados que requieran parámetros, un error común es dejar estos parámetros en Hard Code, ahora te mostramos como crear preferencias generales personalizadas y utilizarlos como parámetros para los procesos.

¿Como crear preferencias generales personalizadas?

Solo debemos ejecutar los siguientes pasos:

  1. Ir al Script deseado.
  2. Clic en la pestaña Parámetros
  3. Clic en Nuevo parámetro
  4. Ingresar la información solicitada (es indispensable seleccionar Empresa en el campo Preferencia)
  5. Guardar
param

Parámetro del Script

prefere

Preferencia general creada a través de parámetro de Script.

Importante: es probable que nuestros Scripts compartan parámetros, y para esos casos recomendamos lo siguiente:

  1. Crear un Script tipo Suitelet 
  2. Implementar el Script (marcar la opción Disponible sin inicio de sesión)
  3. Crear todos los parámetros genéricos a compartir.
  4. Utilizar el siguiente código fuente:
    •   
      //El siguiente código fuente regresara TODOS los parámetros del script.
      //returnBlank es una función de ejemplo; asegura que el dato no sea null o undefined
      //Base64 es una función de ejemplo; manipula el Base 64
      var context		= nlapiGetContext();
      var scriptId		= returnBlank(context.getScriptId());
      var script_filters	= new Array();
          script_filters.push(new nlobjSearchFilter('scriptid',null,'is',scriptId));
      var script_results	= returnBlank(nlapiSearchRecord('script', null, script_filters, null));
      var script_id		= script_results[0].getId();
      var script_record	= nlapiLoadRecord('script', script_id);
      var parameter_lines	= script_record.getLineItemCount('parameters');
      var data				= new Object();
      for(var i=1;i<=parameter_lines;i++)
      {
      	var param_name	 = script_record.getLineItemValue('parameters', 'internalid', i);
      	var param_value  = returnBlank(context.getSetting('SCRIPT', param_name));
      	data[param_name] = param_value;
      }
      data	= JSON.stringify(data);
      data	= Base64.encode(data);
      response.write(data);
      
  5. Hacer un Request a dicho Script  cada que sea necesario.
    • Nota: El Request regresará una cadena codificada en Base 64 por lo que se tendrá que decodificar y posteriormente convertir en un objeto JSON

¿Cómo podemos ayudar?

NetSuite es una gran plataforma que configurada adecuadamente puede dar resultados extraordinarios en su negocio. En IMR contamos con la experiencia y conocimientos para apoyar el logro de sus objetivos. Si necesita ayuda, por favor contactanos.