Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introducción

En esta guía se describen los nodos Query Static y Query Dynamic mostrando ejemplos para cada uno. La metodología que sigue la guía es la creación de una ontología, definiciones de las queries y creación del flujo en FlowEngine.

Table of ContentsmaxLevel

3Comenzaremos

Creación de la ontología

Tip
titleOntología

Para saber qué es y cómo se crea una ontología pulsa en los enlaces correspondientes:

/wiki/spaces/PT/pages/112918529

/wiki/spaces/PT/pages/4292627

Comienza creando una ontología llamada queryNoderedTest. Mediante la opción de Creation Step by Step,

añadimos

añade los campos "field" de tipo string y "value" de tipo number,

actualizamos

actualiza el esquema y

generamos

genera la instancia.

Image Removed

Image Removed

Code Blocklanguagetexttitle
Image Added



Image Added
JSON de la ontología queryNoderedTest
Code Block
collapse
language
true
text
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "queryNoderedTest",
    "type": "object",
    "required": [
        "queryNoderedTest"
    ],
    "properties": {
        "queryNoderedTest": {
            "type": "string",
            "$ref": "#/datos"
        }
    },
    "datos": {
        "description": "Info queryNoderedTest",
        "type": "object",
        "required": [
            "field",
            "value"
        ],
        "properties": {
            "field": {
                "type": "string"
            },
            "value": {
                "type": "number"
            }
        }
    },
    "description": "Creación de una ontología para el uso de los nodos query en el Flow Engine.",
    "additionalProperties": true
}

Es posible realizar la inserción de datos mediante el CRUD de la propia ontología o mediante el FlowEngine y su nodo Insert.

Definición del nodo Query Static

Image Removed
Image Added

Una query estática está basada en la información añadida en el momento de la creación. Una vez establecidos los datos iniciales no es posible modificar los campos. 

A través de este nodo se pueden realizar varios tipos de peticiones, tanto datos como información, tales como: select, update y delete.

Image RemovedImage Added

Propiedades del nodo

  • Name:. Campo opcional usado para identificar el nodo con un nombre específico.

  • Ontology:. Nombre de la ontología sobre la que queremos hacer la consulta, actualización o borrado de datos.

  • Query type

    .

    : Existen dos opciones dependiendo del tipo de base de datos con la que se trabaje.

    1. SQL

    2. Native

    .
    1. : Usada en caso de tener como base de datos MongoDB.

  • Query

    .

    : Sentencia de consulta, actualización o borrado de datos que va a ser lanzada.


Los datos de salida dependerán del tipo de query que se registre en el nodo. 






Definición del nodo Query Dynamic

Image Removed
Image Added

En una query dinámica la información puede ser actualizada en cualquier momento. Al igual que ocurría con la query estática, las peticiones que se pueden realizar son de consulta, actualizado y de borrado.

Image RemovedImage Added

Propiedades del nodo

  • Name

    .

    : Campo opcional usado para identificar el nodo con un nombre específico.

Este nodo espera recibir información de una función. Este código se pasará mediante el nodo function. Los parámetros que han de introducirse son:

  • Ontology

    .

    : Nombre de la ontología sobre la que

    queremos

    quieres hacer la consulta, actualización o borrado de datos.

  • Query type

    .

    : Existen dos opciones dependiendo del tipo de base de datos con la que se trabaje.

    1. SQL

    2. Native

    .
    1. : Usada en caso de tener como base de datos MongoDB.

  • Query

    .

    : Sentencia de consulta, actualización o borrado de datos que va a ser lanzada.

Los datos de salida dependerán del tipo de query que se registre en el nodo.





Creación del flujo en

FlowEngine Tip
titleDocumentación Flow Engine
Para conocer más acerca del módulo

FlowEngine

visita el siguiente enlace:

Guías FlowEngine

Flujo con Query Static

Se comienza

Comienza con la creación de un flujo con query static. Los nodos que se van a utilizar son:

  • Inject

.
  • : Activa el flujo de forma manual o a intervalos.

  • Query Static

.
  • : Usado para realizar la consulta con bases de datos estáticas.

  • Debug

.
  • : Monitoriza los mensajes.


Image ModifiedImage ModifiedImage Modified




Image RemovedImage Added





Flujo de consulta, select

.

Doble Haz doble click en el nodo query static para que se abra la ventana correspondiente a la imagen derecha. Se rellenan Rellena los campos:

  • Name: select query

  • Ontologies available: queryNoderedTest

  • Ontology: queryNoderedTest

  • Query type: SQL

  • Query: select * from queryNoderedTest


Image RemovedImage Added
Image RemovedImage Added

En el nodo Debug

se

, cambia la opción msg. por complete msg object. El resultado que se obtiene en el payload es un mensaje tipo texto con la información de la ontología. En caso de querer convertirlo a un objeto

habrá

, tendrás que hacer un parse object.

Flujo de actualización, update

.

Doble Haz doble click en el nodo query static para que se abra la ventana correspondiente a la imagen derecha. Se rellenan Rellena los campos:

  • Name: update query

  • Ontologies available: queryNoderedTest

  • Ontology: queryNoderedTest

  • Query type: SQL

  • Query: update queryNoderedTest set queryNoderedTest.value=24;

Image RemovedImage Added
Image RemovedImage Added

En el nodo Debug se cambia la opción msg. por complete msg object. El resultado que se obtiene en el payload es un contador con la cantidad de objetos que se han modificado. En este ejemplo solo se modifica un valor.

Flujo de borrado, delete

.

Doble Haz doble click en el nodo query static para que se abra la ventana correspondiente a la imagen derecha. Se rellenan Rellenan los campos:

  • Name: delete query

  • Ontologies available: queryNoderedTest

  • Ontology: queryNoderedTest

  • Query type: SQL

  • Query: delete from queryNoderedTest where queryNoderedTest.value=24;

Image RemovedImage Added
Image RemovedImage Added

En el nodo Debug se cambia la opción msg. por complete msg object. El resultado que se obtiene en el payload es un contador con la cantidad de objetos que se han eliminado. En este ejemplo solo se elimina un valor.

Image Removed
Image Added

Flujo con Query Dynamic

Creación de un flujo con query dynamic. Los nodos que se van a utilizar son:

  • Inject

.
  • : Activa el flujo de forma manual o a intervalos.

  • Function

.
  • : Función JavasScript contra los mensajes recibidos por el nodo.

  • Query Static

.
  • : Usado para realizar la consulta con bases de datos estáticas.

  • Debug

.
  • : Monitoriza los mensajes.

Image ModifiedImage ModifiedImage ModifiedImage Modified
Image RemovedImage Added
Se introduce

Introduce en la ventana del nodo query dynamic el nombre que va a llevar dicho nodo, en este caso, Dynamic query.

Se cambia

Cambia también la opción de Debug de msgcomplete msg object.

En el nodo Function, se escriben los campos que nos pide la query dinámica, es decir: ontología, tipo de query y query; podemos . Puedes asignar a este nodo un nombre, nodo consultas.

msg.ontology = 'queryNoderedTest';

msg.queryType = 'SQL';

msg.query = 'Select * from queryNoderedTest where queryNoderedTest.value='+msg.payload.value;

return msg;


Image RemovedImage Added

En este caso, la query se ha hecho con select pero, al igual que en el caso static, se puede escribir una consulta con update o delete.

Falta configurar el nodo Inject. En payload

se

, escoge la opción JSON

y se

e introduce el dato que

queramos

quieres buscar. En el nodo Function, se ha escrito msg.payload.filtro por lo que a la hora de escribir el campo en Inject se hará con filtro. El resultado quedaría: Payload: {"filtro":28.6}.

Nodo Inject

Image Removed

Image RemovedImage AddedImage Added

Nodo FunctionImage Removed

Image Added

Se pulsa


Pulsa sobre Deploy y

se

ejecuta el flujo. El resultado que

obtenemos

obtendrás como payload es un conjunto vacío, ya que el valor de la búsqueda, 28.6, no está incluido en los datos.

Image Removed

Image RemovedImage Added