Scripts del Mapeador de Dispositivos de Valor Guardado

Los scripts de Device Mapper de valor guardado abren muchas posibilidades de scripting.

  • El resultado de estos scripts se guardará y el script no se volverá a evaluar al leer pistas o generar reportes.
  • Estos scripts de campo de valor guardado se pueden usar para mantener un historial de Campos Personalizados.
  • Al cambiar el script o reprocesar pistas, el valor almacenado no se modificará.

Los desarrolladores también pueden considerar el valor guardado como scripts de campo persistentes.

1. Asegúrate de estar familiarizado con los conceptos de Device Mapper y Scripts de Device Mapper

2. Inicia sesión en una aplicación y ve a Menú Principal > Admin > Device Mapper > selecciona el modelo de dispositivo >

3. Navega a Scripts y presiona el botón +Script

Screenshot 2024-03-22 at 11.24.26.png

4. Completa el nombre del script, agrega la variable de Salida y habilita Persistir Resultado >

Screenshot 2024-03-22 at 11.26.54.png

5. Presiona el botón Abrir Editor de Scripts

Ejemplos de uso

Asegúrate de utilizar la variable de Salida adecuada para cada ejemplo y haz clic en "Probar Script" antes de guardar en el Editor de Scripts.

1. Ejemplo: Historial de Campos Personalizados

Salida -> TemperatureThreshold (Variable Personalizada creada en SiteAdmin de tipo double)

Script:

// -----------------------------

var temp = user.getCustomFieldValue('TempThreshold'); // Campo personalizado del usuario, necesita ser definido primero y debe ser de tipo número

if(temp != null && temp != undefined) {
return parseFloat(temp);
}

return null

// -----------------------------

Ahora TempThreshold se puede usar en reglas de eventos o reportes.

 

2. Ejemplo: Manejar datos clave=valor del dispositivo (2 scripts)

Script 1

Salida -> Temperature1

// ------------- SCRIPT ------------------
var val1 = fields.get('CustomString', null);

if(val1) {
var kvp = val1.split('=');
if(kvp.length ==2 && kvp[0] == 'temp1') {
return parseFloat(kvp[1]);
}
}

return null; // mantener valor anterior

// ----------- END SCRIPT ----------------

 

Script 2

Salida -> Temperature2

// ------------- SCRIPT ------------------
var val1 = fields.get('CustomString', null);

if(val1) {
var kvp = val1.split('=');
if(kvp.length ==2 && kvp[0] == 'temp2') {
return parseFloat(kvp[1]);
}
}

return null; // mantener el valor anterior

// ----------- FIN DEL SCRIPT ----------------

 

3. Ejemplo: Contador (+1)

Salida -> CustomAnalog1

Script:

var crashed = fields.get('Crash', false);
var currentCrashCount = fields.get('CustomAnalog1', 0);

if(crashed) {
return currentCrashCount + 1;
}

return currentCrashCount;

 

4. Ejemplo: Contador (acumulativo)

Salida -> CustomAnalog1. (Nota: fuelDiff necesita ser una diferencia de combustible entre el reporte del dispositivo actual y el anterior)

Script:

var fuelDiff = fields.get('fuelDiff', 0);
var totalFuel = fields.get('CustomAnalog1', 0);

return totalFuel + fuelDiff;