Serviço assíncrono

O serviço assíncrono executa operações de execução longa independentemente da operação principal do Microsoft Dataverse núcleo. A execução de operações de execução longa dessa forma resulta em um melhor desempenho geral do sistema e na escalabilidade aprimorada. O serviço assíncrono é uma fila gerenciada Primeiro a Entrar, Primeiro a Sair (FIFO) para a execução de plug-ins registrados de forma assíncrona, fluxos de trabalho e operações como e-mail em massa, importação em massa e propagação de atividade de campanha. Essas operações são registradas com o serviço assíncrono e executadas periodicamente quando o serviço processa sua fila.

Depois que um evento ocorre e todas as extensões síncronas são processadas, o Dataverse serializa o contexto para extensões assíncronas e salva-o na tabela Trabalho do Sistema (AsyncOperation). O trabalho do sistema define e controla a execução da operação assíncrona. À medida que os recursos ficam disponíveis, o Dataverse processa trabalhos do sistema e executa as operações que eles definem. O Dataverse processa todas as operações de dados definidas na extensão novamente no pipeline de execução de eventos, mas desta vez como uma operação síncrona.

Ordem de execução e dependências

Os trabalhos do sistema são avaliados como uma fila usando a data CreatedOn . Se não houver condições para adiar a execução, eles serão executados assim que os recursos estiverem disponíveis. A execução nem sempre é executada na ordem definida pela CreatedOn data porque diferentes tipos de operações exigem recursos diferentes.

Um trabalho do sistema pode depender de outro trabalho do sistema para que ele comece somente após a conclusão do outro trabalho do sistema. O valor da coluna DependencyToken estabelece essa dependência quando um trabalho do sistema é criado. Se o DependencyToken valor for nulo, o trabalho do sistema não terá dependências. Os trabalhos de sistema dependentes têm o mesmo DependencyToken valor e são executados na ordem em que foram criados. Se um trabalho do sistema for adiado, todos os trabalhos de sistema dependentes subsequentes continuarão aguardando até que o trabalho do sistema adiado seja executado.

Note

Esse sistema de dependência não pode ser usado por plug-ins registrados para serem executados de forma assíncrona porque os trabalhos do sistema para eles são criados pelo sistema.

Considerações de segurança para trabalhos do sistema

A tabela AsyncOperation (trabalho do sistema) tem um modelo de permissão em camadas, conforme descrito abaixo.

  • Privilégios de nível de entidade: os usuários com o privilégio de gravação (prvWrite) AsyncOperation podem atualizar as colunas de ciclo de vida com suporte (StateCode, StatusCode, ) PostPoneUntilpara gerenciar trabalhos do sistema. Esse é o mecanismo pretendido para cancelar, pausar, retomar ou adiar trabalhos.

  • Proteção em nível de plataforma para colunas internas: colunas que contêm dados de execução interna, como o conteúdo do trabalho serializado, são protegidas por verificações de autorização adicionais do lado do servidor que são impostas independentemente de privilégios no nível da entidade. Essas proteções impedem a modificação não autorizada dos dados de execução de tarefas, mesmo por usuários que têm acesso de gravação à tabela AsyncOperation.

  • Acesso de leitura: os usuários com o privilégio de leitura (prvRead) podem AsyncOperation recuperar registros de trabalho do sistema, incluindo metadados, como nome do trabalho, status e carimbos de data/hora. Isso é por design para permitir que os usuários monitorem o progresso e o status do trabalho.

Esse modelo em camadas garante que os usuários possam gerenciar o ciclo de vida de seus trabalhos do sistema, uma operação pretendida e com suporte, enquanto os dados de execução interna permanecem protegidos pela plataforma.

Gerenciamento de trabalhos do sistema

Você pode executar as operações a seguir para gerenciar trabalhos do sistema usando a Tabela AsyncOperation.

  • Recuperar trabalhos do sistema
  • Excluir tarefas do sistema
  • Gerenciar estados de trabalho do sistema
  • Adiar tarefas do sistema

Note

Não há suporte para a criação de trabalhos do sistema com código. Embora a tabela ofereça suporte a várias colunas graváveis e a operações de criação, apenas as seguintes colunas são suportadas para atualização:

Essas colunas permitem que os usuários com o privilégio de gravação de nível de entidade apropriado (prvWrite) AsyncOperation gerenciem o ciclo de vida dos trabalhos do sistema (cancelar, pausar, retomar e adiar). Outras colunas na AsyncOperation tabela, incluindo dados de execução interna, estão sujeitas a verificações adicionais de autorização no nível da plataforma e não podem ser modificadas por meio de operações de atualização padrão, mesmo que o esquema de tabela indique que são graváveis. O atributo de gravação no nível do esquema reflete os recursos internos da plataforma, não as permissões do usuário final.

Recuperar processos do sistema

Você pode exibir os Trabalhos do Sistema no aplicativo navegando até Configurações>Sistema>Trabalhos do Sistema e também pode pesquisá-los usando a Pesquisa avançada em aplicativos controlados por modelos.

Usando o código, você pode recuperar trabalhos do sistema como qualquer outra tabela. A tabela a seguir lista as colunas selecionadas que são importantes para entender os trabalhos do sistema:

Coluna Description
AsyncOperationId Identificador exclusivo do trabalho do sistema.
CompletedOn Data e hora em que o trabalho do sistema foi concluído.
CreatedBy Identificador exclusivo do usuário que criou a tarefa do sistema.
CreatedOn Data e hora em que o trabalho do sistema foi criado.
Data Dados não estruturados associados ao trabalho do sistema.
DependencyToken A execução de todas as operações com o mesmo token de dependência é serializada. Saiba mais sobre a ordem de execução e as dependências
Depth Número de chamadas do SDK feitas desde a primeira chamada.
ErrorCode Código de erro retornado de um trabalho de sistema cancelado.
ExecutionTimeSpan Tempo que o trabalho do sistema levou para ser executado.
FriendlyMessage Mensagem fornecida pela tarefa do sistema.
IsWaitingForEvent Indica que o trabalho do sistema está aguardando um evento.
Message Mensagem relacionada à tarefa do sistema.
MessageName Nome da mensagem que iniciou este trabalho do sistema.
ModifiedBy Identificador exclusivo do usuário que foi o último a modificar o trabalho do sistema.
ModifiedOn Data e hora em que o trabalho do sistema foi modificado pela última vez.
Name Nome do trabalho do sistema.
OperationType Tipo de trabalho do sistema. Saiba mais sobre os tipos de operação
OwnerId Identificador exclusivo do usuário ou da equipe que possui o trabalho do sistema.
OwningBusinessUnit Identificador exclusivo da unidade de negócios que possui a tarefa do sistema.
OwningExtensionId Identificador exclusivo da extensão proprietária com a qual o trabalho do sistema está associado.
OwningTeam Identificador exclusivo da equipe que possui o registro.
OwningUser Identificador exclusivo do usuário que possui o registro.
PostponeUntil Indica se o trabalho do sistema deve ser executado somente após a data e hora especificadas. Saiba como adiar trabalhos do sistema
PrimaryEntityType Tipo de tabela com a qual o trabalho do sistema está associado principalmente.
RecurrencePattern Padrão de recorrência da tarefa do sistema. Saiba mais sobre os padrões e horários de início de recorrência
RecurrenceStartTime Hora de início em UTC para o padrão de recorrência. Saiba mais sobre os padrões e horários de início de recorrência
RegardingObjectId Identificador exclusivo do objeto ao qual o trabalho do sistema está associado.
RetryCount Número de vezes que o trabalho do sistema deve ser repetido.
Sequence Ordem na qual as operações foram enviadas.
StartedOn Data e hora em que o trabalho do sistema foi iniciado.
StateCode Status do trabalho do sistema. Saiba como gerenciar estados de trabalho do sistema
StatusCode Motivo do status da tarefa do sistema. Saiba como gerenciar estados de trabalho do sistema
UTCConversionTimeZoneCode Código de fuso horário que estava em uso quando o registro foi criado.
WorkflowStageName Nome de um estágio de fluxo de trabalho.

Exemplos

Você pode usar os exemplos a seguir para recuperar dados da Tarefa do Sistema.

Use a consulta de API Web a seguir para recuperar as colunas na tabela acima. [Saiba como consultar dados usando a API Web](webapi/query/overview.md

GET <organization URL>/api/data/v9.2/asyncoperations?$top=1000
&$select=
asyncoperationid,
completedon,
createdon,
data,
dependencytoken,
depth,
errorcode,
executiontimespan,
friendlymessage,
iswaitingforevent,
message,
messagename,
modifiedon,
name,
operationtype,
_ownerid_value,
postponeuntil,
primaryentitytype,
recurrencepattern,
recurrencestarttime,
_regardingobjectid_value,
retrycount,
sequence,
startedon,
statecode,
utcconversiontimezonecode,
workflowstagename
&$expand=
createdby($select=fullname),
modifiedby($select=fullname),
owningbusinessunit($select=name),
owningextensionid($select=name),
owningteam($select=name),
owninguser($select=fullname)

Note

Com a API Web, há uma propriedade de navegação de valor único para cada tabela que dá suporte a trabalhos do sistema. O nome dessa propriedade de navegação segue o padrão regardingobjectid_<table logical name>.

Tipos de operação

A coluna OperationType descreve categorias de trabalhos do sistema. O Dataverse inicia muitos desses tipos para executar tarefas de manutenção.

Note

Você não pode executar operações de cancelamento, pausa ou retomada em trabalhos do sistema gerados pela plataforma.

Alguns dos tipos desses trabalhos gerados pela plataforma estão incluídos na tabela a seguir:

Valor de OperationType Rótulo TipoDeOperação
9 Coleta de dados SQM
16 Coletar estatísticas da organização
18 Calcular o tamanho do armazenamento da organização
19 Coletar estatísticas do banco de dados da organização
20 Estatísticas sobre o tamanho das organizações de coleção
22 Calcular o tamanho máximo de armazenamento da organização
24 Atualizar intervalos de estatísticas
25 Índice de catálogo de texto completo da organização
27 Atualizar estados de contrato
31 Notificação de limite de armazenamento

Para obter uma lista completa, consulte Opções do OperationType

Horários e padrões de início de recorrência

Trabalhos recorrentes do sistema exigem informações sobre quando devem ser iniciados e com que frequência devem se repetir. Esses valores são armazenados na AsyncOperation tabela RecurrenceStartTime e nas RecurrencePattern colunas.

Como não é possível criar AsyncOperation registros diretamente com código, você precisa interpretar esses valores ao consultar os dados. Esses valores de propriedade são definidos indiretamente por meio de mensagens que criam novas tarefas do sistema. As mensagens BulkDelete e BulkDeleteDuplicates incluem parâmetros ou propriedades nas ações da API Web correspondentes ou no SDK para classes de solicitação .NET. Mais informações: BulkDetectDuplicatesRequest Classe, Ação BulkDetectDuplicates, BulkDeleteRequest Classe e Ação BulkDelete

O valor RecurrenceStartTime é simplesmente uma data e hora para indicar quando o trabalho do sistema deve ser iniciado. Se não estiver configurado, esperava-se que a tarefa do sistema fosse iniciada imediatamente.

RecurrencePattern A coluna armazena informações sobre a frequência com que trabalhos recorrentes do sistema ocorrem. Às vezes, a plataforma define esse valor quando um novo registro de asyncoperation é criado. Você pode definir esse valor para alterar o padrão.

Os valores desta coluna usam partes do padrão da Internet RFC2445 (Especificação de Objeto Principal para Calendarização e Agendamento na Internet).

A tabela a seguir fornece exemplos:

Padrão de periodicidade Frequência da execução do trabalho
FREQ=MONTHLY; Uma vez por mês
FREQ=WEEKLY; Uma vez por semana
FREQ=DAILY; Uma vez por dia
FREQ=DAILY;INTERVAL=3; A cada três dias
FREQ=HOURLY; Uma vez por hora

Se um INTERVAL valor não for definido, ele será interpretado como 1.

Consultas de diagnóstico

Use as consultas nesta seção para ajudar a diagnosticar problemas.

Trabalhos por estado, status e tipo

Use essa consulta para entender a distribuição e a frequência de diferentes tipos de trabalhos. Os resultados podem indicar quais trabalhos estão causando um problema.

Essa consulta não é ordenada decrescente count . Talvez você queira usar FetchXml com a API Web. Consultar dados usando FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Principais tarefas do sistema que estão em estado suspenso em ordem de contagem

Use essa consulta para extrair uma contagem de todos os trabalhos dentro da AsyncOperation tabela que estão em um estado suspenso . Essa consulta ajuda você a:

  • Entenda o volume e a natureza dos trabalhos de espera.
  • Identifique onde os assaltos estão ocorrendo.
  • Tome decisões informadas sobre como endereçá-las para melhorar o desempenho e a taxa de transferência do sistema.

Essa consulta não é ordenada decrescente count . Talvez você queira usar FetchXml com a API Web. Consultar dados usando FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 1))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Quantificar trabalhos suspensos: a consulta destina-se especificamente a trabalhos suspensos (statecode = 1). Os resultados fornecem uma contagem de todas essas tarefas, categorizadas por statuscode e operationtype.

  • Divisão de tipo de operação: a contagem de trabalhos suspensos agrupados operationtype, mostrando que os tipos de operações são mais comumente em um estado Suspenso .

  • Identificar possíveis gargalos: uma alta contagem de trabalhos suspensos por longos períodos de tempo pode ser devido a limitações de recursos, dependências em outros processos ou configurações incorretas do sistema.

  • Capacidade e Gerenciamento de Recursos: se determinados trabalhos estiverem consistentemente no estado Suspenso , isso poderá indicar que o sistema não tem os recursos necessários para processar esses trabalhos com eficiência.

  • Verificação de Integridade do Sistema: os trabalhos em um estado suspenso servem como um indicador de integridade. Um sistema íntegro deve ter trabalhos mínimos em um estado suspenso ou pelo menos mostrar uma rápida transição de suspenso para processamento ativo.

  • Eficiência do fluxo de trabalho: os resultados podem esclarecer a eficiência do fluxo de trabalho. Se um determinado operationtype tiver uma contagem alta de trabalhos suspensos , poderá indicar ineficiências ou a necessidade de otimização dentro desse fluxo de trabalho.

Fluxos de trabalho por contagem

Essa consulta fornece um detalhamento detalhado das tarefas relacionadas a fluxos de trabalho, filtradas por um valor de fluxos de trabalho operationtype. Use os resultados da consulta para obter uma visão abrangente dos trabalhos de fluxo de trabalho, gerenciar recursos do sistema de forma mais eficaz e garantir que os fluxos de trabalho estejam sendo executados de forma suave e eficiente.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((operationtype eq 10))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Trabalhos Específicos de Fluxo de Trabalho: o operationtype = 10 filtro limita os resultados a tarefas específicas do fluxo de trabalho. Você pode ver quantos trabalhos estão relacionados a fluxos de trabalho e seus status atuais. Você também pode aplicar esta consulta de exemplo com outros tipos de operações. Saiba mais sobre tipos de operação

  • Distribuição de Estado do Trabalho: statecode informa o estado atual desses trabalhos de fluxo de trabalho, como se eles estão prontos, suspensos, bloqueados ou concluídos.

  • Status Code Analysis: o statuscode pode fornecer insights específicos sobre o motivo por trás do estado atual de um trabalho. Por exemplo, pode indicar se um trabalho está aguardando recursos, aguardando, em andamento, pausando, cancelando, bem-sucedido, com falha ou cancelado.

  • Contagem de cada categoria: o número total de trabalhos para cada statecode e statuscode combinação. Isso ajuda a identificar os resultados mais comuns das operações de fluxo de trabalho.

  • Identificando resultados comuns: com os resultados ordenados pela contagem em ordem decrescente, você pode identificar os resultados ou gargalos mais frequentes no processamento de fluxo de trabalho.

  • Solução de problemas e otimização: contagens altas no status com falha ou estados suspensos podem realçar áreas em que os fluxos de trabalho podem estar falhando ou ficando travados, sinalizando a necessidade de solução de problemas ou otimização de processo.

  • Métricas de desempenho: entender quais fluxos de trabalho são mais comuns e como eles são distribuídos em diferentes estados pode ajudar a avaliar o desempenho e a confiabilidade do sistema de gerenciamento de fluxo de trabalho.

  • Planejamento de capacidade: um número consistentemente alto de fluxos de trabalho em andamento ou em espera pode sugerir que mais recursos são necessários para lidar com a carga ou que há a necessidade de otimizar o ambiente de execução do fluxo de trabalho.

  • Gerenciamento de fluxo de trabalho: os resultados da consulta podem orientar os administradores sobre como gerenciar fluxos de trabalho com mais eficiência, como decidir quais fluxos de trabalho priorizar ou identificar fluxos de trabalho que podem ser otimizados ou desativados/desabilitados.

  • Verificação de Integridade do Sistema: os resultados gerais podem servir como uma verificação de integridade para o sistema de fluxo de trabalho, indicando se o sistema está sendo executado de forma ideal ou se há áreas que exigem atenção.

Trabalhos aguardando que os recursos do sistema fiquem disponíveis

Use essa consulta para recuperar uma análise detalhada dos trabalhos da AsyncOperation tabela que estão em um estado específico de preparação, mas que estão pendentes de execução devido à indisponibilidade dos recursos do sistema. Essa consulta pode identificar fatores que contribuem para a lentidão e tomar decisões para aumentar a eficiência e melhorar a gestão de pendências.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 0 and statuscode eq 0))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Filtro para trabalhos Prontos aguardando recursos: limitando os resultados onde statecode = 0 e statuscode = 0 filtra trabalhos que estão no estado de Pronto e Aguardando Recursos. Essa combinação indica trabalhos que estão na fila e preparados para serem executados, mas estão em espera.

  • Otimização do Agendamento de Trabalho: identificar padrões na preparação do trabalho e nos tempos de espera pode informar melhorias no agendamento de trabalho, possivelmente levando a uma distribuição mais equilibrada da carga do sistema.

  • Identificar problemas subjacentes: em alguns casos, trabalhos que aguardam recursos podem não ser apenas um problema de recurso, mas podem ser indicativos de problemas subjacentes, como deadlocks ou mecanismos de bloqueio de recursos ineficientes.

Consultas para armazenamento de arquivos

Dependendo do tamanho da coluna Dados da AsyncOperation tabela, os dados nessa coluna podem ser salvos no armazenamento de arquivos. A coluna DataBlobId tem um valor quando a linha usa o armazenamento de arquivos. Para economizar espaço, talvez você queira identificar e excluir esses registros. Use as consultas a seguir para descobrir esses registros

Contagem de identificadores de bloco de dados (datablobid) no armazenamento de arquivos da operação assíncrona

Utilize esta consulta para contar o número de registros na tabela AsyncOperation onde a coluna datablobid não é nula.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/aggregate($count as FileStorageCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Implicações do Armazenamento de Dados: talvez você queira excluir os registros usando o armazenamento de arquivos para economizar espaço, portanto, isso é útil para saber. Números grandes podem sugerir espaço significativo usado por esses blobs, o que pode ser importante para o gerenciamento de tamanho do banco de dados.

  • Considerações sobre o desempenho do sistema: se o FileStorageCount valor for inesperadamente alto, convém executar outras ações, como exclusão e limpeza em massa.

AsyncOperations não está no armazenamento de blobs

Use essa consulta para contar o número de registros na tabela AsyncOperation onde o campo datablobid é NULL.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid eq null))/aggregate($count as DBCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Entendendo as operações assíncronas não no Armazenamento de Blobs: O resultado DBCount indicará o volume de operações assíncronas que não têm blobs de dados associados. Isso nos mostra o status de armazenamento quando os blobs não são contabilizados.

  • Identificando ineficiências A menos que isso seja pretendido, a alta contagem de dados aqui pode sugerir a necessidade de agendar a limpeza e realizar exclusão em massa. A baixa contagem no armazenamento de blobs e a alta contagem aqui seria considerado o principal contribuinte de volume.

Localizar nomes de trabalhos usando o armazenamento de arquivos

Os resultados dessa consulta mostram os tipos de trabalho, o nome dos trabalhos e o número de vezes que esse trabalho existe na tabela que consome o armazenamento de arquivos. Use isso para identificar os nomes de trabalho específicos que têm o maior impacto no consumo de arquivos e criar um trabalho de exclusão em massa para registros com esse nome.

Isso habilitará a identificação dos nomes de trabalho específicos que têm o maior impacto no consumo de arquivos. Como resultado, o cliente pode iniciar um processo de exclusão em massa para um trabalho específico especificando o nome do trabalho.

** A consulta não ordena pela coluna jobs de forma decrescente. Talvez você queira usar FetchXml com a API Web. Consultar dados usando FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/groupby((operationtype,name,friendlymessage),aggregate($count as jobs))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Tamanho do arquivo AsyncOperation e contagem de registros

Use essa consulta para obter o tamanho total do arquivo e a contagem de registros para trabalhos do sistema, classificados por estado, status e extensão proprietária.

Este exemplo usa o FetchXml codificado para enviar a consulta usando a API Web. Consultar dados usando FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?fetchXml=%3Cfetch%20aggregate%3D%27true%27%3E%20%3Centity%20name%3D%27asyncoperation%27%3E%20%3Cattribute%20name%3D%27owningextensionid%27%20alias%3D%27owningextension%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statecode%27%20alias%3D%27statecode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statuscode%27%20alias%3D%27statuscode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27operationtype%27%20alias%3D%27operationtype%27%20groupby%3D%27true%27%20%2F%3E%20%3Clink-entity%20name%3D%27fileattachment%27%20to%3D%27datablobid%27%20from%3D%27fileattachmentid%27%20alias%3D%27fileattachment%27%20link-type%3D%27inner%27%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27TotalSize%27%20aggregate%3D%27sum%27%20%2F%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27RecordCount%27%20aggregate%3D%27count%27%20%2F%3E%20%3Cfilter%3E%20%3Ccondition%20attribute%3D%27objectidtypecode%27%20operator%3D%27eq%27%20value%3D%274700%27%20%2F%3E%20%3C%2Ffilter%3E%20%3Corder%20alias%3D%27TotalSize%27%20descending%3D%27true%27%20%2F%3E%20%3C%2Flink-entity%3E%20%3C%2Fentity%3E%20%3C%2Ffetch%3E
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Saiba como consultar dados usando a API Web

Veja o que procurar nos resultados:

  • Contagem de registros:RecordCount informa quantos registros estão sendo retornados para cada agrupamento de registros de trabalho do sistema. Isso lhe dará uma ideia do volume de operações assíncronas que estão sendo executadas e quais tipos são mais comuns.
  • Tamanho total do arquivo:TotalSize informa a quantidade de dados que essas operações estão tratando. Isso pode ajudá-lo a identificar se há arquivos extraordinariamente grandes que podem estar afetando o desempenho do sistema.
  • Agrupamento por entidades proprietárias: A consulta agrupa os resultados por owningextensionid, , owningextensionidname, statecodee statuscodeoperationtype. Examine esses agrupamentos para identificar quais extensões estão gerando mais atividades e se há tipos de operação específicos predominantes.
  • Estados e status da operação: A inclusão de statecode e statuscode no agrupamento ajudará você a determinar o estado e o status atuais dessas operações, como quais estão pendentes, em andamento ou concluídas.
  • Ordenação por TotalSize: Como os resultados são ordenados por TotalSize ordem decrescente, preste atenção aos principais resultados, pois eles destacarão as operações que estão consumindo mais armazenamento. Isso pode ser importante para identificar áreas potenciais para otimização ou limpeza.

Excluir trabalhos do sistema

Você pode excluir trabalhos do sistema no aplicativo ou no código, assim como qualquer outra tabela, se tiver os privilégios necessários para fazer isso.

Note

Ao registrar plug-ins assíncronos, há uma opção para excluir automaticamente as operações bem-sucedidas. É recomendável usá-lo. Saiba como escrever um plug-in

A prática comum é criar uma tarefa de exclusão em massa recorrente que exclua tarefas bem-sucedidas. Saiba como remover uma grande quantidade de dados específicos direcionados com exclusão em massa

Gerenciar estados de trabalho do sistema

O status do trabalho do sistema é alterado várias vezes até que a operação seja concluída. Estas são as opções StateCode e StatusCode que representam os valores de estado e de razão de status disponíveis:

Valor de StateCode Rótulo do StateCode Valor do StatusCode Rótulo do StatusCode
0 Ready 0 Aguardando recursos
1 suspensa 10 Em espera
2 Locked 20 Em Andamento
2 Locked 21 pausando
2 Locked 22 cancelando
3 concluído 30 Êxito
3 concluído 31 Falha
3 concluído 32 Cancelada

Você pode alterar o status dos trabalhos do sistema no aplicativo navegando até Configurações> do> e usando comandos disponíveis no menu Mais Ações.

Comandos de ação disponíveis para trabalhos do sistema no aplicativo.

Note

Qualquer ação que você possa executar por meio dessa interface do usuário também pode ser executada usando o código. Você não pode executar operações de cancelamento, pausa ou retomada em trabalhos do sistema gerados pela plataforma. Saiba mais sobre os tipos de operação

Junto com opções para gerenciar exibições, as seguintes opções para gerenciar trabalhos do sistema estão disponíveis:

Option Description
Excluir Usando o comando delete.
Exclui uma tarefa do sistema
Exclusão em Massa Usando o menu Mais Ações .
Abre um assistente de configuração para definir condições e criar uma nova tarefa de exclusão em massa do sistema para excluir os trabalhos do sistema correspondentes.
Cancelar Usando o menu Mais Ações .
Cancela o trabalho do sistema.
Resumo Usando o menu Mais Ações .
Reinicia um trabalho de sistema pausado.
Adiar Usando o menu Mais Ações .
Reagenda uma tarefa do sistema
Pausa Usando o menu Mais Ações .
Pausa um trabalho do sistema.

Se a operação solicitada ocorre depende do estado do trabalho do sistema. Por exemplo, você não pode pausar um trabalho concluído ou ainda não iniciado. A tabela a seguir descreve as condições para cada alteração e o que acontece quando elas são selecionadas.

Option Valores válidos do StateCode Change
excluir any O Trabalho do Sistema é excluído
Cancelamento 0 (Pronto)
1 (Suspenso)
2 (Bloqueado)
StateCode alterado para 3 (Concluído) e StatusCode alterado para 32 (Cancelado) ou StateCode alterado para 3 (Concluído) e StatusCode alterado para 31 (Com falha)
Resume 1 (Suspenso) StateCode alterado para 0 (Pronto)
Adiar 0 (Pronto)
2 (Bloqueado)
A caixa de diálogo Adiar Tarefa solicita ao usuário um valor de data e hora para adiar a tarefa do sistema. Saiba como adiar trabalhos do sistema
Pausar 2 (Bloqueado) StateCode alterado para 1 (Suspenso)

Adiar tarefas do sistema

A PostPoneUntil coluna contém um valor datetime quando o trabalho do sistema altera o estado de 1 (Suspenso) para 0 (Pronto). As colunas PostPoneUntil, StateCode e StatusCode são as únicas colunas de tabela AsyncOperation com suporte para atualização.

Consulte também

Escrever um plug-in
Criar plug-ins para estender processos de negócios