Saltar enlaces

Técnicas avanzadas de secuencias de comandos en FileMaker

4.3 Técnicas avanzadas de scripting

Ahora que ya domina los conceptos básicos de los guiones en FileMaker, es el momento de pasar a las técnicas avanzadas que le ayudarán a desarrollar aplicaciones más complejas y sólidas. En este tutorial, nos centraremos en la gestión de errores en los guiones, la depuración y documentación de guiones y la creación de flujos de trabajo complejos con varios guiones. Estas técnicas mejorarán su capacidad para crear aplicaciones FileMaker potentes y fiables.

Tratamiento de errores en scripts

Introducción al tratamiento de errores

La gestión de errores es una parte esencial de cualquier guión bien desarrollado. En FileMaker, esto significa que su Guión para que pueda reaccionar ante situaciones inesperadas, como cuando no se encuentra un archivo, falla un cálculo o un usuario realiza una entrada no válida. Un tratamiento eficaz de los errores garantiza que el script no se "cuelgue" sin más, sino que reconozca el error, reaccione adecuadamente e informe al usuario.

Aspectos básicos de la gestión de errores
  1. Detección de errores mediante Configurar el registro de errores: Con el paso de guión Configurar grabación de errores [Activado] puede evitar que FileMaker muestre automáticamente un mensaje de error cuando se produce un error. En su lugar, puede gestionar el error usted mismo.
  2. Compruebe el estado de error con Get(NºÚltimoError): Debe comprobar el estado de error después de cada paso crítico del script. Get(NºÚltimoError) devuelve un código de error que puede introducir en un campo En-condición para reaccionar ante el error. Ejemplo:
     
    Configurar grabación de errores [Activado]
    Abrir fichero ["Base de datos.fmp12"]
    Si [Get(LastErrorNo) ≠ 0]
        Mostrar cuadro de diálogo propio ["Error"; "No se pudo abrir el archivo"].
        Salir del script actual
    Fin If
  3. Insertar pasos de tratamiento de erroresSi se detecta un error, puede añadir los pasos adecuados para solucionar el problema o notificárselo al usuario. Esto podría incluir deshacer los cambios, guardar un registro de errores o sugerir una acción alternativa.
Gestión avanzada de errores
  1. Uso de bucles para intentos repetidos: En algunos casos, puede ser útil realizar varios reintentos en caso de error antes de que finalice el script. Ejemplo:
     
    Establecer variable [$Vtry; valor: 1]
    Bucle
        Abrir fichero ["Base de datos.fmp12"]
        Si [Get(LastErrorNo) = 0]
            Salir del bucle cuando [Get(LastErrorNo) = 0]
        En caso contrario Si [1TP4Intento ≥ 3]
            Mostrar cuadro de diálogo propio ["Error"; "El archivo no se ha podido abrir después de 3 intentos"].
            Salir del script actual
        Fin If

        Salir del bucle si [1TP4Intento > 3]
        Establecer variable [1TP4Intento; valor: 1TP4Intento + 1].
    Fin del bucle

    Registro de erroresEn aplicaciones complejas, puede resultar útil mantener un registro de errores en el que se guarden los detalles de los errores que se han producido. Esto se puede hacer en una tabla de registro de errores independiente de la base de datos de FileMaker.

  2. Ejemplo:

     Si [Get(LastErrorNo) ≠ 0]
        Ir a Diseño [Nombre: "Registro de errores"]
        Nuevo registro de datos/consulta 
        Establecer valor de campo [ErrorLog::Date; Get( SystemTimestamp )]
        Establecer valor de campo [ErrorLog::ErrorCode; Get(LastErrorNo)]
        Establecer valor de campo [Error log::User; Get( AccountName )]
        Guardar registro de datos/consulta [Con diálogo: Desactivado].
    Fin If

FileMaker ERP con una estructura de scripts y un módulo de desarrollador claros y totalmente documentados.

Más información
Software ERP profesional

Depuración y documentación de secuencias de comandos

Introducción a la depuración

La depuración de guiones es un paso fundamental para garantizar que los guiones funcionen correctamente y tengan el rendimiento esperado. El espacio de trabajo de guiones de FileMaker proporciona potentes herramientas para la depuración, como el depurador de guiones y la función Visor de datos.

Utilizar el depurador de scripts
  1. Activar el depurador de scriptsAbra el área de trabajo de script e inicie el depurador de script mediante Herramientas > Depurador de scripts. El depurador le permite recorrer su script paso a paso y comprobar el estado actual de cada variable y cada paso del script.
  2. Ejecución paso a pasoUtilice los botones del depurador de scripts para ejecutar su script paso a paso. Esto le permite ver exactamente dónde se produce un error o se generan resultados inesperados.
  3. Establecer puntos de interrupciónPuede establecer puntos de interrupción en su script para detener la ejecución en un punto determinado y comprobar el estado actual. Esto resulta especialmente útil para analizar áreas complejas del script.
Utilizar el visor de datos

El Visor de datos muestra el valor de los campos, variables y cálculos en tiempo real mientras se ejecuta el script. Esto resulta especialmente útil para observar los efectos de los distintos pasos del guion en los datos.

  1. Visor de datos abiertos: Se puede acceder al Visor de datos a través de Herramientas > Visor de datos puede abrirse.
  2. Controlar las expresionesAñada los campos o variables que desea monitorizar para comprobar sus valores durante la ejecución del script.
Documentación de secuencias de comandos

Una documentación clara y bien estructurada de sus guiones es importante para garantizar el mantenimiento y la comprensión de su solución FileMaker. Una buena documentación no sólo contiene comentarios en el propio guión, sino también una descripción del guión, su finalidad y los parámetros utilizados.

  1. Comente su guión: Utiliza el Comentario-en el espacio de trabajo del script para documentar cada sección del script. Explica qué hace cada sección y por qué es necesaria:
     
    # Este script comprueba si se puede abrir el archivo y emite un mensaje de error en caso contrario.
     
  2. Añadir descripción del scriptDescripción: Introduzca una descripción general del script en el área de trabajo del script. Esto le ayuda a usted o a otros desarrolladores a entender rápidamente lo que hace el script.
  3. Gestión del control de versionesLleva un registro de las distintas versiones de tus guiones, especialmente cuando hagas cambios. Anota cuándo y por qué se hicieron los cambios.

gFM-Business Open Source FileMaker Basis-ERP

El software para el curso intensivo

Descargar gratis
ERP de código abierto basado en Claris FileMaker

Cree flujos de trabajo complejos con múltiples secuencias de comandos

Introducción a los flujos de trabajo complejos

En las aplicaciones FileMaker de mayor tamaño, a menudo es necesario que varios guiones trabajen juntos para implementar un flujo de trabajo completo. Estos guiones pueden ejecutarse uno tras otro o enlazarse mediante condiciones y activadores para asignar procesos complejos.

Scripts para la creación de módulos
  1. División en módulosDivida las tareas complejas en módulos más pequeños y reutilizables. Cada uno de estos módulos debe cumplir una tarea específica y puede ser llamado por otros scripts, por ejemplo, un módulo de script que valide datos, otro que genere un informe y otro que exporte el informe.
  2. Utilizar parámetros de scriptPase parámetros entre los scripts para hacerlos flexibles y reutilizables. Esto le permite utilizar un script en diferentes contextos con diferentes datos de entrada, por ejemplo:
     
    # Guión principal
    Si [Get(ScriptParameter) = "Informe"]
        Ejecutar script ["Generar informe"]
    De lo contrario If [Get(ScriptParameter) = "Validation"]
        
    Ejecutar script
    Fin If
     
  3. Guiones de llamada: Uso Ejecutar guión-pasos para llamar a otros scripts dentro de un script principal. Esto permite crear flujos de trabajo complejos compuestos por varios pasos y módulos.
Gestión de errores y flujos de trabajo
  1. Control de errores en flujos de trabajo complejosEn los flujos de trabajo con varios scripts, es importante coordinar la supervisión de errores entre los scripts. Asegúrese de que los códigos de error se transmiten entre los scripts y de que el script principal reacciona en consecuencia.
  2. Estrategias de desmantelamientoEn los flujos de trabajo críticos, puede ser necesario aplicar una estrategia de reversión en la que se deshagan todos los cambios si se produce un error. Esto puede lograrse restableciendo los campos o borrando los registros de datos recién creados.
Optimización y rendimiento
  1. Optimizar guionesAsegúrese de que sus scripts se ejecutan de la forma más eficiente posible evitando pasos innecesarios y minimizando el número de consultas a la base de datos.
  2. Minimizar los tiempos de cargaCuando se trabaja con grandes cantidades de datos o cálculos complejos, hay que asegurarse de minimizar los tiempos de carga. Utiliza índices, consultas optimizadas y diseños sencillos.

Uso de guiones parciales y parámetros de guiones en FileMaker

En FileMaker puede Guiones parciales y Parámetros del script para maximizar la eficacia y la reutilización de los guiones. Guiones parciales son scripts más pequeños y especializados que son llamados por otros scripts para realizar tareas recurrentes. Esto permite estructurar mejor el código y facilita el mantenimiento, ya que los cambios en un subguión surten efecto automáticamente en todos los guiones principales que lo llaman. Parámetros del script permiten pasar información entre distintos guiones, lo que aumenta la flexibilidad y la dinámica de las llamadas a guiones.

Ejemplo: Utilización de guiones parciales y parámetros de guiones

Supongamos que queremos utilizar un elemento que se repite con frecuencia como el Crear un nuevo registro de datos y reutilizar la transferencia de información a este conjunto de datos en varios guiones.

1. script principal: Llamada a un script parcial

En el script principal se llama a un script parcial que crea el nuevo registro de datos. A Parámetros del script se utiliza para enviar los datos a transferir al script parcial:

# Script principal: "Crear nuevo cliente"
Establecer variable [1TP4Nombre de cliente; valor: "Max Mustermann"]
Establecer variable [$número de cliente; valor: "12345"]
# Llamada al script parcial con parámetros transferidos
Ejecutar Script ["Sistema de clientes"; Parameter: JSONSetElement ( "{}" ; ["name"; 1TP4CustomerName; JSONString]; ["number"; 1TP4CustomerNumber; JSONString] )]

En este ejemplo, se llama al subguión "Creación de cliente". La información sobre el nombre del cliente y el número de cliente se transfiere en formato JSON como parámetros del script. Esto ofrece la ventaja de que se pueden transferir varios puntos de datos en un solo parámetro.

2. subíndice: Procesamiento de parámetros de script

El subguión "Creación de cliente" toma el parámetro del guión, extrae la información y crea un nuevo registro de datos basado en los datos transferidos:

 
# Guión parcial: "Instalación del cliente"
Establecer variable [$param; Valor: Get ( ScriptParameter )]
# Extracción de los datos del parámetro JSON
Establecer variable [$name; Value: JSONGetElement ($param; "nombre")].
Establecer variable [$number; Value: JSONGetElement ($param; "nummer")].
# Nuevo registro de datos basado en los valores transferidos
Nuevo registro de datos/consulta
Establecer valor de campo [Cliente::Nombre; $name]
Establecer valor de campo [Cliente::Número; $número]

En este subguión, el parámetro JSON pasado se analiza utilizando JSONGetElement procesados. Las variables $name y 1TP4Número se extraen y se introducen en los campos correspondientes del nuevo registro de datos.

Pasar múltiples parámetros de script

En FileMaker se pueden pasar varios parámetros de guión de distintas formas. Un método común es pasar los parámetros como Lista y pasarlo después con la función ObtenerValor() individualmente. Alternativamente, se puede utilizar un método en gFM-Business en el que los parámetros están separados por superíndices (|). A continuación, estos valores se calculan utilizando el "ColumnasDeCadenas" dividirse de nuevo y procesarse individualmente. Estos enfoques permiten la transferencia flexible y estructurada de varios parámetros, que luego pueden seguir procesándose en las secuencias de comandos correspondientes.

Ventajas de los guiones parciales y los parámetros de guion

  1. ReutilizaciónLos subguiones pueden ser llamados por varios guiones, lo que hace que el código sea modular y fácil de mantener. Los cambios en un subguión sólo tienen que hacerse una vez y afectan a todos los guiones que lo llaman.
  2. FlexibilidadLos parámetros de los scripts pueden utilizarse para pasar información dinámica a los sub-scripts, lo que hace que los scripts sean más flexibles. El uso de parámetros JSON permite pasar estructuras de datos complejas en un único parámetro.
  3. Claridad y estructuraAl dividir los scripts en sub-scripts más pequeños, el código queda más claro y mejor estructurado. Esto no sólo facilita el desarrollo, sino también la depuración.

Consejos, instrucciones e interfaces para FileMaker y gFM-Business ERP

Consejos e instrucciones
Consejos e instrucciones de FileMaker

Preguntas frecuentes sobre las funciones avanzadas de script

  • ¿Cómo puedo comprobar si hay errores en los guiones de FileMaker y corregirlos?
    • En FileMaker, puede controlar la gestión de errores mediante el comando "Establecer registro de errores", que impide que se muestren los mensajes de error estándar. A continuación, puede utilizar el comando "Get(LastErrorNo)" para comprobar el estado de error y definir las acciones adecuadas en función del código de error. Esto permite ejecutar rutas de script alternativas o mostrar mensajes de error personalizados para informar a los usuarios.
  • ¿Cómo funciona la depuración de guiones en FileMaker?
    • La herramienta Depurador de guiones de FileMaker Pro le permite recorrer guiones paso a paso. Puede supervisar el progreso de un guión en tiempo real, establecer puntos de interrupción y comprobar el estado actual de las variables y los campos. Esto le permite localizar y corregir errores rápidamente. Puede iniciar el depurador en el menú "Herramientas" > "Depurador de guiones".
  • No veo el menú de herramientas, ¿cómo puedo activarlo?
    • Si no encuentra ningún menú de herramientas en la barra de menús, vaya a las preferencias de FileMaker (Mac en "FileMaker Pro", Windows en "Edición") y seleccione la opción "Utilizar herramientas avanzadas" en la primera pestaña "General". Confirme el diálogo y reinicie FileMaker Pro una vez.
  • ¿Cómo puedo enlazar varios guiones en FileMaker?
    • En FileMaker, puede enlazar varios guiones utilizando el comando "Ejecutar guion" para llamar a otro guion. Esto le permite dividir procesos complejos en guiones más pequeños y manejables que funcionan juntos. Al dividir los guiones en subguiones, puede reutilizar tareas específicas y mejorar la capacidad de mantenimiento de sus soluciones de guiones.
  • ¿Qué son los guiones parciales y cuándo debo utilizarlos?
    • Los subguiones son guiones más pequeños y especializados que se ejecutan como parte de un guión más grande. Son útiles para encapsular tareas recurrentes como la creación de nuevos conjuntos de datos o la navegación entre diseños. Los scripts parciales promueven una estructura limpia y modular en sus scripts, lo que facilita el mantenimiento. Si un proceso se utiliza con frecuencia, debería externalizarlo a un subguión y llamarlo desde otros guiones.
  • ¿Cómo se utilizan los parámetros de guión en FileMaker?
    • Los parámetros de script permiten pasar datos de un script a otro. Al llamar a un script, puede pasar uno o más parámetros al script utilizando el comando "Ejecutar script" y especificando los parámetros. Dentro del script, puede recuperar y utilizar los parámetros con el comando "Get(ScriptParameter)". Esto resulta útil para controlar dinámicamente las acciones que ejecuta el script llamado.
  • ¿Cómo puedo pasar varios parámetros de script?
    • Para pasar varios parámetros de script, puede resumirlos en una lista o en formato JSON. Puede utilizar la función "List()" para transferir parámetros en una lista separada por saltos de línea y recuperarlos en el script mediante la función GetValue("Get (ScriptParameter)"; number). El número identifica el parámetro x del script. Alternativamente, puede utilizar JSON para pasar parámetros en un formato estructurado y luego utilizar funciones como "JSONGetElement" para acceder a los parámetros específicos.
    • gFM-Business utiliza la función "StringColumns" para varios parámetros de script, que separa los parámetros con un apóstrofo "|". Este procedimiento tiene la ventaja de que los parámetros pasados también pueden contener separaciones de línea.
  • ¿Cómo se gestionan las variables globales en los scripts?
    • Las variables globales (que comienzan por $$) almacenan datos a los que se puede acceder durante toda la sesión, incluso una vez finalizado el script. Puede definir variables globales con el comando "Establecer variable" en un script y recuperar o cambiar su valor en cualquier momento. Son especialmente útiles para compartir datos entre distintos scripts o diseños. Sin embargo, como persisten hasta que se cierra el archivo, las variables globales deben utilizarse con precaución para evitar interferencias no deseadas.
  • ¿Cómo funcionan las variables locales en los guiones de FileMaker?
    • Las variables locales (empezando por $) sólo son válidas durante el tiempo de ejecución de un script. A menudo se utilizan para almacenar temporalmente datos que sólo se necesitan en un guión o subpaso específico. En cuanto finaliza el script, la variable local se borra. Las variables locales son muy adecuadas para guardar resultados de cálculos o valores intermedios sin que permanezcan en toda la sesión.
  • ¿Cómo puedo utilizar eficazmente las condiciones en un guión?
    • Puede utilizar condiciones "If" para controlar el flujo de un script basándose en determinados criterios. Puede comprobar si se cumple una condición y ejecutar diferentes acciones en función del resultado. Un ejemplo típico sería una condición que comprueba si un campo está vacío antes de crear un nuevo registro de datos. Para casos más complejos, también se pueden utilizar condiciones if anidadas o escenarios if/else para comprobar múltiples condiciones, para lo cual se puede utilizar el comando "Else if".
  • ¿Cómo puedo utilizar repeticiones y bucles en scripts para procesar datos?
    • Los bucles permiten repetir una serie de acciones hasta que se cumpla una determinada condición. Un ejemplo típico sería recorrer todos los registros de datos de un resultado de búsqueda y actualizar un campo específico. Inicie el bucle con el comando "Bucle" y termínelo con "Salir del bucle cuando" cuando se cumpla la condición deseada, por ejemplo, cuando se haya alcanzado el último registro de datos.
  • ¿Cómo puedo hacer que los guiones y subguiones sean modulares y reutilizables?
    • Para que los scripts sean modulares y reutilizables, debe externalizar los procesos generales a sub-scripts y utilizar parámetros de script para controlar el proceso de forma dinámica. Esto reduce las redundancias y permite reutilizar los scripts en diferentes contextos. También puede utilizar variables globales y locales de forma eficaz para transferir datos dentro de un script o entre scripts sin tener que crear nuevos scripts cada vez. Si es necesario, también puede transferir varios parámetros de script de un script a otro, que puede leer utilizando la función "Get(ScriptResult)".
4.3 Técnicas avanzadas de scripting

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í: Técnicas avanzadas de scripting | FileMaker capítulo 4.3