MENU
    Trabalho com tempo em acionadores
    • 23 Jan 2025
    • 7 Minutos para Ler
    • Contribuintes

    Trabalho com tempo em acionadores


    Resumo do artigo

    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.
    • Localizar 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:

    1. Cálculo do tempo entre as etapas em duas partes diferentes de um aplicativo
    2. Verificar se a inspeção de uma máquina ocorreu na última semana
    3. 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 os horários em que 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:

    Crie a variável:

    Agora que você vinculou a tabela adequada ao aplicativo, será necessário 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 lateral, 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 "interval" 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 tempos. Neste exemplo, ela anotará 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 assim:

    Essa instrução subtrairá a hora atual do registro de data e hora anterior da tabela. Em seguida, ela 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 o momento atual 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 se parecer 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 (Mostrar mensagem) - Static Value (Valor estático) - text (texto) - 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:

    • "Data Manipulation" "Store" data: "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!


    Este artigo foi útil?