Saltar enlaces

Controle los procesos automáticamente con una máquina de procesos.

JQuery

Ejecutar guiones en FileMaker Server desde RuntimeAl utilizar bases de datos FileMaker en el Red puede existir el requisito de que los procesos se ejecuten bajo demanda o controlados automáticamente en el tiempo por un cliente de la red local. Las áreas de aplicación de un motor de procesos pueden ser muy diversas. Si su FileMakerBase de datos acceso desde el exterior a través de WebDirect puede utilizar un motor de procesos para crear documentos, por ejemplo, y ponerlos a disposición para su descarga como archivos PDF. Como el proceso se ejecuta en un cliente de la red local, los archivos creados pueden guardarse fácilmente en una unidad de red dentro de la red local. Otro campo de aplicación son los llamados cron jobs, es decir, procesos que el motor de procesos ejecuta a una hora predefinida y, en su caso, a intervalos determinados. En este artículo se explica cómo puede crear un motor de procesos sencillo con cronjobs controlados por tiempo y un registro de ejecución en FileMaker.

Empleado virtual con cliente FileMaker propio

El punto de partida para una máquina de proceso es su propio Mac o PC Windows con un cliente FileMaker instalado. En FileMaker, sólo se llama a una presentación (aut.tasks), que se crea con un Activador de guiones se proporcionó. Tan pronto como el Cuadro del diseño aut.procesos se crea un nuevo registro de datos, la máquina de proceso comienza a procesar el proceso suministrado en el registro de datos.

Cuadro de actividades y registro como base

Para poder ejecutar procesos y guardarlos como registro, primero necesita dos nuevas tablas de datos:

  • Procesos (1 registro de datos = 1 operación de tratamiento para la máquina de operaciones)
  • Registro de procesos (1 registro de datos = 1 operación procesada por la máquina de operaciones)

La mesa Procesos normalmente no contiene ningún registro de datos y se rellena con un registro de datos bajo control de script en el momento en que la máquina de proceso debe llevar a cabo un proceso específico. Tan pronto como se haya ejecutado el proceso, se crea un nuevo registro de datos en el registro y el registro de datos se guarda en el archivo Procesos borrado de nuevo.

La máquina de proceso está escuchando...

Para que el motor de procesos sepa en tiempo real que se va a ejecutar un nuevo proceso, necesitamos una disposición correspondiente que contenga registros de datos de la tabla Procesos en la pantalla. En nuestro archivo de ejemplo, este diseño se llama aut.procesos. Este diseño tiene un diseñoGuión-trigger (BeiDatensatzLaden), que ejecuta el script para procesar la operación en cuanto se crea un nuevo registro de datos en el archivo Procesos se encuentra.

Disposición de la secuencia de comandos para el motor de procesos

Si se añade un nuevo registro de datos al Procesos el motor de procesos ejecuta automáticamente el script máquina de proceso lay. con el activador de script trigger.layout off. El requisito previo para ello es que la máquina de proceso permanezca en el trazado durante todo el periodo. aut.procesos ya que sólo este diseño tiene el activador de script configurado.

En el equipo de proceso, puede asegurarse automáticamente de que el cliente acceda a la presentación directamente después de iniciar la base de datos FileMaker. aut.procesos cambios. Para ello, establezca un usuario independiente para el equipo de transacciones como usuario estándar en FileMaker Pro (Archivo > Opciones de archivo, "Iniciar sesión con"). Si su solución tiene un script de inicio, ahora puede simplemente interceptar el usuario para el motor de proceso y utilizar una construcción como:

If (Get(AccountName) = "TransactionMachine")
   Ir a Layout [ "aut.processes" ]
Fin (If)

Tenga en cuenta que la impresión y creación de archivos PDF también es posible en WebDirect desde la plataforma FileMaker 16. Por lo tanto, si utiliza FileMaker Servidor 16 y FileMaker Pro 16 y sólo desea crear impresiones o archivos PDF en WebDirect, es posible que la solución presentada aquí ya no sea necesaria para su solución.

Tres scripts para controlar todos los procesos

Nuestra solución de ejemplo de FileMaker contiene tres guiones con los que se pueden controlar fácilmente todos los procesos:

máquina de proceso lay. - Este script es ejecutado por el motor de procesos tan pronto como la tabla Procesos se ha creado un nuevo registro de datos. La llamada se realiza a través de la presentación aut.procesos con el activador de script de diseño mencionado anteriormente. La parte para ejecutar procesos se ha añadido al script con el parámetro trigger.layout para que también sea posible utilizar este script con otros parámetros para otras tareas.

Como el comando que debe ejecutar el motor de procesos se encuentra directamente en la base de datos Procesos puede definir cualquier comando de proceso y procesarlo en este script. El principio básico es siempre el mismo:

If [ Get(ScriptParameter) = "trigger.Layout" ]

El script sólo se ejecuta si se ha definido con el parámetro script trigger.layout se llama.

   Si [ Operaciones::Comando = "Enviar datos" ]

La siguiente secuencia de comandos sólo se ejecuta si el comando transmitido Enviar datos lee.

      Su proceso

Aquí puede programar cualquier proceso

      Borrar registro de datos/consulta [Con diálogo: Desactivado].

Elimina de la tabla el registro de datos procesado Procesos

      Ejecutar script [ "ts.process log"; Parámetro: ... ]

Inserta un nuevo registro de datos en el registro del proceso, teniendo en cuenta todas las variables del guión.

   Fin (si)

Fin (si)

ts.entrar_proceso - Utilice este script para introducir cualquier operación en la tabla Procesos en. Por lo tanto, puede llamar a este script desde cualquier parte de su base de datos. Todos los comandos utilizados también se pueden almacenar en FileMaker Go o en WebDirect. En nuestro ejemplo, el script acepta cuatro parámetros de script: Comando, correo electrónico, ID de datos y nombre de usuario. Estos cuatro parámetros se introducen simplemente como un nuevo registro de datos en el archivo Procesos introducido. Por supuesto, puede ampliar este script individualmente y, por ejemplo, transmitir otras claves como un ID de oferta, un ID de factura o un ID de cliente. En este caso, debe introducir la tabla Procesos y también añadir estos campos al registro de transacciones.

El script tiene una estructura muy simple: En la primera parte, los parámetros del script (separados por un apóstrofo) se escriben en variables. Para ello, utilizamos el método Función personalizada "StringColumns". También puede utilizar una tecnología diferente para esto y transferir los parámetros como una lista normal, por ejemplo, que se puede leer en el script utilizando la función "GetValue ()".

ts.transaction log - En cuanto el guión ts.entrar_proceso un nuevo registro de datos en la tabla Procesos y la máquina de proceso se encuentra en el diseño aut.procesos el proceso es iniciado automáticamente por el script máquina de proceso lay. y se procesa el registro de datos de la tabla Procesos borrado. El guión ts.transaction log con variables idénticas para crear un nuevo registro de datos en el registro del proceso. La estructura del script es en gran medida idéntica a la del script ts.entrar_procesocon la diferencia de que el registro de datos se almacena en el log y no en la tabla Procesos se genera.

Datos maestros de los procesos

En algunos casos, puede necesitar datos maestros adicionales para un proceso, por ejemplo para poder enviar documentos por correo electrónico. Entonces querrá predefinir, por ejemplo, qué asunto y qué texto debe contener el correo electrónico correspondiente. Para ello, hemos creado la tabla de datos Maestro de transacciones creados. Cada registro de datos de esta tabla corresponde a los datos maestros de un proceso. El valor del campo Nombre_Proceso corresponde al nombre de un proceso, ya que también lo utiliza el script ts.entrar_proceso se utiliza.

Definir procesos en el maestro de procesos

Marcadores de posición opcionales para correos electrónicos

Si lo desea, puede definir marcadores de posición en los textos de plantilla "Asunto del correo electrónico" y "Texto del correo electrónico", que podrá sustituir por datos reales en los subguiones del script "lay.processmachine". En nuestro script de ejemplo, ambos textos se crean utilizando SQL-consulta en las variables 1TP4Asunto_correo y 1TP4Correo_texto escrito. Por ejemplo, si desea sustituir un marcador de posición {nombre_cliente} en una plantilla de texto, añada el comando 'Reemplazar ( )' a la consulta SQL en estas dos definiciones de variables:

Variable set [$email_text; Value: Exchange ( SQL-Query; "{Nombre_Cliente}"; Table::Nombre_Cliente) ]

De este modo, puede utilizar tantos marcadores de posición como desee en sus plantillas de correo electrónico, que puede definir en las definiciones de las variables 1TP4Asunto_correo y 1TP4Correo_texto pueden sustituirse fácilmente por datos reales.

Procesos controlados por tiempo con cronjobs (requiere plugin)

También hemos equipado nuestro fichero de ejemplo para un motor de procesos con la opción de procesar cron jobs controlados por tiempo. La fecha de inicio y fin, la hora deseada y el intervalo pueden definirse en el maestro de procesos. Para utilizar esta función, es necesario utilizar la función Plugins MBS FileMaker ya que se requiere el comando 'FM.RunScript'. Como alternativa, se puede utilizar el comando 'BE_ExecuteScript' de la aplicación gratuita Plugins de BaseElements se puede utilizar.

Configuración del script de monitorización en la máquina de proceso

Todos los cronjobs están controlados por el script cron.operación máquina que puede llamar mediante un script de temporizador cada diez minutos, por ejemplo. En nuestra solución de ejemplo, hemos incluido un script cron.timerscript integrado, que controla la ejecución del script cron.operación máquina cada 600 segundos, es decir, cada 10 minutos. Puede integrar esta secuencia de comandos en la secuencia de comandos de inicio de su solución consultando el nombre de usuario, por ejemplo, para que el temporizador se inicie automáticamente cuando el usuario de la máquina de proceso inicie sesión.

El guión cron.operación máquina primero cambia a la disposición Maestro de transacciones y llama a todos los cronjobs activos. A continuación, se inicia un bucle de ejecución en el que se comprueba si cada cronjob encontrado debe ejecutarse. En caso afirmativo, se ejecuta el cronjob correspondiente.

Para los cronjobs, puede definir la ejecución de cualquier script y cualquier parámetro de script correspondiente. Por lo tanto, un cronjob no ejecuta ningún sub-script del script máquina de proceso lay. pero puede definir cualquier guión que incluya parámetros para un cronjob en el maestro de procesos. Por lo tanto, un cronjob puede ejecutar teóricamente cualquier guión de su solución FileMaker de forma controlada en el tiempo.

Descargar archivo de muestra para FileMaker 13 a 16

Nuestro archivo de ejemplo contiene todos los guiones mencionados en el artículo para la integración en sus propias soluciones FileMaker. La tabla "Tabla de datos" contenida en la solución de ejemplo es sólo para fines de demostración y debe corresponder a tablas de datos de su propia solución FileMaker.

Descargar archivo de ejemplo de FileMaker

Integrar el motor de procesos en gFM-Business

Como parte de una licencia abierta, también puede integrar fácilmente este ejemplo de máquina de transacciones en el sistema ERP gFM-Business. Los propietarios de una licencia gFM-Business Custom pueden hacer que integremos la funcionalidad de un motor de procesos en su solución.

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 guión deseado con el ratón y cópielo en el portapapeles mediante el menú [Editar - Copiar] o 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 el script previamente copiado utilizando el comando de menú [Editar - Pegar] otra vez.

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 la función [Importar...] en 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 se desea importar una tabla que incluya todos los datos, puede hacerse con el comando [Archivo > Importar registros de datos > Archivo] en el diálogo de importación. En el cuadro de diálogo de importación, la tabla de destino debe ser 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 > Gestionar > Listas de valores]seleccione el Lista de valores con el ratón y copie el Lista de valores al portapapeles a través del menú [Editar - Copiar]o 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 copiada anteriormente mediante el comando de menú [Editar - Pegar] otra vez.

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

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

Deja un comentario

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í: Controlar automáticamente los procesos de FileMaker con un motor de procesos