Limites e limitações para agendamento e otimização aprimorados
Aprenda mais sobre os limites e limitações de Agendamento e otimização aprimorados.
Edições obrigatórias
| Disponível em: Disponível no Lightning Experience e no Salesforce Classic nestas edições em que o Field Service está habilitado: Enterprise, Unlimited e Developer Editions |
Esse é um recurso de pacote gerenciado do Field Service.
Limites de plataforma que afetam o Field Service
Um dos principais benefícios de usar o Agendamento e otimização aprimorados é menos limitações, conforme visto ao comparar os limites do mecanismo lado a lado.
| Limite | Agendamento e otimização | Agendamento e otimização aprimorados |
|---|---|---|
| Número máximo de classes do Apex agendadas simultaneamente (trabalhos agendados) | 100 | 100, mas é improvável que você atinja esse limite porque é possível configurar muitas execuções de otimização por trabalho agendado. Cada trabalho consome um trabalho agendado do Apex. Consulte Gerenciar trabalhos agendados no Field Service. Nota Se você configurar uma agenda recorrente que seja executada a cada x minutos, vários trabalhos agendados do Apex serão criados de acordo. Por exemplo, se você configurá-lo para recorrer a cada 15 minutos, isso será contado como quatro trabalhos agendados do Apex. |
Número de transações simultâneas síncronas para transações de execução longa que duram mais de 5 segundos para cada organização.1 |
Com base no número de licenças aplicáveis 2 em uma organização, o limite é calculado como uma proporção de 100 licenças para uma transação do Apex de execução longa simultânea 3.
|
Não se aplica |
| Trabalho em lote do Apex sendo executado em paralelo | 5 | Não se aplica |
| Máximo de compromissos de serviço otimizados em um período de 24 horas | 50000 Somente solicitações de otimização de agenda de recurso, no dia e global contam para esse limite. |
O limite é o maior de 50.000 ou 500 por licença do Field Service Scheduling. Se você estiver usando o mecanismo aprimorado, poderá verificar se está operando dentro do limite. Para fazer isso, monitore o consumo real em Solicitações de otimização, Últimas 24 horas em Informações sobre a empresa em Configuração. Todos os tipos de ações de agendamento contam para esse limite, por exemplo, agendamento de Gantt, obter candidatos, agendamento de compromisso e tipos de solicitação de otimização de agendamento global, no dia e de recurso. Ações de agendamento não otimização, por exemplo, a ação Agendar, contribuem apenas com uma para essa contagem (o compromisso que está sendo agendado). |
| Máximo de habilidades por recurso em serviço | 100 | 250 |
1 Se mais transações forem iniciadas enquanto o número padrão de transações de execução longa ainda estiver em execução, elas serão negadas. O tempo de processamento de chamada HTTP não é incluído ao calcular esse limite.
2 Os tipos de licença que contam para esse limite incluem licenças de usuário completas do Salesforce e da Salesforce Platform, licenças de usuário de Assinatura de aplicativo, usuários Chatter Only, usuários do Identity e usuários de Comunidades da empresa.
3 Por exemplo, se sua organização tiver 4.000 licenças, o limite de solicitações do Apex de execução longa simultâneas será definido como 40. Se sua organização tiver 5.000 licenças ou mais, o limite de solicitações do Apex de execução longa simultâneas será definido como 50, que é o limite máximo. Se a sua organização tiver 1.000 licenças ou menos, o limite de solicitações do Apex de execução longa concomitante será definido como 10, que é o limite mínimo de piso.
Limitações
Antes de usar o Agendamento e otimização aprimorados, revise algumas limitações.
Transações de DML separadas
Chamadas não são permitidas quando uma transação não confirmada estiver pendente. Quando você está recuperando os períodos disponíveis ou agendando um compromisso, se uma instrução do DML tiver sido executada antes de o serviço ser chamado, uma exceção será gerada. Você deve primeiro confirmar ou reverter antes da chamada.
Essa exceção pode ser gerada em dois cenários principais.
Cenário 1: chamadas explícitas ao mecanismo de agendamento e otimização
Quando você chama o Agendamento e otimização aprimorados explicitamente por meio de uma das nossas APIs do Apex documentadas, se alguma operação DML ocorreu na mesma transação antes da chamada Agendamento e otimização aprimorados, você encontra um erro Trabalho pendente não confirmado.
Essa exceção também será gerada se você não estiver usando o Agendamento e otimização aprimorados, especificamente quando uma chamada ocorrer para calcular o tempo de deslocamento e o roteamento em nível de rua ou o roteamento preditivo de ponto a ponto estiver habilitado. Nesse cenário, a exceção não é gerada quando Evitar o cálculo aéreo durante a exceção de DML de chamada estiver desabilitado nas Configurações do Field Service, pois o tempo de deslocamento é revertido para o cálculo de roteamento aéreo. Essa configuração não é relevante se você estiver usando Agendamento e otimização aprimorados, pois uma chamada sempre é realizada.
Você pode evitar a exceção.
- Execute todas as operações de DML necessárias em uma transação separada antes de chamar o Agendamento e otimização aprimorados. Considere a possibilidade de criar um ponto de extremidade da API REST do Apex que execute as operações de DML, que podem ser chamadas a partir do Apex code.
- Use um fluxo, executando as operações de DML nas etapas antes de chamar o Agendamento e otimização aprimorados como uma ação invocável. O elemento de ação tem configurações avançadas que permitem que a ação seja executada como parte de uma nova transação. Não há suporte para essas configurações em fluxos iniciados automaticamente.
Consulte Compartilhar transações para habilitar o uso do Agendamento e otimização aprimorados.
Cenário 2: chamadas inexplicadas acionando o recálculo de tempo de deslocamento
Essa exceção também pode ser gerada quando você não está explicitamente chamando Agendamento e otimização aprimorados, mas uma chamada ocorre automaticamente para recalcular o tempo de deslocamento. Esse recálculo automático acontece quando você altera determinados campos por meio de qualquer API do Salesforce, o que faz o sistema tentar recalcular os tempos de deslocamento.
- Campos de Compromisso de serviço: Recurso atribuído, Início agendado ou Término agendado
- Campos de ausência: Recurso, Início ou Finalização
Como essas alterações acionam automaticamente os recálculos de tempo de deslocamento, não é possível separar o DML (a atualização de campo) em duas transações. O sistema tenta realizar o recálculo em uma transação diferente, o que pode levar a problemas, durante processos em lote. Processos que não sejam em lote sempre são bem-sucedidos independentemente do mecanismo de agendamento e otimização usado.
- Quando você não estiver usando o Agendamento e otimização aprimorados: Se o roteamento no nível da rua ou o roteamento preditivo de ponto a ponto estiver habilitado, esse cenário resultará em um erro de Trabalho não confirmado pendente durante o cálculo automático do tempo de deslocamento. Para mitigar isso, permita que o sistema use o roteamento aéreo. No aplicativo Field Service Admin, clique em Configurações do Field Service | Agendamento e desmarque Evitar cálculo aéreo na exceção DML de chamada. Se essa configuração estiver desabilitada, o cálculo do tempo de deslocamento reverterá para o roteamento aéreo e evitará a exceção.
- Quando você estiver usando o Agendamento e otimização aprimorados: Quando esses campos são atualizados em um processo em lote, o Agendamento e otimização aprimorados não recalcula os tempos de deslocamento automaticamente, mas também não resulta em erro.
Agendamento e otimização
- A explicação de Cálculo objetivo está ausente para Obter candidatos e Reserva de compromisso.

- Agendar um compromisso de serviço fora do horário de trabalho de um recurso usando o recurso arrastar e soltar resulta em uma violação de regra. O tempo de deslocamento de ida e volta do compromisso de serviço não é calculado e outras regras não são validadas.
- O tempo de deslocamento de e para uma ausência de recurso criada fora do horário de trabalho de um recurso não é calculado.
- Agendar um compromisso de serviço parcialmente fora do horário de trabalho pode resultar em uma violação da regra Combinar território.
- Quando todos os compromissos de serviço de um dia são otimizados e então o agendamento é cancelado, a utilização não é mostrada com precisão no Gantt. A utilização é atualizada novamente quando os compromissos são agendados.
- Quando a opção Calcular deslocamento e intervalos na seção Roteamento das Configurações do Field Service estiver desmarcada, os tempos de deslocamento e os intervalos não serão atualizados no Gantt se você fizer alterações manualmente. No entanto, ao usar o recurso de arrastar e soltar, os tempos de deslocamento e intervalos são atualizados independentemente dessa configuração.
- O campo Objetos agendados da solicitação de otimização não é preenchido quando você está usando Agendamento e otimização aprimorados. No entanto, o campo de dados Compromissos de serviço agendados é preenchido na seção Compromissos de serviço agendados do Hub de otimização.
- Se você tiver uma implementação que use eficiências de recurso, a otimização aprimorada poderá resultar em sobreposições se os compromissos de serviço estiverem fixados ou cancelar o agendamento de compromissos se não estiverem fixados (porque não há espaço suficiente na agenda). Isso ocorre porque o Agendamento e otimização aprimorados arredondam a duração do compromisso de serviço.
- O Agendamento e otimização aprimorados não podem agendar um compromisso de serviço exatamente no horário de início de um intervalo para almoço (o horário definido no campo Início do intervalo na regra de trabalho Disponibilidade do recurso). Quando você está usando o Agendamento de compromisso, o mecanismo de agendamento não retorna esse período, e quando você agenda manualmente o compromisso de serviço no Gantt, o compromisso se sobrepõe ao intervalo de almoço. Recomendamos que você agende o compromisso de serviço para um minuto antes ou após o início do intervalo. Para Agendamento de compromisso, defina o período nos horários de operação de Agendamento de compromisso para iniciar um minuto antes ou depois do intervalo.
- Durante a otimização, os resultados do acionador são atualizados em um lote com um tempo de CPU máximo de 60 segundos, pois a transição é assíncrona. Ao usar o Agendamento e otimização aprimorados, o tempo de CPU é reduzido para 10 segundos, pois a transação é síncrona. Para melhorar o desempenho do acionador, otimize a lógica desenvolvida em Acionadores do Apex no objeto Compromisso de serviço e Ausência de recurso. Considere mover a lógica para executar como parte de um processo assíncrono, por exemplo, Apex enfileirável. Entre em contato com o Suporte ao cliente da Salesforce para otimizar o tamanho do lote usado para gravar os resultados no Salesforce.
- Um caminho agendado em um fluxo acionado por registro nem sempre funciona com a otimização quando Agendamento e otimização aprimorados estiver habilitado. Nesse caso, as atualizações de otimização são realizadas pelo usuário de integração da plataforma que tem um conjunto de permissões baseado em sessão que não está ativo durante a execução do caminho agendado. Para conceder a esse usuário a permissão necessária, clone o conjunto de permissões de Integração do Field Service, desabilite a opção Ativação de sessão necessária e salve. Em seguida, atribua esse conjunto de permissões ao usuário de integração da plataforma. Você pode adicionar mais conjuntos de permissões a esse usuário se necessário.
- O Agendamento e otimização aprimorados usam o Usuário de integração de plataforma, que usa a licença de Usuário de integração de nuvem. Algumas de suas personalizações e recursos de OOTB do produto podem ser afetadas por essa limitação. Você deve adicionar todos os campos personalizados usados em regras e objetivos ao conjunto de permissões de Integração do Field Service antes de atribuir a regra ou o objetivo a uma política de agendamento. Recomendamos que você verifique se todas as suas personalizações têm o acesso necessário e estão funcionando conforme projetado. Adicione permissões ao Usuário de integração da plataforma conforme necessário. Ao usar a sincronização de calendário com Agendamento e otimização aprimorados habilitados, os compromissos de serviço despachados devem estar em um status fixado.
- Não há suporte para cobertura de 24 horas de operação para trabalhadores móveis.
- Se você estiver usando o Agendamento e otimização aprimorados, quando as eficiências do recurso em serviço forem usadas e aplicadas à duração da atribuição do compromisso de serviço, o mecanismo arredondará o tempo real para realizar os valores de um compromisso para o minuto mais próximo. Se você não estiver usando o Agendamento e otimização aprimorados, o mecanismo será arredondado para baixo até o minuto mais próximo.
- Se você estiver usando o Agendamento e otimização aprimorados, quando o status de um compromisso de serviço agendado para uma equipe mudar para Despachado, a notificação aparecerá duas vezes na publicação do Chatter.
- Quando você cria ou modifica ausências de recurso ou modifica compromissos de serviço agendados, o horizonte da solicitação é limitado a 30 dias. Por exemplo, se você criar uma ausência de recurso em fevereiro e uma ausência de recurso em abril na mesma transação, o tempo de deslocamento e os intervalos para almoço não serão criados nem atualizados.
- Se um supervisor agendar manualmente um compromisso de serviço ou ausência de recurso durante um tempo sobreposto e o tempo restante não for suficiente para o deslocamento real de ou para o domicílio, nenhum compromisso poderá ser agendado para o recurso nesse dia.
- Se o mecanismo agendar um intervalo de almoço após um compromisso de serviço e você agendar manualmente outro compromisso de serviço em que o tempo de deslocamento se sobreponha ao intervalo de almoço, o intervalo de almoço passará para a hora de início mais antiga e se sobreporá ao tempo de deslocamento. A violação de regra é mostrada no compromisso de serviço que você agendou manualmente causando a violação, não no compromisso de serviço que se sobrepõe ao intervalo.
- Se você não estiver usando a escala dinâmica , o número máximo de territórios de serviço que pode selecionar para um grupo (por solicitação) para trabalhos agendados aprimorados será 100. Com a escala dinâmica, o limite é de 1.000.
- O Agendamento e otimização aprimorados não tratam adequadamente o trabalho de vários dias que começa ou termina durante o horário não de trabalho em um momento em que é permitido deslocamento à custa do recurso. Esses casos podem resultar em violações sobrepostas incorretas e tempos de deslocamento imprecisos.
Compromissos de serviço e recursos de serviço
- Compromissos de serviço longos devem ser marcados como compromissos de serviço de vários dias para garantir cálculos de agendamento e tempo de deslocamento precisos.
- Quando dois turnos de trabalho ou períodos são definidos para um recurso no mesmo dia, cada turno ou período é considerado como se fosse um "dia" diferente, de forma que inclui o deslocamento do recurso de e para o domicílio.
- Encaixar (agendamento usando ctrl/cmd + arrastar e soltar) um compromisso de serviço em uma ausência de recurso não tem suporte e não altera o agendamento.
- Ao agendar manualmente um compromisso de serviço de vários dias usando o recurso de arrastar e soltar, a hora de início agendada deve estar dentro de um período válido para a duração ser calculada corretamente. Por exemplo, se o compromisso de serviço de vários dias for agendado para começar quando o recurso em serviço não estiver disponível (durante um turno não disponível, ausência de recurso ou intervalo para almoço), a duração do compromisso de serviço de vários dias não será calculada com precisão para considerar apenas os horários de trabalho.
- Não há suporte ao trabalho complexo com a combinação de agendamento de vários dias e trabalho complexo. Quando um compromisso de serviço de vários dias faz parte de uma dependência de compromissos, sua data de término agendada não será calculada quando o compromisso é agendado.
- Ao usar o Agendamento e otimização aprimorados, a utilização no Gantt não considera compromissos de serviço de vários dias.
