Cycle de vie de la procédure
Chaque procédure s'exécute via un cycle de vie complet.
Le cycle de vie d'exécution d'une procédure comprend les étapes suivantes :
- Reconnaissance et initialisation
- Sélection (facultatif)
- Exécution
- Destruction
Reconnaissance et initialisation
Unica Plan doit être informé de toutes les procédures personnalisées et standard disponibles pour une instance d'installation particulière. Ce processes est appelé détection.
Les procédures personnalisées sont définies dans le fichier de définition du plug-in de procédure. Le gestionnaire du plug-in Unica Plan lit ce fichier lors de l'initialisation. Pour chaque procédure détectée, le gestionnaire de plug-in effectue les tâches suivantes :
- Instanciation de la procédure ; passage de son état à INSTANCIEE.
- Création d'un enregistrement d'audit de procédure.
- Si la procédure a été instanciée, sa méthode initialize() est appelée avec tout paramètre d'initialisation trouvé dans son fichier de description de plug-in. Si cette méthode émet une exception, le statut est consigné et la procédure est abandonnée. Dans le cas contraire, la procédure passe à l'état INITIALISEE. Elle est alors prête à être exécutée.
- Création d'un enregistrement d'audit de procédure.
- Si la procédure a été initialisée, sa méthode getKey() est appelée pour identifier la clé utilisée par les clients pour référencer la procédure. Cette clé est associée à l'instance et sauvegardée pour une recherche ultérieure.
Sélection
De temps en temps, il peut arriver que Unica Plan présente une liste des procédures disponibles aux utilisateurs, par exemple, pour permettre aux administrateurs de définir un déclencheur. Unica Plan présente cette liste uniquement une fois que la procédure a été initialisée, via ses méthodes getDisplayName() et getDescription().
Exécution
Une fois la procédure initialisée, Unica Plan reçoit une demande d'exécution de la procédure. Cela peut se produire en même temps que pour d'autres procédures (ou pour la même) s'exécutant sur d'autres unités d'exécution.
Au moment de l'exécution, le gestionnaire d'exécution de procédure effectue les tâches suivantes :
- Démarrage d'une transaction de base de données.
- Définition de l'état de la procédure sur EN COURS D'EXECUTION.
- Création d'un enregistrement d'audit de procédure.
- Appel de la méthode execute() de la procédure avec un contexte d'exécution et tout paramètre d'exécution fourni par le client. La mise en oeuvre de la méthode utilise l'API Unica Plan si nécessaire, en acquérant les verrous d'édition et en transmettant le contexte d'exécution. Si la méthode d'exécution émet une exception, le gestionnaire d'exécution marque la transaction comme devant être annulée.
- Validation ou annulation de la transaction en fonction des résultats de l'exécution ; définition de l'état de la procédure sur EXECUTEE.
- Libération de tout verrou d'édition en suspens.
- Création d'un enregistrement d'audit de procédure.
Destruction
A l'arrêt d'Unica Plan , le gestionnaire du plug-in de procédure passe en revue toutes les procédures chargées. Pour chaque procédure détectée, il effectue les tâches suivantes :
- Appel de la méthode destroy() de la procédure afin de permettre à cette dernière d'effectuer un nettoyage avant la destruction de l'instance.
- Passage de l'état de la procédure à FINALISEE (elle ne peut pas être exécutée).
- Création d'un enregistrement d'audit de procédure.
- Destruction de l'instance de la procédure.