- Objectif
- Déclenchement des contrôles et calculs
- Principe des contraintes calculées
- Règles de contrôle des contraintes
Objectif
Cette action a deux buts :
- contrôler la cohérence des contraintes opération saisies suivant des règles ;
- déduire et stocker de nouvelles contraintes : contraintes calculées.
L'ensemble des contraintes, saisies et calculées, sont utilisées pour :
- la planification et l'ordonnancement des opérations ;
- le suivi des saisies de la quantité réelle sur les opérations ;
- le calcul des répartitions de consommations par fabrication ;
- la traçabilité des lots ;
- etc.
Les contraintes opération étant présentes aussi bien au niveau des formules que des ordres de production, ces contrôles et calculs sont identiques, que l'on traite les contraintes entre opérations de formules (GCOFF) ou les contraintes entre opérations d'ordres de production (GCOO).
Déclenchement des contrôles et calculs
Deux modes de traitement ont été adoptés, le choix d'un de ces modes restant paramétrable dans les chemins (GCHM) (pour les formules) et dans les classes d'ordres (GNOR) (pour les ordres de production).
La première approche consiste à faire les contrôles et les calculs au fil des saisies et/ou des modifications de données. Par cette méthode, les données des contraintes sont toujours valides et les traitements s'appuyant sur ces calculs peuvent être lancés sans action préalable.
Une seconde méthode consiste à ne faire les contrôles et les calculs qu'une seule fois, lorsque toutes les données sont saisies et stabilisées. L'avantage de cette méthode est de ne pas répéter les calculs, inutiles avant la fin des saisies, et donc d'améliorer les performances lors des saisies.
Suivant le paramétrage, chaque création, suppression ou modification de données agissant sur les contraintes a pour conséquence :
- Un contrôle global des contraintes saisies, une suppression et une création des contraintes calculées pour l'entité. L'entité est l'ensemble de la formule ou de l'ordre de production suivant le cas. Ces actions sont effectuées pour les ordres de production si la case "contrôle automatique des contraintes" de la classe d'ordres (GNOR) est cochée. Elles sont réalisées pour les formules quand la zone "calcul automatique" du chemin (GCHM) vaut "ALL" ou "CCF".
- Pour les autres valeurs : il y a une suppression des contraintes calculées et un marquage de l'entité (la formule ou l'ordre de production). Ce dernier est utilisé dans le changement d'étape pour déterminer si le calcul des contraintes a été lancé ou non.
Cette action est répétée à chaque :
- création ou suppression de contraintes entre opérations ;
- modification du type ou de l'état d'une contrainte entre opérations ;
- modification de l'état d'une opération.
Principe des contraintes calculées
Les contraintes calculées sont stockées dans des tables distinctes et propres à chaque entité :
- table QACCF : contraintes calculées des opérations de formule ;
- table QACCO : contraintes calculées des opérations des ordres de production.
Elles contiennent l'ensemble des contraintes saisies dans les données d'exploitation et des contraintes dites "calculées", déduites des précédentes.
Pour ces contraintes calculées, on retrouve les types de contraintes classiques, référencés dans les données d'exploitation, à savoir :
- "DD" : le début de l'opération prédécesseur entraîne le début de l'opération successeur ;
- "FD" : la fin de l'opération prédécesseur entraîne le début de l'opération successeur ;
- "FF" : la fin de l'opération prédécesseur entraîne la fin de l'opération successeur.
A ces types de contraintes, ont également été ajoutés des liens entre opérations :
- "LL" : l'opération et l'opération prédécesseur sont dans le même groupe (ensemble de contraintes de type "DD" et "FF") ;
- "LD" : l'opération ou le groupe de l'opération est lié au début du groupe ou de l'opération prédécesseur ;
- "LF" : l'opération ou le groupe de l'opération est lié à la fin du groupe ou de l'opération précédente.
Dans un premier temps, toutes les données calculées pour l'ensemble de l'entité (la formule ou l'ordre de production) sont supprimées.
Un calcul est alors lancé en traitant, dans l'ordre, l'ensemble des contraintes saisies de type "DD", puis celles de type "FF" et enfin celles de type "FD".
Les règles de calculs sont les suivantes :
1) Pour une opération A liée par une contrainte de type "DD" ou "FF" à une opération B :
- l'opération B est liée par la même contrainte à l'opération A ;
- l'opération A est liée par un lien de type "LL" à l'opération B ;
- l'opération B est liée par un lien de type "LL" à l'opération A.
Première illustration
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE01 | DD | OPE02 | L'opération OPE02 débute en même temps que l'opération OPE01 |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE01 | DD | OPE02 | L'opération OPE02 débute en même temps que l'opération OPE01 | Saisie |
| OPE02 | DD | OPE01 | L'opération OPE01 débute en même temps que l'opération OPE02 | Calculée |
| OPE02 | LL | OPE01 | Les opérations OPE02 et OPE01 sont dans le même groupe de contraintes de type "DD" et "FF" | Calculée |
| OPE01 | LL | OPE02 | Les opérations OPE01 et OPE02 sont dans le même groupe de contraintes de type "DD" et "FF" | Calculée |
Seconde illustration
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE03 | FF | OPE04 | L'opération OPE04 finie en même temps que l'opération OPE03 |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE03 | FF | OPE04 | L'opération OPE04 finie en même temps que l'opération OPE03 | Saisie |
| OPE04 | FF | OPE03 | L'opération OPE03 finie en même temps que l'opération OPE04 | Calculée |
| OPE04 | LL | OPE03 | Les opérations OPE04 et OPE03 sont dans le même groupe de contraintes de type "DD" et "FF" | Calculée |
| OPE03 | LL | OPE04 | Les opérations OPE03 et OPE04 sont dans le même groupe de contraintes de type "DD" et "FF" | Calculée |
2) Si une opération A est liée par une contrainte de type "DD", "FF", "LL" à une opération B :
L'opération A est automatiquement liée, par la même contrainte, à l'ensemble des opérations liées à B par cette contrainte.
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE01 | DD | OPE02 | ... |
| OPE03 | FF | OPE04 | ... |
| OPE02 | FF | OPE03 | L'opération OPE03 finie en même temps que l'opération OPE02 |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE01 | DD | OPE02 | ... | Saisie |
| OPE02 | DD | OPE01 | ... | Calculée |
| OPE01 | LL | OPE02 | ... | Calculée |
| OPE02 | LL | OPE01 | ... | Calculée |
| OPE03 | FF | OPE04 | ... | Saisie |
| OPE04 | FF | OPE03 | ... | Calculée |
| OPE03 | LL | OPE04 | ... | Calculée |
| OPE04 | LL | OPE03 | ... | Calculée |
| OPE02 | FF | OPE03 | ... | Saisie |
| OPE03 | FF | OPE02 | ... | Calculée |
| OPE02 | LL | OPE03 | ... | Calculée |
| OPE03 | LL | OPE02 | ... | Calculée |
| OPE02 | FF | OPE04 | ... | Calculée |
| OPE04 | FF | OPE02 | ... | Calculée |
| OPE02 | LL | OPE04 | ... | Calculée |
| OPE04 | LL | OPE02 | ... | Calculée |
| OPE03 | LL | OPE01 | ... | Calculée |
| OPE04 | LL | OPE01 | ... | Calculée |
| OPE01 | LL | OPE03 | ... | Calculée |
| OPE01 | LL | OPE04 | ... | Calculée |
3) Pour une opération A, liée par une contrainte de type "FD" à une opération B :
- l'opération B et l'ensemble des opérations débutant en même temps que B, sont liées, par un lien de type "FD" à l'opération A et à l'ensemble des opérations finissant en même temps que A ;
- l'opération B et l'ensemble des opérations du même groupe que B, sont liées, par un lien de type "LF" à l'opération A et à l'ensemble des opérations du groupe de A ;
- l'opération A et l'ensemble des opérations du même groupe que A, sont liées, par un lien de type "LD" à l'opération B et à l'ensemble des opérations du groupe de B.
Première illustration
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE07 | FD | OPE08 | L'opération OPE08 débute quand l'opération OPE07 se termine |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE07 | FD | OPE08 | L'opération OPE08 débute quand l'opération OPE07 se termine | Saisie |
| OPE07 | LD | OPE08 | Les opérations OPE07 est liée au début de l'opération OPE08 | Calculée |
| OPE08 | LF | OPE07 | Les opérations OPE08 est liée à la fin de l'opération OPE07 | Calculée |
Seconde illustration
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE02 | DD | OPE03 | L'opération OPE03 débute en même temps que l'opération OPE02 |
| OPE03 | FF | OPE04 | L'opération OPE04 finie en même temps que l'opération OPE03 |
| OPE05 | DD | OPE06 | L'opération OPE06 débute en même temps que l'opération OPE05 |
| OPE04 | FD | OPE05 | L'opération OPE05 débute quand l'opération OPE04 se termine |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE02 | DD | OPE03 | ... | Saisie |
| OPE03 | DD | OPE02 | ... | Calculée |
| OPE02 | LL | OPE03 | ... | Calculée |
| OPE03 | LL | OPE02 | ... | Calculée |
| OPE03 | FF | OPE04 | ... | Saisie |
| OPE04 | FF | OPE03 | ... | Calculée |
| OPE03 | LL | OPE04 | ... | Calculée |
| OPE04 | LL | OPE03 | ... | Calculée |
| OPE04 | LL | OPE02 | ... | Calculée |
| OPE02 | LL | OPE04 | ... | Calculée |
| OPE05 | DD | OPE06 | ... | Saisie |
| OPE06 | DD | OPE05 | ... | Calculée |
| OPE05 | LL | OPE06 | ... | Calculée |
| OPE06 | LL | OPE05 | ... | Calculée |
| OPE04 | FD | OPE05 | ... | Saisie |
| OPE03 | FD | OPE05 | ... | Calculée |
| OPE04 | FD | OPE06 | ... | Calculée |
| OPE03 | FD | OPE06 | ... | Calculée |
| OPE05 | LF | OPE04 | ... | Calculée |
| OPE05 | LF | OPE03 | ... | Calculée |
| OPE05 | LF | OPE02 | ... | Calculée |
| OPE06 | LF | OPE04 | ... | Calculée |
| OPE06 | LF | OPE03 | ... | Calculée |
| OPE06 | LF | OPE02 | ... | Calculée |
| OPE04 | LD | OPE05 | ... | Calculée |
| OPE03 | LD | OPE05 | ... | Calculée |
| OPE02 | LD | OPE05 | ... | Calculée |
| OPE04 | LD | OPE06 | ... | Calculée |
| OPE03 | LD | OPE06 | ... | Calculée |
| OPE02 | LD | OPE06 | ... | Calculée |
4) Si une opération A est liée, par un lien de type "LD", "LF" ou une contrainte de type "FD" à une opération B :
L'opération A est automatiquement liée, par le même lien ou la même contrainte à l'ensemble des opérations liées à B par ce lien ou cette contrainte.
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE07 | FD | OPE08 | L'opération OPE08 débute quand l'opération OPE07 se termine |
| OPE06 | DD | OPE07 | L'opération OPE07 débute en même temps que l'opération OPE06 |
| OPE05 | FD | OPE06 | L'opération OPE06 débute quand l'opération OPE05 se termine |

| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE06 | DD | OPE07 | ... | Saisie |
| OPE07 | DD | OPE06 | ... | Calculée |
| OPE06 | LL | OPE07 | ... | Calculée |
| OPE07 | LL | OPE06 | ... | Calculée |
| OPE05 | FD | OPE06 | ... | Saisie |
| OPE05 | LD | OPE06 | ... | Calculée |
| OPE06 | LF | OPE05 | ... | Calculée |
| OPE05 | FD | OPE07 | ... | Calculée |
| OPE05 | LD | OPE07 | ... | Calculée |
| OPE07 | LF | OPE05 | ... | Calculée |
| OPE07 | FD | OPE08 | ... | Saisie |
| OPE07 | LD | OPE08 | ... | Calculée |
| OPE08 | LF | OPE07 | ... | Calculée |
| OPE05 | FD | OPE08 | ... | Calculée |
| OPE05 | LD | OPE08 | ... | Calculée |
| OPE08 | LF | OPE05 | ... | Calculée |
| OPE06 | LD | OPE08 | ... | Calculée |
| OPE08 | LF | OPE06 | ... | Calculée |
Règles de contrôle des contraintes
Les contrôles sont réalisés au fur et à mesure de la génération des contraintes calculées.
En effet, par ce principe, on retrouve l'ensemble des combinaisons possibles entre opérations, en fonction des contraintes saisies. Il n'est donc pas possible de pouvoir retrouver deux opérations liées par des contraintes calculées de type différent ou des liens différents.
| Opération précédente | Type de contrainte | Opération | Signification |
|---|---|---|---|
| OPE01 | DD | OPE02 | L'opération OPE02 débute en même temps que l'opération OPE01 |
| OPE01 | DD | OPE03 | L'opération OPE03 débute en même temps que l'opération OPE01 |
| OPE02 | FD | OPE03 | L'opération OPE03 débute quand l'opération OPE02 se termine |
| Opération origine | Type de contrainte ou de lien | Opération destination | Signification | Origine |
|---|---|---|---|---|
| OPE01 | DD | OPE02 | ... | Saisie |
| OPE02 | DD | OPE01 | ... | Calculée |
| OPE01 | LL | OPE02 | ... | Calculée |
| OPE02 | LL | OPE01 | ... | Calculée |
| OPE01 | DD | OPE03 | ... | Saisie |
| OPE03 | DD | OPE01 | ... | Calculée |
| OPE01 | LL | OPE03 | ... | Calculée |
| OPE03 | LL | OPE01 | ... | Calculée |
| OPE02 | DD | OPE03 | ... | Calculée |
| OPE03 | DD | OPE02 | ... | Calculée |
| OPE02 | LL | OPE03 | ... | Calculée |
| OPE03 | LL | OPE02 | ... | Calculée |
| OPE02 | FD | OPE03 | ... | Saisie |
Dans ces cas de figure, le message d'erreur
QACOF053 - Incohérence de lien entre l'opération '$1' '$2' et l'opération '$3' '$4' (n° interne : '$5')
ou
QACOO053 - Incohérence de lien entre l'opération '$1' '$2' et l'opération '$3' '$4' (n° interne : '$5')
suivant l'entité traitée, permet d'identifier les opérations posant problème.