Généralités sur Unica Plan Integration Services

Unica Plan Integration Services permet de créer des procédures personnalisées. Vous pouvez utiliser ces procédures pour déclencher des événements externes lorsque certains événements se produisent dans Unica Plan. Vous pouvez utiliser ces procédures pour exécuter les fonctions Unica Plan à partir de systèmes ou de programmes externes.

L'interface API interagit avec Unica Plan Unica Plan au niveau du programme, de la même façon que vous utilisez l'interface graphique comme interface avec au niveau utilisateur. L'API vous permet de construire des procédures. Ces dernières vous permettent d'établir une communication entre Unica Plan et les systèmes externes. Le service Web Unica Plan est l'objet conteneur de ces procédures, de l'API et des déclencheurs.

L'architecture de Unica Plan Integration Services vous est présentée ici.


Communication entre les services Integration Services et avec les systèmes externes

Voici les principaux composants des services Integration Services :

  • Unica Plan Procedure Manager : étend la logique métier en interagissant avec Unica Plan via l'API.
  • Unica Plan Trigger Manager : associe une condition (par exemple, le changement d'état d'un projet marketing) à une action (une procédure à exécuter lorsque la condition associée au déclencheur est remplie).

Méthodes

Vous utilisez les composants d'Unica Plan Integration Services pour développer des procédures personnalisées, comme l'indique le diagramme suivant :


Le programmateur utilise le programme d'installation Unica Plan , les outils Java et Serveur d'Application

Après avoir installé le kit de développement, vous effectuez les étapes de base suivantes :

  1. Codification de la procédure personnalisée.
  2. Mise à jour de la définition du plug-in dans le fichier de définition XML.
  3. Génération du plug-in :
    1. Compilation des classes nécessaires.
    2. Si vous utilisez une bibliothèque tiers qui ne fait pas partie de l'archive Unica Plan, intégrez la bibliothèque dans le fichier plan.war et procédez au redéploiement.
  4. Redémarrez Unica Plan. Les modifications apportées aux classes de procédure sont appliquées lorsque vous redémarrez le serveur d'application.
    Remarque : Si vous modifiez le fichier plan.war, vous devez annuler le déploiement et redéployer Unica Plan avec le nouveau fichier plan.war. Annulez le déploiement et redéployez Unica Plan si vous utilisez une bibliothèque tiers qui ne fait pas partie de l'archive Unica Plan et que vous modifiez le fichier plan.war.

Exemple de base de communication entre Unica Plan et l'API

L'exemple suivant décrit l'établissement d'une communication entre l'API et Unica Plan. Il ne s'agit pas d'un travail utile mais d'un aller-retour entre Unica Plan et Integration Services.

Cet exemple utilise des portions des exemples de procédures fournis avec le kit de développement de Unica Plan Integration Services. Vous pouvez trouver le code référencé ici dans les fichiers suivants :

  • PlanClientFacade.java
  • PlanWSNOOPTestCase.java

La méthode noop est un appel de service Web en direction de Unica Plan. Elle est définie dans la classe PlanClientFacade et transmet des valeurs nulles dans une matrice.

public ProcedureResponse noop(String jobId) 
  throws RemoteException, ServiceException {
  NameValueArrays parameters =
    new NameValueArrays(null, null, null, null, null, null, null, null); 
  return _serviceBinding.executeProcedure("uapNOOPProcedure", jobId, parameters);
}

La procédure testExecuteProcedure appelle la méthode noop à partir de PlanClientFacade pour établir un aller-retour avec l'application Unica Plan.

public void testExecuteProcedure() throws Exception {
  // Time out after a minute
  int timeout = 60000;
  PlanClientFacade clientFacade = new PlanClientFacade(urlWebService, timeout);
  System.out.println("noop w/no parameters");
  long startTime = new Date().getTime();
  ProcedureResponse response = clientFacade.noop("junit-jobid");
  long duration = new Date().getTime() - startTime;

  // zero or positive status => success
  System.out.println("Status: " + response.getStatus());
  System.out.println("Duration: " + duration + " ms");
  assertTrue(response.getStatus() >= 0);
  System.out.println("Done.");
}

Pour plus d'informations sur NameValueArrays, ProcedureResponse et les autres méthodes et types de données listés, voir Unica Plan Integration Module et les fichiers JavaDoc.