Secciones
Qué es una sección de Flex, las cuatro filas de su familia, las columnas que el motor pone en toda tabla y sus propiedades.
Una sección es una tabla de datos de la empresa: clientes, facturas, vehículos, expedientes. Cada registro es una fila y cada campo, una columna. En la Flex API es el tipo FlexObjectTypes.Sections.
Antes de empezar
- Ser Administrador de la empresa para crear o cambiar secciones.
- Una sección de un módulo de fuera se lee pero no se cambia. Ver De dónde viene cada objeto.
- La pantalla: FlexHub → Secciones. Desde el SDK,
Flex_CreateObjectAsync(FlexObjectTypes.Sections, ...).
La familia de una sección
Al crear Artículos, el servidor crea cuatro filas de la estructura:
| Fila | Prefijo del título | Qué es | En el DTO |
|---|---|---|---|
| Principal | ninguno | La que se abre y guarda datos. La única que se navega. | IsBase = false, IsList = false |
| Plantilla base | Base - | Sus campos los heredan las secciones que derivan de ella. No guarda datos. | IsBase = true; la principal apunta a ella en BaseSectionId |
| Tabla de líneas | Lista - | Las filas que dependen de un registro de la principal (las líneas de una factura). | IsList = true; la principal apunta a ella en ListSectionId |
| Base de la tabla de líneas | Base Lista - | La plantilla base de la tabla de líneas. | IsBase = true, IsList = true |
- Un título que empiece por
Base -,Lista -,EDU -,Base Lista -,Base EDU -oBase Lista EDU -se rechaza al crear. - La tabla de líneas solo se usa si la principal tiene activada la columna
contienelista. - Un campo Relación solo apunta a una sección principal, nunca a una plantilla base ni a una tabla de líneas.
Nombre, palabra clave y origen
| Dato | Qué es |
|---|---|
Label | El título. Único en la empresa, distinguiendo mayúsculas. Mínimo 4 caracteres. |
Keyword | El nombre interno con el que la llaman el SDK, los scripts y las integraciones. Renombrar la sección cambia la palabra clave: lo que use el nombre viejo deja de encontrarla. |
ModuleName | Vacío si la sección es de esta empresa. Con texto, el módulo que la trae y la sobrescribe en cada actualización. |
Deleted, Obsolete | Baja lógica y marca de no usar. Flex_DeleteObjectAsync y Flex_UndeleteObjectAsync rechazan una sección: se retira. |
Version | La versión de la fila. Se reenvía al guardar para que el servidor rechace la escritura si otro la cambió entre medias. |
Propiedades que publica el servidor
Las columnas editables las publica Flex_GetEditablesAsync(FlexObjectTypes.Sections).
| Columna | Rótulo en FlexHub | Qué hace |
|---|---|---|
titulo | Título | El nombre de la sección. Obligatorio. |
etiquetasingular, etiquetaplural | Etiqueta singular, Etiqueta plural | Con qué palabra Play escribe «Nueva factura» en vez de «Nuevo registro». En blanco, usa el título. |
etiquetaesfemenino | El nombre es femenino | Concordancia de los textos automáticos. |
descripcion | Descripción | Texto libre. |
textoprincipaletiqueta | Etiqueta del texto principal | El nombre del dato que identifica un registro en una lista, un desplegable u otra ficha. |
textoprincipalauto | Texto principal automático | El motor compone la frase; la etiqueta pasa a Referencia y se bloquea. |
nombresrepetidos | Permitir nombres repetidos | Dos registros con el mismo texto principal. Solo surte efecto en la plantilla base. |
nonuevosdirectos | Mensaje al intentar agregar una ficha | Con texto, bloquea el alta y muestra ese texto. Vacío, se puede agregar. |
noeliminardatosmensaje | Mensaje al intentar eliminar una ficha | Igual, para eliminar. |
mensajenomodificar | Mensaje al intentar editar una ficha | Igual, para editar. |
obsoleto | Marcar esta sección como obsoleta | Retira la sección. |
derivable | Si de esta plantilla base pueden derivar otras secciones. FlexHub no lo muestra. | |
colorhex | El color de la ventana de la sección (ColorHex en el DTO). | |
iconobase64 | El identificador del icono (IconId en el DTO). FlexHub no lo escribe: el icono se cambia en El icono de una sección. |
Los tres mensajes cierran una sección que se rellena desde un script o una integración. En una sección que administra el motor, vaciar uno no abre la acción: al consolidar vuelve el del servidor.
Retirar una sección
Retirar es poner obsoleto a 1. La sección deja de salir en el menú y en la API y no recibe índices nuevos, pero sus datos siguen ahí. En una plantilla base, sus derivadas también quedan obsoletas. Con 0 vuelve.
- En FlexHub, card Retirar la sección de la pestaña General. No sale si el servidor de la empresa no publica
obsoleto. - Por la Flex API,
Flex_UpdateObjectAsync(FlexObjectTypes.Sections, id, patch)conobsoleto. - Una tabla de líneas no se retira sola: se retira su sección principal.
Retirar no es eliminar. La Flex API no elimina secciones.
Las columnas que pone el motor
Toda sección y su tabla de líneas llevan estas columnas además de sus campos. Se piden por su nombre en los filtros y el orden de POST /api/reports (Referencia de la API REST).
| Columna | Qué guarda |
|---|---|
id | El identificador del registro, un GUID. |
nombre | El texto principal. |
plantillapid | La sección a la que pertenece la fila. |
eliminado | Baja lógica: 0 activo, 1 eliminado. |
fecha | Alta del dato, en UTC (FechaAltaDato_UTC en el SDK). |
fecham | Última modificación, en UTC (FechaUltimaModificacion_UTC). |
fechaia | Índice de actividad, en UTC (FechaIndiceActividad_UTC). Es la marca con la que sincroniza PG Sync. |
fechasyn | Fecha de sincronización, en UTC (Fechadesincronizacion_UTC). |
posicion | El orden manual de la fila. |
usuarioid | El usuario que creó el dato (UsuarioCreadorDelDAto). |
ubicacion | La empresa de la fila (Empresa). |
El SDK tiene estos nombres como constantes de ParametrosDeConfiguracionDeAplicacionesD. ToWriteOperation() de DinaupRowBase quita del diccionario fecha, fecham, fechaia, fechasyn, modificado, eliminado, usuarioid y ubicacionid: los pone el servidor.
Para crear varios campos sin consolidar cada vez: Formato y rol.