Gerir o histórico de execuções de fluxos de cloud no Dataverse

Com o histórico de execuções de fluxos de cloud no Dataverse, pode aplicar a extensibilidade do Dataverse para monitorizar os resultados das execuções dos seus fluxos de cloud em escala. Com esta funcionalidade, pode usar o poder da arquitetura de dados comum do Dataverse, incluindo o Controlo de Acesso Baseado em Funções (RBAC), para gerir os dados FlowRun. Apenas os fluxos de cloud da solução, com as respetivas definições no Dataverse, podem ter o histórico de execuções armazenado no Dataverse.

Como parte desta funcionalidade, cada execução de fluxo de cloud tem uma entrada na tabela FlowRun. Esta funcionalidade está a utilizar a base de dados não relacional do Dataverse, tabelas elásticas, para armazenar o histórico de execuções de fluxos de cloud.

O histórico de execuções de fluxos de cloud no Dataverse é utilizado pelo centro de automatização para fornecer uma experiência abrangente de monitorização e resolução de problemas para processos de automatização em todo o Power Automate.

Elementos da execução de fluxo de cloud

A tabela FlowRun contém elementos-chave de uma execução de fluxo de cloud, incluindo os seguintes:

Elemento Descrição
Name Chave primária e ID da aplicação lógica da execução de fluxo.
Tempo de início Quando a execução de fluxo de cloud foi acionada.
Hora de fim Quando a execução de fluxo de cloud foi concluída.
Duração da execução Tempo, em segundos, para que o fluxo de cloud termine a execução.
Estado Resultado final da execução do fluxo (Sucesso, Falha ou Cancelado).
Tipo de acionador O tipo de acionador desta execução de fluxo (Automatizado, Agendado ou Manual).
Código de erro Código de erro devolvido pela execução do fluxo.
Mensagem de erro Mensagem de erro detalhada, se aplicável, devolvida pela execução do fluxo.
Proprietário Responsável pelo fluxo.
Nome do fluxo de trabalho Nome a apresentar do fluxo de cloud.
ID do Fluxo de Trabalho WorkflowID do fluxo de cloud específico,
É primário Valor binário que indica se esta execução deste fluxo é acionada por algum fluxo principal na cloud.
ID da Execução Principal Nome da instância de execução de fluxo de cloud principal, se este registo for para um fluxo subordinado.
ID da partição ID de partição deste utilizador na instância da tabela elástica.
TTL Tempo, em segundos, de quando este registo de execução é eliminado automaticamente.

Pode ver e atualizar os detalhes através de APIs do Dataverse padrão, do conector do Dataverse ou diretamente a partir da vista Tabelas no Maker Portal.

Uma vez que esta funcionalidade é criada em tabelas elásticas, armazenamos os dados do histórico de execuções na cloud em partições lógicas específicas para um desempenho otimizado. Os dados do histórico de execuções são particionados com base nos utilizadores, para que cada utilizador numa organização tenha uma partição dedicada.

Os dados FlowRun utilizam a capacidade de armazenamento de base de dados do Dataverse. A utilização de armazenamento em vários ambientes pode ser monitorizada no centro de administração do Power Platform.

Utilização do armazenamento para registos FlowRun

Por predefinição, os dados de execução de fluxos são armazenados durante 28 dias (2.419.200 segundos). Se pretender modificar o período durante o qual as execuções podem ser armazenadas, pode atualizar o Tempo de vida (em segundos) da execução do fluxo na tabela Organization num ambiente baseado em Dataverse. Dependendo da capacidade de armazenamento do seu ambiente, pode ajustar a duração do armazenamento destes registos de execução.

O valor FlowRunTimeToLiveInSeconds na tabela Organização pode ser alterado no browser de tabelas do PowerApps ou utilizando a API Web do Dataverse.

Ativar ou reduzir o armazenamento do histórico de execução do fluxo na cloud

Se o valor de FlowRunTimeToLiveInSeconds na tabela Organização for alterado, o tempo de vida de quaisquer novos registos FlowRun será mantido por esse período de tempo. Baixar o valor pode reduzir o número de registos FlowRun e de armazenamento utilizado ao longo do tempo.

Definir o tempo de vida do FlowRun no Dataverse

Definir o valor FlowRunTimeToLiveInSeconds na tabela Organization para zero interrompe toda a ingestão de novos registos de FlowRun.

Definir o tempo de vida de FlowRun no centro de administração da Power Platform

O valor de FlowRunTimeToLiveInSeconds na tabela Organização pode ser definido na experiência de ambientes do centro de administração do Power Platform. Para escolher o tempo de vida da entidade FlowRun utilizado num ambiente:

  1. Inicie sessão no centro de administração do Power Platform.
  2. Navegue até Ambientes.
  3. Para o ambiente pretendido, abra a página Definições.
  4. Selecione Produto>Funcionalidades.
  5. Em Histórico de execuções de fluxos de cloud no Dataverse, defina o valor de retenção de TTL da entidade FlowRun para 28 dias (o valor predefinido), 14 dias, 7 dias ou Desativado.

Definir valores TTL personalizados para armazenar uma quantidade maior ou mais específica do histórico de execuções de fluxos de cloud

Se pretender um valor específico de TTL (Time to Live) que não esteja disponível através da experiência do centro de administração do Power Platform, pode definir esse valor diretamente como o valor FlowRunTimeToLiveInSeconds na tabela Organização.

Reduza imediatamente o número de registos de FlowRun

Se o ambiente estiver com falta de armazenamento, os clientes podem optar por limpar espaço na base de dados definindo o valor TTLInSeconds para um conjunto de registos FlowRun. Os registos são então automaticamente limpos e permanentemente eliminados dentro de um ou dois minutos. Certifique-se de que os registos já não são necessários, porque não podem ser recuperados depois de eliminados.

Cálculos do valor TTL (Time to Live)

Os valores TTL (Time to Live) para Organization.FlowRunTimeToLiveInSeconds e FlowRun.TTLInSeconds são especificados em segundos. A tabela seguinte contém valores comuns que podem ser utilizados nas tabelas Organização e FlowRun.

Dias Segundos
1 dia 86,400 segundos
3 dias 259,200 segundos
7 dia 604,800 segundos
14 dias 1,209,600 segundos
28 dias 2,419,200 segundos
60 dias 5,184,000 segundos

Utilize os dados do FlowEvent para ter visibilidade sobre a completude dos dados do FlowRun

Os registos FlowRun podem estar incompletos por várias razões. A tabela FlowEvent é utilizada para fornecer sinais de que as execuções foram ignoradas e que o conjunto de dados está incompleto. A falta de sinais não significa que o conjunto de dados esteja completo.

Pode ver os registos FlowEvent no browser de tabelas do PowerApps ou através da API Web do Dataverse. Todos os registos relevantes têm um valor FlowEvent.EventType de "FlowRunIngestion" e, em seguida, o valor FlowEvent.EventCode explica o evento.

Quando eliminas um fluxo na cloud, os dados do FlowEvent deixam de ser emitidos para esse fluxo. Se mais tarde restaurares o fluxo, os dados do FlowEvent podem demorar até 24 horas após a recuperação a aparecer novamente. A execução e o histórico de execução não são afetados.

A tabela seguinte contém uma lista de valores FlowEvent.EventCode que podem ser utilizados para sinalizar que os dados FlowRun não estão completos:

EventCode Razão
isFlowRunIngestionECSDisabled O histórico de execução do fluxo na cloud não está a ser guardado no Dataverse devido à configuração do serviço, pelo que não é possível apresentar quaisquer dados do fluxo na cloud. A configuração do serviço ECS é definida automaticamente e não é possível um administrador alterar o comportamento de ingestão neste estado.
TtlSettingEqual0 A configuração de TTL (tempo de vida) do seu ambiente atual para execuções de fluxos na cloud está configurada para não reter dados. Como resultado, podem estar em falta alguns históricos de execuções de fluxos de cloud. Este estado ocorre quando Organization.FlowRunTimeToLiveInSeconds está definido como zero.
IngestionDisabledByOrgSettings O histórico de execuções de fluxos de cloud não está a ser guardado no Dataverse devido às definições do ambiente, pelo que parte do histórico de execuções de fluxos de cloud pode estar em falta. Esta ocorrência acontece quando Organization.FlowRunTimeToLiveInSeconds foi definido como zero no passado.
ElasticTableStorageCapacityReached Atingiu o limite de capacidade de armazenamento no Dataverse, provocando a colocação em pausa da sincronização dos dados de execução de fluxos de cloud.
ElasticTablePartitionLimitReached Atingiu o limite de partição de armazenamento no Dataverse, provocando a colocação em pausa da sincronização dos dados de execução de fluxos de cloud.
IngestionRateDataLoss Uma parte do histórico de execuções de fluxos de cloud pode estar em falta devido à existência de um volume elevado de execuções neste ambiente.
Falha ao carregar o evento FlowRuns Não é possível carregar os eventos para execuções de fluxos de cloud no ambiente atual. Como resultado, podem não estar disponíveis alguns dados de históricos de execuções de fluxos de cloud.
FlowRunsTTlSettingFailedMessage Não é possível obter a definição TTL (time-to-live) do seu ambiente para execuções de fluxos de cloud. Como resultado, podem não estar disponíveis alguns dados de históricos de execuções de fluxos de cloud.
ElasticTableNoRoleForUser Um utilizador que possui um ou mais fluxos não tem permissões de leitura para a tabela FlowRun no Dataverse, pelo que algum histórico de execuções de fluxos de cloud não é guardado no Dataverse. A razão é que o utilizador não pode ser definido como proprietário.

Limitações conhecidas

  • Os registos FlowRun são atribuídos a um proprietário específico quando são escritos na tabela, pelo que o conceito de registos FlowRun partilhados para fluxos partilhados não é atualmente suportado.
  • Os proprietários de fluxos precisam de pelo menos acesso de leitura à tabela FlowRun para armazenar os seus registos de execução no Dataverse. O sistema escreve registos FlowRun na tabela e, em seguida, a propriedade é atribuída ao proprietário primário do fluxo. Se o proprietário primário do fluxo não tiver permissão de leitura para a tabela FlowRun, então o registo de FlowRun não é guardado e surge um FlowEvent.EventCode de ElasticTableNoRoleForUser na tabela FlowEvent. Para corrigir esta situação, certifique-se de que os proprietários dos fluxos têm permissão de leitura da tabela FlowRun.
  • Atualmente, há um limite de 20 GB por partição nas tabelas elásticas. Inserções de registos de execução adicionais, apenas para esse utilizador específico, falhariam quando o limite fosse atingido.
  • Os registos FlowRun podem estar sujeitos a limitação e ser omitidos se um utilizador tiver vários fluxos com elevada frequência de execução. Quando ocorre uma limitação, é criada uma entrada na tabela FlowEvent para sinalizar que as execuções foram ignoradas e que o conjunto de dados está incompleto.
  • Não recomendamos utilizar as entidades FlowRun e FlowLog como alvo do acionador de fluxo Quando uma linha é adicionada, modificada ou eliminada. Esta ação provoca um ciclo infinito, pois os registos são criados nestas tabelas sempre que um fluxo é executado.

Nota

O fluxo de dados subjacente utilizado para alimentar as inserções de registos de execução de fluxos de cloud não é transacional e, portanto, não é 100% sem perdas. Pequenas perdas de dados neste fluxo de dados podem ocorrer devido a problemas temporários de serviço não repetitivo. Os registos em falta não são representados por FlowEvent. O histórico de execuções de fluxo nos detalhes do fluxo no portal do Power Automate é transacional e, portanto, fornece uma vista sem perdas das execuções.

FAQ

Porque é que todos os meus ambientes têm um valor FlowRunTimeToLiveInSeconds igual a zero?

Se todos os seus ambientes tiverem um valor FlowRunTimeToLiveInSeconds na tabela Organização igual a zero, pode ser uma destas situações:

  1. Se os dados de FlowRun não estiveram disponíveis, é possível que os seus ambientes não sejam automaticamente ativados para a ingestão do FlowRun porque não havia capacidade de armazenamento de base de dados do Dataverse suficiente disponível.
  2. Se os dados FlowRun estavam disponíveis anteriormente, um administrador pode ter desativado a ingestão de novos registos.

A escrita do histórico de execuções de fluxos de cloud no Dataverse utiliza a quota de Solicitação de Power Platform?

A escrita do histórico de execuções de fluxos de cloud no Dataverse como dados FlowRun não conta para os limites de Solicitação de Power Platform. As APIs executadas para ler esses dados FlowRun contam para os limites de Solicitação de Power Platform.

Como é que estes dados se comparam com os dados disponíveis no Application Insights?

Os administradores podem configurar Application Insights para fornecer dados de monitorização a partir de execuções de fluxo do Power Automate. Os dados de Application Insights são:

Centro de automatização