Saltar ligações

Controlar automaticamente os processos com uma máquina de processamento.

JQuery

Executar scripts no FileMaker Server a partir do Tempo de ExecuçãoAo utilizar bases de dados FileMaker no Rede pode haver um requisito para que os processos sejam executados a pedido ou automaticamente controlados pelo tempo por um cliente na rede local. As áreas de aplicação de um motor de processos podem ser muito diversas. Se o seu FileMakerBase de dados acesso do exterior através de WebDirect pode utilizar um motor de processo para criar documentos, por exemplo, e disponibilizá-los para download como ficheiros PDF. Como o processo é executado num cliente da rede local, os ficheiros criados podem ser facilmente guardados numa unidade de rede dentro da rede local. Outra área de aplicação são os chamados cron jobs - ou seja, processos que são executados pelo motor de processos numa altura predefinida e possivelmente em determinados intervalos. Este artigo explica como pode realizar um motor de processos simples com cronjobs controlados por tempo e um registo de execução em FileMaker.

Funcionário virtual com o seu próprio cliente FileMaker

O ponto de partida para uma máquina de processamento é o seu próprio Mac ou PC Windows com um cliente FileMaker instalado. Na FileMaker, apenas um layout (aut.tasks) é chamado, o qual é criado com um Ativação do guião foi fornecido. Assim que o Tabela do layout processos aut. é criado um novo registo de dados, a máquina de processamento inicia o processamento do processo fornecido no registo de dados.

Tabela e registo de actividades como base

Para poder executar processos e gravá-los como um registo, são necessárias duas novas tabelas de dados:

  • Processos (1 registo de dados = 1 operação de processamento para a máquina de operações)
  • Registo do processo (1 registo de dados = 1 operação processada pela máquina de operações)

O quadro Processos normalmente não contém quaisquer registos de dados e é preenchido com um registo de dados sob controlo de script no momento em que a máquina de processamento deve executar um processo específico. Logo que o processo tenha sido executado, é criado um novo registo de dados no registo e o registo de dados é guardado no Processos apagado novamente.

A máquina de processamento está a ouvir...

Para que o motor de processo saiba em tempo real que um novo processo deve ser executado, precisamos de um layout correspondente que contenha registos de dados da tabela Processos é apresentado. No nosso ficheiro de exemplo, esta apresentação chama-se processos aut.. Este layout tem um layoutScript-trigger (BeiDatensatzLaden), que executa o script para o processamento da operação assim que um novo registo de dados é criado no Processos está localizado.

Acionador de script de layout para mecanismo de processo

Se for adicionado um novo registo de dados ao Processos é adicionado, o motor de processo executa automaticamente o script máquina de processo com o acionador de script acionador.layout off. O pré-requisito para isso é que a máquina de processo permaneça no layout durante todo o período. processos aut. uma vez que só este esquema tem o acionador de script configurado.

Na máquina de processamento, pode assegurar automaticamente que o cliente acede ao layout diretamente após iniciar a sua base de dados FileMaker. processos aut. alterações. Para tal, defina um utilizador separado para a máquina de transação como o utilizador padrão na FileMaker Pro (Ficheiro > Opções de ficheiro, "Iniciar sessão com"). Se a sua solução tiver um script de arranque, pode agora simplesmente intercetar o utilizador para o motor de processo e utilizar uma construção como:

Se (Get(AccountName) = "TransactionMachine")
   Ir para o Layout [ "aut.processes" ]
Fim (Se)

Tenha em atenção que a impressão e criação de ficheiros PDF também é possível no WebDirect desde a plataforma FileMaker 16. Assim, se utilizar a FileMaker Servidor 16 e FileMaker Pro 16 e apenas pretender criar impressões ou ficheiros PDF no WebDirect, a solução aqui apresentada poderá já não ser necessária para a sua solução.

Três scripts para controlar todos os processos

A nossa solução de amostra FileMaker contém três scripts com os quais todos os processos podem ser facilmente controlados:

máquina de processo - Este script é executado pelo motor de processo assim que a tabela Processos foi criado um novo registo de dados. A chamada é efectuada através do layout processos aut. com o acionador do script de apresentação mencionado acima. A parte para a execução de processos foi adicionada ao script com o parâmetro acionador.layout para que seja possível utilizar este script com outros parâmetros para outras tarefas também.

Como o comando que o motor de processo deve executar está localizado diretamente na base de dados Processos pode definir quaisquer comandos de processo e fazer com que sejam processados neste script. O princípio básico é sempre o mesmo:

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

O script só é executado se tiver sido definido com o parâmetro script acionador.layout é chamado.

   Se [ Operações::Comando = "Enviar dados" ]

O seguinte script só é executado se o comando transmitido Enviar dados lê.

      O seu processo

Pode programar qualquer processo aqui

      Eliminar registo de dados/consulta [Com diálogo: Off]

Elimina o registo de dados processados da tabela Processos

      Executar o script [ "ts.process log"; Parâmetro: ... ]

Insere um novo registo de dados no registo de processos, tendo em conta todas as variáveis do guião.

   Fim (se)

Fim (se)

ts.enter_process - Utilize este guião para introduzir qualquer operação na tabela Processos em. Assim, pode chamar este script a partir de qualquer ponto da sua base de dados. Todos os comandos utilizados podem também ser guardados em FileMaker Go ou no WebDirect. No nosso exemplo, o script aceita quatro parâmetros de script: Comando, e-mail, ID de dados e o nome do utilizador. Estes quatro parâmetros são simplesmente introduzidos como um novo registo de dados no ficheiro Processos introduzido. Naturalmente, é possível alargar este script individualmente e, por exemplo, transmitir outras chaves, como um ID de oferta, ID de fatura ou ID de cliente. Nesse caso, é necessário entrar a tabela Processos e também adicionar estes campos ao registo de transacções.

O script tem uma estrutura muito simples: Na primeira parte, os parâmetros do script (separados por um apóstrofo) são escritos em variáveis. Para este efeito, utilizamos a variável Função personalizada "StringColumns". Também pode utilizar uma tecnologia diferente para este efeito e transferir os parâmetros como uma lista normal, por exemplo, que pode ler no script utilizando a função "GetValue ()".

ts.transaction log - Assim que o guião ts.enter_process um novo registo de dados na tabela Processos foi criada e a máquina de processo está no layout processos aut. o processo é iniciado automaticamente pelo script máquina de processo é processado e o registo de dados da tabela Processos eliminado. O guião ts.transaction log com variáveis idênticas para criar um novo registo de dados no registo de processos. A estrutura do script é em grande parte idêntica à do script ts.enter_processcom a diferença de que o registo de dados é armazenado no registo e não na tabela Processos é gerado.

Dados mestre para processos

Em alguns casos, podem ser necessários dados mestre adicionais para um processo, por exemplo, para poder enviar documentos por correio eletrónico. É então necessário predefinir, por exemplo, o assunto e o texto que um e-mail correspondente deve conter. Para isso, foi criada a tabela de dados Mestre de transacções criado. Cada registo de dados nesta tabela corresponde aos dados mestre de um processo. O valor no campo Nome_Processo corresponde ao nome de um processo, uma vez que também é utilizado pelo script ts.enter_process é utilizado.

Definir processos no mestre de processos

Marcadores de lugar opcionais para mensagens de correio eletrónico

Se necessário, pode definir marcadores de posição nos textos do modelo "Email subject" e "Email text", que pode substituir por dados reais nos sub-scripts do script "lay.process.machine". No nosso script de exemplo, ambos os textos são criados utilizando SQL-consulta nas variáveis $email_subject e $email_text escrito. Por exemplo, se quiser substituir um marcador de posição {nome_cliente} num modelo de texto, adicione o comando "Substituir ( )" à consulta SQL nestas duas definições de variáveis:

Variável set [$email_text; Value: Exchange ( SQL-Query; "{Name_Customer}"; Table::Name_Customer) ]

Desta forma, pode utilizar tantos marcadores de posição quantos quiser nos seus modelos de correio eletrónico, que pode definir nas definições de variáveis para as variáveis $email_subject e $email_text podem ser facilmente substituídos por dados reais.

Processos controlados por tempo com cronjobs (é necessário um plug-in)

Também equipámos o nosso ficheiro de amostra para um motor de processos com a opção de processar tarefas cron controladas por tempo. A data de início e de fim, a hora desejada e o intervalo podem ser definidos no mestre de processos. Para utilizar esta função, é necessário utilizar a função Plugins MBS FileMaker pois é necessário o comando 'FM.RunScript'. Em alternativa, o comando 'BE_ExecuteScript' do programa gratuito Plugins BaseElements pode ser utilizado.

Configurar o script de monitorização na máquina de processamento

Todos os cronjobs são controlados pelo script cron.operation máquina que pode ser chamado através de um script de temporizador a cada dez minutos, por exemplo. Na nossa solução de exemplo, incluímos um script cron.timerscript integrado, que controla a execução do guião cron.operation máquina a cada 600 segundos, ou seja, a cada 10 minutos. Pode integrar este script no script de arranque da sua solução, consultando o nome de utilizador, por exemplo, para que o temporizador seja iniciado automaticamente quando o utilizador da máquina de processamento tiver sessão iniciada.

O guião cron.operation máquina primeiro muda para o layout Mestre de transacções e chama todos os cronjobs activos. Começa então um ciclo de execução, no qual é feita uma verificação para cada cronjob encontrado para ver se uma execução é devida. Em caso afirmativo, o cron job correspondente é executado.

Para os cronjobs, pode definir a execução de quaisquer scripts e quaisquer parâmetros de script correspondentes. Por conseguinte, um cronjob não executa quaisquer sub-scripts do script máquina de processo mas pode definir qualquer script incluindo parâmetros para um cronjob no mestre de processos. Um cronjob pode, portanto, teoricamente, executar quaisquer scripts da sua solução FileMaker numa base de tempo controlado.

Descarregar ficheiro de amostra para FileMaker 13 a 16

O nosso ficheiro de amostra contém todos os scripts mencionados no artigo para integração nas suas próprias soluções FileMaker. A tabela "Data table" (Tabela de dados) contida na solução de amostra serve apenas para fins de demonstração e deve corresponder a tabelas de dados da sua própria solução FileMaker.

Descarregar ficheiro de amostra FileMaker

Integrar o motor de processo no gFM-Business

Como parte de uma licença aberta, também é possível integrar facilmente este exemplo de máquina de transação no sistema ERP gFM-Business. Os titulares de uma licença gFM-Business Custom podem pedir-nos para integrar a funcionalidade de um motor de processos na sua solução.

Como transferir scripts do ficheiro de amostra para a sua solução

Os scripts podem ser facilmente transferidos de uma solução FileMaker para outra através da área de transferência. Basta abrir a caixa de diálogo Gerir guiõesselecionar o script desejado com o rato e copiar o script para a área de transferência através do menu [Editar - Copiar]. ou combinação de teclas [Ctrl/Cmd-C]. Em seguida, abra a mesma caixa de diálogo na solução de destino e simplesmente cole o script copiado anteriormente usando o comando de menu [Editar - Colar]. novamente.

Para transferir tabelas do ficheiro de amostra para a sua solução

As tabelas podem ser inseridas numa solução existente de várias formas. A maneira mais fácil é importar a tabela usando a função [Importar...] em diálogo Gerir a base de dados. Todas as tabelas a importar da solução de origem podem então ser selecionadas num diálogo subsequente. Este método é, portanto, particularmente adequado se várias tabelas tiverem de ser importadas ao mesmo tempo. Se apenas uma tabela tiver de ser importada, isso também pode ser feito através da área de transferência como um script. Se for necessário importar uma tabela com todos os dados, isso pode ser feito com o comando [Ficheiro > Importar registos de dados > Ficheiro] no diálogo de importação. Na caixa de diálogo de importação, a tabela de destino deve então ser Nova mesa deve ser especificado.

Para transferir listas de valores do ficheiro de exemplo para a sua solução

As listas de valores podem ser facilmente importadas de uma solução FileMaker para outra através da área de transferência. Basta abrir a caixa de diálogo em [Ficheiro > Gerir > Listas de valores]selecionar o Lista de valores com o rato e copiar o Lista de valores para a área de transferência através do menu [Editar - Copiar].ou combinação de teclas [Ctrl/Cmd-C]. Em seguida, abra a mesma caixa de diálogo na solução de destino e cole a lista de valores previamente copiada utilizando o comando de menu [Editar - Colar]. novamente.

Como transferir as suas próprias funções do ficheiro de exemplo para a sua solução

No diálogo [Ficheiro > Gerir > Funções próprias...] no botão [Importar] e, em seguida, selecionar o ficheiro de amostra. Selecione as funções personalizadas desejadas na caixa de diálogo seguinte e confirme a caixa de diálogo. Por favor, note que esta função só está disponível na FileMaker Pro Advanced, mas não na FileMaker Pro.

Deixar um comentário

Partilhar esta página:

Um software ERP tão flexível como a sua empresa.
Teremos todo o prazer em o aconselhar.

Software ERP personalizável para Mac, Windows e iOS.

Você está aqui: Controlar automaticamente os processos FileMaker com um motor de processos