Exemple de classe Java de rendez-vous
L'interface de rendez-vous de classe Java référencée dans la configuration Mutualisation de paramètres du système tiers prend en charge l'interaction avec le moteur de messages sortants XAI en temps réel, qui permet de communiquer avec le système tiers en matière de logique d'intégration des rendez-vous.
L'installation standard propose une classe Java par défaut (com.splwg.wfmi.workforce.DefaultWFMSystem) que vous pouvez utiliser si elle fournit la logique d'intégration dont votre implémentation a besoin.
Oracle Utilities Mobile Workforce Management. Voir la documentation sur l'intégration pour plus d'informations sur la classe Java fournie pour l'intégration à Oracle Utilities Mobile Workforce Management.
La classe Java par défaut fournie par l'installation standard effectue les actions suivantes :
- extraction des informations AT supplémentaires non fournies par le service de la page de rendez-vous ;
- conversion des données du service de page et des informations AT supplémentaires en un document XML ;
- Appelle le moteur des messages sortants en temps réel.
Les réponses émanant du moteur sont reçues sous la forme d'un document XML. La classe Java convertit les informations dans un format reconnu par le modèle de données de page, puis les renvoie au point de sortie utilisateur (user exit).
Le document CILOAPTP.xml situé dans le répertoire xmlMetaInfo décrit la structure de base de la requête XML "Afficher rdv", "Enregistrer rdv" ou "Annuler rdv". L'activité terrain sélectionnée qui doit être enregistrée ou annulée comporte un élément faExtraInfo supplémentaire. Ce dernier est conforme à la structure décrite dans CILOEFIP.xml.
Obtenir les rendez-vous disponibles
Pour obtenir les rendez-vous disponibles, le programme utilisateur transmet le type d'export de notification qui référence l'indicateur de condition Obtenir les rendez-vous disponibles. Toutes les données disponibles dans le service de page sont alors transmises au moteur sous forme de document XML comportant tous les champs de recherche définis par l'utilisateur.
Le user exit attend une réponse à ce message pour renvoyer un ensemble d'enregistrements à afficher dans la grille des rendez-vous disponibles de la page de rendez-vous, y compris les éventuels champs de résultat définis par l'utilisateur. Toutes les erreurs reçues sont communiquées à l'utilisateur.
Conversion de message. Tout message d'erreur provenant d'un système tiers est converti au format système approprié à l'aide des informations définies au niveau de la configuration Mutualisation de paramètres du système tiers.
Réserver un rendez-vous
Après avoir confirmé un rendez-vous souhaité avec le client, l'utilisateur essaie d'enregistrer ce rendez-vous. La classe Java d'intégration de rendez-vous fournie avec le système envoie un message destiné à enregistrer le rendez-vous en temps réel. Le programme utilisateur transmet le type d'export de notification qui référence l'indicateur de condition Enregistrement de rendez-vous.
Une seule AT à la fois. L'exemple de point de sortie utilisateur (user exit) fourni par le système ne prend en charge l'enregistrement des rendez-vous que pour une seule activité terrain à la fois. En conséquence, si vous souhaitez l'utiliser, l'option Autoriser les réservations multiples doit avoir la valeur N dans la configuration de votre système tiers. Si votre organisation souhaite permettre l'enregistrement de rendez-vous pour plusieurs activités terrain simultanément, vous pouvez créer votre propre user exit à cette fin.
Le point de sortie utilisateur fourni par le système attend une réponse positive ou négative à ce message.
- Si la réponse est positive, le point de sortie utilisateur attend un numéro de réservation et une indication quant à la nature forcée ou non du rendez-vous. Il renseigne ces valeurs dans l'ensemble des caractéristiques d'activité terrain, à l'aide des options Type de caractéristique de réservation et Type de caractéristique de rendez-vous forcé définies dans la configuration Mutualisation de paramètres du système tiers.
- Si la réponse est négative, un message d'erreur est affiché.
Conversion de message. Tout message d'erreur provenant d'un système tiers est converti au format système approprié à l'aide des informations définies au niveau de la configuration Mutualisation de paramètres du système tiers.
Si le moteur de messages ne peut pas communiquer avec le système tiers, il renvoie une indication au point de sortie utilisateur. Il procède alors ainsi :
- Si le système tiers indique que l'option Autoriser les rendez-vous manuels a la valeur Faux, un message d'erreur est affiché
- Si les rendez-vous manuels sont autorisés, le point de sortie utilisateur émet un avertissement invitant l'utilisateur à préciser si le message doit être consigné pour être envoyé une fois la communication rétablie. Si l'utilisateur confirme, le point de sortie utilisateur appelle la classe Java afin qu'elle renseigne un message en temps quasi-réel.
- Le point de sortie utilisateur détermine un ID de message sortant unique pour le système tiers. Cela à l'aide d'une séquence de base de données dont le nom est référencé dans l'option Nom de séquence de base de données d'ID de message de la configuration Mutualisation de paramètres du système tiers. Cet ID de message est transmis au moteur de messages en temps réel pour être renseigné en tant qu'entrée de contexte d'export de notification afin de prendre en charge une réponse asynchrone au message.
- Le programme utilisateur transmet le type d'export de notification qui référence l'indicateur de condition Enregistrement de rendez-vous - Temps quasi-réel. L'ID de l'AT est également transmis au moteur de messages en temps réel, pour être renseigné en tant qu'entrée de contexte d'export de notification. Le système attend que la réponse à ce message crée un enregistrement de table tampon d'import XAI qui mettra à jour les caractéristiques de l'activité terrain avec les informations de réservation et de rendez-vous forcé (le cas échéant). Pour plus d'informations sur les réponses aux messages en temps quasi-réel et la table tampon d'import XAI, voir Concevoir des messages d'export de notification en temps quasi-réel.
- Si la configuration du système tiers indique que les rendez-vous forcés sont autorisés, le message est envoyé au système tiers avec l'indication "Forcé". Si le système tiers n'autorise pas les rendez-vous forcés, il est possible qu'il refuse ce rendez-vous manuel.
En l'absence d'erreur, la page de rendez-vous poursuit l'action de "modification". Le système crée une période de rendez-vous (s'il n'en existe pas déjà une) pour l'heure de rendez-vous choisi et associe cette période à l'activité terrain.
La période de rendez-vous est créée et associée à l'activité terrain même si le message est envoyé au système tiers en temps quasi-réel et si aucune confirmation n'a été reçue. Cela permet d'enregistrer le rendez-vous demandé dans notre système pour être en mesure de réagir dans le cas où le client souhaiterait le modifier ou l'annuler avant qu'il n'ait été avalisé par le système tiers.
Annuler un rendez-vous
Si le client souhaite annuler un rendez-vous, l'utilisateur accède à la page de rendez-vous. La classe Java d'intégration de rendez-vous fournie avec le système envoie un message destiné à annuler le rendez-vous en temps réel. Le programme utilisateur transmet le type d'export de notification qui référence l'indicateur de condition Annulation de rendez-vous. Le point de sortie utilisateur attend une réponse positive ou négative à ce message.
- Si la réponse est positive, la page de rendez-vous poursuit l'action de "modification" (voir ci-après). (voir ci-dessous).
- Si la réponse est négative, un message d'erreur est affiché.
Conversion de message. Tout message d'erreur provenant d'un système tiers est converti au format système approprié à l'aide des informations définies au niveau de la configuration Mutualisation de paramètres du système tiers.
Si le moteur de messages ne peut pas communiquer avec le système tiers, il renvoie une indication au point de sortie utilisateur. Il procède alors ainsi :
- Si le système tiers indique que l'option Autoriser l'annulation manuelle des rendez-vous a la valeur Faux, un message d'erreur est affiché
- Si les rendez-vous manuels sont autorisés, le point de sortie utilisateur émet un avertissement invitant l'utilisateur à préciser si le message doit être consigné pour être envoyé une fois la communication rétablie. Si l'utilisateur confirme, le point de sortie utilisateur appelle la classe Java afin qu'elle renseigne un message en temps quasi-réel.
- Le point de sortie utilisateur détermine un ID de message sortant unique pour le système tiers. Le point de sortie utilisateur détermine un ID de message sortant unique pour le système tiers, à l'aide d'une séquence de base de données dont le nom est référencé dans l'option Nom de séquence de base de données d'ID de message de la table du système tiers. Cet ID de message est transmis au moteur de messages en temps réel pour être renseigné en tant qu'entrée de contexte d'export de notification afin de prendre en charge une réponse asynchrone au message.
- Le programme utilisateur transmet le type d'export de notification qui référence l'indicateur de condition Annulation de rendez-vous - Temps quasi-réel. L'ID de l'AT est également transmis au moteur de messages en temps réel, pour être renseigné en tant qu'entrée de contexte d'export de notification. La réponse à ce message devra être un aval. Aucune autre mise à jour des données de l'activité terrain n'est attendue.
En l'absence d'erreur, la page de rendez-vous poursuit l'action de "modification". La période de rendez-vous est dissociée de l'activité terrain avant d'être supprimée (si aucune autre activité terrain n'y est associée). Par ailleurs, les caractéristiques de l'activité terrain relatives au numéro de réservation et aux rendez-vous forcés sont supprimées de l'AT.
Les mises à jour ci-dessous sont exécutées même si le message est envoyé en quasi-temps réel et qu'aucune réponse n'a été reçue. Cela permet d'annuler le rendez-vous dans notre système pour être en mesure de réagir dans le cas où le client souhaiterait le réserver à nouveau avant qu'il n'ait été avalisé par le système tiers.
