- Impressão
Trabalho com tempo em acionadores
Visão geral
Muitos aspectos das operações dependem da verificação do tempo decorrido entre dois eventos. Veja a seguir como encontrar esse tempo.
Verificar o tempo decorrido entre dois registros de data e hora costuma ser um aspecto crucial de qualquer processo.
Dois registros de data e hora podem determinar:
- Um tempo de produção especificado
- O tempo decorrido desde a execução de um lote
- O tempo decorrido desde que um reator foi limpo.
Adicionar lógica ao tempo entre dois Datetime pode ser muito eficiente tanto para a coleta de dados quanto para as ações do aplicativo.
Alguns casos de uso para essa funcionalidade:
- Verificação do tempo entre inspeções
- Descobrir quanto tempo se passou desde a execução de um determinado produto
- Garantir um cronograma de manutenção.
- Encontrar o tempo entre dois pontos em um aplicativo
Este guia mostrará como criar alguns desses cenários em seu aplicativo usando uma combinação de acionadores, tabelas e o Expression Editor.
Os três exemplos abordados são:
- Cálculo do tempo entre etapas em duas partes diferentes de um aplicativo
- Verificar se a inspeção de uma máquina ocorreu na última semana
- Definir uma data-alvo para uma ordem de serviço quando ela é inicialmente digitalizada em um aplicativo
Intervalos úteis para conhecer:
1 minuto: 60 segundos
1 hora: 3600 segundos
1 dia: 86.400 segundos
1 semana: 604.800 segundos
1 mês (30 dias): 2.592.000 segundos
1 ano: 31.557.600 segundos
Exemplo 1: Localizar o tempo entre duas partes de um aplicativo (tempo de produção)
Neste exemplo, mostraremos como calcular a diferença entre dois registros de data e hora em um único uso de um aplicativo.
Nível: Intermediário
Para este exemplo, você deve ter conhecimento de:
No ponto "Starting" desejado para esse processo, adicione uma instrução "Then" no Trigger Editor para capturar a data e a hora atuais.
Manipulação de dados - Store - Informações do aplicativo - Data e hora atuais - localização: .
No ponto "End" desejado dessa medição de tempo dentro do aplicativo, adicione outro Trigger para capturar a data e a hora atuais**.**
Além de capturar a hora, agora você também pode adicionar o acionador para encontrar a diferença entre os dois registros de data e hora e armazená-la em uma variável.
Neste exemplo, os dois horários são obtidos quando um botão é pressionado, mas também seria possível capturar horários para quando as etapas são fechadas ou abertas, ou quando os dispositivos são acionados.
A diferença de tempo é armazenada em uma variável "Intervalo" em termos do número total de segundos entre os dois registros de data e hora.
Exemplo 2: Verificação do tempo entre inspeções
Nível: Avançado
Para este exemplo, você deve ter conhecimento de:
No exemplo a seguir, o objetivo do aplicativo é verificar a tabela "Machine Inspection" e determinar quando ocorreu a última inspeção. Além disso, se a inspeção for maior que a frequência exigida, o aplicativo orientará o usuário a concluir uma inspeção.
Vinculação da tabela:
A primeira etapa desse aplicativo exigirá que um registro de tabela seja carregado no aplicativo. Portanto, a tabela já deve existir. A tabela pode ser semelhante a esta:
- ID (texto)
- Última inspeção (registro de data e hora)
- Frequência de inspeção (intervalo)
Acima, a tabela contém a última vez que a máquina foi inspecionada, bem como a frequência de inspeção necessária para cada máquina.
Agora, a tabela deve receber um espaço reservado para registro no aplicativo para verificar a inspeção. Faça isso adicionando um marcador de posição de registro da tabela no aplicativo. Você pode nomeá-lo da seguinte forma:
Criar a variável:
Agora que você vinculou a tabela adequada ao aplicativo, precisará criar uma variável para armazenar a diferença dos dois carimbos de data/hora. A criação de um tipo de dados "Intervalo" permitirá essa manipulação. Você pode fazer isso navegando até o painel de contexto do App Editor e selecionando app.
No painel de contexto, selecione o símbolo sigma para criar uma nova variável.
No painel de variáveis, crie uma nova variável com o nome que desejar e selecione o tipo "intervalo" no menu suspenso. Observe que essa variável conterá o resultado da subtração dos dois registros de data e hora que serão manipulados.
Certifique-se de selecionar "Add" e de que a variável seja adicionada à lista antes de fechar.
Acima, a variável é denominada "ResultantTime" e marcará a diferença entre os horários. Neste exemplo, ela marcará o tempo entre a última inspeção e a hora atual do aplicativo.
Carregar o registro da tabela
Para verificar o registro de tabela apropriado, a tabela deve ser carregada com o ID de tabela correto. Neste exemplo, carregaremos um registro com base no valor de um widget suspenso.
Observe que o texto terá de corresponder exatamente ao ID da tabela para carregar adequadamente o registro correto da tabela.
A etapa do formulário acima permite que o usuário selecione qual máquina será verificada. É muito importante certificar-se de adicionar uma variável a esse campo, nesse caso MachineType, para adicionar lógica ao resultado.
Verificação da lógica
Agora é hora da verificação!
Esse formulário, quando enviado, deve verificar a hora entre a hora atual do aplicativo e o registro de data e hora anterior da tabela.
Para fazer isso, você precisará adicionar alguns acionadores de "ação personalizada" ao botão Enviar.
Primeiro, o botão precisa carregar o registro correto da tabela:
Registros de tabela - Carregar registro - por ID: Variable - MachineType - into: Inspection (Inspeção )
Essa tabela é carregada dinamicamente com base na máquina selecionada na etapa do formulário, em vez de criar várias ações para carregar determinadas tabelas.
Em seguida, o botão Enviar encontrará o tempo entre agora e o carimbo de data/hora no registro da tabela carregada. No mesmo acionador, você pode adicionar algo como isto:
Essa instrução subtrairá a hora atual do registro de data e hora anterior da tabela. Em seguida, ele salvará essa diferença de tempo como um tipo de dado Intervalo, na Variável criada no início.
Em um novo Trigger, a diferença entre os dois carimbos de data/hora determinará uma ação para o aplicativo.
Por exemplo, se o tempo entre agora e a última inspeção for maior do que a frequência necessária, o operador deverá inspecionar a máquina. Caso contrário, a máquina está OK e nenhuma ação é necessária. Isso pode ser parecido com o seguinte:
IF
Variável - ResultantTime - > - Registro de tabela - Inspeção - Frequência de inspeção
ENTÃO
Ir para a etapa - Inspeção
Aqui, a verificação garante que, se o tempo tiver sido muito grande, a inspeção deverá ser realizada novamente.
Caso contrário, o aplicativo poderá ser concluído, já que esse aplicativo é usado para verificar e realizar inspeções.
Essa instrução Else, dentro do mesmo Trigger, pode ter a seguinte aparência:
ELSE IF
Aplicativo - Cancelar aplicativo
Show Message - Static Value - text - sua mensagem
Atualização da tabela
Depois que a inspeção for concluída, o registro da tabela deverá ser atualizado para refletir que a inspeção foi realizada. Para fazer isso, é melhor adicionar um acionador ao encerramento das etapas de inspeção. Dessa forma, o registro só será atualizado quando a inspeção estiver completamente concluída.
Adicione um Trigger para salvar o novo horário, como este:
Manipulação de dados - Store - Informações do aplicativo - Data e hora atuais - Registro de tabela - Inspeção - Última inspeção
Exemplo 3- Definição da data de conclusão desejada para uma ordem de serviço
Digamos que uma ordem de serviço precise passar por 10 operações separadas antes de ser concluída.
Quando a ordem de serviço começa na primeira das 10 operações, você precisa criar uma "Data de vencimento" que corresponda às expectativas do cliente. Digamos que a data de vencimento seja uma semana após o início da primeira operação.
Para fazer isso no Tulip, você precisará adicionar um Intervalo à hora atual para determinar a hora de uma semana no futuro.
Em seguida, você deve salvar essa "Data de vencimento" na tabela "Ordens de trabalho". Veja como fazer isso.
Primeiro, você precisa criar uma variável que armazene o valor de uma semana no futuro em um intervalo.
Vá para a caixa de diálogo Variáveis no Painel de contexto e crie uma nova variável chamada "next_7_days" com o tipo intervalo.
Em seguida, defina seu valor padrão como 604800 segundos, assim. Esse é o número de segundos em uma semana:
Em seguida, você criará um espaço reservado de registro para a ordem de serviço atual e carregará essa ordem de serviço no aplicativo.
Depois que o registro tiver sido carregado, você poderá definir o campo "Due Date" usando uma expressão:
- "Manipulação de dados" "Armazenar" dados: "Expression" "App Info-Current Date and Time + Variable.next_7_days" location: "Registro de tabela" "Ordem de serviço atual" "Data de vencimento"
Na instrução de acionamento acima, adicionamos 7 dias à data e hora atuais para criar a data de vencimento.
Encontrou o que estava procurando?
Você também pode acessar community.tulip.co para postar sua pergunta ou ver se outras pessoas tiveram uma pergunta semelhante!