Agosto de 2026

Núcleo 65.7587 a 65.7623 y SDK 10.15.0.32 a .42: API Flex por HTTP, inicio de sesión con código, campos autoincrementales y avisos por correo.

Notas de las versiones publicadas en agosto de 2026: primero el núcleo (Server Linux) y después el SDK .NET. El detalle de las numeraciones está en Cómo leer las versiones.

65.7623

31 de agosto de 2026

Sin cambios visibles.

65.7622

31 de agosto de 2026

Incluye las imágenes 65.7619 a 65.7621, publicadas sin etiqueta propia.

Mejoras

  • Avisos por correo al cliente: integración caída y recuperada, API que vuelve a dar errores tras horas sin fallos, y un resumen diario.
  • Solo se avisa cuando cambia el estado. Cada persona recibe como mucho 20 avisos al día.
  • Recap: once resúmenes periódicos por correo. recappreview devuelve el HTML de un resumen entre dos fechas, sin enviar nada.
  • Tres comandos administran las suscripciones al Recap y devuelven siempre la lista resultante.
  • Cuando un webhook saliente agota sus reintentos, se avisa al cliente.
  • Al confirmar una subida, el servidor rechaza un archivo cuyo original no está en ninguna réplica.

Correcciones

  • La caché de informes vuelve a escapar bien los textos. Sin ello, su sincronización fallaba sin avisar.

65.7618

29 de agosto de 2026

Mejoras

  • Se puede hacer como mucho una copia del esquema cada 3 horas. Si todavía no se puede, el motivo dice cuánto falta.
  • La copia sale de la réplica de lectura cuando la hay.

Correcciones

  • Los correos del servidor se ven igual con tema claro y con tema oscuro.

65.7617

29 de agosto de 2026

Correcciones

  • dumpschema y restoreschema vuelven a funcionar: usan la conexión directa a Postgres. Antes de reponer, se comprueba que esa conexión responde.

65.7616

28 de agosto de 2026

Mejoras

  • dumpschema y restoreschema copian y reponen el esquema de la licencia por la API. Cada comando lleva un token derivado de la clave maestra.

65.7615

27 de agosto de 2026

Mejoras

  • La forma de los mensajes que el servidor publica en Redis está declarada en el SDK: Dinaup.Redis.MonitoringEvent, MonitoringChange y ServerStatus. El JSON no cambia.

65.7614

27 de agosto de 2026

65.7607 a 65.7613: sin cambios visibles.

Mejoras

  • Las marcas de modificación de cada sección se copian en Redis: dinaup.srvs.kv.{serie}.seccion.{seccion}, con variantes por campo y por tabla.
  • Con esas marcas, una app externa sabe si un campo pudo cambiar desde un instante, sin preguntar al servidor.
  • flexlista devuelve las columnas de informe en su orden (posicion). orden deja de escribirse: nada lo lee.
  • flexobjeto publica, en solo lectura, cómo se une un algoritmo: 56 columnas de relación.
  • Catorce columnas de configuración con una lista cerrada de valores publican su enumerado en flexeditables. El editor las muestra como desplegable.

Correcciones

  • La API Flex no podía escribir columnas de informe: su lista de columnas permitidas nombraba nueve ya retiradas.
  • Ocho parámetros de columna parecían guardarse y no se guardaban: subtitulo, abreviatura, prefijo, sufijo, ancho, decimales, saltoDeColumna y filtroDefecto.
  • El icono de informes y scripts se leía como texto, y un valor mal formado lo borraba sin avisar.
  • El archivado nocturno del histórico archivaba filas antes de tiempo, y la propagación dinámica dejaba de verlas.
  • El cierre automático de fichajes se revisa cada 10 minutos.

65.7606

24 de agosto de 2026

Correcciones

  • El tiempo máximo de la API vuelve a ser de 30 s. Desde la 65.7601, lic_max_api_timeout recortaba a 4 s informes que siempre terminaban. Admite de 1 a 60 segundos.
  • Una columna date de Postgres llega como DateOnly y ya no hace fallar la consulta.

65.7605

24 de agosto de 2026

65.7602 a 65.7604: sin cambios visibles.

Correcciones

  • Catorce llamadas SQL fallaban antes de llegar a la base de datos, entre ellas el listado paginado de datos y datos2.

65.7601

24 de agosto de 2026

Mejoras

  • API Flex por HTTP para el editor web de estructura: flexobjeto, flexlista, flexeditables, flexenums, flexeditar, flexborrar, flexrestaurar, flexlayout y flexcrear.
  • Cubre sección, campo, informe, columna de informe, documento dinámico y script. Editar es un cambio parcial. Borrar es siempre una baja lógica, y flexrestaurar la deshace.
  • El autor de cada cambio sale siempre de la sesión HTTP.
  • Editor de scripts: flexfunciones devuelve el catálogo de funciones DinaScript, con las obsoletas marcadas.
  • flexvalidar compila sin guardar y devuelve el rango de caracteres del error. flexrutas lista los campos y relaciones que un script puede nombrar.
  • flexconsolidar aplica los cambios de esquema y bloquea la edición Flex mientras tanto.
  • Paneles por HTTP: flexdashboard, flexdashboardsave, flexdashboardwidgetadd, flexdashboardwidgetupdate, flexdashboardwidgetdelete y flexdashboardpositions.
  • Cada operación sobre un panel bloquea su fila mientras la lee, la cambia y la escribe. Dos personas en el mismo panel ya no se pisan.
  • Módulos y roles por HTTP: modulosgaleria, moduloplan, moduloinstalar, modulopublicar, objetoscorruptos y rol.
  • objetoscorruptos lista los objetos rotos con su motivo. rol lee o guarda un rol con dinaup_comando (leer o guardar).
  • Se retira el Terminal de Windows: el servidor sirve las aplicaciones web por HTTP.
  • Quince funciones DinaScript que solo podía ejecutar el Terminal pasan a obsoletas: mapas, exportación de tablas, envío del búfer y manipulación de registros.
  • Un script que llama a una de esas funciones recibe «función retirada» con su nombre. Los permisos 12, 16, 17 y 18 se retiran y sus números no se reutilizan.

Correcciones

  • Dar de alta un campo con obligatorio activo fallaba.
  • Guardar un panel sin mover nada ya no falla. Colocar una copia desactualizada se rechaza, en vez de responder bien sin guardar.
  • 223 columnas que nadie leía desaparecen de camposp, informes, relacionesindirectas, informescolumnas, impresionhtml, plantillasp y algoritmos. widget01 sale de la API Flex.
  • Desaparece la etiqueta abreviada de los campos: cuando la etiqueta no cabe, se recorta. etiquetaabreviada sale de la escritura Flex.
  • El informe enlazado de un script nunca se resolvía.

65.7600

12 de agosto de 2026

Mejoras

  • esquemadocumentos devuelve el código de la plantilla en forma legible.

65.7599

12 de agosto de 2026

Mejoras

  • Los campos con funcionalidad Autoincremental quedan bloqueados a la edición manual.

65.7598

12 de agosto de 2026

Mejoras

  • Funcionalidad Autoincremental para cualquier campo Entero. Al insertar, si el valor llega vacío o a cero, el servidor asigna el siguiente número libre.
  • Solo actúa en el alta, y respeta el valor si viene informado.

65.7597

11 de agosto de 2026

65.7596: sin cambios visibles.

Correcciones

  • El cierre automático de los fichajes abiertos fallaba en Linux al convertir zonas horarias, y ningún fichaje con plan se cerraba solo.

65.7595

11 de agosto de 2026

Mejoras

  • Iniciar cualquier descanso desde el kiosco exige un fichaje abierto, no solo los descansos retribuidos.

Correcciones

  • Los códigos de inicio de sesión no se publican en el canal de eventos Redis.
  • Mientras el fichaje sigue abierto, el tramo fuera de plan no escribe hora de salida.

65.7594

11 de agosto de 2026

Mejoras

  • Inicio de sesión con código de un solo uso: iniciarsesionconcodigo. Sin dinaup_codigo pide un código de 6 dígitos; con él, lo canjea por una sesión.
  • El servidor devuelve el código y no lo envía: hacerlo llegar al usuario es cosa de la integración.
  • El código vale 10 minutos y 5 intentos, y queda atado a la IP y al navegador. La respuesta es 200 exista o no la cuenta.

65.7593

10 de agosto de 2026

Mejoras

  • fichaje con accion=estado responde sin escribir: si hay jornada abierta, desde qué hora, los minutos del día y el fin del plan. Sin accion sigue fichando.
  • descanso devuelve TiposJornada con todos los descansos de la jornada, y los bloqueados con su motivo.
  • Un descanso retribuido exige un fichaje abierto de menos de 12 horas.

Correcciones

  • descanso sin el parámetro accion ya no responde con NullReference.

65.7592

10 de agosto de 2026

65.7591: sin cambios visibles.

Mejoras

  • El estado de impago de la licencia (Activa, Gracia, Aviso, Restringida, SoloLectura, Suspendida) se publica en estadolicencia. El servidor no lo aplica en ningún punto.
  • Un campo nuevo creado desde un formulario abierto nace en la pestaña activa, no en General.
  • Los empleados se administran siempre desde el área de clientes. Desaparece el ajuste lic_syncempleados.

Correcciones

  • Las salidas de lote excluyen los lotes cuyo estado no admite venta.

65.7590

4 de agosto de 2026

Mejoras

  • Las clases _ES generadas exponen _FieldIDs, y el GUID de cada campo en su comentario.

65.7589

2 de agosto de 2026

Mejoras

  • Los campos ProtoBuf de los informes se numeran por el ID de su columna: mover una columna no renumera las demás.
  • Cada fila lleva SchemaHash (SHA256 de etiqueta, nombre y tipo) para descartar datos serializados con otro esquema.

65.7588

2 de agosto de 2026

65.7587: sin cambios visibles.

Mejoras

  • Las licencias nuevas traen más categorías de ingresos y gastos: ingresos excepcionales, inmovilizado, impuestos y tasas, multas, indemnizaciones, impagados, donativos y gastos excepcionales.

Correcciones

  • Las columnas de texto de los informes generados nacen vacías en vez de Nothing.

SDK 10.15.0.42

30 de agosto de 2026

Mejoras

  • ResyncAsync devuelve un WriteResult con OkHosts y FailedHosts, igual que una escritura, en vez de sí o no.
  • Un host cuenta como correcto solo si lo confirma de forma explícita. Si no hay réplica que reparar, no descarga nada.

SDK 10.15.0.41

27 de agosto de 2026

Mejoras

  • RedisClient lee lo que el servidor publica en Redis desde el núcleo 65.7614: marcas de sección, estado del servidor y canal de monitorización.
  • Las formas están en Dinaup.Redis.MonitoringEvent, MonitoringChange y ServerStatus, con los nombres JSON que ya escribe el servidor.
  • StackExchange.Redis 3.0.17 pasa a ser la versión mínima.

SDK 10.15.0.40

27 de agosto de 2026

10.15.0.39: republicación sin cambios de código.

Correcciones

  • La documentación del ciclo de vida Flex decía lo contrario que el servidor. algoritmos es editable y plantillasp tiene borrado lógico en el motor; a los dos les falta un verbo de borrado por API.

Cambios que rompen

  • SetDashboardWidgetModeAsync, DeleteDashboardWidgetAsync y SetDashboardPositionsAsync devuelven Task(Of String): vacío si la escritura entró, y el motivo si no.
  • Antes devolvían el estado HTTP, que es 200 también cuando la operación se rechaza.

SDK 10.15.0.38

24 de agosto de 2026

Mejoras

  • Cliente de Flex, módulos, roles, paneles y scripts, lo que el núcleo 65.7601 sirve por HTTP: Flex_GetObjectAsync, Flex_ListObjectsAsync, Flex_GetEditablesAsync, Flex_GetEnumAsync y Flex_UpdateObjectAsync.
  • También Flex_DeleteObjectAsync, Flex_UndeleteObjectAsync, Flex_CreateObjectAsync, Flex_ApplyLayoutAsync, Flex_ConsolidateAsync, Flex_GetScriptFunctionsAsync, Flex_ValidateCodeAsync, Flex_GetRoutesAsync, GetDashboardForEditAsync y GetCorruptObjectsAsync.
  • DTO declarados una sola vez y compartidos con el servidor: FlexObjectLiteDTO, FlexRouteDTO, FlexValidationDTO, FlexValidationIssueDTO, FlexScriptFunctionDTO y RoleDTO.
  • También RoleSummaryDTO, DashboardEditDTO, DashboardWidgetEditDTO, BacklinkDTO y CorruptObjectDTO.

Correcciones

  • El módulo de un campo llegaba vacío desde el esquema: el servidor envía la clave Modules y el cliente leía Module.
  • Las escrituras Flex se rendían a los 9 segundos, y crear estructura tarda unos 11. Los tiempos máximos pasan a milisegundos reales.

SDK 10.15.0.37

18 de agosto de 2026

Correcciones

  • Min gana las sobrecargas Long y Decimal que ya tenía Max.
  • Con Option Strict Off, Min(Long, Long) usaba la sobrecarga de Integer y truncaba sin avisar, o desbordaba por encima de 2^31.

SDK 10.15.0.36

14 de agosto de 2026

Mejoras

  • VirtualFormDTO: constructor de opción con icono para las listas estáticas del cliente.

SDK 10.15.0.35

12 de agosto de 2026

Mejoras

  • DinaupFieldDTO.GetMaterialIcon() devuelve el icono Material de un campo, definido como extensión de su etiqueta.

SDK 10.15.0.34

11 de agosto de 2026

Mejoras

  • Session_CreateLoginCodeAsync pide al servidor un código de 6 dígitos de un solo uso. Devuelve SessionCreateLoginCodeResponse con Code y LoginCodeId.
  • Enviar el código al usuario es cosa de quien llama. La respuesta es 200 exista o no la cuenta; sin cuenta, el código llega vacío.
  • Session_SignInWithCodeAsync canjea el código por una sesión, la misma que crea el inicio con contraseña, 2FA incluido. Emparejado con el núcleo 65.7594.

SDK 10.15.0.33

10 de agosto de 2026

Mejoras

  • Timesheet_StatusAsync consulta el estado del fichaje sin escribir.
  • Break_StatusAsync devuelve los descansos bloqueados de la jornada con su motivo. Emparejado con el núcleo 65.7593.

SDK 10.15.0.32

10 de agosto de 2026

Mejoras

  • ImageSizeExtensions: VariantSuffix y VariantFileName traducen cada ImageSizeE al sufijo oficial del fichero de la variante. El número del enumerado no es el sufijo.

En esta página