Automatismes Boucle

Créer un automatisme boucle

Dans SIMAX vous pouvez décrire des automatismes qui s’exécutent un certain nombre de fois. Le but est d’éviter des saisies répétitives.

Le formulaire d'automatisme boucle se remplit de la même manière qu'un automatisme classique. La seule différence se situe au niveau de l'onglet « Répéter ces actions (utilisation avancée) ».

Exemple d’utilisation : Vous créez un nouvel immeuble qui a 10 étages. Vous voulez créer automatiquement les étages. Il suffira de boucler sur le nombre d’étages dans l’automatisme boucle.

IMG_P00205

Formule : inscrivez la formule sur laquelle la boucle s’exécutera.

Modèle : indiquez un modèle de champ le cas échéant.

Nombre de tours en transactionnel : ce champ ajoute la possibilité de fixer le nb de tour de boucle d'automatisme sont fait en mode transactionnel. Cela permet de valider un automatisme tous les x tours de boucle au lieu de faire un déclenchement d'automatisme "non transactionnel".

Il faut importer le SMX : Langage 07.00.smx

Si « Nombre de tours en transactionnel » = 0 alors c'est fonctionnement normal

Si vous avez un boucle sur 10 éléments et que "Nombre de tours en transactionnel" = 4 alors l'exécution est :

- Actions sur élément 1

- Actions sur élément 2

- Actions sur élément 3

- Actions sur élément 4

Non transactionnel

- Actions sur élément 5

- Actions sur élément 6

- Actions sur élément 7

- Actions sur élément 8

Non transactionnel

- Actions sur élément 9

- Actions sur élément 10

Si "Nombre de tours en transactionnel" = 1 après chaque ensemble d'actions sur 1 élément

Explication: Lorsque vous créez un immeuble (action déclenchante), l'automatisme lancera une création d'étage (action à lancer). L'automatisme boucle va lancer des créations d'étages autant de fois que mentionné dans le formulaire « immeuble ». Si l'immeuble a 10 étages, l'automatisme boucle va se lancer 10 fois dans la création d'étages.

On peut faire un deuxième automatisme boucle à partir d'une création d'étage, qui lancera autant de création d'appartement que mentionné dans le champ « nb appartement / étage ».

Remarque : l'enregistrement de départ pour les automatismes boucle est l'enregistrement courant de la boucle et non pas l'enregistrement sur lequel porte l'automatisme boucle. SIMAX recherche en priorité dans la boucle ; si aucun enregistrement n'est trouvé, SIMAX cherche dans l'enregistrement déclencheur (cf. chapitre : les différents enregistrements utilisés dans les actions automatiques)

Attention à l'ordre des opérations sur colonne. Exemple : article = id.unique de article puis qté = qté de Article. L'inverse ne marche pas car aucun article n'est connu, SIMAX ne sait pas où trouver la quantité. Quand aucun enregistrement n'est sélectionné dans le cadre de la boucle, SIMAX ne fait rien.

Répéter ces actions (Utilisation avancée) :

« Pour toutes les combinaisons de valeurs des formules suivantes » : il y a quatre types de boucles:

  • les boucles sur un modèle liste d'éléments

  • les boucles sur un modèle ID Unique

  • les boucles sur un modèle entier

  • les boucles sur une formule

Cliquez sur «Créer » pour insérer la colonne sur laquelle va porter la boucle, ou pour insérer une fonction.

IMG_P00206

« pour toutes les combinaisons de valeurs des colonnes suivantes (pour compatibilité uniquement) » est un tableau amené à disparaître. Il est conservé pour que les anciens paramétrages continuent de fonctionner. Dans une nouvelle version de SIMAX, une fonction permettra de fusionner les deux tableaux et de supprimer définitivement ce deuxième tableau. SI vous avez paramétré des automatismes en boucle avec ce tableau, vous ne devez pas remplir le premier tableau. L'avantage du premier tableau est que vous n'avez pas besoin de créer une colonne dont le seul but est de contenir la formule de l'automatisme boucle. Elle peut être insérée directement dans « boucle automatisme ».

Boucle sur une liste d'éléments

Si la boucle porte sur une liste (exemple : liste collaborateur), l'action à lancer se répétera autant de fois qu'il y a d'éléments dans cette liste.

Action déclenchante : créer réunion

Action à lancer : envoi automatique de message

Boucle :

IMG_P00207

Il y a 3 collaborateurs dans la liste des collaborateurs conviés à une réunion, l’automatisme va envoyer 3 fois un message d’alerte pour les 3 collaborateurs. A chaque tour, l’automatisme change de contexte pour envoyer le même message à un collaborateur différent.

Boucle sur l'identifiant Unique d'un formulaire

Si la boucle porte sur un Identifiant Unique (ID Unique), l'action à lancer se répètera autant de fois qu'il y aura d'ID uniques différents dans la base.

Action déclenchante : créer article

Action à lancer : lancement automatique d'action: créer mouvement de stock

Boucle:

IMG_P00208

A la création d'un article, l'automatisme lance une création de stock pour chaque établissement. Ainsi nous obtiendrons une indication sur la disponibilité de l'article dans chaque établissement.

Boucle sur un entier

Si la boucle porte sur un entier, l'action à lancer se répètera autant de fois que la valeur mentionnée dans le champ

Action déclenchante : créer immeuble

Action à lancer : créer étage

Boucle :

IMG_P00209

Si on crée un immeuble (5 étages), l'automatisme lancera une création d'étages. L'automatisme boucle fera que cet automatisme se réalisera autant de fois qu'il y a d'étages, ici 5.

Boucle sur une formule

Vous pouvez insérer une formule. Cette formule peut être :

  • un calcul avec un résultat entier (ex : nombre d'étage * nombre d'appartement)

  • une formule renvoyant une liste d'éléments (ex : Selection(['contacts' de 'Rendez-vous'], ['Id. unique' de 'Rendez-vous'])

Action déclenchante : créer étage

Action à lancer : créer appartement

Boucle :

IMG_P00210

Évaluation des formules des boucles automatismes

L'évaluation de la formule d'une boucle automatisme se fait à partir de :

- l'enregistrement déclencheur pour la première boucle

- l'enregistrement courant de la boucle précédente pour toutes les autres boucles

Utilisation de plusieurs boucles dans un automatisme

Si vous combinez plusieurs boucles, l’action se répète autant de fois qu’il existe de combinaisons différentes sur l’ensemble des boucles.

Exemple: créer commande => créer stock (avec 2 boucles) :

IMG_P00211

Cet automatisme va créer un stock pour chaque agence de chaque article de la commande.

Contexte : disponibilité des articles dans les différentes agences :

Article 1

Agence 1

Agence 2

Article 3

Agence 4

Agence 5

Agence 6

Article 2

Agence 3

Ici, l'automatisme va créer 6 stocks : le stock de l'article 1 dans l'agence 1, le stock de l'article 1 dans l'agence 2, le stock de l'article 2 dans l'agence 3 etc.

Sélection des enregistrements des boucles sur colonne

se fait à partir de :

- l'enregistrement déclencheur pour la première boucle

- l'enregistrement courant de la boucle précédente pour toutes les autres boucles

Ex : si vous souhaitez faire un automatisme boucle pour chaque "agence" de chaque "article" qui crée un stock

Boucle 1 : sélectionner les articles à partir de la commande

Boucle 2 : sélectionner les agences à partir de l'article courant de la boucle 1 (id.unique de Article)

Utilisation de 'valeur boucle'

Reprendre l'exemple ci-dessus :

L'automatisme 'créer commande => créer stock '(avec 2 boucles) crée un stock pour chaque agence de chaque article de la commande.

Les boucles sont donc sur l'article et l'agence :

IMG_P00211

Dans les actions à lancer, dans les opérations sur colonnes il est possible d'utiliser en valeur par défaut la fonction 'ValeurBoucle'.

Exemple vous pouvez dire que le champ 'article' dans le formulaire 'stock' prendra la valeur qui est décrite dans la boucle 1. La boucle 1 est la première ligna apparaissant dans l'onglet 'répéter ces actions'.

Actions à lancer :

IMG_P00213

Utilisation d’un compteur dans l’automatisme

- Fonctions compteurboucle(indice boucle)

- Fonction compteurboucle(colonne de la boucle)

Dans le cas de l’immeuble qui a N étages et X appartements par étage. Vous voulez créer automatiquement les appartements. Il suffira de boucler sur le nombre d’étages et dans un deuxième automatisme de boucler sur le nombre d’appartements par étage.

Exemple du premier automatisme :

IMG_P00214

IMG_P00215 IMG_P00215

Pour remplir le champ « Numéro Etage », vous utiliserez l'opération sur colonne :

IMG_P00216

Pour les boucles sur colonne vous pouvez utiliser la fonction compteurboucle(colonne du compteur) (comme dans l'exemple) ou bien compteurboucle(indice boucle)

Ainsi, dans notre exemple, pour le champ N° d’étages, la formule aurait pu être compeutboucle(0)

Remarque : Le compteurboucle prend en paramètre l'indice de la boucle (le numéro de la ligne dans la liste des boucles) et renvoie un entier qui est le numéro du tour de la boucle. Le résultat du compteurboucle commence à 1 contrairement à l'indice de la boucle qui commence à 0.

Mis à jour