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 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 añade la empresa se guarda igual. Las pantallas para editarla están en FlexHub.
Antes de empezar
- Para editar la estructura hace falta ser Administrador de la empresa. Ver Usuarios.
- Para leerla o escribirla desde código, el paquete NuGet
Dinaupy una clave API.
Los siete tipos de objeto
Cada tipo tiene su constante FlexObjectTypes en el SDK.
| Tipo | Constante del SDK | Qué es | Pantalla |
|---|---|---|---|
| Sección | Sections | Una tabla de datos de la empresa. | Secciones |
| Campo | Fields | Una columna de una sección. Su máscara es el rol. | Diseñando la ficha |
| Informe | Reports | Una consulta guardada sobre una sección. | Informes |
| Columna de informe | ReportColumns | Un dato que un informe saca por pantalla. Depende del informe, no de la sección. | Informes |
| Documento dinámico | PrintDocuments | Una plantilla HTML que se rellena con los datos de un registro. | Documentos |
| Script | Scripts | Código DinaScript que se ejecuta con un evento de la ficha. | Scripts |
| Algoritmo | Algorithms | Una fórmula que calcula un valor sobre una sección. | Algoritmos |
En la API todos comparten la ficha FlexObjectDTO: identificador, sección, etiqueta, palabra clave (Keyword), si está eliminado u obsoleto, la versión de fila y las columnas crudas en Values. Informes, documentos y algoritmos llevan además categoría y subcategoría.
De dónde viene cada objeto
| Origen | Qué es | Quién lo edita |
|---|---|---|
| Propio | Lo ha creado esta empresa. Ninguna actualización lo sobrescribe. | La empresa, desde FlexHub o con el SDK. |
| Módulo de fuera | Llega con un módulo que la empresa no desarrolla. | Solo el autor del módulo. FlexHub lo abre con un candado y el motivo (EditBlockReason). |
| Módulo propio | En una licencia de desarrollo, lo que forma parte del módulo que publica. | La empresa, y se publica con el módulo. Ver Módulos. |
Las secciones que trae toda instalación: Secciones del núcleo.
Modelar una sección propia
Crea la sección
En FlexHub → Secciones, pulsa Nuevo, escribe el Título y pulsa Aceptar. Ver Crear una sección.
Añade los campos
Elige el formato de cada campo y, si hace falta, un rol. Se crean en Diseñando la ficha. Formatos y roles: Campos.
Relaciona y consulta
Un campo Relación apunta a otra sección. Un informe la consulta, un script reacciona a sus cambios y un documento dinámico la imprime.
Crear un objeto consolida el esquema de la empresa: tarda unos 11 segundos y bloquea la estructura mientras dura. Una edición solo lo exige en las columnas que marca FlexEditableDTO.NeedsConsolidation; en FlexHub, con Consolidar ahora.
Desde dónde se trabaja con la estructura
| Vía | Qué hace | Dónde |
|---|---|---|
| FlexHub | Edita secciones, campos, informes, documentos, scripts y algoritmos desde Play. | FlexHub |
| SDK .NET | 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. | Cliente Dinaup |
| API REST | Ejecuta un informe (POST /api/reports) o un documento dinámico (POST /api/dynamicdocuments). No edita estructura. | Referencia de la API REST |
| Esquema | Lee secciones y campos tal como los publica el servidor. | Esquema |
| Paneles | Usa la estructura en los listados y fichas de Play. | Paneles |
Los desplegables de FlexHub, los valores de un enum y las columnas que se pueden escribir los publica el servidor (Flex_GetEditablesAsync, Flex_GetEnumAsync). Si una opción no aparece, el servidor de la empresa no la ofrece.