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. |
cde, cdf | Control por empleado, Control por fecha | Ver Control de datos. |
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.
Control de datos
cde (control de datos por empleado) pone en cada registro el campo automático Empleado principal, que se rellena con el empleado de la sesión. cdf (control de datos por fecha) pone el campo Fecha del dato. Las secciones que crea Flex nacen con las dos a 1.
- Con
0, el campo deja de salir en la ficha, en la API y en el modelo de MyDinaup. Sus datos siguen en la tabla y vuelven con1. - Solo se cambian en la plantilla base de la sección principal. Sus derivadas y su tabla de líneas copian el valor al consolidar, y el servidor rechaza el cambio en ellas.
- El cambio pide consolidar.
- En FlexHub, card Control de datos de la pestaña General. Por la Flex API,
Flex_UpdateObjectAsync(FlexObjectTypes.Sections, id, patch)concdeocdf.
Registros en el módulo
Con Exportar sus registros en el módulo marcado, los registros de la sección pueden viajar en el módulo que la publica. Cada registro lleva la casilla Exportar en módulos en la pestaña Registro de su ficha, y al publicar entran los que la tienen marcada.
- La casilla solo la ve la licencia que desarrolla el módulo de la sección. Quien instala el módulo no la ve.
- Pide desmarcar Control por empleado y Control por fecha. Si se marca cualquiera de los dos, deja de exportar al consolidar.
- Solo se cambia en la plantilla base. Las derivadas la copian, y las líneas viajan con la sección que las lista.
- El cambio pide consolidar: la casilla de la ficha aparece o desaparece entonces.
- En FlexHub, card Control de datos de la pestaña General.
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 (Informes y documentos por la API).
| 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.