Saltar enlaces

Registro de eventos en bases de datos FileMaker.

Formación, cursos y coaching sobre FileMaker

Registro automático de eventos en FileMakerA todos nos ha pasado: un registro de datos ya no existe o se ha modificado, pero nadie quiere haberlo hecho. Esto es especialmente molesto cuando ya no se sabe qué valores había antes en los campos. Si existen, una copia de seguridad puede ayudar en estos casos, pero restaurar una copia de seguridad suele llevar bastante tiempo.

Es mucho más fácil tratar estos problemas si el cambio del valor de un campo se registra directamente (o se "rastrea"). En versiones anteriores de FileMaker, esto se podía realizar mediante diálogos de entrada, por ejemplo, haciendo clic en el botón [Aceptar] y un Guión para grabar el proceso. Con las versiones más recientes de FileMaker, todo esto es posible gracias a Activador de guiones es ahora mucho más fácil. Este artículo muestra cómo hacerlo con un archivo de ejemplo correspondiente.

Las ventajas de registrar los acontecimientos

Registro de eventos relacionados con el clienteSi los eventos de campo y las rutinas se registran de forma coherente en las bases de datos de FileMaker, se obtienen ventajas tangibles durante el funcionamiento. Cada vez que se realiza un cambio, el evento se registra en un registro que puede visualizarse como un registro completo o vincularse a otro registro. Base de datos pueden visualizarse. Por ejemplo, todos los eventos relacionados con el cliente pueden mostrarse en un diseño y se puede obtener una visión general de todos los eventos que se han llevado a cabo en relación con el cliente llamado. El sitio Cuadro para el registro de eventos contiene información estándar como fecha, nombre de usuario, tabla o Clave primaria para los cambios de campo, los valores reales del campo antes y después de realizar el cambio. Esto permite otras funciones como la recuperación (deshacer ilimitadamente en cualquier orden) de los datos modificados - quizás remotamente comparable al "buzón de voz visual para datos" ;-)

Manos a la obra: ¿Qué se necesita?

El desarrollo de un registro de eventos para una solución FileMaker existente puede realizarse con recursos manejables. En primer lugar, se necesita una nueva tabla que contenga todos los campos relevantes para la gestión de eventos. En el archivo de ejemplo, la tabla se llama "Registro de eventos".

Descripción del campo Registro de sucesos

Cada suceso registrado corresponde a un registro de datos en esta tabla, la clave primaria automática se denomina _pk_Ereignis_ID. La clave de referencia con la que se relaciona el evento se guarda en el campo de clave _fk_Fremdschlüssel. Por ejemplo, si se modifica un campo de una base de datos de clientes, este campo se rellena con la clave primaria de la base de datos de clientes. La clave de este campo se introduce en el campo Clave externa escrito.

Para los cambios de campo, esta tabla también contiene los campos Campo_contenido_antes y Campo_contenido_despuésque contienen el contenido del campo antes y después del cambio realizado.

Dos guiones son suficientes.

Para registrar un evento, ahora se necesitan dos scripts además de la tabla: Un script se utiliza para la entrada pura de la tabla Registro de sucesos y debe llamarse con parámetros de script, y se requiere otro script para registrar los cambios de campo, que se llama mediante un activador de script en el campo respectivo.

Introducir un evento

Veamos primero el script de entrada pura [ts.event log], que acepta los siguientes parámetros de script:

  • Clave externa
  • Archivo
  • Origen (guión/campo, etc.)
  • Estado (OK, error)
  • Cuadro
  • Texto
  • Tipo de transacción
  • Tipo de clave foránea
  • Contenido del campo antes de
  • Contenido del campo después de

El script en sí tiene una estructura simple, escribe los valores contenidos en el parámetro del script primero en variables y luego en un nuevo registro de datos en la tabla de registro de eventos.

Registro de eventos: Script 1

Este script puede ser llamado por cualquier otro script que deba realizar entradas en el registro de eventos. En la solución de ejemplo, también se realizó el registro de eventos de campo, que este script también llama.

Script [ts.record_field_event]

El guión ts.record_field_event se establece para cada campo como activador de script [OnObjectEnter] y [OnObjectExit]. Puede aceptar una pestaña de un control de pestañas como parámetro de script opcional si el campo se encuentra en un área de un control de pestañas. Esto es necesario para que el script pueda cambiar a la pestaña correcta una vez creado el registro de datos de registro. Control de registros en el diseño de destino.

El script comprueba primero si la variable del sistema $$field está lleno o vacío. Si esta variable del sistema está vacía, el usuario ha introducido un campo y el script rellena la variable del sistema $$field con el nombre del campo activo y $$field_content_before con el contenido del campo antes del cambio. A continuación, se sale del script, ya que éste no tiene que hacer nada más al introducir un campo.

Si la variable del sistema $$field ya está rellenado, es posible que el usuario haya cambiado el contenido del campo y esté abandonándolo. El script comprueba ahora si se ha modificado el contenido del campo y crea un registro de datos en el registro de sucesos si se ha realizado un cambio llamando al subíndice ts.registro de eventos. Si el campo se encuentra en un control de pestañas y el nombre de la pestaña se suministró como parámetro de script, el script cambia ahora a la pestaña especificada, ya que de lo contrario cambiaría al control de pestañas predeterminado después de la entrada. Por último, el script vuelve a borrar las variables 1TP4rider, $$field, $$field_content_before y $$field_content_aftery el juego puede empezar de nuevo desde el principio, porque la variable del sistema $$field está ahora vacía de nuevo.

Registro de eventos: Registrar evento de campo

Asignar campos con activadores de secuencias de comandos

En el último paso, hay que dotar a los campos deseados de activadores de guiones para que la entrada en el registro de eventos tenga lugar cuando se modifique un campo. Deben configurarse dos activadores de guiones para cada campo, cada uno de los cuales llama al mismo guión:

Activador de secuencias de comandos para el registro de valores de campo y el registro de eventos

  • ConObjetoEntrar ["ts.field_event_record"; {parámetro: "tab"}]
  • WithObjectExit ["ts.field_event_record"; {parámetro: "tab"}]

El parámetro de script "Tab" es opcional y sólo se especifica si el campo se encuentra en un control de tabulación, como en el archivo de ejemplo. Se especifica el nombre de la pestaña, que se utiliza en el script Inspector en la pestaña [Posición] del Nombre debe especificarse.

Archivo de ejemplo para el registro de valores de campo

Al final de este artículo puede descargar un archivo de ejemplo para FileMaker 12 en el que se ha realizado el registro de eventos con registro de valores de campo. Puede utilizar este archivo de ejemplo como base para su propia base de datos o para transferir las funciones a su propia solución FileMaker.

Lista de eventos en el archivo de ejemplo

Descargar archivo de muestra para FileMaker 12

Descargar archivo de ejemplo de FileMaker

Cómo transferir secuencias de comandos del archivo de ejemplo a su solución

Los guiones se pueden transferir fácilmente de una solución FileMaker a otra a través del portapapeles. Sólo tiene que abrir el cuadro de diálogo Gestionar guionesSeleccione el script deseado con el ratón y cópielo en el portapapeles utilizando el menú [Edición - Copiar] o la combinación de teclas [Ctrl/Cmd-C]. A continuación, abra el mismo cuadro de diálogo en la solución de destino y simplemente pegue de nuevo el script previamente copiado utilizando el comando de menú [Edición - Pegar].

Para transferir tablas del archivo de ejemplo a su solución

Las tablas pueden insertarse en una solución existente de varias maneras. La forma más sencilla es importar la tabla utilizando el botón [Importar...] del cuadro de diálogo Gestionar la base de datos. Todas las tablas que deben importarse de la solución de origen pueden seleccionarse en un diálogo posterior. Por lo tanto, este método es especialmente adecuado si deben importarse varias tablas al mismo tiempo. Si sólo debe importarse una tabla, también puede hacerse a través del portapapeles como un script. Si debe importarse una tabla junto con sus datos, puede hacerse con el comando [Archivo > Importar registros > Archivo]. En el diálogo de importación, la tabla de destino Nueva mesa debe especificarse.

Para transferir listas de valores del archivo de ejemplo a su solución

Las listas de valores se pueden importar fácilmente de una solución FileMaker a otra a través del portapapeles. Basta con abrir el cuadro de diálogo en [Archivo/Archivo > Gestionar > Listas de valores], seleccionar la lista de valores deseada y hacer clic en [Importar]. Lista de valores con el ratón y copie la lista de valores en el portapapeles utilizando el menú [Edición - Copiar] o la combinación de teclas [Ctrl/Cmd-C]. A continuación, abra el mismo cuadro de diálogo en la solución de destino y pegue la lista de valores previamente copiada utilizando el comando de menú [Edición - Pegar].

Cómo transferir sus propias funciones del archivo de ejemplo a su solución

Haga clic en el botón [Importar] del cuadro de diálogo [Archivo > Gestionar > Funciones personalizadas...] y, a continuación, seleccione el archivo de muestra. Seleccione las funciones personalizadas deseadas en el siguiente cuadro de diálogo y confírmelo. Tenga en cuenta que esta función sólo está disponible en FileMaker Pro Advanced, pero no en FileMaker Pro.

Deja un comentario

  1. Genial, nos ha ayudado mucho. ¡Muchas gracias por todo!

Comparta esta página:

Software ERP tan flexible como su empresa.
Estaremos encantados de asesorarle.

Software ERP personalizable para Mac, Windows e iOS.

Usted se encuentra aquí: Grabación de eventos arbitrarios en bases de datos FileMaker