Création des modèles BAML
Les modèles BAML permettent de créer des scripts d’analyse et de calcul sur les données de la base de données extrêmement poussés.

Lorsque vous cliquez sur le bouton dans le menu, vous accédez à une liste de tous vos modèles BAML existants. Vous pouvez cliquer sur un modèle déjà existant pour le consulter et le modifier, ou bien en créer un nouveau en cliquant sur le bouton
En créant un nouveau modèle, vous allez arriver sur l’interface suivante :

Vous allez devoir choisir un nom (unique) et un constructeur d’applications sur lequel baser votre modèle. En dessous on peut voir le XML et le script a appliquer. Ils pourraient être rédigés à la main, mais le studio permet de faire ça de manière low code.
Cliquer sur le bouton Ouvrir l’éditeur
va faire apparaître la fenêtre suivante :

-
Les boutons
permettent de télécharger notre modèle ou d’en appliquer un sur l’édition.
-
Le bouton
permet d’enregistrer le modèle en cours.
-
Le bouton
permet de le télécharger en modèle SVG (image simple)
-
Le bouton
permet de générer le code qui correspond au modèle visible dans la zone d’édition.
Dans le panel de propriété situé sur la droite, on peut nommer le processus (la bonne pratique veut qu’il possède le même nom que celui du modèle) et choisir le modèle cible de ce que l’on va récupérer et le modèle source.

Ici on va effectuer une action sur les inventaires, en partant des familles de produits.
Il y a 4 actions possibles sur les modèles BAML, elles sont regroupées dans la barre d’action verticale à gauche :
Le symbole permet de récupérer un ensemble de données.
Il est nécessaire de choisir un modèle sur lequel effectuer la requête à l’aide du champ suivant :
Ce champ permet de définir si on ne veut récupérer qu’une ou plusieurs données. Si la demande renvoie plusieurs données et que l’on stipule un retour unique, celui-ci va renvoyer le premier trouvé .

Ce résultat sera stocké dans une variable nommé comme l’utilisateur l’aura décidé dans ce champ la :

Il est possible de choisir si on veut garder le résultat sous la forme d’un objet ou d’un JSON en cliquant sur la case suivante :
La requête se rédige avec le query builder :

Le symbole permet de créer de nouvelles données. L’utilisateur doit désigner le type d’objet qu’il veut créer :

et les informations qu’il veut lui assigner avec un script builder
Le symbole permet d’ajouter une condition avant d’effectuer une action, cette action peut être généré avec le builder de condition :
Le symbole permet de créer une boucle qui va s’effectuer sur un objet précis.
Cette condition se définit ici :
Tant qu’il y a un produit dans l’ensemble, on effectue l’action de création de données.
Pour terminer, voici un exemple de modèle BAML complet :

Il faut lire ce modèle de la façon suivante :
Je récupère un stock location et je les stocks dans une variable
A l’aide de cette variable, je crée un inventaire qui reprend des valeurs spécifiés (et donc ma variable)
Après cela, je filtre des produits respectants certaines données (la logique voudrait que l’on filtre les produits stocké dans le stock location)
Pour chacun de ses produits(la boucle) je crée une ligne d’inventaire lié à mon inventaire nouvellement créé.