7 sept. 2014

Workflows PowerCenter : les fondamentaux

Un Workflow est un ensemble ordonné d'une ou plusieurs tâches (sessions ou autres), conçu dans l'onglet Workflow Designer du Workflow Manager pour accomplir un objectif opérationnel global.
La session est la tâche qui paramètre et exécute un mapping. Un worklfow exécute des tâches dont les sessions. Cette relation d'exécution peut être modélisée avec le schéma suivant :

Une tâche (Task) est un ensemble d'actions ou commandes exécutables. Une session par exemple est une tâche qui exécute un mapping. 
Ci-dessous l'ensemble des tâches que l'ont peut utiliser dans un workflow:

Session Task : permet d'exécuter un et un seul mapping. On peut, entre autres, y définir les DB connexions et les noms des fichiers en dur ou en tant que paramètres. Cette tâche peut être réutilisable.
Command Task : permet d'exécuter une ou plusieurs commandes UNIX, scripts Shell, commandes DOS ou un fichier batch windows au sein du workflow. L'État de la Command Task (succès ou échec) est stocké dans la variable spécifique à la tâche: $command_task_name.STATUS.
Les commandes UNIX et DOS peuvent également être exécutées en pre-session ou post-session au sein d'une Session Task.
Cette tâche peut être réutilisable. 
Email Task : permet d'envoyer un email au sein du workflow. On peut y définir des adresses email et un message texte qui peut contenir des paramètres. Une des possibilités intéressantes est de pouvoir ajouter une pièce jointe en attachment du mail (session log ou autres).
Cette tâche peut être réutilisable.
Assignment Task : permet d'assigner une valeur à une variable de workflow. Elle permet par exemple de passer la valeur d'un paramètre d'une session à une autre au sein d'un même workflow.
Decision Task : permet de définir une condition à évaluer pour passage à la tâche suivante au sein du workflow. Utilisez la tâche Decision pour créer des branches dans un workflow.
Control Task : permet d'effectuer un stop, abort ou mise à l'état Failed le workflow en se basant sur une condition définie sur le lien (Link) en entrée.
Timer Task : permet de spécifier un laps de temps ou un instant à attendre avant de passer à la tâche suivante du workflow.
Event-Wait Task : permet de mettre le workflow en pause en attente de la détection d'un événement. Cet événement peut être pré-défini (file watch par ex) ou personnalisé (créé par la tâche Event Raise par exemple).
Event-Raise Task : permet de créer un événement défini par l'utilisateur. Lorsque l'Integration Service exécute cette tâche, elle déclenche l'événement. Utilisez la tâche Event-Raise avec la tâche Event-Wait pour définir les événements.

Les tâches réutilisables peuvent être créées dans le Task Developer.
Toutes ces tâches peuvent être liées par ce que l'on appelle des liens (Workflow Links) et sur ces liens, nous pouvons définir des conditions. Les tâches peuvent être parrallélisées au sein d'un même workflow (en fonction des ressources système bien sure).

Lorsque le nombre de tâches dans un workflow devient important, on peut regrouper certaines tâches dans des Worklets. Les Worklets sont constituées de sous ensembles de tâches au sein d'un même workflow.
Une Worklet peut être développée dans le Worklet Designer et ne peut être exécutée qu'au sein d'un workflow.


Tips:
1- Quand on crée un workflow complexe, il est nécessaire de documenter le processus en utilisant une description textuelle et expliquer exactement ce qu'il est censé accomplir et les étapes et les méthodes qu'il utilisera pour réaliser son objectif.
2- Le processus d'élaboration des workflows comprend les étapes suivantes:
• Définir clairement et documenter toutes les dépendances
 
• Analyser les ressources machines disponibles (pour décider du parallélisme, mise en cache...)
Définir les besoins opérationnels
• Développer des tâches, Worklets, et les workflows basés sur les résultats
3- Créer un inventaire de tâches et Worklets et réutilisables. Cette liste est une liste "work in progress" et devra être continuellement mise à jour au fil de l'eau. Elle permet de mutualiser les développements et le paramétrage au sein d'un même projet.
Il faut que les tâches réutilisables soient correctement documentées pour le rendre plus facile pour les autres développeurs de déterminer si elles peuvent ou doivent les utiliser dans leur propre développement.
4- Si le volume des données est suffisamment faible par rapport aux ressources machines disponible, il faut privilégier l'analyse des dépendances à l'analyse des volumes lors de la conception du workflow. Ceci permettra de tirer profit de la possibilité de lancer plusieurs sessions en parallèle.
5- Utilisez un fichier de paramètres pour définir les valeurs des paramètres et des variables utilisées dans un Workflow, Worklet, Mapping, ou Session. Un fichier de paramètres peut être créé à l'aide d'un éditeur de texte tel que WordPad ou Notepad++. Dressez la liste des paramètres ou des variables et leurs valeurs dans le fichier de paramètres.
6- Lorsque vous utilisez des paramètres ou variables dans un Workflow, Worklet, Mapping ou Session, l'Integration Service vérifie le fichier de paramètre pour déterminer la valeur de départ du paramètre ou variable (Start Value). Utilisez le fichier de paramètres pour initialiser les paramètres et variables. Si les valeurs de départ ne sont pas définies dans le fichier de paramètre, l'Integration Service les cherche ailleurs, par exemple il utilise "Initial Value" pour un paramètre de mapping.
L'Integration Service met la session à "Failed" s'il ne trouve pas la valeur d'un paramètre de Session dans le fichier de paramètre.


Aucun commentaire:

Enregistrer un commentaire