Saltar al contenido

Módulo Javascript

    Scripts para la manipulación de datos

    Módulo que permite construir y evolucionar lógicas utilizando el lenguaje javascripts, las que podrán ser ejecutadas desde los árboles a través del nodo JS (ver detalles en Nodos).

    Los scripts pueden recibir parámetros de entrada desde los árboles y retornar los parámetros de salida producto de la ejecución de los mismos.

    A través de los scripts se puede:

    • Manipular los datos recibidos en los parámetros de entrada
    • Generar nuevos datos
    • Ejecutar árboles 

    Librerías Javascript disponibles

    Las librerías javascript disponibles en este módulo son las siguiente:

        • DayJS
        • Lodash
        • URL

    Todas las librerías se encuentran en la variable global imports.

    A continuación se describen las librerías y se entregan algunos ejemplos de su uso en la plataforma. 

    Librería 'DayJS'

    Utilitarios para el manejo de fechas.

    Documentación

    URL https://day.js.org/

    Versión instalada: 1.9.1

    Ejemplo

    El siguiente script de ejemplo muestra el uso de algunas de las funciones de esta librería.

    				
    					const dayjs = imports.dayjs;
    
    return {
      friendly_date: dayjs().format('MMMM D YYYY, h:mm:ss a'),
      today: dayjs().format('dddd'),
      today_calendar: dayjs().calendar(),
      add_4_days: dayjs('20231031', 'YYYYMMDD').add(4, 'days').format('YYYY-MM-DD HH:mm:ss')
    };
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "friendly_date": "September 1 2023, 10:52:33 pm",
      "today": "Friday",
      "today_calendar": "Today at 10:52 PM",
      "add_4_days": "2023-11-04 00:00:00"
    }
    
    				
    			

    Librería 'Lodash'

    Herramientas para facilitar y eficientar la manipulación de objetos y entidades javascript.

    Documentación

    URL https://lodash.com/

    Versión 4.17.20

    Ejemplo 1

    El siguiente script de ejemplo muestra el uso de algunas de las funciones de esta librería.

    				
    					const _ = imports.lodash;
    
    const my_object = {
      first: {
        second: {
          third: 99
        }
      }
    };
    
    _.set(my_object, 'first.second.fourth', 'new_value');
    
    return my_object;
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "first": {
        "second": {
          "third": 99,
          "fourth": "new_value"
        }
      }
    }
    
    				
    			

    Ejemplo 2

    Este es otro ejemplo de script.

    				
    					const _ = imports.lodash;
    
    const my_object = {
      first: {
        second: {
          third: 99
        }
      }
    };
    
    return {
      third: _.get(my_object, 'first.second.third', 'default value'),
      fourth: _.get(my_object, 'first.second.fourth', 'default value')
    };
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "third": 99,
      "fourth": "default value"
    }
    
    				
    			

    Librería 'URL'

    Permite el parseo y validación de URLs.

    Documentación

    URL https://nodejs.org/docs/latest-v14.x/api/url.html

    Versión 14.16.1

    Ejemplo

    El siguiente script de ejemplo muestra el uso de algunas de las funciones de esta librería.

    				
    					const URL = imports.url;
    const parsed_url = URL.parse("http://my_service_host:2000/v1?foo=bar#my_hash");
    
    return {
      parsed_url
    };
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "parsed_url": {
        "protocol": "http:",
        "slashes": true,
        "auth": null,
        "host": "my_service_host:2000",
        "port": "2000",
        "hostname": "my_service_host",
        "hash": "#my_hash",
        "search": "?foo=bar",
        "query": "foo=bar",
        "pathname": "/v1",
        "path": "/v1?foo=bar",
        "href": "http://my_service_host:2000/v1?foo=bar#my_hash"
      }
    }
    
    				
    			

    Funciones Javascript disponibles

    Además de las librerías, la plataforma disponibiliza las siguientes funciones:

        • runSCETree
        • md5

    Todas las funciones se encuentran en la variable global functions.

    A continuación se describen las librerías y se entregan algunos ejemplos de su uso en la plataforma. 

    Función 'runSCETree'

    Función que permite invocar a un árbol entregándole parámetros de entrada y recibiendo los parámetros de salida.

    Ejemplo

    El siguiente script ejemplo muestra el uso de esta función.

    				
    					const respuesta_arbol = await functions.runSCETree("01H0TY41AGW44324D2G9VP54Q7", "test", {
      type: "sync",
      parameters: {
        foo: "bar"
      }
    });
    
    return {
      respuesta_arbol
    };
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "respuesta_arbol": {
        "httpStatusCode": 200,
        "sessionID": "01H99D1M7HV8REHVYSD1QVVGV3",
        "requestID": "01H99D1M7A120PT68HHPAP6M99",
        "body": {
          "message": "",
          "error_code": 0,
          "tree_version": "1",
          "api_version": "4.0.0",
          "info": {
            "type": 5,
            "label": "COMMON",
            "data": {
              "description": "",
              "error_code": "ok"
            }
          }
        }
      }
    }
    
    				
    			

    Función 'md5'

    Función que implementa el algoritmo de hashing md5.

    Ejemplo

    El siguiente script ejemplo muestra el uso de esta función.

    				
    					const text = "hello world";
    const salt = "my salt";
    
    return {
      md5: functions.md5(text),
      md5_with_salt: functions.md5(text, salt)
    };
    
    				
    			

    Un posible resultado es el siguiente:

    				
    					{
      "md5": "5eb63bbbe01eeed093cb22bb8f5acdc3",
      "md5_with_salt": "9edb1392c7de0ad5f6447814b2594c96"
    }
    
    				
    			

    Administración WEB

    Para acceder a este módulo se debe seleccionar la opción «Javascript» existente en la sección «Módulos» del panel izquierdo de la WEB de la plataforma. En la siguiente figura se muestra un listado de scripts de ejemplos.

    Al seleccionar el nombre de algún script se puede apreciar su contenido, ejecutarlo con parámetros de prueba y modificarlo creando una nueva versión del mismo. 

    Mediante el botón «Crear nuevo» se puede crear un nuevo script, en el siguiente ejemplo se muestra el script inicial que entrega el sistema para que sea modificado.