FileMaker gestiona muy bien las integraciones con ciertas bases de datos mediante ESS (External SQL Data Sources). Configurando la integración adecuadamente podemos lograr ver en nuestro gráfico de relaciones las tablas de otras bases de datos externas y tratarlas con total transparencia. Recurrir a esta solución es lo primero que me planteé en este proyecto de integración. Pero los problemas no tardaron en llegar…

Algunas versiones de SAP trabajan con bases de datos Oracle que permitirían acceso ESS. Digo permitirían pues, aunque la conexión es tecnológicamente factible, no es fácil que el departamento de IT autorize el acceso a las tablas de SAP…Comprensible, desde mi punto de vista, por otra parte. En mi caso esta posibilidad ni tan sólo llegué a considerarla pues la versión de SAP que necesitaba integrar utilizaba una base de datos propietaria (HANA) que no permite ESS y que parece ser que es la estándar de SAP actualmente. Leer más

El reto que hoy afrontamos es el siguiente: tenemos una lista de registros, imaginemos que son proyectos comerciales, y queremos ver subsumarios por diferentes criterios:

  1. Por fecha de creación del proyecto → para saber el ritmo mensual al que nuestros vendedores están generando leads.
  2. Por fecha de pedido → para saber el ritmo mensual de entrada de nuevos pedidos.
  3. Por fecha de entrega → para saber el ritmo mensual al que estamos sirviendo pedidos.

Además queremos ver la lista de proyectos ordenada por el código del proyecto, sin ningún tipo de subsumario, para ver el orden cronológico de creación de proyectos.

Nuestro objetivo es resolver el problema de la forma más simple: introduciendo un único subsumario en la lista. La idea es seleccionar desde un menú desplegable el criterio que queremos utilizar para la ordenación de la lista. Leer más

En esencia, una Virtual List (VL) nos permite ver los valores de una return delimited list contenidos en una variable o campo global de una tabla. Los campos de esta tabla deben ser unstored calc.  Esta característica, unida a que la variable o campo que contiene los valores es global, hace que el contenido de la tabla así creada sea session specific.

¿Para qué sirve semejante concepto…? Buena pregunta. El concepto, acuñado en 2011 por Bruce Robertson de Concise Design, permite resolver situaciones complejas, podríamos decir que “imposibles”, que se presentan habitualmente en el desarrollo con FileMaker. Además de resolverlas, lo hace de una forma simple y muy flexible, lo cual siempre es bienvenido. Es un concepto peculiar, muy potente y a la vez simple, que como desarrollador FileMaker conviene tenerlo en la “caja de herramientas”. Leer más

Esta es una técnica que permite crear múltiples registros “hijos” desde un “padre” utilizando tan sólo un paso de guión ‘Establecer campo’ y sin abandonar en ningún momento el contexto “padre”. Se atribuye la autoría a Ugo Di Luca.

Previamente a introducir la técnica, vamos a repasar el funcionamiento estándar de ‘Permitir la creación de registros en esta tabla a través de esta relación’.

Tenemos dos tablas “Padre” e “Hijo” entre las que establecemos la siguiente relación: Leer más

Campos calculados

En FileMaker, un campo calculado obtiene el valor según la fórmula que se utilice en “Especificar cálculo”.

Si todos los campos que participan en la fórmula pertenecen al mismo registro, entonces el resultado se almacenará en el campo. Cada vez que se edite alguno de los campos referenciados, el cálculo se refrescará y se actualizará el resultado en el campo. El resultado del cálculo queda almacenado en el campo calculado y se puede gestionar para indexaciones, búsquedas, relaciones, etc.

Si en la fórmula participa algún campo que no pertenece al mismo registro (campos de almacenamiento global, campos relacionados, campos de sumario u otros campos calculados no almacenados), entonces el resultado no se almacena en el campo calculado. El resultado no se escribe en ningún campo, sólo se guarda la expresión, la fórmula. Los campos de cálculo que contienen referencias a campos externos al registro no pueden ser almacenados en la BD y por lo tanto no permiten ser indexados. Leer más

Ejecutar un GTRR (Go To Related Records) desde una fila de portal tiene su gracia. Si la tabla destino del GTRR es la misma TO que la del portal, entonces no hay problema y todo funcionará como esperamos. Es decir clicando el botón en la fila del portal que ejecuta el GTRR nos llevará al registro relacionado deseado.

El problema es cuando la tabla destino del GTRR no es la misma TO que la del portal. En este caso cliquemos la fila que cliquemos siempre iremos a parar al mismo registro: al primero.

Leer más

Esta es una técnica muy interesante que facilita la búsqueda dentro de un determinado found set. Es bastante habitual “aterrizar” en una presentación vía GTRR, lo cual nos da como resultado un determinado found set. Por ejemplo. si estamos en una Empresa A y queremos ver las personas de esa empresa utilizaríamos el paso de guión GTRR para establecer el found set objetivo. Ahora bien, una vez tenemos la lista de las personas de la Empresa A, lo más habitual, es que necesitemos realizar búsquedas dentro de ese found set – recordemos que para buscar dentro de un found set, tenemos que utilizar el paso de guión Constrain Found Set en lugar del Perform Find, que nos buscaría en todos los registros de la tabla -. Realizar un Constrain Found Set, obviamente nos va a modificar el found set. Ahí se nos plantea un problema. ¿Cómo restablecemos el found set original cuando dejemos vacía la search box? Leer más

Abrir-cerrar archivo vs. abrir-cerrar sesión
Al abrir un .fmp12 los campos globales infieren el valor que tenían en el momento en que el archivo se cerró. Hay que tener en cuenta que los archivos .fmp12 para ser compartidos en un entorno multiusuario, deben estar abiertos bien en FileMaker Pro (podrá ser compartido entre 9 usuarios) o en FileMaker Server (podrá ser compartido hasta con 250 usuarios) o en FileMaker Server Advanced (sin limitación de usuarios). Leer más