Services Diva
Retrouvez toutes les informations concernant les services Diva dans le chapitre dédié
Services Web Diva
Toutes les informations concernant les services web Diva dans le chapitre dédié
Service dhsTelnet
Toutes les informations concernant les services Telnet figurent dans le chapitre dédié.
Retrouvez plus spécifiquement les informations concernant le service dhsTelnet en suivant ce lien.
Service XBal
XBal : Service de boite aux lettres
Présentation de Xbal
Le service XBAL lit la boîte aux lettres locale par MAPI et lance des programmes de traitement des messages reçus.
Le traitement à effectuer est codifié dans l'objet du message. L'objet du message est écrit en HMP dans lequel le paramètre <ACTION> définit le traitement à effectuer. Le traitement à effectuer fait référence à un fichier d'actions (XBALF.dhfi) qui contient le nom d'un programme Diva à exécuter.
Le programme de traitement de l'action est lancé par la fonction ProgramCall. XBAL lui envoie les paramètres du message à traiter par le tunnel.
Attention : pour que Xbal fonctionne avec Outlook, il faut que ce dernier soit correctement paramétré.
Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "ProgramCall" de la documentation Xwin - Programmation.
Paramètres du service Xbal
XBAL est lancé comme un service par « Divalto Services Diva » (Voir le paramétrage des services Diva). En plus des paramètres généraux valables pour tous les services, les paramètres spécifiques de XBAL du fichier paramètres des services dhsServices.txt sont les suivants :
Profil | permet de préciser le profil MAPI à utiliser pour la lecture de la boîte. |
Pwd | permet de préciser le mot de passe du profil MAPI |
Log | permet d'indiquer que l'on souhaite enregistrer les erreurs dans un fichier journal. Le paramètre Log permet de préciser le nom du fichier journal. Si la valeur du paramètre Log est à espace, XBAL écrit les erreurs dans le fichier /Divalto/sys/Xbal.log. Si le paramètre Log est absent, XBAL n'enregistre pas les erreurs. |
LogMessage | permet d'indiquer que l'on souhaite enregistrer un compte rendu des messages traités avec succès dans un fichier journal. Le paramètre LogMessage permet de préciser le nom du fichier journal. Si la valeur du paramètre MessageLog est à espace, XBAL écrit dans le fichier /Divalto/sys/XbalMessage.log. Si le paramètre MessageLog est absent, XBAL n'enregistre pas le compte-rendu |
DossierErreur | permet de préciser le nom d'un dossier de la messagerie dans lequel Xbal transfère les messages "en erreur". Cette option nécessite une messagerie compatible avec l'interface "Extended MAPI". Par défaut, XBAL crée le dossier "XBAL messages en erreur". Si l'interface MAPI ne permet pas la création de dossier, les messages "en erreur" sont simplement marqués comme étant lus. |
Attente | permet d'indiquer le temps en seconde entre deux parcours de la boîte aux lettres. La valeur par défaut est de 60 secondes. Lorsque l'interface "Extended MAPI" est disponible pour la messagerie, XBAL est automatiquement informé de l'arrivée d'un nouveau message. Ce paramètre n'est donc pas pris en considération. |
Exemple :
<nom>xbal<programme>xbal.dhop<tache>17-999<windowshow>SW_HIDE<utilisateur>BAL<profil>monprofil<pw>monmotdepasse<log> <attente>120
Remarque : Le service XBAL ne fonctionne pas si son fichier Xlogf.dhfi se trouve sur un serveur Xlan sécurisé. Voir Paramétrage des utilisateurs réseau
Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Les services Diva
Algorithme général de XBAL
XBAL lit la boîte de réception des messages. Il ne traite que les messages non lus. Il récupère l'objet du message qui doit contenir une chaîne de commande de type HMP.
Le paramètre <Action> permet de préciser l'action à exécuter pour ce message. Il fait référence à une action décrite dans le fichier paramètres des actions (xbalf.dhfi). Ce fichier contient pour chaque action :
Un commentaire décrivant l'action.
Un indicateur de validité de l'action. Celui-ci permet de suspendre provisoirement l'exécution d'une action. En cas de problème lors de l'exécution d'une action le programme XBAL invalide l'action en positionnant cet indicateur qui devra ensuite être repositionné manuellement.
Le nom du programme Diva qui traite le message.
Le code utilisateur sous lequel le programme Diva doit s'exécuter.
Les paramètres de l'action sous forme de chaîne de commande HMP.
Lorsque XBAL lit un message dont l'objet contient le paramètre <Action>, il effectue les opérations suivantes.
Recherche de l'action dans le fichier des actions. Si l'action n'est pas active, le message n'est pas traité.
Chargement des droits et des chemins implicites de l'utilisateur lié à l'action. S'il n'est pas renseigné, le programme s'exécute avec le code utilisateur du service XBAL. En cas d'erreur lors du changement de code utilisateur, l'action est désactivée.
Envoi par le tunnel des paramètres du message.
Exécution du traitement par la fonction "ProgramCall".
XBAL attend l'acquittement du traitement par la fonction "PongReceive" de "Xbal_Status". Quatre cas sont pris en compte :
Xbal reçoit un acquittement positif (valeur 0). Le message est supprimé.
Xbal reçoit un acquittement négatif grave (valeur 1). L'action est invalidée.
Xbal reçoit un acquittement négatif (valeur 2). Le message est transféré dans le dossier des messages en erreur ou est marqué comme étant lu.
Xbal ne reçoit pas d'acquittement. L'action est invalidée.
Lorsque tous les messages de la boîte de réception sont traités, XBAL s'endort, soit jusqu'à l'arrivée d'un nouveau message avec l'interface Extended MAPI ou pendant une minute (par défaut voir le paramètre Attente) avec l'interface Simple MAPI avant de consulter à nouveau la boîte de réception.
Remarques :
En cas d'erreur de traitement d'un message, XBAL le transfère dans le dossier des messages en erreur. Pour que ces messages soient à nouveau traités, la cause de l'erreur doit être corrigée par un opérateur, puis ces messages doivent être transférés à nouveau dans la boîte de réception et marqués comme étant non lus.
XBAL ne traite que les messages "Non lus". Dans certains cas d'erreur de traitement, lorsque l'interface MAPI ne permet pas le transfert dans un autre dossier, XBAL marque le message comme étant lu. Il ne sera plus donc plus traité par XBAL à moins d'être remis dans l'état "non lu" dans la boîte de réception par un opérateur après correction de la cause de l'erreur consignée dans le journal des erreurs.
Lorsque le paramètre général <log> est actif, XBAL consigne les erreurs dans un journal.
Lorsque le paramètre général <logMessage> est actif, XBAL consigne une trace des messages traités avec succès dans le journal des messages.
Voir également :
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "PingReceive - PongReceive - PingLocalReceive" de la documentation Xwin - Programmation.
Services Diva
Paramètres du traitement des messages
XBAL envoie les paramètres du message à traiter à travers le tunnel. Le programme de traitement les récupère par la fonction PingReceive.
"Xbal_Objet" | contient l'objet du message au format HMP. |
"Xbal_Date" | contient la date d'émission du message. |
"Xbal_Emetteur" | contient l'émetteur du message. |
"Xbal_Message" | contient le texte du message (taille maximum 32000 caractères). |
"Xbal_Param" | contient les paramètres liés à l'action dans le fichier des actions. |
"Xbal_Nbre" | contient le nombre de pièces jointes au message. |
"Xbal_Fichiern" | contient le nom complet de la pièce jointe. n varie de 1 à Xbal_nbre. |
"Xbal_NomFichiern" | contient le nom original de la pièce jointe tel qu'il apparaît dans le message. n varie de 1 à Xbal_nbre. |
Traitement des pièces jointes
Les pièces jointes sont stockées dans des fichiers temporaires. Le programme de traitement des messages doit supprimer ces fichiers avec la fonction WinDeleteFile.
Valeurs de retour du programme de traitement
Le programme de traitement, s'il est appelé en mode synchrone, doit acquitter le message par la fonction Pong avec le paramètre "Xbal_Status" et les valeurs suivantes :
0 | acquittement positif. Le message est supprimé de la boite de réception. |
1 | acquittement négatif grave. L' action ne peut pas être traitée par programme. Au retour XBAL désactive l'action. |
2 | acquittement négatif. Ce message n'a pu être traité. Il est transféré dans le dossier des messages en erreur ou marqué comme étant lu dans la boîte de réception, mais n'est pas supprimé. |
Voir également :
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "PingReceive - PongReceive - PingLocalReceive" de la documentation Xwin - Programmation.
Le paramétrage de XBAL
Le fichier paramètres des actions traitées par XBAL est géré par le choix "Actions des services" du menu Harmony.dhop. Il s'agit d'un zoom sur le fichier XBALF.dhfi.
Chaque action est identifiée par un nom d'action et contient les informations suivantes :
Un commentaire décrivant l'action.
Un indicateur de validité de l'action. Celui-ci permet de suspendre provisoirement l'exécution d'une action. En cas de problème lors de l'exécution d'une action le programme XBAL invalide l'action en positionnant cet indicateur.
Pour les services web : un indicateur permettant de garder le programme XwebServices en résident. (voir le chapitre dédié aux services web Services web )
Le nom du programme Diva qui traite le message.
Le code utilisateur sous lequel le programme doit s'exécuter.
Les paramètres de l'action sous forme de chaîne de commande HMP.
Paramétrage de Outlook
Xbal accède à la messagerie par l'interface MAPI. Pour que la lecture des messages soit accessible sans que le logiciel Outlook ne soit ouvert dans une session, Outlook 98 et Outlook 2000 doivent être configurés pour le service «Société ou Groupe de travail». Pour vérifier la configuration, il faut cliquer sur l'élément de menu «Aide» d'Outlook, puis sélectionner «À propos de Microsoft Outlook», la mention "Société ou groupe de travail" doit apparaître.
Si cette option n'est pas active, il faut modifier la configuration d'Outlook 98. Pour cela, il faut relancer l'installation d'Outlook 98 en exécutant «Ajouter/supprimer les programmes» dans le Panneau de configuration. Sélectionnez «Outlook 98» puis cliquez sur «Ajout/suppression de programmes». Dans la boîte de dialogue «Options du service de messagerie» il faut choisir «Société ou groupe de travail».
Pour Outlook 2000, dans le choix «Outils» du menu, il faut sélectionner «Options», choisir l'onglet «Remise du courrier» puis cliquer sur le bouton «Reconfigurez la remise du courrier…» et enfin sélectionner l'option «Société ou groupe de travail».
Outlook 97 et Outlook 2002 n'intègrent pas le concept du service «Société ou Groupe de travail».
Pour une utilisation avec Outlook Express, il faut impérativement ouvrir une session et charger le logiciel.
Exemple de programme de traitement
Bloc de code |
---|
;___________________________________________________________________________
;Description : Programme de traitement de message pour l'action "MonAction"
;___________________________________________________________________________
1 MessageObjet 255 ;Objet du message
1 MessageDate 10 ;Date d'émission
1 MessageEmetteurLong 256 ;Emetteur Nom Long
1 MessageTexte 32000 ;Texte du message
1 MessageNbPieces 5,0 ;Nbre de pièces jointes
1 MessageNomFic 256*10 ;Noms des fichiers joints
1 Param 256
1 i x
1 Status 1,0
main
; récupération des paramètres
pingReceive("Xbal_Objet" ,MessageObjet)
pingReceive("Xbal_Date" ,MessageDate)
pingReceive("Xbal_Emetteur" ,MessageEmetteurLong)
pingReceive("Xbal_Message" ,MessageTexte)
pingReceive("Xbal_Param" ,Param)
pingReceive("Xbal_Nbre" ,MessageNbPieces)
MessageNbPieces = Min(MessageNbPieces,Index(MessageNomFic(),1))
for i = 1 to MessageNbPieces
pingReceive("Xbal_Fichier" & nospaces(tostring( i ) ),MessageNomFic( i ))
next
...
...
; suppression des fichiers temporaires de pièces jointes
for i = 1 to MessageNbPieces
Windeletefile(Left(MessageNomFic( i ))
next
; Acquittement du message
; status = 0 c'est ok le message a été traité. Il sera supprimé.
; status = 1 il y a un pb grave, l'action est invalidée. Les pièces jointes sont supprimées
; status = 2 il y a un problème, le message est marqué lu. Les pièces jointes sont supprimées
pong("Xbal_Status",Status)
ProgramExit |
Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "PingReceive - PongReceive - PingLocalReceive" de la documentation Xwin - Programmation.