Pular para o conteúdo

Verificar a prontidão antes de um fecho

Nos dias que mais contam — fecho do mês, entrega de uma previsão, um dossiê para o conselho de administração — a pergunta não é “o que é que o Weave detetou?”, mas “estamos prontos?”. Um conjunto de prontidão indica os fluxos de trabalho de que um prazo depende e, ao selecionar o conjunto, obtém-se a resposta para todos de uma só vez, numa única lista de verificação que começa pela sua própria contagem:

11 de 13 prontos; 1 não pronto; 1 não foi possível verificar.

Cada fluxo de trabalho do conjunto recebe uma de três respostas, a pior das suas linhas. Fica Não pronto quando alguma verificação encontrou um problema; o problema é listado por baixo, com os mesmos botões Corrigir, Ir para e Como o Weave sabe do separador Weave. Caso contrário, fica Não foi possível verificar quando alguma verificação não teve forma de o avaliar, e o motivo é indicado por extenso. Só fica Pronta quando todas as verificações que o Weave conseguiu executar sobre ele foram aprovadas. Nada que o Weave não tenha avaliado é alguma vez apresentado como pronto, com uma exceção: uma última execução com pouco histórico anterior para comparação conta como habitual, conforme descrito abaixo.

Um problema que alguém marcou como esperado continua a tornar a sua linha Não pronto, e a linha indica que foi marcado como esperado. O separador Weave deixa de comunicar esse problema; a lista de verificação continua a dizer o que é verdade.

As verificações são as regras que o Weave já executa — não intervém qualquer IA —, pelo que uma lista de verificação não tem custo, por mais vezes que a peça. Para saber o que essas regras leem e o que significam as suas respostas, consulte O que o Weave verifica.

  1. Abra o separador Weave do projeto e clique em Prontidão na barra de ferramentas em Descobertas.
  2. Clique em Novo. Dê um nome ao conjunto, por exemplo “Fecho do mês”, e mova os fluxos de trabalho de que depende de Fluxos de trabalho no projeto para Fluxos de trabalho neste conjunto.
  3. Opcionalmente, assinale Tem hora limite e indique quando o conjunto deve estar pronto, como uma expressão cron e o fuso horário em que está escrita — as mesmas opções que um evento agendado oferece. 0 9 5 * * corresponde às 09:00 do dia 5 de cada mês e 0 8 * * 1 às 08:00 de todas as segundas-feiras, nesse fuso horário. Os desvios são interpretados como um evento agendado os interpreta: UTC +0 é a hora de Londres, incluindo a hora de verão britânica, e alguns outros desvios seguem a hora de verão de um local com esse desvio, enquanto os restantes são fixos. A página Agendador de eventos indica como é interpretado cada desvio.
  4. Para um conjunto com hora limite, em Tell the owner this many hours before it is due, indique quanto tempo antes da hora limite o Weave deve enviar a sua mensagem, de 1 a 168 horas. O valor predefinido é 24.
  5. Clique em Guardar.

Um conjunto pertence ao projeto, e todas as pessoas que têm Descobertas no separador Weave do projeto podem verificá-lo. Apenas um Arquiteto do projeto pode criar, editar ou eliminar um conjunto, e todos os fluxos de trabalho de um conjunto têm de estar nesse projeto. Quem guardou o conjunto em último lugar é o seu responsável. Duas pessoas que editem o mesmo conjunto em simultâneo ficam separadas: a segunda gravação é recusada, o conjunto é lido de novo e o formulário mostra a cópia mais recente com o motivo.

O Weave só pode considerar atualizada uma tabela de entrada quando algo indica quando deveria ter sido escrita: um agendamento no fluxo de trabalho que a escreve ou um limiar de atualidade na tabela. Defina-os primeiro; caso contrário, a primeira linha da maioria dos fluxos de trabalho indicará Não foi possível verificar.

Selecione um conjunto à esquerda. O Weave lê todo o projeto — a mesma leitura que o separador Weave faz — e avalia cada fluxo de trabalho do conjunto. Clique em Verificar de Novo depois de ter corrigido algo.

Cada item mostra o nome do fluxo de trabalho, o seu veredito e uma linha por cada verificação que se lhe aplica. Quando uma linha indica Não foi possível verificar, o motivo é escrito ao lado; estes são os motivos que mais provavelmente encontrará:

Linha O que o Weave compara Motivos habituais para “não foi possível verificar”
Inputs are fresh Cada tabela que o fluxo de trabalho lê, face aos agendamentos dos fluxos de trabalho que a escrevem, ou ao limiar de atualidade da própria tabela. A sua função não pode ler tabelas; o Weave não conseguiu determinar que tabelas lê, ou não lê nenhuma que o Weave consiga seguir; uma tabela que lê está oculta para si; um passo lê uma tabela que o Weave não consegue determinar, como uma escolhida com uma variável; uma tabela que lê não tem escritor agendado nem limiar de atualidade, pelo que nada indica quando deveria ter sido escrita; o fluxo de trabalho que a escreve está em execução, em fila ou acabou de terminar.
Last run succeeded A execução mais recente do fluxo de trabalho, que tem de ter terminado. Uma execução que falhou fica Não pronto. Não tem execuções registadas, não foi possível ler o seu histórico de execuções, ou a sua última execução foi parada ou ainda está a decorrer.
Last run looked usual Quanto tempo demorou a última execução, quantas linhas as suas tabelas continham depois dela, quantos valores vazios continham e como se distribuíam os seus valores, face às execuções anteriores. A última execução falhou, foi parada ou ainda está a decorrer, pelo que não há nada habitual com que comparar; o acesso a linhas aplica-se a uma tabela que escreveu, pelo que os valores dessa tabela não são comparados; a execução inclui passos que a sua função não pode ver.
Inputs unchanged since it last ran Se uma tabela que lê foi escrita por outro fluxo de trabalho depois de este a ter lido pela última vez. A sua função não pode ler tabelas; o Weave não consegue seguir o que o fluxo de trabalho lê; ou o fluxo de trabalho não tem execuções com que comparar.
Schedule is healthy Os seus eventos agendados: calendários válidos, em sintonia com o agendador, nenhuma execução devida em falta, nenhuma hora devida perdida por causa de uma execução ainda em curso. Não foi possível ler o agendador.
Reconciliations tie out Cada reconciliação associada ao fluxo de trabalho, na sua versão aprovada, executada como o utilizador. Uma ainda não foi aprovada; a sua função não pode ler dados de tabelas; o acesso a linhas mostra-lhe apenas algumas linhas de um dos lados; uma tabela ou coluna que utiliza foi alterada; a lista de verificação ficou sem tempo para as executar.

Um fluxo de trabalho sem eventos agendados não tem a linha Schedule is healthy, e o item indica que não está agendado. Um fluxo de trabalho sem reconciliação associada não tem a linha Reconciliations tie out. Trata-se de um facto sobre o fluxo de trabalho, não de algo que o Weave não tenha conseguido verificar.

Um fluxo de trabalho que foi eliminado do projeto desde que o conjunto foi criado, ou que a sua função não pode ver, continua a ser contado. Aparece como Não foi possível verificar com o motivo, para que a contagem nunca diminua em silêncio.

Uma execução só pode parecer invulgar face a execuções anteriores. Quando o Weave tem pouco histórico anterior com que comparar, Last run looked usual conta a execução como habitual e di-lo. Isto abrange um fluxo de trabalho ou passo novo, um que é executado com tão pouca frequência que não tem execuções suficientes nos últimos 30 dias, como um fluxo de trabalho semanal, e uma execução que foi a primeira a preencher uma tabela:

O Weave tem pouco histórico anterior com que comparar a sua última execução, pelo que a conta como habitual.

Quando foi possível comparar parte da execução, a linha indica o que estava dentro do intervalo habitual e acrescenta “Quando o Weave tem pouco histórico anterior com que comparar, conta como habitual.” O separador Weave continua a listar estas situações como verificações que o Weave não conseguiu efetuar. Um fluxo de trabalho que nunca foi executado continua a indicar Não foi possível verificar nas linhas Last run succeeded e Last run looked usual, tal como um cuja última execução foi parada ou ainda está a decorrer.

Para um conjunto com hora limite, o Weave executa a verificação por si à medida que a hora limite se aproxima e avisa o responsável pelo conjunto — quem o guardou em último lugar —, uma vez por cada vez que o conjunto fica a vencer, através de uma mensagem na aplicação:

“Fecho do mês” vence dentro de 3 dias (31 out 17:00 UTC): 11 dos seus 13 fluxos de trabalho prontos, 1 não pronto, 1 que o Weave não conseguiu verificar.

Clique em Abrir Weave na mensagem para abrir o separador Weave do projeto e a lista de verificação desse conjunto. A mensagem contém apenas contagens; os nomes e os motivos estão na lista de verificação. Permanece no ecrã durante 30 segundos e só é mostrada se o responsável tiver sessão iniciada nesse momento; não é enviada de novo para essa hora limite, mas a lista de verificação está sempre disponível na janela. Se o responsável já não puder abrir o projeto, nada é enviado.

O Weave verifica uma vez por hora, pelo que a mensagem chega no espaço de uma hora a contar do ponto de aviso: com 24 horas de antecedência, no espaço de uma hora a contar das 24 horas anteriores à hora limite. Um conjunto guardado depois de o seu ponto de aviso ter passado é avisado na verificação seguinte. Se uma verificação começar tarde e a hora limite passar antes de ser executada, essa verificação continua a avisar o responsável, como “venceu há 20 minutos”, a menos que o conjunto tenha sido guardado depois da hora limite. A verificação é executada como o responsável e só lê tabelas se o responsável podia ler tabelas quando guardou o conjunto pela última vez.

Os conjuntos de prontidão estão disponíveis através da API da plataforma, em /analyze/weave/readiness: GET /sets lista os conjuntos de um projeto, GET /set, POST /set, PUT /set e DELETE /set leem, criam, substituem e eliminam um conjunto, e GET /check devolve a lista de verificação tal como a janela a mostra, com as constatações de cada linha. Um conjunto lido através da API traz um etag; envie-o de volta como if_match em PUT para que uma edição sobre uma gravação mais recente seja recusada. Sem ele, prevalece a última gravação.