Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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)
AsyncOperationpodem 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
AsyncOperationrecuperar 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"
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"
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 porstatuscodeeoperationtype.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
operationtypetiver 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"
Veja o que procurar nos resultados:
Trabalhos Específicos de Fluxo de Trabalho: o
operationtype=10filtro 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çãoDistribuição de Estado do Trabalho:
statecodeinforma o estado atual desses trabalhos de fluxo de trabalho, como se eles estão prontos, suspensos, bloqueados ou concluídos.Status Code Analysis: o
statuscodepode 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
statecodeestatuscodecombinaçã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"
Veja o que procurar nos resultados:
Filtro para trabalhos Prontos aguardando recursos: limitando os resultados onde
statecode=0estatuscode=0filtra 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
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
FileStorageCountvalor 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
Veja o que procurar nos resultados:
Entendendo as operações assíncronas não no Armazenamento de Blobs: O resultado
DBCountindicará 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"
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"
Veja o que procurar nos resultados:
-
Contagem de registros:
RecordCountinforma 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:
TotalSizeinforma 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,statecodeestatuscodeoperationtype. 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
statecodeestatuscodeno 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
TotalSizeordem 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.
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 ![]() 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
