Interfaces Plugin
Les interfaces Plugin sont basées sur une DLL qui contient un ensemble de fonctions permettant de gérer les interactions avec les solutions externes. Les données sont transférées vers le plugin (sortant) ou à partir du plugin (entrant).
Une interface Plugin est principalement définie dans la DLL elle-même (détails de connexion, emplacements, paramètres, etc.)
Installer l'interface Plugin sur le server
Remarque : Lors de l’installation d’un nouveau Plugin, le CampaignAgent doit être redémarré afin d’être pris en compte.
Les renseignements techniques à propos des Plugins installés peuvent également être obtenus auprès de la base de données via la requête suivante :
SELECT * FROM interface_plugins
Voici un exemple du contenu du tableau ‘INTERACE_PLUGINS’ :
Remarque : Le champ ‘GUID’ est utilisé comme un identifiant unique pour chaque interface
Les modes d’exécution des Interfaces Plugin peuvent être ‘instantanés’ ou ‘programmés’. Ces deux modes insèrent toujours des fiches dans le tableau d’interface. Le Plugin n’est jamais exécuté directement.
Trois fonctionnements standard caractérisent une interface Plugin :
- Écrire : Les nouvelles fiches sont extraites du tableau d’Interface et envoyées au Plugin. La périodicité et le nombre de fiches peuvent être configurés. Pour chaque élément traité, le Plugin renvoie un résultat.
- Lire (polling) : Les opérations de lecture sont effectuées dans deux situations et le résultat se traduit toujours par une mise à jour du tableau d’Interface.
-
- Première situation – Plugin sortant : La routine de lecture est appelée et interroge le Plugin à propos des mises à jour sur les éléments déjà envoyés. Pour chaque élément actualisé, le Plugin renvoie un CQID et, avec ce CQID, l’interface sollicite des données et les sauvegarde dans le tableau d’interface.
- Deuxième situation – Plugin entrant : La routine de lecture est appelée et interroge le Plugin à propos de nouveaux éléments entrants. Dans ce cas, les données sont automatiquement renvoyées à l’Interface, car aucun CQID n’est disponible.
- Traitement: Contrairement aux interfaces fichier, les interfaces Plugin supportent le traitement direct des flux. Cela signifie que tout changement apporté au niveau du tableau d’interface (drapeau ‘Modifié’ placé sur 1) est automatiquement traité par le CampaignAgent.
Créer l'interface
Pour créer une nouvelle interface, sélectionnez l’option 'Nouvelle interface plugin' dans la barre d'outils sur l’onglet Interface :
La fenêtre suivante est affichée:
Remarque : toutes les propriétés ne peuvent pas être configurées ici. Certaines propriétés sont définies dans le plugin sélectionné et ne peuvent qu’être consultées.
Géneral
- Nom
- Description:
- Interface Module: choix du module qui sera utilisé pour exécuter cette interface
- Programmation :définissez l'intervalle entre deux exécutions et la taille de lot maximale.
Remarque technique : Les modules qui peuvent être choisis dans cette liste sont tous créés par Selligent. Ces modules sont en réalité des fichiers dll contenant les renseignements nécessaires pour permettre une interaction entre SELLIGENT et l’application externe. Si aucun module n’est sélectionné, il n’y aura pas d’interaction directe avec l’application externe, mais les informations seront stockées dans des tables d’interface spéciales susceptibles d’être interrogées par l’application externe après l’attribution de droits d’accès à ces tables.
Lors de la création d’une nouvelle interface Plugin, il est possible de configurer des paramètres spécifiques dans le Plugin en cliquant sur le bouton‘Configurer’:
Exemple de plugin 'Message direct 'X' (anciennement Twitter)' :
Le contenu de la fenêtre affichée dépend de la définition interne du Plugin. Voici un exemple basé sur un module 'X' (anciennement Twitter) :
Toutes les données spécifiées pour la configuration du Plugin sont stockées dans les propriétés de l’interface. Cela signifie que le même Plugin peut être utilisé dans plusieurs interfaces avec, pour chacune, des valeurs de paramètre différentes.
Le bouton ‘Valider’ déclenche la validation de la configuration définie.
Techniquement, cette validation crée une nouvelle fiche dans le tableau ‘INTERFACE_PLUGIN_REQUESTS’. Ensuite, le CampaignAgent examine ce tableau et exécute les opérations demandées. La validation est donc un processus asynchrone.
Fields
L'onglet 'Champs' permet de spécifier des paramètres supplémentaires. Ces paramètres peuvent être utilisés pour stocker des informations qui ne sont pas mémorisées directement dans le profil du contact.
La plupart des Plugins déterminent les champs à utiliser dans le tableau d’interface ; dans ce cas, la définition de l’interface n’est pas dynamique et ne peut pas être configurée. L’utilisateur est incapable de modifier les champs et l’indicateur ‘Définition statique’ s'affiche
Ceci est un example des champs définis dans la DLL utilisée par le module SMS. Les champs ne peuvent pas être édités.
Remarque : les paramètres ne peuvent y être définis qu'en cas de sélection de ‘Pas de module’ sur l’onglet ‘Général’. Si un module spécifique est sélectionné, les paramètres seront définis dans le dll correspondant.
Lorsque la définition du champ n’est pas fixe, deux solutions alternatives sont disponibles :
- Configurable : L’utilisateur peut ajouter librement des champs à l’interface au moyen du bouton ‘Ajouter Paramètre’.
- Dynamique : Tous les champs dépendent de la configuration définie. Dans ce cas, un rappel supplémentaire est réalisé après la configuration afin de récupérer la liste des champs à partir du système externe.
Remarque : À l'instar des interfaces fichier, les interfaces Plugin utilisent le champ ‘CQID’ pour identifier les fiches. Étant donné que ce champ est géré par le système SELLIGENT, il ne s’affiche pas dans la configuration de l’interface.
Des fonctionnalités standard de gestion des paramètres sont fournies dans cet onglet:
- Delete
- Ajouter paramètre
- Propriétés
Une interface peut également être limitée à une liste d’utilisateurs spécifique. La liste déroulante dans la partie inférieure de la fenêtre permet la sélection de l’interface requise .
Une interface peut également être limitée à une liste d’utilisateurs spécifique. La liste déroulante dans la partie inférieure de la fenêtre permet la sélection de l’interface requise:
Vous pouvez y définir les informations suivantes :
- Nom : le nom du paramètre
- Type : le type du paramètre (Texte, Texte descriptif, Numérique, Date, Heure)
- Longueur : la longueur du champ paramètre
- Description : une description facultative du paramètre
- Direction : la direction des données (Output, retour d’information, les deux)
- Requis : Champ obligatoire
Evénements
Avant de pouvoir créer des événements, il faut d'abord créer l'interface !
Définir des événements de retour d’information et leur attribuer une marque. Définir les contraintes et spécifier la méthode d’activation.
- Pour ajouter un nouvel événement de retour d'information, appuyez sur le bouton ‘Nouveau’ :
2. Saisissez un nom et une description pour l'événement 'Retour d'information'.
3. Sélectionnez l'événement qui déclenche le retour d'information. Les options disponibles sont les suivantes :
- Le canal a été exécuté
- Une erreur s'est produite pendant l'exécution du canal
- Un retour d'information a été reçu
- Aucun retour d'information n'a été reçu
4. Sélectionnez l'icône à afficher devant le retour d'information :
Remarque : le retour d'information sur une interface peut être transmis via un fichier importé (manuellement ou automatiquement) ou via l'API individuelle.
Utulisation des interfaces plugin dans un Journey
Un Plugin est composé d’un ensemble de bibliothèques de classe C# regroupées dans des fichiers DLL pouvant être utilisés dans une ou plusieurs interfaces. Vous trouverez ci-dessous un exemple de code utilisé pour définir un Plugin :
publicboolWriteData(StringConfig,refStringXml,outStringErrorStr)
{
ErrorStr
="";
StringServer, Login, Pwd;
if(ParseConfig(Config,outServer,outLogin,outPwd,refErrorStr) ==false)
returnfalse;
m_Host.WriteLog("SmsGateway:
Server ["+ Server +"], Login["+ Login +"],
Pwd ["+ Pwd +"]",false);
NetXmlDoc
iDoc =newNetXmlDoc();
if(iDoc.LoadXml(Xml) ==false)
{
ErrorStr ="Unable
to parse instruction xml";
returnfalse;
}
NetXmlNode
RecordsNode = iDoc.GetRootNode();
for(inti = 0; i < RecordsNode.GetChildCount();
i++)
{
NetXmlNode RecordNode = RecordsNode.GetChild(i);
StringNumber ="", Network ="", Content ="";
for(intn = 0; n < RecordNode.GetChildCount();
n++)
{
NetXmlNode ValueNode = RecordNode.GetChild(n);
StringName = ValueNode.GetAttribute("NAME");
StringValue = ValueNode.GetContent();
if(Name =="NUMBER") Number = Value;
if(Name =="NETWORK")Network = Value;
if(Name =="CONTENT")Content = Value;
}
m_Host.WriteLog("Sending:
Network ["+ Network +"], Number
["+ Number +"], Content
["+ Content +"]",false);
RecordNode.SetAttribute("EXTID","1");
}
Xml
= iDoc.GetXml();
returntrue;
}
Chaque plugin est différent. Selon le type de plugin, il convient de définir différentes propriétés lorsque l'interface Plug-in est utilisée dans un Journey.
Voici un exemple d'interface 'SMS sortant' utilisée dans un Journey.
L'interface SMS sortant est ajoutée par glisser/déposer à partir du dossier Interfaces de l'arborescence à gauche. Double-cliquez sur le composant pour définir les propriétés :
- Numéro de portable et opérateur :sélectionnez les valeurs correspondant au numéro de portable et à l'opérateur dans la liste Audience ou la liste liée. L'opérateur est facultatif.
- Message : contient les données du SMS, y compris le texte inséré dans le SMS. Notez que les deux peuvent contenir des champs de personnalisation. L'icône à côté du champ 'Message' fournit l'accès à un éditeur permettant la composition du message. Un aperçu du message s'affiche dans l'éditeur.
Il est possible d'utiliser les champs de personnalisation dans le message, tout comme dans les e-mails. Le numéro où les réponses doivent être envoyées dépend de l'opérateur.
- Méthode de programmation : deux méthodes de programmation peuvent être utilisées : le message instantané et le message programmé. Ce comportement est le même que celui utilisé pour la diffusion de l'e-mail.
- Retour d'information : les informations sur chaque SMS envoyé sont mémorisées dans une table de session. À réception d'un SMS entrant, la table est analysée pour identifier le contact ayant envoyé la réponse. (Consultez la rubrique 'Boîte de dialogue SMS' pour plus d'informations sur la gestion des SMS entrants)
(Consultez la rubrique Composant SMS pour plus de détails sur la configuration)
- Onglet Avancé: si plusieurs interfaces 'SMS sortant' sont définies, il est possible de basculer de l'une à l'autre.
Lorsque le Journey ci-dessus est exécuté, une fiche par contact de la sélection est insérée dans le tableau d'interface. Le traitement des fiches dans ce tableau d'interface dépend donc de la configuration de l'interface.
