support clients /

Gestion des tâches conditionnelles avec SAS® Enterprise Guide®

L'exécution conditionnée est une nouveauté de SAS® Enterprise Guide®, disponible à partir de la version 4.2, qui consiste à exécuter tout ou partie d'un flux de processus, de manière automatique.

Cet article décrit par l'exemple comment utiliser cette nouvelle fonctionnalité.

Mettons nous dans une situation où un analyste doit produire différents rapports à destination de plusieurs personnes, à partir d'une table SAS.
Voici notre projet SAS® Enterprise Guide® (simplifié EG dans la suite du document) :

En version EG 4.1, nous étions contraints d’exécuter manuellement les flux de cette manière :

1. Exécution concernant la sélection du pays :

2. Puis envoi de mail, si nous choisissons U.S.A. en tant que pays :

3. Pour le Mexique, exécution de  l’étape 1, puis de cette branche :

4. Pour le Canada, exécution de l’étape 1 puis :
   a. Si l’année en cours est 2009, alors exécution de cette partie :

   b. Si l’année en cours est postérieure à 2009, alors nous exécutons celle-ci :

En d'autres termes, l'exécution n'était ni optimisée ni automatique.

En version 4.2, la gestion des tâches conditionnelles simplifie et automatise ce projet.
Nous allons voir les étapes à suivre pour modifier notre projet pour qu'il utilise cette nouvelle fonctionnalité.

  • Commençons par la branche Canada

Pour créer une condition, faisons un clic droit sur le nœud souhaité, puis sur « Condition » et « Ajouter » :

Puis cliquons sur « Ajouter » :
Remplissons les champs selon nos critères, ici pour le Canada, nous sélectionnerons dans une invite, le pays :

  • Continuons avec la branche U.S.A. 

Elle s’ajoute au niveau de la condition créée précédemment (un clic droit sur le nœud permet d’accéder au menu contextuel Condition > Modifier, et de la modifier) en cliquant sur le bouton « Ajouter Else If » et en remplissant l’écran comme suit :

La condition de type « else if » est alors affichée ainsi :

Et nous prévoyons l’exécution du traitement pour la dernière valeur possible de pays, avec l’option « Sinon exécuter cette tâche » pour le pays « Mexique ».
Lorsque nous cliquons sur « OK » un cadre apparait autour des tâches sous conditions, ainsi qu’un petit drapeau, statuant sur l’état de la tâche conditionnelle.

La liste des états possibles pour chaque tâche est :

Nœud contenant une condition

Condition remplie

Condition non remplie

Voici un aperçu du projet à cet instant :

Le traitement de la « branche » Canada nécessite une tâche conditionnelle supplémentaire concernant l’année. En effet, selon l’année en cours, l’une ou l’autre des branches s’exécutera.

  • Voyons donc maintenant l’ajout du traitement conditionnel pour la branche « Canada », au niveau du nœud  « Sélection de l’année 2009 » :

Il convient, dans notre cas, de renseigner la seconde tâche, ici « Diagramme par produit de 2006 à 2009 », à réaliser si la condition n’est pas remplie, car nous souhaitons, à l’issue de l’exécution, n’avoir qu’un seul des 2 rapports.
Laissons à « Néant » par exemple, si « Diagramme par produit de 2006 à 2009 » est un rapport à produire à chaque exécution.

Ajoutons une condition pour la sélection de l’année :

Remplissons les champs comme ci-dessus puis cliquons sur « Ajouter » :

Le rapport généré par cette condition sera donc exécuté si la valeur de la variable « Pays » sélectionnée est « Canada » et si la date d’aujourd’hui correspond à l’année 2010. Sinon le « Diagramme par produit de 2006 à 2009 » sera réalisé.

Voici la vision avant exécution du flux de processus :

Nous avons bien conditionné chaque choix possible dans le flux de processus. Nous pouvons remarquer que chaque nœud sélectionné pour remplir une condition est encadré et muni d'un état (voir liste ci-dessus).

  • Passons à l’exécution de ce flux de processus 

Un prompt est proposé pour choisir le pays :

Commençons notre exécution par les « U.S.A. » :

Elle se déroule ainsi :

EG vérifie, lors de l'exécution d'un projet, toutes les conditions et les nœuds à exécuter.

Il a donc validé la branche « USA » et envoyé le mail contenant la table.

Passons à la partie Mexique :

L’exécution se passe de cette manière :

 

Enfin voyons le cas du « Canada », le plus complexe :

Nous avons 2 possibilités, l'année de la date actuelle est soit 2010, soit inférieure.

a. l'année en cours est 2009.

b. l'année en cours est postérieure à 2009.

Synthèse 
Cet exemple illustre un traitement conditionnel du flux de processus dans SAS® Enterprise Guide® 4.2.
Avec cette nouvelle fonctionnalité, les exécutions conditionnées peuvent être facilement intégrées dans un flux de processus automatisé.

Pour aller plus loin 
Pour toutes informations complémentaires, vous pouvez consulter la documentation de SAS® Enterprise Guide® :
- sur Internet (lien : http://support.sas.com/documentation/onlinedoc/guide/index.html )
- ou au sein du produit  (Aide > Aide de SAS® Enterprise Guide®) dans l’arborescence suivante :
Utiliser les projets > Utiliser des flux de processus > Utiliser le traitement conditionnel

Enfin, pour retrouver un autre exemple d’utilisation de traitement conditionnel, cliquez sur le lien suivant : Using the SAS® Enterprise Guide® Conditional Processing task to branch based on whether an input data set is empty  (lien: http://support.sas.com/kb/39/995.html)

Sébastien Monnier
Consultant Support Clients - SAS France