---
title: "Consultas a Entidades con FlowEngine (Nodos Query Static y Query Dynamic)"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/3853451265/Consultas%20a%20Entidades%20con%20FlowEngine%20(Nodos%20Query%20Static%20y%20Query%20Dynamic)"
format: markdown
---
> Macro (toc)

Esta guía describe 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 consultas y creación del flujo en FlowEngine.

# Creación de la Entidad (Ontología)

Empieza por crear una ontología llamada queryNoderedTest. Usando la opción Creación Paso a Paso, agrega el campo "campo", escriba cadena; y el campo "valor" de tipo número. Actualiza el esquema y genera la instancia.


##### **JSON de la ontología queryNoderedTest**

```plaintext
{
    "$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": "Creation of an ontology for the ues of query nodes in the Flow Engine.",
    "additionalProperties": true
}
```

Puedes insertar datos usando el CRUD de la propia ontología o usando el FlowEngine y su nodo [Insert](https://onesaitplatform.atlassian.net/wiki/spaces/DOC/pages/2216727233).

# Definición de nodo Query Static

![image](media://c351081b-1f83-4249-a297-01418e0af4fc)

Una consulta estática se basa en la información añadida en el momento de la creación. Una vez establecidos los datos iniciales, los campos no se pueden modificar.

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

# Definición de nodo Query Dynamic

![image](media://64d276d4-5bb5-4001-9f6d-ea8ae4376b5a)

In a dynamic query, the information can be updated at any time. As with the static query, the requests that can be made are query, updated and deleted.


# Creación de flujo en FlowEngine

## Flujo con Query Static

Empieza por crear un flujo con **consulta estática. **Los nodos a utilizar son:

- **Inject. **Activa el flujo manualmente o a intervalos.
- **Query Static. **Se usa para realizar la consulta con bases de datos estáticas.
- **Debug. **Monitorea los mensajes.

**En el nodo Debug, la opción *****msg.***** se cambia por *****el objeto msg completo*****.** El resultado que se obtiene en el payload es un mensaje de texto con la información de la ontología. Si quieres convertirlo en un objeto, debes crear un objeto parse.

**En el nodo Debug, la opción *****msg. *****se cambia por *****el objeto msg completo. ***El resultado que se obtiene en el payload es un contador con la cantidad de objetos que se han modificado. En este ejemplo, sólo se modifica un valor.

**En el nodo Debug, la opción *****msg. *****se cambia por *****el objeto msg completo. ***El resultado que se obtiene en el payload es un contador con la cantidad de objetos que se han borrado. En este ejemplo, sólo se borraun valor.

![image](media://5e8ea9c4-48cf-4a67-a5d8-445703590429)

## Flujo con Query Dynamic

Empieza por crear un flujo con **consulta dinámica. **Los nodos a utilizar son:

- **Inject. **Activa el flujo manualmente o a intervalos.
- **Function.** Función JavaScript contra los mensajes recibidos por el nodo.
- **Query Static. **Se usa para realizar la consulta con bases de datos estáticas.
- **Debug. **Monitorea los mensajes.

En la ventana del nodo de consulta dinámica, introduce el nombre que recibirá el nodo, en este caso Dynamic query. Cambia además la opción Debug de *msg *a *complete msg object*.

En este caso la consulta se ha hecho con *select *pero, como en el caso estático, puedes escribir una consulta con *update *o *delete*.

Debes configurar el nodo Inject. En payload, elige la opción JSON e introduce los datos que deseas buscar. En el nodo Function, escribe *msg.payload.filtro*, para que, cuando se escriba el campo en Inject, se haga con *filtro*. El resultado sería: Payload: {"filtro": 28.6}.

In this case, the query has been done with *select* but, as in the static case, you can write a query with *update *or *delete.*

The Inject node needs to be configured. In payload, choose the JSON option and enter the data you want to search. In the Function node, *msg.payload.filtro* is written, so when writing the field in Inject it will be done with* filtro.* The result would be: Payload: {"filtro": 28.6}.

Pulsa sobre Deploy y se ejecuta el flujo. El resultado que obtienes como payload es un conjunto vacío ya que el valor de la búsqueda, 28.6, no está incluido en los datos.