Nuevas características

Nuevo componente de configuración centralizada para el BPM Engine

En esta versión 6.2.0-Xenon de Onesait Platform hemos incluido un nuevo componente que va a permitir obtener una configuración centralizada de la Plataforma desde BPM, con lo cual se va a poder utilizar dicha información en otras tareas del BPM.

Funcionamiento

Para usar esta nueva funcionalidad, vamos a tener que acceder a la vista de edición de nuestro BPM y crear una nueva tarea (Task), a la cual indicaremos la plantilla de «Onesait Platform Centralized Config»:

El siguiente paso consistirá en configurar la tarea, indicando las siguientes propiedades:

  • Timeout: el tiempo en milisegundos antes de lanzar un Timeout.
  • Platform Environment: aquí se tendrá que indicar la URL del entorno del cual se busca obtener la configuración centralizada.
  • X-OP-APIKey: se tendrá que añadir la X-OP-APIKey del entorno del cual se quiera obtener la configuración.
  • Configuration Identification: se tendrá que indicar el Identificador de la configuración.

Tras configurar la tarea, así como el resto del BPM, únicamente habrá que guardar los cambios y desplegar el modelo pulsando en el botón de «New BPM Deployment»:

Seguidamente, se accederá al BPM Engine pulsando sobre el botón del ojo que se encuentra en la zona de «BPM Domains»:

Una vez dentro del BPM Engine, se pulsará en el icono de la casa (situado arriba a la derecha) y después sobre «Tasklist»:

Tras esto, habrá que pulsar donde pone «Start Process» sobre el proceso que tenga asignado el BPM:

Después de ejecutar el proceso, vamos a poder ver la configuración centralizada pulsando el «Icono de la casa > Cockpit > Running Process Instances» y, finalmente, sobre la Key del BPM.

En la siguiente ventana se pueden ver las variables del BPM, en donde estará la configuración seleccionada en la tarea, la cual se podrá usar para obtener información y usarla en otras tareas.

Ejemplo de uso

Con el siguiente ejemplo vamos a mostrar cómo utilizar los datos recibidos de la tarea. Para empezar, se va a utilizar la siguiente configuración:

{
  "valorString": "String1",
  "valorNumber": 12345,
  "valorBool": false,
  "valorObj": {
    "valor1": "HolaMundo",
    "valor2": 987,
    "valor3": true
  },
  "valorString2": [
    {
      "valorArray1": "array1",
      "valorArray2": "array2"
    },
    {
      "valorArray3": "array3",
      "valorArray4": "array4",
      "valorArray5": {
        "valorObjectArray": "valor5",
        "valorObjectArray2": "valor6",
        "valorObjectArray3": [
          {
            "valorRecondito": "recondito",
            "valorRecondito2": "recondito2"
          }
        ]
      }
    }
  ]
}

Para recuperar los datos, se va a poder hacerlo desde un Script Task o desde el campo «Outputs».

En el caso de recuperar los valores desde un Script Task, se indicarán las siguientes propiedades:

  • Type: se deberá de seleccionar la «Inline script».
  • Script: se escribirá el script necesario para obtener el valor deseado.
  • Result variable: será el nombre de la variable con los datos obtenidos del script.

En el caso de querer recuperar los valores desde el campo de «Outputs», se introducirán estas otras opciones:

  • Process variable name: nombre de la variable con los datos obtenidos.
  • Assignment type: el tipo de datos que vamos a obtener; se debería de seleccionar «String».
  • Value: el código utilizado para obtener los datos.

Los valores obtenidos en este ejemplo serían los siguientes:

  • valorString: ${opconfig.prop(«valorString»)}
  • valorNumber: ${opconfig.prop(«valorNumber»)}
  • valorObj.valor1: ${opconfig.prop(«valorObj»).prop(«valor1»)}
  • valorString2.valorArray5.valorObjectArray3.valorRecondito: ${opconfig.prop(«valorString2»).elements()[1].prop(«valorArray5»).prop(«valorObjectArray3»).elements()[0].prop(«valorRecondito»)}

En la siguiente imagen vemos, desde Camunda, cómo llegan las variables con los datos que queríamos obtener:


Imagen de cabeceralee attwood en Unsplash.

✍🏻 Author(s)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *