Na programação automática, uma regra comercial:
- Reage a um acionador: uma programação ou um evento.
- Coleta os dados necessários: matrizes de atividades e técnicos.
- Adiciona vários parâmetros relativos ao comportamento de agendamento automático necessário.
- Combina esses dados em uma chamada API, enviando-os para o componente de agendamento automático do Field Service Management.
O componente de otimização, ao receber a chamada de API, continua coletando os dados adicionais necessários. Em seguida, o módulo de otimização gera muitas atribuições de candidatos possíveis de atividades a técnicos. As atribuições inválidas são rejeitadas e as restantes são pontuadas. As melhores atribuições de pontuação são selecionadas e implementadas. A geração, a determinação da solvência e a seleção de atribuições continuam até todas as atividades terem sido atribuídas, ou não são possíveis mais atribuições.
Por exemplo, uma reotimização periódica pode fazer o seguinte: todas as noites, uma regra comercial seleciona as atividades já atribuídas para execução no dia seguinte a amanhã e atividades não atribuídas que podem ser executadas no mesmo período. Ele seleciona técnicos com o cargo 'engenheiro de serviço de campo'. Os dados são enviados para o framework de otimização, que continua a coletar os dados adicionais necessários. O módulo de otimização gera, pontua e seleciona atribuições de candidato. Isso continua até que todas as atividades tenham sido atribuídas ou não sejam possíveis mais atribuições.
Este é um exemplo de uma regra comercial programada que é executada a cada hora, executando uma ação do tipo "programar atividades automaticamente". Observe que as consultas nas variáveis BR são bastante básicas e podem ser ampliadas juntando outras tabelas. Além disso, várias funções JavaScript são utilizadas na ação, para preencher dinamicamente os vários parâmetros.
Dependendo do caso de utilização, é necessário definir o evento acionador adequado ou a programação do acionador. Por exemplo, a criação de uma atividade pode ser o acionador para enviá-la automaticamente para agendamento automático. Um exemplo alternativo é a utilização de um cronograma, segundo o qual todas as novas atividades criadas em um determinado intervalo de tempo são coletadas e programadas automaticamente em simultâneo.
Depois de a regra comercial ter sido acionada, os dados adequados relativos a atividades (também referidas como ‘Jobs’) e técnicos precisam ser coletados utilizando variáveis. Isso significa que as consultas CoreSQL precisam ser adaptadas ao seu caso de utilização, por exemplo:
- Todas as atividades pendentes com datas de vencimento <= hoje + 3 dias E prioridade ‘Alta’ E necessidade ‘bombas de gás’.
- Todas as pessoas com capacidade de planejamento = VERDADEIRO e com a habilidade "bombas de gás".
Na maioria dos casos, várias condições prévias devem ser cumpridas antes que a programação automática possa ou deva ser executada. A seção Condições do acionador de regra comercial é usada para definir os pré-requisitos para as ações subsequentes.
Um conjunto muito comum de condições é verificar o número de técnicos e atividades que foram selecionados. Ambas as quantidades devem ser maiores que 0 para que o agendamento automático faça sentido.
Na ação de regra comercial para agendamento automático, os IDs das atividades e técnicos precisam ser inseridos como matrizes JSON. Isso pode ser feito com uma função JavaScript. O comportamento do framework de agendamento automático pode ser modulado usando parâmetros específicos.
Além dos Jobs e Técnicos, outros parâmetros para agendamento automático são necessários ou podem ser definidos opcionalmente para modular a entrada e a saída de agendamento automático. Esses parâmetros incluem o seguinte:
- Data de início e de fim do horizonte de planejamento (o intervalo de destino no qual o otimizador tenta programar as atribuições).
- Política de otimização a ser utilizada.
- Particionamento (opcional, consulte o próximo slide).
- Liberar atividades quando/se programado com êxito (s/n).
A fim de melhorar os tempos de transferência para uma execução de agendamento automático, o particionamento pode ser usado.
Uma partição é um subconjunto de atividades e técnicos que foram enviados pela regra comercial (ou chamada de API). O critério de separação é uma habilidade (requisito) que os técnicos e as atividades têm em comum.A lista de habilidades de particionamento deve, portanto, definir subconjuntos distintos de atividades e técnicos.
As qualificações utilizadas para particionamento dependem das necessidades empresariais específicas. Exemplos comuns incluem o seguinte:
Habilidades e requisitos que representam regiões
Competências e requisitos que representam unidades organizacionais
Habilidades e requisitos que representam expertise técnica.
As partições desejadas e a sequência de processamento são definidas no campo Qualificações de estratégia de particionamento. As verificações preliminares garantem que não existem conflitos durante a programação paralela de partições.
Desde que não haja sobreposição entre os subconjuntos, o framework de agendamento automático pode processar (programar) os subconjuntos simultaneamente. Desta forma, o tempo total de processamento é reduzido.
Se, no entanto, várias partições compartilharem os mesmos técnicos ou atividades, as partições correspondentes são processadas sequencialmente na ordem definida no campo Qualificações de estratégia de particionamento.
Ao permitir a programação paralela de conjuntos de dados menores, o particionamento reduz o tempo total de transferência para uma tarefa de agendamento automático. Ao mesmo tempo, mesmo no caso de processamento sequencial dos conjuntos de dados menores, as cargas do sistema e os tempos de processamento são reduzidos.
Em vez de usar o particionamento na tarefa de agendamento automático, você também pode configurar suas regras de negócios para criar tarefas de agendamento automático separadas, cada uma com diferentes payloads de técnicos e atividades.
Depois que uma regra de negócios ou outro cliente envia a tarefa de agendamento automático, o framework de agendamento automático coleta dados de experiência adicionais, como:
- Reservas pré-existentes para técnicos
- Padrões de horário de trabalho
- Qualificações
Em seguida, são geradas muitas atribuições de candidato diferentes. A validade destas atribuições de candidato é verificada com determinadas regras, sendo rejeitadas atribuições inválidas. As atribuições válidas restantes são pontuadas com base em determinados objetivos. A atribuição com a nota mais alta é atribuída e o processo é repetido para as atividades restantes até que todas sejam atribuídas ou não sejam possíveis mais atribuições. Este processo é regido pela política de agendamento automático.