Dinaup Flex

El motor de estructura de Dinaup: siete tipos de objeto que definen qué datos guarda la empresa, cómo se consultan y qué código se ejecuta.

Dinaup Flex es el motor de estructura de Dinaup. Define las tablas de la empresa, sus columnas, las consultas guardadas, los documentos que se imprimen y el código que se ejecuta al cambiar un registro. Los módulos Ready To Go llegan como estructura Flex, y lo que la empresa añade se guarda con el mismo motor.

Las pantallas donde se edita cada pieza están en FlexHub.

Antes de empezar

  • Para editar la estructura hace falta ser Administrador de la empresa: es el único filtro de FlexHub. Ver FlexHub y Usuarios.
  • Para leer o escribir la estructura desde código hace falta el paquete NuGet Dinaup y una clave API. Ver Cliente Dinaup y Claves API.

Los siete tipos de objeto

La Flex API direcciona siete tipos. Cada uno tiene su constante FlexObjectTypes en el SDK.

TipoConstante del SDKQué esConceptoPantalla
SecciónFlexObjectTypes.SectionsUna tabla de datos de la empresa.SeccionesSecciones
CampoFlexObjectTypes.FieldsUna columna de una sección.Campos y Roles de campoDiseñando la ficha
InformeFlexObjectTypes.ReportsUna consulta guardada sobre una sección.InformesInformes
Columna de informeFlexObjectTypes.ReportColumnsUn dato que un informe saca por pantalla. Depende del informe, no de la sección.InformesInformes
Documento dinámicoFlexObjectTypes.PrintDocumentsUna plantilla HTML que se imprime con los datos de un registro.Documentos dinámicosDocumentos
ScriptFlexObjectTypes.ScriptsCódigo DinaScript que se ejecuta con un evento de la ficha.Scripts y DinaScriptScripts
AlgoritmoFlexObjectTypes.AlgorithmsUna fórmula que calcula un valor sobre una sección.AlgoritmosAlgoritmos

Todos los tipos comparten la misma ficha en la API (FlexObjectDTO): identificador, sección, etiqueta, palabra clave (Keyword), si está eliminado u obsoleto, la versión de fila para concurrencia y las columnas crudas en Values. Un informe, un documento o un algoritmo llevan además categoría y subcategoría, que es como se archivan dentro de su tipo.

De dónde viene cada objeto

Cada objeto tiene un origen, y el origen determina quién lo puede cambiar:

OrigenQué esQuién lo edita
PropioLo ha creado esta empresa. Ninguna actualización lo sobrescribe.La empresa, desde FlexHub o con el SDK.
Módulo de fueraLlega instalado con un módulo que la empresa no desarrolla.Solo el autor del módulo. En FlexHub se abre con un candado y el motivo del servidor (EditBlockReason).
Módulo propioEn una licencia de desarrollo, lo que forma parte del módulo que esa licencia publica.La empresa, y se publica con el módulo. Ver Módulos y Módulos Flex.

Las secciones del núcleo que trae toda instalación están en Secciones del núcleo.

Modelar una sección propia

Flex se construye encima de Ready To Go: las secciones comunes ya existen y la empresa añade las de su sector.

Crea la sección

En FlexHub → Secciones, pulsa Nuevo, escribe el Título y pulsa Aceptar. En FlexHub → Inicio el botón se llama Nueva sección. El servidor crea la tabla y consolida el esquema, y la ventana de la sección nueva abre en General. Ver Crear una sección.

Añade los campos

Elige el formato de cada campo (texto, entero, decimal, fecha, relación) y, si hace falta, un rol que le ponga la máscara. Los campos se crean y se colocan en Diseñando la ficha. Qué formatos y qué roles hay: Campos.

Relaciona y consulta

Un campo de formato Relación apunta a otra sección. Un informe consulta la sección y sus relaciones; un script se ejecuta cuando cambia la ficha; un documento dinámico la imprime.

Crear un objeto consolida el esquema del inquilino: tarda unos 11 segundos y bloquea la estructura mientras dura. Una edición solo lo exige en las columnas que marca FlexEditableDTO.NeedsConsolidation. Ver FlexConsolidateDTO en el SDK y Consolidar ahora en FlexHub.

Desde dónde se trabaja con la estructura

VíaQué haceDónde
FlexHubEditar secciones, campos, informes, documentos, scripts y algoritmos desde Play.FlexHub
SDK .NETLos métodos Flex_GetObjectAsync, Flex_ListObjectsAsync, Flex_GetEditablesAsync, Flex_GetEnumAsync, Flex_CreateObjectAsync, Flex_UpdateObjectAsync, Flex_DeleteObjectAsync, Flex_UndeleteObjectAsync, Flex_ApplyLayoutAsync, Flex_SetQuestionsAsync, Flex_ValidateCodeAsync y Flex_ConsolidateAsync del cliente.Cliente Dinaup
API RESTEjecutar un informe (POST /api/reports) o un documento dinámico (POST /api/dynamicdocuments). No edita estructura.Referencia de la API REST
EsquemaLeer secciones y campos tal como los publica el servidor.Esquema
PanelesUsar la estructura: los listados y fichas de Play.Paneles

Las opciones las publica el servidor. Los desplegables de FlexHub, los valores de un enum y las columnas que se pueden escribir salen de Flex_GetEditablesAsync y Flex_GetEnumAsync en tiempo de ejecución, no de una lista escrita en el cliente. Si una opción no aparece, el servidor de la empresa no la publica.

Siguiente: Secciones.

En esta página