Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script
Retour à la page principale
Renvoie la liste de toutes les entrées contenues dans un carnet d'adresses.
FUNCTION MAILAddressBookEntries(VAL session: MAIL Session, VAL addrBookName: STRING, REF addrBookEntries: LIST of MAILABEntry): INTEGER;
Nom de l'argument | Description |
session | Identificateur de la session de messagerie. |
addrBookName | Nom du carnet d'adresse devant être ouvert. Les
noms symboliques suivants peuvent servir de raccourci pour
l'ouverture des carnets d'adresses standard :
|
addrBookEntries | Liste des enregistrements MailABEntry décrivant les entrées du carnet d'adresses indiqué. |
Cette fonction est uniquement prise en charge par le prococole VIM.
VARIABLES session: MAILSession; AddressBookName: String; AddressBookEntries: LIST of MAILABEntry rc:Integer;
ACTION
AddressBookName := 'Liste des correspondants privés'; rc := MAILAddressBooksEntries(session, AddressBookName, AddressBookEntries); IF rc = 1 THEN (* Entrées du carnet d'adresses disponibles *) ELSE (* Erreur lors de la lecture des entrées du carnet d'adresses. *) END; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Renvoie une liste des noms de carnets d'adresses disponibles pour la session courante.
FUNCTION MAILAddressBooks(VAL session:MAILSession, REF AddrBooks: LIST of STRING): INTEGER;
Nom de l'argument | Description |
session | Identificateur de session, |
AddrBooks | Liste des noms de carnets d'adresses disponibles pour la session courante (valeur de retour). |
Cette fonction est uniquement prise en charge par le prococole VIM.
VARIABLES session: MAILSession; rc:Integer; AddressBooks: LIST of String;
ACTIONS
(* Une session MAILSession est ouverte *)
rc := MAILAddressBooks(session, AddressBooks); IF rc = 1 THEN (* La liste des noms de carnets d'adresses disponibles pour cette session est enregistrée dans AddressBooks *) ELSE (* Echec de la fonction *) END; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Referme un conteneur de messages.
FUNCTION MAILCloseMessageContainer(VAL msgContainer: MAILContainer): INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages ouvert. |
VARIABLES msgContainer :MAILContainer;
ACTIONS
(* Conteneur de messages ouvert et utilisé *)
rc := MAILCloseMessageContainer(msgContainer); IF rc = 1 THEN (* Fermeture avec succès du conteneur de messages *) ELSE (* Echec de la fonction *) END; END;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Ferme la session.
FUNCTION MAILCloseSession(REF session: MAILSession): INTEGER;
Nom de l'argument | Description |
session | Identifie la session à fermer. |
Toutes les sessions de messagerie ouvertes doivent être fermées une fois qu'elles sont terminées. La fermeture d'une session libère ainsi toutes les ressources du système qui sont associées à la session. Lorsque la fermeture d'une session échoue à la fin de de l'exécution d'un programme, il peut en résulter une perte de la mémoire.
Remarque : Pour obtenir une description de la structure de l'enregistrement MailSendHeader,reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
VARIABLES rc:Integer; session: Integer;
ACTIONS rc := MAILOpenSession('F:\CCMAIL\CCDATA', 'VIMAPPLICATION', 'PASSWD', OMISEL_CP1252, session); IF rc <> 1 THEN (* Erreur lors de l'ouverture de session *) ELSE
(* Exécution de certaines operations avec la session ouverte. *)
rc := MAILCloseSession(session); IF rc <> 1 THEN (* Erreur lors de la fermeture de session *) END; END; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script
Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Renvoie le nom de l'utilisateur de l'application de messagerie associé à la session définie par le paramètre de session.
FUNCTION MAILGetEntityName(VAL session: MAILSession, REF Name: MAILName): INTEGER;
Nom de l'argument | Description |
session | Identificateur de la session dont on souhaite connaître le nom d'utilisateur. Lorsque la valeur $Unknown est définie, le nom par défaut de l'utilisateur de l'application de messagerie est renvoyé. Si aucun nom par défaut n'est disponible, une erreur est renvoyée. |
Nom | Enregistrement MailName destiné à recevoir le nom de l'utilisateur. Lorsque cette fonction est renvoyée, seule la partie distinctive de l'enregistrement MailName est renseignée. |
KNOWLEDGEBASE ERROR;
USES mail;
ROUTINES PROCEDURE Mail;
PRIVATE ROUTINES
PROCEDURE Mail IS
VARIABLES sess :MAILSession; reply :string; rc :INTEGER;
ACTIONS
rc:=MAILOpenSession ('mailserv.microsoft.com', 'bgates@microsoft.com', 'mot de passe',$UNKNOWN, sess,OMI_VIM_INTERFACE); IF rc < 1 THEN WinMessageBox($Desktop,'Erreur',$MBIconError, 'Echec de l'ouverture de session : '&rc);
MailGetLastErrorText(OMI_SMTP_POP_INTERFACE, sess,rc, rc, reply); WinMessageBox($Desktop,'Erreur',$MBIconError, 'Echec de l'ouverture de session : '& reply); MAILTerminate(OMI_SMTP_POP_INTERFACE); EXIT; END;
END;
Cette fonction est uniquement prise en charge par le prococole VIM.
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Renvoie le texte de l'erreur associée à la dernière opération infructueuse.
FUNCTION MAILGetLastErrorText( VAL protocol: INTEGER, VAL sessID: MAILSession, VAL errCode: INTEGER, REF LastErrCode: INTEGER, REF ErrText: STRING)
Nom de l'argument | Description |
protocol | Identifie le protocole employé pour communiquer avec le système de messagerie |
sessID | Identifie la session (valeur renvoyée MailOpenSession) |
errCode | Valeur associée au code d'ereur par le dernier appel de fonction de la messagerie |
LastErrCode | Code d'ereur par le dernier appel de fonction de la messagerie |
ErrText | Texte lié à la dernière erreur, renvoyé avec ce paramètre |
Cette fonction est uniquement prise en charge par le prococole VIM.
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Initialise l'interface de messagerie TSD Script. Cette opération doit être le premier appel de fonction précédant tout appel des services de l'interface de messagerie TSD Script.
MAILInitialize (VAL protocol:INTEGER): INTEGER
Nom de l'argument | Description |
protocol | Identifie le protocole employé pour communiquer
avec le système de messagerie
|
PROCEDURE SendMail IS VARIABLES SESS: MailSession; ACTIONS MAILInitialize(OMI_MAPI_INTERFACE);
(* Ouverture immédiate de session. *)
(* Autre traitement requis. *)
MAILTerminate(OMI_MAPI_INTERFACE);
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
MailTerminate
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Identifie un message comme ayant été lu.
FUNCTION MAILMarkMessageAsRead(VAL msgContainer: MAILContainer, VAL msgRef:MAILRef): INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages |
MsgRef | Numéro de référence du message identifié comme ayant été lu |
Sur certains systèmes de messagerie, cette fonction déclenche également l'envoi de l'accusé de réception. Toutefois, ce n'est le cas que lorsque le message n'a pas encore été lu et qu'un accusé de réception a été demandé par l'expéditeur.
VARIABLES rc:Integer; msgContainer :MAILContainer; msgRef :MAILRef;
ACTIONS (* Ouvrez un conteneur de messages *) (* Scrutez les messages du conteneur et récupérez *) (* les numéros de référence du message *) (* Définissez msgRef comme le numéro du message identifié comme lu *) rc := MAILMarkMessageAsRead(msgContainer, msgRef); IF (rc <> 1) THEN (* Echec de la fonction MAILMarkMessageAsRead *) ELSE (* Message identifié comme lu *) END;
(* Refermez le conteneur de messages *)
END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Ouvre le conteneur de messages spécifié et renvoie un identificateur utilisable pour la scrutation et la lecture des messages reçus dans ce conteneur.
FUNCTION MAILOpenMessageContainer(VAL session: MAILSession, VAL cntnrName: STRING, REF msgContainer: MAILContainer ): INTEGER;
Nom de l'argument | Description |
session | Identifie la session |
cntnrName | Nom du conteneur de messages à ouvrir. La
syntaxe du nom est dépendante du système de messagerie. Généralement,
il s'agit du PATH complet de la base de données ou de la file
d'attente qui implémente le conteneur de messages. Si la valeur $Unknown est transmise, le conteneur de messages par défaut de la session est ouvert. Le conteneur de messages par défaut porte parfois le nom de boîte aux lettres ou de la boîte de réception. |
msgContainer | Identificateur du conteneur de messages ouvert. |
Le système de messagerie utilise l'identificateur de session authentifiée, pour vérifier si l'utilisateur dispose d'un accès au conteneur de messages spécifié.
Remarque : Dans le cas des sessions MAPI, la fonction $Unknown peut être transmise pour cntnrName.
VARIABLES rc:Integer; session: MAILSession; name :STRING; hfile: File;
ACTIONS
(* Ouvrez une session *)
rc := MAILOpenMessageContainer(session, containername, msgcontainer); IF rc <> 1 THEN ( * Echec de la fonction MAILOpenMessageContainer *) ELSE (* Ouverture avec succès du conteneur de messages *) END;
(* Fermture du conteneur ou de la session *)
END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Ouvre une session authentifiée avec le système de messagerie.
FUNCTION MAILOpenSession(VAL pathSpec: STRING, VAL name: STRING, VAL password: STRING, VAL CharSet:INTEGER, REF session: MAILSession, VAL protocol:INTEGER): INTEGER;
Nom de l'argument | Description |
pathSpec | Nom du chemin d'accès à la base de données du
conteneur de messages, ou nom du serveur. Les conteneurs de messages
sont requis par les logiciels Lotus cc:Mail et Microsoft Mail. Les
noms de serveur sont requis par Lotus Notes, Microsoft Exchange et le
protocole SMTP/POP. Si ce paramètre est facultatif, une valeur
$Unknown peut être transmise. Pour connaître la valeur spécifique requise pour ce paramètre, reportez-vous à la documentation du fournisseur de votre application de messagerie. |
name | Nom de l'utilisateur qui essaie de se connecter.
Si ce paramètre est facultatif, une valeur $Unknown peut être
transmise. Note aux utilisateurs de Microsoft Windows 95 : Reportez-vous aux notes concernant l'instruction MailOpenSession. |
password | Mot de passe de l'utilisateur qui essaie de se connecter.
Si ce paramètre est facultatif, une valeur $Unknown peut être
transmise. Note aux utilisateurs de Microsoft Windows 95 : Reportez-vous aux notes concernant l'instruction MailOpenSession. |
CharSet | Contrôle le jeu de caractères requis par
toutes les chaînes de caractères d'entrée et renvoyé pour toutes
les chaînes de caractères de sortie, ou bien le jeu de caractères
censé définir par défaut le paramètre du jeu de caractères MIME,
dans le cas des lignes et textes de sujet des messages codés au
format MIME. Le jeu de caractères sélectionné peut être l'un des suivants :
|
session | Identificateur de la session ouverte par cette fonction |
protocol | Identifie le protocole utilisé pour communiquer avec le système de messagerie.
|
Conseil : Si vous n'êtes pas certain de la valeur à transmettre dans l'argument CharSet, utilisez la valeur $Unknown afin d'indiquer automatiquement la valeur correcte.
Utilisation des noms de profils de Microsoft Exchange
Les versions 98 et NT de Microsoft Windows contiennent un programme intitulé Microsoft Windows Messaging. Ce programme fonctionne à la manière d'un client de Microsoft Exchange ou Microsoft Mail et peut également être configuré pour assurer une liaison avec d'autres services, tels que la télécopie ou la messagerie Internet. Windows Messaging utilise un profil pour stocker les données relatives aux services mis à la disposition d'un utilisateur.
Les utilisateurs de Windows 98 et NT qui exploitent Windows Messaging doivent utiliser le nom de ce profil en tant qu'argument <name> pour ouvrir une session de messagerie. Aucun mot de passe n'est nécessaire. Lorsque vous appelez MailOpenSession, transmettez la valeur $Unknown pour l'argument <password>. N'utilisez jamais l'ID utilisateur de Miscrosoft Exchange ou Mail. Le programme client de Windows Messaging retrouve automatiquement l'ID utilisateur et le mot de passe à partir des paramètres de configuration du profil de Windows Messaging. Pour que le profil de Windows Messaging fonctionne correctement, il doit contenir les informations concernant le mot de passe.
VARIABLES rc:Integer; PathSpec: String; Name: String; Password: String; CharSet: Integer; Session: MAILSession;
ACTIONS PathSpec := 'serveur@société.com'(* définition du chemin d'accès à la base de données du onteneur / nom de serveur *) Name := 'utilisateur@société.com';(* ID utilisateur valide *) Password := 'mot de passe'; (* mot de passe de l'ID utilisateur *) CharSet := OMISEL_US_ASCII;(* jeu de caractères supporté par votre système. *) rc := MAILOpenSession(PathSpec, Name, Password, CharSet, Session, OMI_SMTP_POP_INTERFACE); IF rc <> 1 THEN (* Erreur lors de l'ouverture de session *) END; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Cette fonction est utilisée pour lancer une interrogation sur les valeurs par défaut de certains attributs utilisés dans l'interface de messagerie de TSD Script.
FUNCTION MAILQueryDefaults(VAL protocol : Integer, REF infoRec:MAILInfoRec): INTEGER;
Nom de l'argument | Description |
protocol | Protocole utilisé pour communiquer avec le système de messagerie. Cette fonction est actuellement prise en charge uniquement par le protocole VIM. |
infoRec | Structure d'enregistrement des informations de messagerie. Lorsque la fonction est exécutée avec succès, les zones de ces enregistrements sont renseignées à l'aide des valeurs correspondantes. |
Cette fonction est uniquement prise en charge par le prococole VIM.
VARIABLES inforec : MAILInfoRec; rc:Integer;
ACTIONS rc := MAILQueryDefaults(OMI_VIM_INTERFACE, inforec) IF (rc = 1) THEN (* inforec est complété à l'aide des valeurs système *) PrintInfoRec(inforec); ELSE MsgBox('Une erreur s'est produite. Code retour : ' & rc); exit; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Précise si de nouveaux messages ont été expédiés vers un conteneur.
FUNCTION MAILQueryNewMessages (VAL MsgContainer: MAILContainer, REF NewMessages:BOOLEAN): INTEGER;
Attention : L'appel trop fréquent de cette fonction peut
provoquer des baisses de performances significatives du système
de messagerie sous-jacent. Pour éviter ce problème,
certains systèmes de messagerie peuvent contrôler le temps écoulé
depuis l'appel de la fonction et renvoyer la valeur FALSE si
l'appel de fonction précédent a eu lieu trop récemment.
Remarque : Il est recommandé de ne pas appeler cette fonction plus d'une fois toutes les minutes.
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages |
newMessages | La valeur de retour indique la présence ou l'absence de nouveaux messages |
Remarque : Cette fonction est uniquement prise en charge par le prococole VIM.
Avec le protocole VIM, cette fonction effectue un sondage du conteneur de messages, visant à déterminer si de nouveaux messages ont été reçus depuis le dernier appel de la fonction. Lors du premier appel de la fonction pour un conteneur de messages, la valeur de retour précise si de nouveaux messages ont été expédiés depuis l'ouverture du conteneur de messages.
VARIABLES msgContainer :MAILContainer; newMessages: Boolean; rc:Integer;
ACTIONS (* Ouvrez la session / le conteneur *) rc := MAILQueryNewMessages(msgContainer, newMessages); IF (rc <> 1) THEN (* Echec de la fonction MAILQueryNewMessages *) ELSE IF (newMessages = TRUE) THEN (* De nouveaux messages ont été reçus depuis l'ouverture du conteneur de messages *) ELSE (* Aucun nouveau message n'a été reçu depuis l'ouverture du conteneur de fichiers *) END; END; . . (* Fermez le conteneur / la session *) . END
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Déetermine le nombre de messages non lus présents dans le conteneur de messages.
FUNCTION MAILQueryNewMessages(VAL msgContainer: MAILContainer, REF newMessages :BOOLEAN): INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages |
newMessages | Indique le nombre des éventuels nouveaux messages reçus par ce conteneur de messages depuis l'ouverture de ce dernier. |
Etant donné que cette fonction nécessite un temps de traitement non négligeable, il convient de ne pas l'utiliser pour effectuer les sondages.
VARIABLES rc:Integer; msgContainer :MAILContainer; unreadCount: Integer; hfile: FILE;
ACTIONS
(* Ouvrez une session / un conteneur / un fichier *)
rc := MAILQueryUnreadMailCount(msgContainer, unreadCount); IF (rc <> 1) THEN (* Echec de la fonction MAILQueryUnreadMailCount *) ELSE FWrite( hfile, 'Nombre de messages non lus : ' & unreadCount); END; (
* Fermez les mêmes éléments *)
END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Lit un message contenu dans le conteneur de messages.
FUNCTION MAILReadMessage (VAL msgContainer:MAILContainer, VAL msgRef:MAILRef, VAL nestedLevel:INTEGER, REF msgHeader:MAILReadHeader, REF msgItems:LIST of MAILItem, REF toList, ccList, bccList:LIST of MAILName, REF nestedMsg:BOOLEAN);
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages. |
msgRef | Numéro de référence du message à lire |
nestedLevel | Niveau du message imbriqué dont les informations doivent être renvoyées. Par défaut, les informations renvoyées sont relatives au message dont le niveau est le plus élevé. Le numéro correspondant au niveau de message le plus élevé est 0. |
msgHeader | Informations d'en-tête du message qui doit être lu. Dans le cas de messages imbriqués, ces informations correspondent aux attributs du message tel que celui-ci existait à un moment particulier de l'historique d'acheminement. |
msgItems | Liste de tous les éléments du message, qui comprend les courriers, les fichiers joints et les éléments définis par l'application. Dans le cas des fichiers joints, le fichier de sortie est écrit dans le format natif du système de fichiers. |
toList | Liste des destinataires de la liste "TO" du message. |
ccList | Liste des destinataires de la liste CC (mise en copie) du message. |
bccList | Liste des destinataires de la liste BCC (mise en copie) du message. |
nestedMsg | Indicateur précisant si un message imbriqué est présent au niveau indiqué par le paramètre nestedLevel. |
La prise en charge des messages imbriqués n'est pas assurée avec MAPI. Un message MAPI ne peut comporter qu'un seul courrier, qui doit correspondre au premier élément de la liste msgItems.
Remarque : Reportez-vous à la section relative aux structures d'enregistrement de messagerie TSD Script pour visualiser les attributs d'en-tête non reconnus par MAPI.
VARIABLES ...
PROCEDURE MessageReadDemo IS ...
ACTIONS . (* Ouvrez une session / un conteneur / un fichier *) . rc := ScanAndReadMessages(msgContainer); . . (* Fermez le conteneur / la session / le fichier *) . END; FUNCTION ScanAndReadMessages(VAL msgContainer:MAILContainer ): INTEGER IS ...
ACTIONS rc := MAILScanMessages(msgContainer, OMI_REVERSE_SCAN, $Unknown, TRUE, nMessages, msgsummary); msgRef := msgsummary[$First].MsgReference; ReadMessage (msgContainer, msgRef); Exit(1); END;
FUNCTION ReadMessage(VAL msgContainer:MAILContainer, VAL msgRef:MAILRef):INTEGER IS
VARIABLES nestedmsg:BOOLEAN; msgHeader :MAILReadHeader; msgItems :LIST of MAILItem; toList: LIST of MAILName; ccList: LIST of MAILName; bccList: LIST of MAILName; rc :INTEGER;
ACTIONS rc := MAILReadMessage(msgContainer, msgRef, 0, msgHeader, msgItems, toList, ccList, bccList, nestedmsg); if (rc < 0) THEN (* Echec lors de la lecture du message *) ELSE (* Lecture du message effectuée avec succès *) END; END;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi que des descriptions des structures d'enregistrement MailItem, MailName, MailReadHeader et MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Pour plus de détails concernant l'exemple de code, consultez le fichier msgread.kb situé dans le répertoire EXAMPLES ayant servi à l'installation de la boîte à outils du développeur de Tivoli Service Desk.
Cette fonction est utilisée pour libérer les ressources requises par la gestion des numéros de référence des messages. Lors de la scrutation des messages à l'aide de la commande MailScanMessages, la liste des numéros de référence des messages est renvoyée. Ces références sont libérées par cet appel après que le processus requis a été mis en oeuvre avec le message. Le numéro de référence du message, une fois qu'il a été libéré, ne doit pas être utilisé.
FUNCTION MAILReleaseMessageReference(VAL msgContainer: MAILContainer, VAL msgReference: MAILRef) : INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages. |
msgReference | Numéro de référence de message à libérer. La valeur de retour de cet argument est $Unknown. |
Il est recommandé de libérer les numéros de référence de messages dès que leur utilisation n'est plus nécessaire. Ainsi, la disponibilité des ressources mémoire du système est rétablie.
PROCEDURE MailReadDemo IS
VARIABLES rc, nmessages : Integer; msgContainer :MAILContainer; outfile :FILE; msgSummary :LIST of MAILMsgSummary; msgHeader :MAILReadHeader; msgItems :LIST of MAILItem; toList, ccList, bccList : List of MAILName; nsflag : Boolean; loopcnt : Integer;
ACTIONS
IF (context.container = $unknown) THEN MessageBox('Le conteneur de messages n'a pas été ouvert. Impossible d'exécuter ce test'); Exit; ELSE msgContainer := context.container; END;
rc := MAILScanMessages(msgContainer, 0, $unknown, TRUE, nmessages, msgSummary);
IF (rc <> 1) THEN MessageBox('Echec de la fontion MAILScanMessages Code d'erreur : ' & rc); Exit; END;
MessageBox('Fonction MailScanMessages exécutée avec succès');
(* Lisez tous les messages *) Fopen(outfile, 'readmsg1.txt', $create); loopcnt := 0; FOR msgSummary DO loopcnt := loopcnt + 1; rc := MAILReadMessage(msgContainer, msgSummary[$current]. msgReference, 0, msgHeader, msgItems, toList, ccList, bccList, nsflag); IF (rc <> 1) THEN MessageBox('Echec de la fonction MAILReadMessage lors de la lecture du numéro de message ' & loopcnt & '. Code d'erreur : ' & rc ); ELSE PrintMessage(outfile, msgHeader, msgItems, toList, ccList, bccList); END; END; FClose(outfile); MessageBox('La fonction MailReadMessage a été exécutée avec succès');
(* Libérez les numéros de référence de messages *) FOR msgSummary DO MAILReleaseMessageReference(msgContainer, msgSummary[$current]. msgReference); END; END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
MailScanMessages
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Efface un message du conteneur de messages.
FUNCTION MAILRemoveMessage(VAL msgContainer:MAILContainer, VAL msgRef:MAILRef): INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages. |
msgRef | Numéro de référence du message à supprimer |
VARIABLES msgContainer :MAILContainer; msgRef :MAILRef; rc:Integer;
ACTIONS (* Ouvrez un conteneur de messages *) (* Lancez la scrutation des messages dans le conteneur, obtenez les numéros de référence des messages *) rc := MAILRemoveMessage(msgContainer, msgRef); IF (rc <> 1) THEN (* L'effacement des messages n'a pas abouti *) ELSE (* Effacement des messages effectué avec succès *) END; . (* Fermeture du conteneur de messages *) . END;
Code retour | Description |
1 | Opération exécutée avec succès |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Renvoie le numéro de référence du message, ainsi qu'un résumé des attributs des messages contenus dans le conteneur de messages.
FUNCTION MAILScanMessages(VAL msgCntnr:MAILContainer, VAL Flag:INTEGER, VAL Filter:MAILFilter, VAL summFlag:BOOLEAN, REF nMessages:INTEGER, REF msgSummary:LIST of MAILMsgSummary ): INTEGER;
Nom de l'argument | Description |
msgCntnr | Identificateur du conteneur de messages. |
Flag | Indicateur énumératif précisant sur quels
messages la scrutation a été accomplie, ainsi que l'ordre
d'exécution de cette scrutation. Cet indicateur est créé par une
fonction Bitwise ORing de l'une ou plusieurs des valeurs suivantes :
|
Filter | Précise le filtre utilisé pour la scrutation des messages. Lorsque la valeur transmise est $Unknown, aucun filtrage n'est appliqué et la scrutation est appliquée à tous les messages (cette mesure ne s'applique pas aux messages envoyés.) Il est actuellement impossible de définir simumltanément plusieurs conditions de filtrage. |
summFlag | Indique s'il doit être procédé à l'extraction du résumé des attributs du message. Si la valeur de cet indicateur est FALSE (valeur par défaut), seuls les numéros de référence de message sont extraits dans l'enregistrement MailMsgSummary. Par défaut, l'extraction est effectuée uniquement sur les numéros de référence des messages. |
nmessages | Nombre de messages soumis à la scrutation. |
msgSummary | Liste des enregistrements MailMsgSummary contenant des informations relatives au message. Les numéros de référence des messages sont obtenus à partir de cet enregistrement et sont utilisés pour consulter les messages. |
La prise en charge des filtres n'est pas assurée avec MAPI.
Avec l'interface MAPI, seul les numéros de référence des messages sont extraits, quelque soit la valeur de l'indicateur summFlag.
KNOWLEDGEBASE MSGCONT; PRIVATE VARIABLES ... ROUTINES PROCEDURE ContainerDemo IS VARIABLES sess :MAILSession; rc :INTEGER; msgContainer :MAILContainer;
ACTIONS
(* Ouvrez une session / un conteneur / un fichier *)
(* --- Scrutation des messages du conteneur ---- *) rc := ScanMessages(msgContainer);
(* Fermez le conteneur / la session / le fichier *)
END;
FUNCTION ScanMessages(VAL msgContainer:MAILContainer): INTEGER IS VARIABLES Filter : MAILFilter; summaryFlag : BOOLEAN; nMessages, rc: INTEGER; msgsummary : LIST of MAILMsgSummary;
ACTIONS rc := MAILScanMessages(msgContainer, 0, $Unknown, TRUE, nMessages, msgsummary); if (rc < 0) THEN (* Echec de la fonction de scrutation des messages *) END; (* Fonction de scrutation des messages exécutée avec succès *) PrintScannedMessagesInfo(msgsummary);
END;
PROCEDURE PrintScannedMessagesInfo(VAL msgsummary:LIST of MAILMsgSummary) IS VARIABLES summrec : MAILMsgSummary; ACTIONS FOR msgsummary DO summrec := msgsummary[$current]; FWriteLn(hfile, 'Type de message : ' & summrec.Type); FWriteLn(hfile, 'Messages non lus : ' & summrec.UnreadMail); FWriteLn(hfile, 'Nom de l'expéditeur : ' & summrec.FromName); FWriteLn(hfile, 'Adresse de l'expéditeur : ' & summrec. FromAddress); FWriteLn(hfile, 'Priorité : ' & summrec.Priority); FWriteLn(hfile, 'Sujet : ' & summrec.Subject); FWriteLn(hfile, ' ********* '); END; END;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mai, ainsi que des descriptions des structures d'enregsitrements MailFilter, MailSendHeader et MailMsgSummary , reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmaion.
Pour plus de détails concernant l'exemple de code, consultez le fichier msgread.kb situé dans le répertoire EXAMPLES ayant servi à l'installation de la boîte à outils du développeur de Tivoli Service Desk.
Crée un nouveau message à partir d'un message déjà existant.
Fonction utilisée pour faire suivre un message, ou pour y répondre.
FUNCTION MAILSendDerivedMessage(VAL msgCntnr:MAILContainer, VAL msgRef:MAILRef, VAL type, flags:Integer, VAL msgHeader:MAILSendHeader, VAL toList, ccList, bccList:LIST of VAL items:LIST of MAILItem ): INTEGER;
Nom de l'argument | Description |
msgCntnr | Identificateur du conteneur de messages. |
msgRef | Numéro de référence du message à partir duquel le nouveau message est créé. |
type | Type qualifiant le nouveau message à créer. Les valeurs possibles sont OMISEL_FORWARD et OMISEL_REPLY. |
flags | Masque binaire constitué d'indicateurs de style
associés à des corrélateurs OR, qui indique quels composants du
message nouvellement créé doivent être repris du message d'origine. La
signification des indicateurs flags dépend du type de
message qui est créé. La valeur $Unknown peut être utilisée si
aucun paramètre n'est repris. Si le type est OMISEL_FORWARD, la signification de flags est la suivante : OMI_HISTORY précise que l'historique de retransmission précédent du message existant doit être repris pour les besoins du message nouvellement créé. Si cette valeur n'est pas définie, l'historique précédent n'est pas repris dans le nouveau message. Si le type est OMISEL_REPLY, la signification de flags est la suivante : OMI_INHERIT_CONTENTS précise que le contenu du message existant doit être repris dans le message nouvellement créé. Si cette valeur n'est pas définie, le contenu n'est pas repris dans le nouveau message. Avec certaines configurations de messagerie, seuls les courriers peuvent être repris dans le nouveau message, tandis que d'autres configurations permettent de reprendre à la fois les courriers et les fichiers joints. OMI_ALL_RECIPIENTS précise que tous les destinataires du message existant doivent être indiqués dans le message nouvellement créé. Lorsque cette valeur n'est pas définie, seul l'expéditeur du message d'origine est repris dans le nouveau message. |
msgHeader | Initialise l'enregistrement MailSendHeader afin de définir les attributs du message expédié. |
toList | Liste des destinataires principaux du message. |
ccList | Liste des destinataires de la liste CC (mise en copie) du message. |
bccList | Liste des destinataires de la liste BCC (mise en copie) du message. |
items | Liste des éléments contenus dans le message. |
Cette fonction est uniquement prise en charge par le prococole VIM.
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Crée, puis envoie un nouveau message.
FUNCTION MAILSendMessage(VAL session:MAILSession, VAL MsgType:STRING, VAL MsgHeader: MAILSendHeader, VAL ToList, ccList, bccList:LIST of MAILName, VAL Items: LIST of MAILItem ): INTEGER;
Attention :
L'interface MAPI ne permet en aucun cas de préciser si le message
envoyé doit être journalisé dans le fichier journal des messages. Afin d'éviter que les messages sortants ne saturent
l'espace disque, la journalisation des messages peut être
définie en paramétrant les options de messagerie accessibles par
le menu correspondant de Microsoft Mail.
Il convient de configurer le client de messagerie de sorte que les
messages envoyés ne soient pas sauvegardés.
Nom de l'argument | Description |
session | Identifie la session pour laquelle le message doit être créé. |
MsgType | Type qualifiant le message en cours de composition. Les valeurs VIM_MAIL ou OMI_MAIL doivent être utilisées dans le cas de la messagerie. Il est permis de définir la longueur de ce type en utilisant jusqu'à 32 caractères. |
MsgHeader | Initialise l'enregistrement MailSendHeader afin de définir les attributs du message expédié. |
toList | Liste des destinataires principaux du message. |
ccList | Liste des destinataires de la liste CC (mise en copie) du message. |
bccList | Liste des destinataires de la liste BCC (mise en copie) du message. |
Items | Liste des éléments contenus dans le message. |
Il est possible que tous les attributs et toutes les zones de l'enregistrement MailSendHeader ne soient pas pris en charge par le prestataire du service de messagerie. S'il existe des zones n'ayant pu être définies par MailSendMessage pour cette raison, aucun code d'erreur correspondant n'est généré. MailSendMessage renvoie un code d'erreur uniquement si une erreur autre que de type "Non pris en charge" se produit pour les attributs de l'en-tête.
Si la fonction n'a pas permis d'effectuer un envoi vers l'un des destinataires du message, elle renvoie un code d'erreur. De même, si l'association de l'un des éléments du message n'a pas abouti, la fonction renvoie également un code d'erreur.
Les destinataires désignés dans les listes toList et ccList ne peuvent en aucun cas connaître le nom des destinataires désignés dans la liste bccList.
La longueur maximale de la zone affectée au sujet du message, ou la longueur maximale du texte du message, peuvent être limitées. Pour fixer les valeurs correspondant à ces longueurs, définissez le paramètre MailQueryDefaults .
Il ne peut exister qu'un seul élément de message appartenant à la classe NOTE_PART, qui doit être le premier élément figurant dans la liste des éléments du message.
KNOWLEDGEBASE SENDDEMO;
PROCEDURE SendDemo IS VARIABLES session: MAILSession; rc :INTEGER; ACTIONS
(* Ouverture de session *)
rc := SendMail(session);
(* Fermeture de session *)
END;
FUNCTION SendMail(VAL sess: MAILSession): INTEGER IS VARIABLES header: MAILSendHeader; Items: LIST of MAILItem; Item: MAILItem; name: MAILName; toList: LIST of MAILName; rc :INTEGER; ACTIONS (* Définition de l'enregistrement de l'en-tête *) header.subject := 'Exemple de message'; (* Création de la liste des éléments de message *) (* Premier élément correspondant au courrier *) Item.Class := OMISEL_NOTE_PART; Item.Type := OMI_TEXT; Item.Name := 'Titre du courrier'; Item.BufferType := OMI_ACTUAL_DATA; Item.BufferData := 'Avis au lecteur, ce message est expédié par l'intermédiaire d'une application VIM.'; ListInsert(Items, Item, $After); (* Second élément correspondant à un fichier joint *) Item.Class := OMISEL_ATTACH; Item.Name := 'image.pcx'; Item.BufferType := OMI_FILE_DATA; Item.BufferData := 'D:\TMP\PAPANIM.PCX'; ListInsert(Items, Item, $After); (* Définition du destinataire *) name.EntityType := OMISEL_ENTITY; name.AddressBookName := ''; name.EntityName := 'JOHN'; ListInsert(toList, name, $After); rc := MailSendMessage(sess, OMI_MAIL, header, toList, $UNKNOWN, $UNKNOWN, Items); Exit(rc); END;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation , à consulter pour connaître les informations suivantes :
Remarque : Pour plus de détails concernant l'exemple de code, consultez le fichier senddemo.kb situé dans le répertoire EXAMPLES ayant servi à l'installation de la boîte à outils du développeur de Tivoli Service Des.
Libère les ressources exploitées par l'interface de messagerie de TSD Script. L'appel de cette fonction doit avoir lieu avant de quitter l'application. Aucun appel de l'interface de messagerie de TSD Script ne peut avoir lieu après l'exécution de cet appel, tant que l'appel de MailInitialize n'a pas eu lieu.
FUNCTION MAILTerminate (VAL protocol: INTEGER): INTEGER
Nom de l'argument | Description |
protocol | Identifie le protocole utilisé pour communiquer avec le système de messagerie.
|
PROCEDURE SendMail IS VARIABLES SESS: MailSession; ACTIONS MAILInitialize;
(*Ouverture de session immédiate.*)
(* Autre traitement requis. *)
MAILTerminate;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
MailInitialize
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Extrait et vérifie la signature numérique d'un message.
FUNCTION MAILVerifyMessageSignature(VAL msgContainer: MAILContainer, VAL msgRef:MAILRef, REF signer:MAILName, REF certifier:MAILName ): INTEGER;
Nom de l'argument | Description |
msgContainer | Identificateur du conteneur de messages |
msgRef | Numéro de référence du message |
signer | Identité du signataire |
certifier | Identité du certificateur |
Cette fonction est uniquement prise en charge par le prococole VIM. La signification de la signature de message (par exemple, l'obligation de vérification) varie suivant la configuration du système de messagerie.
VARIABLES rc:Integer; msgContainer :MAILContainer; msgRef :MAILRef; signer: String; certifier: String; hfile: FILE; ACTIONS (* Ouvrez un conteneur de messages, scrutez les messages et définissez msgRef en fonction du numéro de référence du message, en précisant les informations de signature requises *) . rc:= MAILVerifyMessageSignature(msgContainer, msgRef, signer, certifier); IF rc <> 1 THEN ELSE FWrite (hfile, 'Nom du signataire du message : ' & signer.EntityName); FWrite (hfile, 'Nom du certificateur du message : ' & certifier.EntityName); END . . . END;
Code retour | Description |
1 | Opération exécutée avec succès. |
Inférieur à 1 | Erreur |
Pour consulter la liste complète des codes d'erreur de TSD Script Mail, ainsi qu'une description de l'enregistrement MailSendHeader, reportez-vous au Tivoli Service Desk 6.0 Developer's Toolkit - Guide de programmation.
Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script