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.