Les sections qui suivent décrivent comment l'adaptateur traite les requêtes d'objets métier et gère les événements.
Lorsqu'un courtier d'intégration envoie un objet métier à l'adaptateur pour e-mail, ce dernier traite l'objet métier et génère un e-mail.
Un objet métier e-mail doit contenir des informations de routage du courrier électronique (adresse de l'émetteur, adresse du destinataire et contenu), le type MIME des pièces jointes et les objets métier à livrer. L'objet métier peut également préciser le chemin complet des fichiers à joindre à l'e-mail. Un même objet métier peut aboutir à un e-mail contenant plusieurs objets métier et plusieurs fichiers en pièce jointe.
Pour traiter une demande d'objet métier, l'adaptateur :
La figure 2 illustre le traitement de l'objet métier par l'adaptateur pour e-mail. Pour obtenir des informations sur la création d'objets métier pour l'adaptateur, voir le Développement d'objets métier pour l'adaptateur.
Dans la notification d'événement, l'adaptateur demande si des e-mails sont présents dans les dossiers spécifiés sur le serveur de messagerie. L'adaptateur contrôle les dossiers, extrait les nouveaux messages, les convertit en objets métier à l'aide du gestionnaire de données, et envoie les objets métier au courtier d'intégration.
L'adaptateur peut interroger plusieurs emplacements. Les dossiers suivants sont requis par emplacement d'interrogation :
Les emplacements d'interrogation peuvent se situer dans différents magasins IMAP, mais ces trois dossiers, s'ils sont indiqués pour un emplacement d'interrogation, doivent être dans la même boîte aux lettres.
Les sections qui suivent décrivent le fonctionnement des événements de façon plus détaillée.
Un événement déclenchant pour un adaptateur est un nouvel e-mail qui arrive dans un dossier d'interrogation. L'adaptateur contrôle dans chaque dossier d'interrogation la présence de nouveaux e-mails, selon un intervalle défini par la propriété de configuration PollFrequency.
Chaque serveur de messagerie IMAP dispose d'un magasin de messages appelé magasin IMAP. Le magasin IMAP contient une boîte aux lettres pour chacun des utilisateurs du serveur de messagerie. Une boîte aux lettres peut se composer de plusieurs dossiers, pouvant chacun contenir plusieurs e-mails ou dossiers.
Chaque dossier d'interrogation doit disposer d'un dossier d'archivage et d'un dossier d'événements échoués correspondants. Le dossier d'interrogation, le dossier d'archivage et le dossier des événements échoués sont regroupés sous l'appellation d'emplacement d'interrogation. Un administrateur doit créer les dossiers et préciser les emplacements d'interrogation dans le méta-objet de l'adaptateur.
L'adaptateur recherche les nouveaux messages dans le dossier d'interrogation d'un magasin IMAP. Il extrait alors les nouveaux messages qui s'y trouvent. L'adaptateur détermine qu'un message est nouveau en vérifiant le statut de son indicateur IMAP.
IMAP prend en charge des indicateurs qui décrivent l'état des e-mails dans une boîte aux lettres. Le mécanisme de détection des événements les utilise pour identifier les messages à extraire. Le statut d'un événement est spécifié par le dossier dans lequel le message est situé et par l'indicateur du message.
Le mécanisme d'événement utilise l'indicateur IMAP SEEN pour marquer les événements qui sont "en cours". Lors de l'interrogation, l'adaptateur contrôle les messages qui figurent dans le dossier d'interrogation, et prélève ceux qui ne sont pas marqués de l'indicateur SEEN. Ces événements sont "prêts à être interrogés". Lorsque l'adaptateur prélève un message dans le dossier d'interrogation pour le traiter, il lui attribue l'indicateur SEEN. Les événements marqués de l'indicateur SEEN sont "en cours".
Une fois le traitement terminé et que toutes les pièces jointes d'un message ont été converties en objets métier et envoyées au courtier d'intégration, l'e-mail est marqué de l'indicateur FLAGGED et déplacé dans le dossier d'archivage. Les messages dont les pièces jointes ne peuvent être converties en objets métier, ceux qui ont des objets métier non souscrits ou dont les objets métier n'ont pas pu être livrés au courtier d'intégration, sont déplacés dans le dossier des événements échoués. Le tableau 1 résume les états des événements de l'adaptateur.
Pour extraire les événements, l'adaptateur interroge chaque dossier l'un après l'autre et prélève un message dans chaque boîte. Cette stratégie d'interrogation garantit le traitement de tous les messages de tous les dossiers.
L'adaptateur procède comme suit pour traiter chacun des e-mails extraits d'un emplacement d'interrogation :
L'adaptateur traite toutes les pièces jointes de la même façon. Un e-mail est considéré comme un événement réussi si toutes les pièces jointes ont été converties en objets métier et transmises au courtier d'intégration. En cas de réussite, l'adaptateur marque les e-mails de l'indicateur FLAGGED, puis les conserve dans le dossier d'archivage de cet emplacement d'interrogation. L'adaptateur n'archive l'e-mail qu'une fois toutes les pièces jointes traitées.
Si une ou plusieurs pièces jointes n'ont pu être converties en objets métier, ou si les objets métier fournis par le gestionnaire de données ne sont pas souscrits, l'événement est considéré comme échoué. Dans ce cas, l'adaptateur conserve l'e-mail dans le dossier des événements échoués de cet emplacement d'interrogation.
L'adaptateur fournit un nombre d'événements par dossier inférieur ou égal à la valeur indiquée par la propriété PollQuantity de l'adaptateur. L'adaptateur ne prélève et ne traite pas d'autre e-mail tant qu'il n'en a pas terminé avec le message
Un événement est considéré comme ayant échoué dans les cas suivants :
L'adaptateur traite toutes les pièces jointes d'un message et fournit les objets métier qu'il génère au courtier d'intégration, même si le message est un événement échoué. Par exemple, prenons un e-mail contenant cinq pièces jointes. L'adaptateur traite les pièces jointes un et deux, ne parvient pas à traiter la troisième et réussi à traiter les pièces jointes quatre et cinq. L'adaptateur fournira des objets métier pour quatre des pièces jointes, mais l'ensemble du message est traité comme un événement échoué et archivé dans le dossier des événements échoués, car la pièce jointe trois n'a pas pu être traitée. L'adaptateur consigne les détails relatifs à chaque pièce jointe qu'il ne parvient pas à convertir en objet métier.
Pour archiver les événements, l'adaptateur exige un dossier d'archivage et un dossier réservé aux événements échoués. Les événements sont conservés dans ces dossiers de la façon suivante :
Un administrateur peut configurer le mécanisme de récupération de l'adaptateur, pour chaque emplacement d'interrogation précisé par la propriété de configuration PollConfigMO. La propriété PollConfigMO identifie un méta-objet qui dispose d'un attribut InDoubtEvents pour chaque emplacement d'interrogation. Cet attribut peut avoir les valeurs Reprocess, Ignore, LogError et FailOnStartUp.
En cas de panne de l'adaptateur entre les appels d'interrogation, les dossiers d'interrogation peuvent contenir des messages en cours. Ces messages sont marqués d'un indicateur SEEN et considérés comme des événements en attente de validation pour l'adaptateur. Au démarrage suivant de l'adaptateur, la procédure d'initialisation analyse tous les dossiers d'interrogation pour les transactions en attente de validation, de la façon suivante :
Avant de redémarrer l'adaptateur, l'administrateur peut visualiser chacun des dossiers d'interrogation à l'aide d'une programme client de messagerie, et déterminer comment gérer les événements en attente de validation. L'administrateur a le choix entre laisser les messages en attente de validation dans le dossier d'interrogation, réinitialiser leur indicateur SEEN ou supprimer les messages. Lorsque l'adaptateur redémarre, si des événements sont en attente de validation, il traitera les transactions en appliquant la méthode d'initialisation décrite ci-après.
Lorsque l'adaptateur pour e-mail démarre, la procédure est la suivante :