Algoritmos
La lista de algoritmos de la empresa, el alta por tipo y la ficha de cada uno: fórmula, filtro, unión, preguntas y decimales.
FlexHub → Algoritmos reúne los algoritmos de todas las secciones de la empresa. Un algoritmo es una consulta guardada que calcula un valor sobre una sección: la deuda de un cliente, el stock de un artículo. Se escribe en el mismo lenguaje que un script.
Los tipos de algoritmo y sus partes están en Algoritmos; el lenguaje, en DinaScript.
Antes de empezar
- Ser Administrador de la empresa. Ver FlexHub.
- Crear y editar dependen del servidor de la empresa: la ventana solo deja cambiar lo que ese servidor publica como editable.
- Un algoritmo no se borra ni se restaura desde FlexHub. Casi siempre llegan instalados con su módulo (Módulos).
- Un algoritmo también se abre desde su sección, en Contenido → Algoritmos (Secciones).
La lista
La tarjeta Algoritmos lleva Nuevo, el icono Recargar y el buscador, que busca en el nombre y en el nombre interno. El embudo Filtros tiene Sección, Estado (Obsoletos, Eliminados), Origen (Míos, De otros módulos), Categoría y Subcategoría. La rejilla sale agrupada por Categoría y tiene Algoritmo, Sección (botón que abre la ficha de la sección), Módulo, Modificado y Editar. Pulsar la fila hace lo mismo que Editar.
Vacía, sale Sin algoritmos con el motivo y lo que hacer: cambiar la búsqueda, pulsar Nuevo, quitar algún filtro o ver los de otros módulos. Con solo Míos marcado y algo escondido, Ver de otros módulos (N) añade a la lista los que vienen de otros módulos.
La lista es la misma pantalla que la de informes, con otro tipo: Informes.
La ficha de un algoritmo
Una ventana titulada Nuevo algoritmo o Editar algoritmo, con Releer (solo al editar), Aceptar y Cerrar. Dentro, el Nombre a todo lo ancho y las pestañas General, Fórmula, Unión o Fichas según el tipo, Preguntas (solo al editar) y Avanzado.
Encima del nombre sale la tarjeta Avisos, solo cuando hay algo que contar:
- El candado con el motivo, si no se puede escribir.
- «Este algoritmo está marcado como obsoleto: sigue existiendo, pero no se debe usar para nada nuevo.»
- Este algoritmo no tiene tipo. En rojo: no se puede ejecutar, así que donde se use no da resultado. El tipo no se cambia: crea el algoritmo de nuevo con Nuevo y elige su tipo.
- El resultado del último guardado.
Crear un algoritmo
Nuevo
Pulsa Nuevo en la tarjeta Algoritmos o en Contenido → Algoritmos de una sección. Si el servidor de la empresa no admite crear algoritmos desde la web, una notificación lo avisa y no se abre nada.
El tipo
La ventana Nuevo algoritmo muestra los cinco tipos. El tipo no se puede cambiar después: decide sobre qué secciones calcula y qué se puede escribir en la fórmula. Pulsa el que quieras.
| Tipo | Necesita | Qué calcula |
|---|---|---|
| Lineal | Una sección | Con los datos de la propia ficha, sin leer ninguna otra. |
| De dato | Una sección | Resume muchas fichas de una sección en un solo valor: un total, un recuento, una media. |
| Relacionado | Dos secciones | Con las fichas de otra sección que le corresponden a cada una de las suyas. |
| Calculadora | Ninguna sección | No lee ninguna ficha: combina constantes, funciones y preguntas. |
| De búsqueda | Una sección | No devuelve un valor: devuelve la lista de fichas que cumplen una condición, para filtrar un informe. |
Las secciones
Una ventana pregunta ¿Sobre qué sección calcula? Busca por nombre o palabra clave y pulsa la sección. Desde una sección no se pregunta: el algoritmo calcula sobre ella. Una calculadora no pide ninguna. En un relacionado, otra ventana pregunta ¿Con qué sección se une? Por cada ficha de la principal, el algoritmo lee las fichas de la sección que elijas. Cerrar, Esc o pulsar fuera cancelan el alta en cualquiera de estas ventanas.
Nombre, fórmula y unión
Se abre la ventana Nuevo algoritmo en General. Escribe el Nombre, de 3 caracteres como mínimo, y la fórmula en Fórmula. Un algoritmo de búsqueda arranca con la fórmula C.ID: lo que se escribe es el filtro. En un relacionado, añade en Unión al menos una pareja de campos. Los decimales empiezan en 2 y el algoritmo se crea como no público.
Aceptar
Pulsa Aceptar. El botón pasa a Creando… unos 11 segundos, y mientras tanto Cerrar está apagado: el servidor crea el algoritmo en una operación y consolida el esquema. Si algo no vale, no crea nada, y el aviso No se ha creado el algoritmo y la tarjeta Avisos dicen el motivo. Creado, sale el aviso Algoritmo creado y la ventana sigue abierta como Editar algoritmo, ya con la pestaña Preguntas.
Qué deja cambiar el servidor
La ventana sigue el contrato que publica el servidor de la empresa, no una regla fija:
| Situación | Qué se ve |
|---|---|
| El servidor publica columnas editables | Formulario con lo que deja cambiar, la fórmula, el filtro y la unión editables, y el botón Aceptar. |
| Publica columnas, pero no la fórmula, el filtro o la unión | Esa parte se lee con su propio candado y lo demás se edita. |
| Contesta con una lista vacía | Candado en Avisos, con el motivo: el servidor no deja editar algoritmos desde la web. La fórmula se sigue viendo y comprobando, y no hay Aceptar. |
| No se ha podido preguntar | No se ha podido leer qué se puede editar. La ventana abre en solo lectura: pulsa Releer. |
| El algoritmo está eliminado | Este algoritmo está eliminado y no se puede editar. Para recuperarlo, créalo de nuevo con Nuevo. |
| El algoritmo es de un módulo ajeno | El motivo del servidor, con el candado. |
General
La tarjeta Sobre qué calcula dice el tipo y lo que calcula, y muestra la Sección principal y, en un relacionado, la Sección relacionada. Una calculadora sale Sin sección, con «Es una calculadora: no lee ninguna ficha». El tipo y las secciones no se cambian: un algoritmo de otro tipo o sobre otra sección es otro algoritmo, y se crea con Nuevo.
La tarjeta Datos del algoritmo muestra como formulario lo que el servidor deja cambiar y como texto lo demás.
| Campo | Qué hace |
|---|---|
| Nombre | Va sobre las pestañas; si no se puede cambiar, se lee en esta tarjeta. Con él se elige el algoritmo en informes, paneles y fórmulas de otros algoritmos. Obligatorio, de 3 caracteres como mínimo. El nombre interno lo deriva el servidor y no se edita. |
| Descripción | Texto libre. |
| Categoría y Subcategoría | Dónde se archiva. Se eligen entre las que ya usan los algoritmos de la empresa, y el botón de al lado deja escribir una nueva. Elegir otra categoría de la lista vacía la subcategoría. |
| Cómo se presenta el resultado | Como dinero, como porcentaje o como un número normal. Tiene que coincidir con el del campo que use el algoritmo. |
| Filtro | Solo lectura: dice si hay filtro y si este tipo lo ejecuta. En uno de búsqueda se llama Filtrado de compatibilidad. Con filtro escrito en un lineal o en una calculadora, pide dejarlo vacío. |
El icono del algoritmo no se cambia desde FlexHub: la ventana de iconos solo existe para secciones y paneles.
Fórmula
La tarjeta La fórmula lleva Comprobar y, debajo del editor, el filtro. La fórmula es lo que calcula; el filtro acota sobre qué fichas se aplica, y vacío se aplica a todas.
- Comprobar pregunta al servidor si la fórmula sigue siendo válida con los campos de hoy, sin guardar nada. Usa las reglas de la ejecución: el tipo, las secciones y las preguntas del algoritmo. También se comprueba sola al abrir, al parar de escribir y al cambiar Y de ahí entran en Unión o Fichas.
- Un algoritmo sin tipo no se comprueba: el botón no sale y la barra de estado dice Sin comprobar con el motivo. Si al tipo le falta su sección, el subtítulo dice que no hay campos contra los que comprobar.
- Debajo del título, una nota dice qué gramática exige el tipo. En un lineal no se suma ni se cuenta. En un relacionado, los datos de la otra sección se resumen siempre y los de la propia nunca. En una calculadora solo caben constantes, funciones y preguntas.
- En uno de dato manda Y de ahí entran, de la pestaña Fichas. Con 1, la fórmula no resume; con 0 o más de 1, todo dato va resumido (sumado, contado, máximo).
- Guardar traduce la fórmula, pero no comprueba esa gramática: una fórmula que la incumple se guarda y falla al ejecutarse.
- El panel Problemas y la barra de estado son los del editor de scripts: Código. La barra dice DinaScript · fórmula, y su botón Pantalla completa lleva el editor a toda la pantalla; Esc lo devuelve.
Escribe F. y salen las funciones del motor; al pasar el ratón por un campo se ve su nombre y su explicación.
El filtro sale debajo de la fórmula, en su propio editor, con el rótulo Filtro: sobre qué fichas calcula. En uno de búsqueda, el rótulo es Filtrado de compatibilidad: qué fichas deja pasar. Si el servidor deja escribirlo, sale también vacío: es el único sitio para ponerle filtro a un algoritmo que no lo tenía. Se comprueba aparte, y su resultado sale bajo la caja: Comprobando el filtro…, el primer problema o El filtro no tiene errores.
| Aviso | Dónde sale |
|---|---|
| «En un algoritmo lineal el filtro no se ejecuta: solo se usa la fórmula. Con filtro, además, el cálculo va más lento. Deja el filtro vacío.» | En un lineal, encima de la caja. La caja se queda para poder vaciar un filtro que ya venía puesto. |
| «Una calculadora no lee ninguna sección, así que no hay fichas que filtrar. Con filtro, el algoritmo falla al usarse. Deja el filtro vacío.» | En una calculadora, encima de la caja. |
| «El filtro se escribe ficha a ficha, sin sumar ni contar: al revés que la fórmula.» | En uno de dato. En un relacionado dice «sin resumir», y en uno de búsqueda no se compara con la fórmula. |
| Sin sugerencias: este servidor todavía no publica el catálogo de funciones. | Encima de la fórmula, cuando no hay autocompletado. El editor colorea igual. |
Unión o Fichas
La pestaña se llama Unión en un relacionado y Fichas en uno de dato o de búsqueda; un lineal y una calculadora no la tienen. Sus tarjetas se titulan con los nombres de las secciones, por ejemplo «Cómo se unen Facturas con Clientes»:
- La unión, solo en Unión: parejas de campos, uno de cada sección, que tienen que valer lo mismo para que dos fichas vayan juntas. Lo normal es una sola: el identificador de la ficha principal con el campo de relación de la otra.
- Las fichas de la otra sección que entran por cada ficha propia, solo en Unión.
- Las fichas propias que entran en el cálculo.
Añadir pareja abre otra pareja, hasta 10; con más de una, las fichas tienen que coincidir en todas. Las parejas solo usan campos directos, sin entrar en relaciones. Una pareja a la que le falta un lado sale con el eslabón roto, en rojo. Sin ninguna pareja, Faltan los campos por los que se une ofrece Añadir pareja.
En las dos tarjetas de fichas, sin tope entran todas; con tope, el orden decide cuáles. Añadir orden abre Orden 1, Orden 2 y siguientes (hasta 6), cada uno con su interruptor De mayor a menor o De menor a mayor. Un orden puede usar el campo de una relación. Se saltan las primeras y Y de ahí entran ponen el tope. La fecha de referencia de cada lado es el campo de fecha por el que un informe o un panel lo acotan en el tiempo. Quitar la vacía.
En el lado de la otra sección, con Y de ahí entran a 1 el algoritmo devuelve un solo valor. Con 0 o más de 1 devuelve un conjunto, y la fórmula tiene que resumirlo.
Orden y tope van juntos: acotar sin ordenar deja el resultado al azar, y ordenar sin acotar no decide nada. Cada tarjeta avisa de lo que el servidor rechazaría: una pareja a medias, ninguna pareja, un tope sin orden o un orden sin tope.
Si no se puede escribir, los campos salen apagados y sin botones, y un lado vacío dice que entran todas las fichas. Si el servidor deja editar el algoritmo pero no la unión, un candado lo dice dentro de la pestaña.
Preguntas
Lo que el algoritmo pide antes de calcular, por ejemplo un porcentaje. En la fórmula se leen como v. seguido de su nombre interno. La tarjeta es la misma que en informes: Las preguntas. Si el algoritmo ya está publicado o en uso, las preguntas quedan fijadas: Editar solo cambia la etiqueta, la ayuda y el informe del desplegable.
Avanzado
La tarjeta Uso y decimales reúne lo que se configura una vez.
| Campo | Qué hace |
|---|---|
| Público | Encendido, el algoritmo se puede usar en informes, paneles y otros algoritmos; apagado, solo donde se haya añadido a mano. Un algoritmo que calcula un campo no puede ser público. |
| Decimales que se ven | Cómo sale el resultado en pantalla, de 0 a 9. |
| Decimales con los que calcula | Con qué precisión calcula antes de mostrarlo, de 0 a 11. Súbelos si el resultado pasa por divisiones o porcentajes: así el redondeo llega al final. |
Lo que no se puede cambiar se lee en una línea: Dónde se puede usar y Decimales («2 en pantalla, 2 al calcular»).
Guardar, releer y cerrar
Aceptar guarda en una operación la ficha, la fórmula, el filtro y la unión, y después las preguntas. Al editar, el botón pasa a Guardando…. Antes de enviar, la ventana se detiene y avisa en estos casos:
| Aviso | Cuándo sale |
|---|---|
| Nombre demasiado corto | El nombre tiene menos de 3 caracteres. |
| Falta la fórmula | La fórmula está vacía. |
| El filtro no se admite en este tipo | Has escrito un filtro en un lineal o en una calculadora. |
| La unión no está completa | En un relacionado, la pestaña Unión tiene algo que el servidor rechazaría. El aviso dice qué. |
| Falta el orden o el tope | En uno de dato o de búsqueda, hay un tope sin orden o un orden sin tope. |
| Sin cambios | No hay nada que guardar. |
- Lo que el servidor rechace sale en Avisos, una fila por Propiedad con su Motivo, por ejemplo La fórmula o Decimales que se ven. El aviso dice Hay propiedades sin guardar.
- Si el servidor rechaza el guardado entero, la notificación No se ha guardado el algoritmo trae el motivo y las preguntas tampoco se guardan.
- Si fallan las preguntas, Las preguntas no se han guardado dice el motivo y lo demás queda guardado.
- Releer trae lo que hay en el servidor. Con cambios pregunta antes con Releer y perder lo escrito; si es una fórmula larga, cópiala antes.
- Cerrar con cambios, también si solo son de las preguntas, pregunta con Cerrar sin guardar. Ni pulsar fuera ni Esc cierran la ventana.
- Editar la fórmula de un algoritmo que llegó con un módulo cambia lo que calcula en todo el ERP.