4.3 Técnicas avançadas de scripting
Agora que já domina as noções básicas de scripting na FileMaker, está na altura de avançar para técnicas avançadas que o ajudarão a desenvolver aplicações mais complexas e robustas. Neste tutorial, iremos focar-nos no tratamento de erros em scripts, na depuração e documentação de scripts e na criação de fluxos de trabalho complexos com vários scripts. Estas técnicas irão melhorar a sua capacidade de criar aplicações FileMaker poderosas e fiáveis.
Índice
- 4.3 Técnicas avançadas de scripting
- Tratamento de erros em scripts
- FileMaker ERP com estrutura de script clara e totalmente documentada e módulo de desenvolvimento.
- gFM-Business Open Source FileMaker Basis ERP O software para um curso intensivo
- Criar fluxos de trabalho complexos com vários scripts
- Utilização de scripts parciais e parâmetros de scripts na FileMaker
- Passar vários parâmetros de script
- Vantagens dos scripts parciais e dos parâmetros de script
- Dicas, instruções e interfaces para FileMaker e gFM-Business ERP
- Perguntas frequentes sobre funções avançadas de script
Tratamento de erros em scripts
Introdução ao tratamento de erros
O tratamento de erros é uma parte essencial de qualquer script bem desenvolvido. Na FileMaker, isto significa que o seu Script para que possa reagir a situações inesperadas, como quando um ficheiro não é encontrado, quando um cálculo falha ou quando um utilizador faz uma entrada inválida. Um tratamento eficaz dos erros garante que o script não se limita a "bloquear", mas reconhece o erro, reage adequadamente e informa o utilizador.
Noções básicas de tratamento de erros
- Deteção de erros através de
Definir registo de errosCom o passo do guiãoDefinir registo de erros [Ligado]pode impedir que o FileMaker exiba automaticamente uma mensagem de erro quando ocorre um erro. Em vez disso, pode tratar do tratamento de erros você mesmo. - Verificar o estado do erro com
Obter(LastErrorNo)O utilizador deve verificar o estado do erro após cada etapa crítica do script.Obter(LastErrorNo)devolve um código de erro que pode ser introduzido numaQuando-condição para reagir ao erro. Exemplo:Definir registo de erros [Ligado]
Abrir ficheiro ["Database.fmp12"]
Se [Get(LastErrorNo) ≠ 0]
Mostrar a própria caixa de diálogo ["Erro"; "O ficheiro não pôde ser aberto"].
Sair do script atual
Fim Se - Inserir etapas de tratamento de errosSe for detectado um erro, pode adicionar passos adequados para resolver o problema ou notificar o utilizador. Isto pode incluir anular alterações, guardar um registo de erros ou sugerir uma ação alternativa.
Tratamento avançado de erros
- Utilização de loops para tentativas repetidasEm alguns casos, pode ser útil fazer várias tentativas no caso de um erro antes de o script ser encerrado. Exemplo:
Definir variável [$Vtry; valor: 1]
Laço
Abrir ficheiro ["Database.fmp12"]
Se [Get(LastErrorNo) = 0]
Sair do ciclo quando [Get(LastErrorNo) = 0]
Caso contrário Se [$attempt ≥ 3]
Mostrar a própria caixa de diálogo ["Erro"; "Não foi possível abrir o ficheiro após 3 tentativas"].
Sair do script atual
Fim SeSair do ciclo se [$attempt > 3]
Definir variável [$attempt; valor: $attempt + 1]
Fim do cicloRegisto de errosEm aplicações complexas, pode ser útil manter um registo de erros no qual são guardados os detalhes dos erros que ocorreram. Isto pode ser feito numa tabela de registo de erros separada na sua base de dados FileMaker.
Exemplo:
Se [Get(LastErrorNo) ≠ 0]Ir para o Layout [Nome: "Registo de erros"]
Novo registo de dados/consulta
Definir o valor do campo [ErrorLog::Date; Get( SystemTimestamp )]
Definir o valor do campo [ErrorLog::ErrorCode; Get(LastErrorNo)]
Definir o valor do campo [Error log::User; Get( AccountName )]
Guardar registo de dados/consulta [Com diálogo: Off]
Fim Se
FileMaker ERP com estrutura de script clara e totalmente documentada e módulo de desenvolvimento.
Mais informações
Depuração e documentação de scripts
Introdução à depuração
A depuração de scripts é um passo crítico para garantir que os seus scripts funcionam corretamente e têm o desempenho esperado. O Script Workspace no FileMaker fornece ferramentas poderosas para depuração, tais como o Script Debugger e a função Data Viewer.
Utilizar o depurador de scripts
- Ativar o depurador de scriptsAbra o espaço de trabalho do script e inicie o depurador de scripts através de Ferramentas > Depurador de scripts. O depurador permite-lhe percorrer o seu script passo a passo e verificar o estado atual de cada variável e de cada passo do script.
- Execução passo a passoUtilize os botões do depurador de scripts para executar o seu script passo a passo. Isto permite-lhe ver exatamente onde ocorre um erro ou são gerados resultados inesperados.
- Definir pontos de paragemPode definir pontos de interrupção no seu script para parar a execução num determinado ponto e verificar o estado atual. Isto é particularmente útil para analisar áreas complexas do seu script.
Utilizar o visualizador de dados
O Visualizador de dados mostra o valor dos campos, variáveis e cálculos em tempo real enquanto o script está a ser executado. Isto é particularmente útil para observar os efeitos de passos individuais do script nos seus dados.
- Visualizador de dados abertosO visualizador de dados pode ser aberto através de Ferramentas > Visualizador de dados pode ser aberto.
- Monitorizar expressõesAdicione os campos ou variáveis que pretende monitorizar para verificar os respectivos valores durante a execução do script.
Documentação do guião
Uma documentação clara e bem estruturada dos seus scripts é importante para garantir a manutenção e a compreensibilidade da sua solução FileMaker. Uma boa documentação não contém apenas comentários no próprio script, mas também uma descrição do script, o seu objetivo e os parâmetros utilizados.
- Comentar o seu guião: Utilizar o
Comentário-função no espaço de trabalho do script para documentar cada secção do seu script. Explique o que cada secção faz e porque é necessária.exemplo:# Este script verifica se o ficheiro pode ser aberto e emite uma mensagem de erro em caso negativo. - Adicionar descrição do scriptDescrição geral do script: Introduza uma descrição geral do script no espaço de trabalho do script. Isto ajuda-o a si ou a outros programadores a compreender rapidamente o que o script faz.
- Gerir o controlo de versõesMantenha um registo das diferentes versões dos seus guiões, especialmente quando faz alterações. Anote quando e porquê foram feitas as alterações.
gFM-Business Código aberto FileMaker Base-ERP
O software para o curso intensivo
Descarregar gratuitamente
Criar fluxos de trabalho complexos com vários scripts
Introdução a fluxos de trabalho complexos
Em aplicações FileMaker de maior dimensão, é frequente vários scripts terem de trabalhar em conjunto para implementar um fluxo de trabalho completo. Estes scripts podem ser executados um após o outro ou ligados entre si através de condições e accionadores para mapear processos complexos.
Scripts para criação de módulos
- Divisão em módulosDividir tarefas complexas em módulos mais pequenos e reutilizáveis. Cada um destes módulos deve cumprir uma tarefa específica e pode ser chamado por outros scripts, por exemplo, um módulo de script que valida dados, outro que gera um relatório e outro que exporta o relatório.
- Utilizar parâmetros de scriptPassar parâmetros entre os scripts para os tornar flexíveis e reutilizáveis. Isto permite-lhe utilizar um script em diferentes contextos com diferentes dados de entrada, por exemplo:
# Guião principalExecutar o script
Se [Get(ScriptParameter) = "Report"]
Executar o script ["Gerar relatório"]
Caso contrário, se [Get(ScriptParameter) = "Validation"]
Fim Se - Guiões de chamadas: Utilização
Executar guião-passo para chamar outros scripts dentro de um script principal. Isto torna possível criar fluxos de trabalho complexos que consistem em várias etapas e módulos.
Tratamento de erros e gestão do fluxo de trabalho
- Monitorização de erros em fluxos de trabalho complexosEm fluxos de trabalho com vários scripts, é importante coordenar a monitorização de erros entre os scripts. Certifique-se de que os códigos de erro são transmitidos entre os scripts e que o script principal reage em conformidade.
- Estratégias de reversãoEm fluxos de trabalho críticos, pode ser necessário implementar uma estratégia de reversão na qual todas as alterações são anuladas se ocorrer um erro. Isto pode ser conseguido através da reposição de campos ou da eliminação de registos de dados recentemente criados.
Otimização e desempenho
- Otimizar scriptsCertifique-se de que os seus scripts são executados da forma mais eficiente possível, evitando passos desnecessários e minimizando o número de consultas à base de dados.
- Minimizar os tempos de carregamentoAo trabalhar com grandes quantidades de dados ou cálculos complexos, deve garantir que os tempos de carregamento são reduzidos ao mínimo. Utilize índices, consultas optimizadas e layouts simples.
Utilização de scripts parciais e parâmetros de scripts na FileMaker
No FileMaker pode Scripts parciais e Parâmetros do guião pode ser utilizado para maximizar a eficiência e a reutilização de scripts. Scripts parciais são scripts mais pequenos e especializados que são chamados por outros scripts para executar tarefas recorrentes. Isto permite uma melhor estruturação do código e facilita a manutenção, uma vez que as alterações a um sub-script têm automaticamente efeito em todos os scripts principais que o chamam. Parâmetros do guião permitem a passagem de informações entre diferentes scripts, o que aumenta a flexibilidade e a dinâmica das chamadas de script.
Exemplo: Utilização de scripts parciais e parâmetros de scripts
Suponhamos que queremos utilizar um elemento frequentemente recorrente, como o Criar um novo registo de dados e reutilizar a transferência de informações para este conjunto de dados em vários guiões.
1. guião principal: Chamada de um script parcial
Um subscrito é chamado no script principal que cria o novo registo de dados. A Parâmetros do guião é utilizado para enviar os dados a transferir para o script parcial:
# Script principal: "Criar novo cliente"Definir variável [1TP4Nome do cliente; valor: "Max Mustermann"]
Definir variável [$número do cliente; valor: "12345"]
# Chamada do guião parcial com parâmetros transferidos
Executar Script ["Customer system"; Parameter: JSONSetElement ( "{}" ; ["name"; 1TP4CustomerName; JSONString]; ["number"; 1TP4CustomerNumber; JSONString] )]Neste exemplo, é chamado o sub-script "Customer creation". As informações sobre o nome e o número do cliente são transferidas em formato JSON como parâmetros de script. Isto oferece a vantagem de vários pontos de dados poderem ser transferidos num único parâmetro.
2. subscrito: Processamento de parâmetros de script
O sub-script "Criação de cliente" recebe o parâmetro do script, extrai as informações e cria um novo registo de dados com base nos dados transferidos:
# Script parcial: "Instalação do cliente"
Definir variável [$param; Value: Get ( ScriptParameter )]
# Extrair os dados do parâmetro JSON
Definir variável [$name; Value: JSONGetElement ($param; "name")]
Definir variável [$number; Value: JSONGetElement ($param; "nummer")]
# Novo registo de dados baseado nos valores transferidos
Novo registo de dados/consulta
Definir o valor do campo [Customer::Name; $name]
Definir valor do campo [Customer::Number; $number]Neste sub-script, o parâmetro JSON passado é analisado utilizando JSONGetElement processadas. As variáveis $name e $número são extraídos e introduzidos nos campos correspondentes do novo registo de dados.
Passar vários parâmetros de script
Vários parâmetros de script podem ser passados na FileMaker de diferentes formas. Um método comum é passar os parâmetros como Lista e passá-lo mais tarde com a função GetValue() individualmente. Em alternativa, pode ser utilizado um método no gFM-Business em que os parâmetros são separados por sobrescritos (|) são separados. Estes valores são então calculados utilizando o "StringColumns" divididos novamente e processados individualmente. Estas abordagens permitem a transferência flexível e estruturada de vários parâmetros, que podem depois ser processados nos scripts correspondentes.
Vantagens dos scripts parciais e dos parâmetros de script
- ReutilizaçãoOs subscripts podem ser chamados por vários scripts, o que torna o código modular e fácil de manter. As alterações a um sub-script só precisam de ser feitas uma vez e afectam todos os scripts que o chamam.
- FlexibilidadeOs parâmetros de script podem ser utilizados para transmitir informações dinâmicas a sub-scripts, o que torna os scripts mais flexíveis. A utilização de parâmetros JSON permite passar estruturas de dados complexas num único parâmetro.
- Clareza e estruturaAo dividir os scripts em sub-scripts mais pequenos, o código torna-se mais claro e melhor estruturado. Isto não só facilita o desenvolvimento, como também a depuração.
Dicas, instruções e interfaces para FileMaker e gFM-Business ERP
Sugestões e instruções
Perguntas frequentes sobre funções avançadas de script
- Como é que posso verificar se existem erros nos scripts da FileMaker e corrigi-los?
- Na FileMaker, pode controlar o tratamento de erros utilizando o comando "Set Error Logging", que impede a apresentação de mensagens de erro padrão. Pode então utilizar o comando "Get(LastErrorNo)" para verificar o estado do erro e definir acções apropriadas com base no código de erro. Isto permite executar caminhos de script alternativos ou apresentar mensagens de erro personalizadas para informar os utilizadores.
- Como funciona a depuração de scripts na FileMaker?
- A ferramenta Script Debugger no FileMaker Pro permite-lhe percorrer os scripts passo a passo. Pode monitorizar o progresso de um script em tempo real, definir pontos de interrupção e verificar o estado atual de variáveis e campos. Isto permite-lhe localizar e corrigir rapidamente os erros. Pode iniciar o depurador no menu "Ferramentas" > "Depurador de Script".
- Não vejo um menu de ferramentas, como é que o posso ativar?
- Se não conseguir encontrar um menu de ferramentas na barra de menus, aceda às preferências da FileMaker (Mac em "FileMaker Pro", Windows em "Editar") e selecione a opção "Utilizar ferramentas avançadas" no primeiro separador "Geral". Confirme a caixa de diálogo e reinicie o FileMaker Pro uma vez.
- Como é que posso ligar vários scripts na FileMaker?
- No FileMaker, pode ligar vários scripts utilizando o comando "Run Script" para chamar outro script. Isto permite-lhe dividir processos complexos em scripts mais pequenos e mais fáceis de gerir que funcionam em conjunto. Ao dividir scripts em sub-scripts, pode reutilizar tarefas específicas e melhorar a capacidade de manutenção das suas soluções de scripting.
- O que são guiões parciais e quando é que os devo utilizar?
- Os subscripts são scripts mais pequenos e especializados que são chamados como parte de um script maior. São úteis para encapsular tarefas recorrentes, como a criação de novos conjuntos de dados ou a navegação entre layouts. Os scripts parciais promovem uma estrutura limpa e modular nos seus scripts, o que facilita a manutenção. Se um processo for utilizado frequentemente, deve externalizá-lo para um sub-script e chamá-lo a partir de outros scripts.
- Como é que utilizo parâmetros de script na FileMaker?
- Os parâmetros de script permitem-lhe passar dados de um script para outro. Ao chamar um script, pode passar um ou mais parâmetros para o script utilizando o comando "Executar script" e especificando parâmetros. Dentro do script, pode recuperar e utilizar os parâmetros com o comando "Get(ScriptParameter)". Isto é útil para controlar dinamicamente as acções que o script chamado executa.
- Como é que passo vários parâmetros de script?
- Para passar vários parâmetros de script, pode resumi-los numa lista ou num formato JSON. Pode utilizar a função "List()" para transferir parâmetros numa lista separada por quebras de linha e recuperá-los no script utilizando a função GetValue("Get (ScriptParameter)"; number). O número identifica o x-ésimo parâmetro do script. Em alternativa, pode utilizar JSON para transmitir parâmetros num formato estruturado e, em seguida, utilizar funções como "JSONGetElement" para aceder aos parâmetros específicos.
- O gFM-Business utiliza a função "StringColumns" para vários parâmetros de script, que separa os parâmetros com um apóstrofo "|". Este procedimento tem a vantagem de os parâmetros passados também poderem conter separações de linhas.
- Como é que posso gerir variáveis globais em scripts?
- As variáveis globais (começando com $$) armazenam dados que estão acessíveis durante toda a sessão, mesmo depois de o script ter sido concluído. Pode definir variáveis globais com o comando "Definir variável" num script e recuperar ou alterar o seu valor em qualquer altura. São particularmente úteis para partilhar dados entre diferentes scripts ou layouts. Contudo, como persistem até o ficheiro ser fechado, as variáveis globais devem ser utilizadas com cuidado para evitar interferências indesejadas.
- Como é que as variáveis locais funcionam nos scripts FileMaker?
- As variáveis locais (começando com $) só são válidas durante o tempo de execução de um script. São frequentemente utilizadas para armazenar temporariamente dados que só são necessários num script ou subpasso específico. Assim que o script termina, a variável local é eliminada. As variáveis locais são adequadas para guardar resultados de cálculos ou valores intermédios sem que estes permaneçam em toda a sessão.
- Como posso utilizar eficazmente as condições num guião?
- Pode utilizar condições "If" para controlar o fluxo de um script com base em determinados critérios. É possível verificar se uma condição é cumprida e executar acções diferentes consoante o resultado. Um exemplo típico seria uma condição que verifica se um campo está vazio antes de ser criado um novo registo de dados. Para casos mais complexos, pode também utilizar condições if aninhadas ou cenários if/else para verificar várias condições, para as quais pode ser utilizado o comando "Else if".
- Como é que posso utilizar repetições e loops em scripts para processar dados?
- Os loops permitem-lhe repetir uma série de acções até que uma determinada condição seja satisfeita. Um exemplo típico seria percorrer todos os registos de dados num resultado de pesquisa e atualizar um campo específico. Inicia-se o ciclo com o comando "Loop" e termina-se com "Sair do ciclo quando" quando a condição desejada é satisfeita, por exemplo, quando se atinge o último registo de dados.
- Como é que posso tornar os scripts e sub-scripts modulares e reutilizáveis?
- Para tornar os scripts modulares e reutilizáveis, deve externalizar processos gerais para sub-scripts e utilizar parâmetros de script para controlar o processo de forma dinâmica. Isto reduz as redundâncias e permite-lhe reutilizar scripts em diferentes contextos. Pode também utilizar variáveis globais e locais de forma eficiente para transferir dados dentro de um script ou entre scripts sem ter de criar novos scripts de cada vez. Se necessário, pode também transferir vários parâmetros de script de um script para outro script, que pode ler utilizando a função "Get(ScriptResult)".
