Créer des sous-Modèles à partir d’un Modèle principal (Split)

Supposons que nous avons un Modèle contenant plusieurs années et plusieurs mois.

Nous souhaitons à partir de ce Modèle créer des sous-Modèles, chaque sous-Modèle contenant uniquement un mois.

Notre Modèle principal contient une Dimension Année-Mois. Nous allons nous baser sur les valeurs de cette Dimension pour générer autant que de Modèles que l'on a de valeurs.

Tout d'abord, nous allons ouvrir Visual Integrator, créer un script et une première tâche que nous allons nommer Build_Model.

Dans cette tâche nous allons créer un paramètre avec les caractéristiques suivantes :

parameter

Puis nous allons créer un objet d'entrée de type Model input_modelet qui va utiliser un Modèle, qui pour notre exemple s'appelle ventes.mdl.

Voici les colonnes présentes dans notre Modèle :

column_list

A la suite de l'objet d'entrée Model, nous allons ajouter un objet processus Calc.

Dans cet objet, nous allons créer le calcul Filtre avec la définition suivante : map_filename(Année-Mois).

La colonne Année-Mois contient des valeurs au format AAAA/MM, la fonction map_filename permet de convertir les valeurs au format AAAA_MM.

Ensuite il faut rajouter un objet processus Filter et sur la colonne Filtre rajouter la valeur de filtre suivante : $(Filtre_Année_Mois)

valeur_filtre

Enfin nous allons ajouter au flux un objet de sortie Builder.

Il faut paramétrer l'option output sur ventes_$(Filtre_Année_Mois).mdl et l'option journal sur ventes_$(Filtre_Année_Mois).jou.

Ensuite il faut déclarer les différents champs soit en Dimension, soit en Somme ou bien en Champ Infos.

Notre première tâche Build_Model comporte finalement les objets suivants :

task1_object

Nous allons créer ensuite dans le même script une nouvelle tâche que nous allons nommer Split.

Elle contient tout d'abord un objet d'entrée Model dont les caractéristiques sont les mêmes que l'objet d'entrée Model de la tâche Build_Model.

A la suite de l'objet d'entrée Model, nous allons ajouter un objet processus Squash avec Année-Mois déclaré comme Dimension dans les propriétés :

squash

A la suite de l'objet processus Squash, nous allons ajouter un objet Calc.

Dans cet objet, nous allons créer le calcul Filtre avec la définition suivante : map_filename(Année-Mois).

Enfin nous allons ajouter au flux un objet de sortie Iterate.

Dans les propriétés de cet objet nous allons indiquer que la valeur de task est Build_Model, que la valeur de Error_Action est continue et que Filtre_Année_Mois est un paramètre (option parameter cochée):

iterate

Notre deuxième tâche Split comporte finalement les objets suivants :

task2_object

Une fois le script exécuté, les sous-Modèles sont bien créés :

result