Automatismes déduits
Définition
En plus des automatismes prévus par l'utilisateur, SIMAX est capable de déduire des actions ou des opérations à partir des automatismes existants. Ceci permet de ne créer qu'un minimum d'automatismes et de laisser à SIMAX le soin d'envisager tous les cas de figure.
Les automatismes déduits se déclenchent quand aucun automatisme n'est prévu pour l'action dans le paramétrage ou qu'aucunes des conditions des automatismes prévus ne sont respectées.
Exemple 1 :
Lorsque vous créez une commande, vous choisissez un article A et lui attribuez une quantité (une commande de 3 roues par exemple). Cette commande a une influence sur les stocks. Il sera diminué de 3 unités grâce à un automatisme qui crée un mouvement de stock à la création d'une commande.
COMMANDE
Article = roue
Quantité = 3
STOCK ROUE
Quantité actuelle
- 3
Influence sur stock
=>
Si plus tard vous modifiez cette commande et que vous changez l'article A pour l'article B (ce n'est plus une commande de 3 roues mais de 3 selles); Il y aura un double impact sur les stocks. Le stock de l'article A sera augmenté de 3 unités (pour annuler la diminution précédente) et le stock de l'article B sera diminué de 3 unités.
STOCK ROUE
Quantité actuelle
+ 3
Modification de
COMMANDE
Article = roue
Quantité = 3
COMMANDE
Article = selle
Quantité = 3
la commande influence
=> => sur
stocks
STOCK SELLE
Quantité actuelle
- 3
Pourtant vous n'avez pas créé d'automatisme qui modifie les stocks à la suite d'une modification de commande. SIMAX a réalisé lui-même un automatisme de modification, c'est un automatisme déduit.
SIMAX s'est servi de l'automatisme de création pour créer un automatisme déduit de modification. Il y a une auto-modification.
Le champ article dans le formulaire commande a une influence sur d'autres formulaires (formulaire stock par exemple). On dit que c'est une colonne pivot. Ici la colonne pivot a changé : de l'article A à l'article B.
Exemple 2
Lorsque vous créez une commande, vous choisissez un article A et lui attribuez une quantité (une commande de 3 roues par exemple). Cette commande a une influence sur les stocks. Il sera diminué de 3 unités grâce à un automatisme qui crée un mouvement de stock à la création d'une commande.
COMMANDE
Article = roue
Quantité = 3
STOCK ROUE
Quantité actuelle
- 3
Influence sur stock
=>
si plus tard vous modifiez cette commande en changeant la quantité (ce n'est plus 3 roues mais 2 roues) ; Il y aura un impact sur les stocks. Le stock de l'article A sera diminué ou augmenté de la variation entre la quantité de départ et la nouvelle quantité (3-2 = 1). Le stock de l'article A sera augmenté de 1 unité grâce à l'automatisme déduit.
Modification de influence
COMMANDE
Article = roue
Quantité = 3
COMMANDE
Article = roue
Quantité = 2
STOCK ROUE
Quantité actuelle
+ 1
la commande sur stock
=> =>
Pourtant vous n'avez pas créé d'automatisme qui modifie les stocks à la suite d'une modification de commande. SIMAX a réalisé lui-même un automatisme de modification, c'est un automatisme déduit.
SIMAX s'est servi de l'automatisme de création pour créer un automatisme déduit de modification. Il y a une auto-modification.
Le champ article dans le formulaire commande a une influence sur d'autres formulaires (formulaire stock par exemple). Ici la colonne pivot n'a pas changé : on garde toujours l'article A, c'est la quantité qui a changé.
Exemple: il faut qu'il y ait un champ dans le formulaire « Stock » qui pointe vers le formulaire « Commande » (ou inversement) ; un champ « Commande » ou « Origine » dans le formulaire « Stock » par exemple.
Les règles de l'auto-modification
SIMAX effectue les automatismes créés auparavant par l'utilisateur au moment où l'action déclenchante est lancée (automatisme de création, de modification, de suppression etc.).
Pour les automatismes déduits, s'il n'y a pas d'automatismes de modification par exemple, SIMAX utilise des automatismes de création pour exécuter les mêmes actions.
Pour chaque automatisme, nous allons nous intéresser à l'état des conditions:


Voici les règles qu'applique SIMAX suite à une modification de donnée. Les règles dépendent de l'état des conditions de l'automatisme et du fait qu'il y ait ou non une colonne pivot.

Explication:
Conditions non remplies => conditions remplies
Si on modifie l'article A, on décide qu'il est géré en stock, on coche la case « Géré en stock ? » ; dans ce cas, l'automatisme sera effectué normalement car la condition sera remplie (géré en stock sera égal à vrai), qu'il y ait une colonne pivot ou non.
Conditions non remplies => conditions non remplies
Si on modifie l'article B qui n'est pas géré en stock, on décide de modifier son prix (ou tout autre champ différent de la case à cocher « gérer en stock? »), les conditions n'étant pas remplies avant la modification et n'étant pas remplies après la modification, il ne se passe rien. L'automatisme ne sera pas lancé puisque les conditions ne sont pas respectées (« géré en stock? » = faux), qu'il y ait une colonne pivot ou non.
Conditions remplies => conditions remplies
Si on modifie un article qui est géré en stock; en modifiant un champ autre que la case à cocher « géré en stock? »; la condition avant la modification était respectée et la condition après la modification est toujours respectée (géré en stock = vrai). Le traitement de l'automatisme va être différent s'il y a une colonne pivot ou non et si la colonne pivot a changé ou non (dans le cas où il y en a une).
Si la valeur de la colonne pivot a changé (voir exemple du chapitre Définition d'automatisme déduit) alors :
- lancement de l'opération inverse sur l'enregistrement dans son état précédent (exemple: + 3 pour l'article A)
- lancement de l'opération sur l'enregistrement (exemple: - 3 pour l'article B)
si la valeur de la colonne pivot n'a pas changé (voir note de l'exemple du chapitre Définition d'automatisme déduit) alors :
- l'augmentation/diminution devient l'augmentation/diminution variation (exemple: augmentation de 3-2=1 pour l'article A) ;
- pour les autres opérations, pas de changement,
- lancement de l'opération de variation.
S'il n'y a pas de colonne pivot, lancement de l'opération sur colonne.
Conditions remplies => Conditions non remplies
Si on modifie un article qui est géré en stock : on décide qu'il n'est plus géré en stock ; la condition n'est plus respectée après la modification (géré en stock = faux). Le traitement de l'automatisme va être différent dans les 6 cas suivants:
Si la valeur de la colonne pivot a changé (voir exemple du chapitre Définition d'automatisme déduit) alors:
- lancement de l'opération inverse sur l'enregistrement dans son état précédent (exemple: + 3 pour l'article A)
- lancement de l'opération sur l'enregistrement (exemple: - 3 pour l'article B)
Si la valeur de la colonne pivot n'a pas changé (voir note de l'exemple du chapitre Définition d'automatisme déduit) alors :
- l'augmentation/diminution devient l'augmentation/diminution variation (exemple: augmentation de 3-2=1 pour l'article A) ;
- pour les autres opérations, pas de changement,
- lancement de l'opération de variation.
S'il n'y a pas de colonne pivot, alors rien
Si la colonne ne participe pas aux conditions de l'automatisme, alors on va inverser l'automatisme (opération inverse : augmentation => diminution, diminution => augmentation, affectation vrai/faux => affectation faux/vrai).
Si c'est un lancement automatique d'action du type création et qu'on arrive à repérer l'enregistrement de manière unique, alors on lance l'action de suppression sur cet enregistrement.
S'il n'y a pas de colonne pivot, il y aura le même comportement qu'avec une colonne pivot.
Auto-modification induit
Si on a trouvé des automatismes à lancer pour l'action de modification (modifier article), regarder si d'autres automatismes utilisent des colonnes de l'enregistrement (article) dans leurs conditions car dans ce cas, l'état de leur condition a peut être changé.
Pour chaque colonne (champs) de l'enregistrement (de l'article X)
Si la colonne (le champ) a changé de valeur
Rechercher tous les automatismes qui utilisent cette colonne (ce champ) dans leurs conditions. Pour chacun de ces automatismes:
Si l'automatisme porte sur le même formulaire (article) que l'enregistrement ou si l'automatisme porte sur une action de type autre que création (créer à partir de ou modification)
Alors ne rien faire
Sinon évaluer les conditions et lancer l'automatisme (si sur formulaire commande par exemple)
Auto-suppression
Si on supprime un élément qui à sa création a créé d'autres éléments par automatisme, SIMAX va tenter de supprimer ces éléments s'il existe un lien permettant de les retrouver. (comme pour l'auto-modification).
Rechercher tous les automatismes liés à l'action de création
Pour chacun des automatismes
Si les conditions sont remplies
Alors inverser l'automatisme (cf. explication dans le tableau « Auto-modification)
L'utilisateur sera prévenu de la suppression.
Compte rendu d'automatismes déduits
Le rapport retrace même les actions effectuées suite aux automatismes déduits. Ceci vous permet de comprendre ce que SIMAX a effectué comme action sans que vous le sachiez.

Mis à jour

