Mises à jour des files d'attente de tâches

Lorsqu'un agent basé sur une file d'attente de tâches est bloqué pour traiter une transaction avec des dépendances, la date à laquelle la commande est prête à être traitée est calculée.

Une fois la transaction exécutée, les dépendances sont examinées pour déterminer si des lignes attendent que cette transaction soit finalisée. Les dates de file d'attente de tâches concernant les transactions dépendantes sont alors recalculées. De plus, lorsqu'une modification est apportée à la date de commande, à la date d'expédition ou à la date de livraison, les dépendances sont réévaluées de façon similaire.

Un exemple de scénario d'utilisation pour le calcul de la prochaine date disponible est présenté ci-dessous.

Les agents des transactions sont mis à jour pour appliquer les dépendances de transaction aux lignes de commande avant le traitement. Si les lignes de commande ne sont pas traitées en raison des dépendances, l'agent met à jour la date de la file d'attente de tâches.

Calcul de la prochaine date disponible

La prochaine date disponible est calculée pour déterminer à quel moment la commande est prête à être traitée. L'exemple suivant fournit la méthode de calcul pour la prochaine date disponible.

Par exemple, une commande contient deux lignes de commande. La deuxième ligne de commande ne peut pas être planifiée tant que 24 heures ne se sont pas écoulées après que la première ligne de commande a exécuté la transaction SHIP_ORDER.

Tant que la transaction SHIP_ORDER de la première ligne de commande n'a pas été exécutée, la date disponible la plus proche pour la planification de cette ligne de commande est définie sur :

date système + 24h.

Lorsque la transaction SHIP_ORDER de la première ligne de commande est exécutée, la date de la file d'attente de tâches qui permet de planifier la deuxième ligne de commande est définie sur :

date système + 24h.

La prochaine date de file d'attente de tâches pour la commande intégrale est déterminée via le calcul de la prochaine date disponible la plus proche pour chacune des dépendances restantes. La limite inférieure de chaque valeur maximale de ligne est la date, qui est définie. Par exemple :

  • Ligne 1 – dépendance 1 - date la plus proche = date système + 5h
  • Ligne 1 – dépendance 2 - date la plus proche = date système + 48h
  • Ligne 2 – dépendance 1 - date la plus proche = date système + 12h

La date la plus proche pour la Ligne 1 est la valeur maximale de (date système + 5h) et (date système + 48h) ou date système + 48h. Toutefois, pour la commande intégrale, la valeur minimale des lignes se calcule comme suit :

Date système Ligne 2 + 12h.

Pour finir, si la transaction a évincé la file d'attente de tâches, la valeur minimale de cette date et de la date de la file d'attente de tâches de la transaction est utilisée. C'est le cas par exemple si une ligne ne peut pas être planifiée en raison d'une dépendance et si que l'autre ligne est différée. Si l'intervalle de scrutation du différé est inférieur au temps calculé pour les dépendances restantes, l'intervalle sera utilisé à la place.