Atualizações da fila de tarefas

Quando um agente baseado em fila de tarefas é impedido de processar uma transação com dependências, a data em que o pedido estará pronto para processamento é calculada.

Mediante a conclusão da transação, as dependências são examinadas para saber se há alguma linha aguardando a conclusão dessa transação. As datas de fila de tarefas para transações dependentes são então recalculadas. Além disso, quando é feita uma mudança na data do pedido, data de envio ou data de entrega, dependências são reavaliadas de forma semelhante.

Um cenário de uso de exemplo para o cálculo da próxima data disponível é discutido abaixo.

Os agentes para as transações são atualizados para aplicar dependências de transação às linhas de pedido antes do processamento. Se as linhas de pedido não forem processadas devido a dependências, o agente atualiza a data da fila de tarefas.

Cálculo da próxima data disponível

A próxima data disponível é calculada para identificar quando o pedido estará pronto para ser processado. O exemplo a seguir fornece o método de cálculo para a próxima data disponível.

Por exemplo, um pedido tem duas linhas de pedido. A segunda linha de pedido pode não ser planejada até 24 horas após a primeira ter concluído a transação SHIP_ORDER.

Até a transação SHIP_ORDER na primeira linha de pedido ser concluída, a data mais antiga disponível para planejar essa linha de pedido é configurada para:

sysdate + 24h.

Quando a transação SHIP_ORDER na primeira linha de pedido é concluída, a data da fila de tarefas para o planejamento da segunda linha de pedido é configurada para:

sysdate + 24h.

A próxima data da fila de tarefas para o pedido inteiro é determinada calculando a data mais antiga disponível em cada uma das dependências restantes. O limite inferior máximo de cada linha é a data, a qual é configurada. Por exemplo:

  • Linha 1 – dependência 1 - data mais antiga = sysdate + 5h
  • Linha 1 – dependência 2 - data mais antiga = sysdate + 48h
  • Linha 2 – dependência 1 - data mais antiga = sysdate + 12h

A data mais antiga para a Linha 1 é o máximo de (sysdate + 5h) e (sysdate + 48h) ou sysdate + 48h. No entanto, para o pedido inteiro, o mínimo nas linhas é calculado como:

sysdate da linha 2 + 12h.

Por fim, se a transação tiver produzido a data da fila de tarefas, o mínimo dessa data e a data da fila de tarefas da transação serão usados. Por exemplo, se uma linha não puder ser planejada devido a uma dependência e a outra linha se tornar um pedido em atraso. Se o intervalo de novo registro do pedido em atraso for menor que o tempo calculado para as dependências restantes, o intervalo de novo registro do pedido em atraso será usado.