Cette semaine, le blog prend une tournure technique : Robin Karlsson, responsable technique chez Teleopti, nous explique comment utiliser au mieux l’API de Calabrio WFM. Ceci est le premier de trois blogs de Robin sur l’exploitation de la force de Calabrio WFM pour les intégrations. Pour créer des intégrations avec d’autres systèmes, une API est disponible dans le produit Calabrio WFM. En effet, certains de nos clients l’utilisent déjà pour l’exportation de programmes ou la synchronisation d’agents. Afin de présenter les possibilités offertes par l’API, je vous guiderai à travers une série de blogs en trois parties, dont la première nous permettra d’établir une connexion avec l’API et d’extraire des détails sur les agents d’une certaine équipe.
Le deuxième article de blog couvrira la création d’une petite application où les chefs d’équipe pourront mettre à jour quelques détails de base pour les agents. Le troisième et dernier billet de blog de la série portera sur une toute nouvelle fonctionnalité qui permet une intégration dans laquelle les informations sur les horaires sont toujours à jour.
Pour pouvoir vous connecter à l’API, vous aurez besoin d’une sorte de client capable de comprendre les services web et de communiquer avec eux. La spécification de l’API est disponible à un point d’extrémité à l’aide d’une norme appelée WSDL. Dans cette série, j’utiliserai notre environnement de démonstration dans le nuage, mais vous pouvez utiliser n’importe quel environnement dont vous disposez. Vous devez disposer d’un compte utilisateur valide pour Teleopti WFM afin de pouvoir utiliser les fonctions mentionnées plus loin dans cet article.
Tout au long de ce billet, j’utiliserai la syntaxe C# dans le code d’exemple, mais les principes de base sont les mêmes pour Java ou tout autre langage client que vous souhaitez utiliser.
Tout d’abord, nous devons faire en sorte que la référence à la base de données que vous utiliserez ici s’affiche en tant que « locataire » dans le résultat, ainsi que les unités d’entreprise disponibles pour l’utilisateur actuel. La réponse de l’appel au service web vous indiquera également si votre mot de passe a expiré ou est sur le point d’expirer lorsqu’une politique de mot de passe est en place.
var service = new TeleoptiCccLogOnServiceClient();var result = service.LogOnAsApplicationUser(« user », « pw »);if (result.IsAuthenticated) {var businessUnit = result.AvailableBusinessUnits.First();var tenant = result.Tenant;goAhead();}
Après avoir vérifié que les détails d’authentification Calabrio WFM de l’utilisateur étaient corrects, nous devons sélectionner l’unité d’entreprise à utiliser par la suite. Comme nous ne conservons pas l’état des utilisateurs du côté du serveur, l’unité opérationnelle peut être modifiée à chaque nouvelle demande. L’unité commerciale avec laquelle travailler est incluse dans les informations d’en-tête de chaque appel de service web.
Nous sommes maintenant prêts à effectuer de véritables opérations. Dans Calabrio WFM, nous avons le concept de groupes de personnes ; certains sont inclus dans les groupes dynamiques, et d’autres sont des groupes créés sur mesure. Nous utiliserons le regroupement dynamique inclus pour la hiérarchie de l’entreprise. Celui-ci nous donnera toutes les équipes, et les employés qui en font partie, auxquelles nous avons accès pour un jour donné. L’identifiant unique de la hiérarchie commerciale est codé en dur à « 6CE00B41-0722-4B36-91DD-0A3B63C545CF ». Le code ci-dessous l’utilisera pour obtenir une liste de toutes les équipes disponibles pour aujourd’hui.
var organisationService = new TeleoptiOrganisationService();var availableTeams = organisationService.GroupPageGroupsByQuery(new GroupPageGroupAtDateQueryDto { GroupPageId = new Guid(« 6CE00B41-0722-4B36-91DD-0A3B63C545CF »), QueryDate = new DateOnlyDto { DateTime = DateTime.Today }. }) ;
Le paramètre QueryDate sera utilisé pour filtrer les informations basées sur des plages de dates différentes. L’appartenance à l’équipe Calabrio WFM est basée sur les dates. Pour obtenir uniquement les équipes qui comptent actuellement les membres auxquels nous avons accès, nous spécifions la date à rechercher comme étant la date d’aujourd’hui.
Pour trouver des informations détaillées sur les employés d’une équipe donnée, nous devons créer une nouvelle requête en utilisant les informations sur l’équipe de la requête ci-dessus.
var employees = organisationService.GetPersonsByQuery(new GetPersonsByGroupPageGroupQueryDto { GroupPageGroupId = team.Id.Value, QueryDate = new DateOnly { DateTime = DateTime.Today }. }) ;
Chaque employé est donné sous la forme d’un objet PersonDto. Pour connaître les informations exactes qu’il contient, vous pouvez utiliser le fichier chm du SDK Toolkit fourni par Calabrio – ou simplement utiliser la fonction d’autocomplétion de votre environnement de développement pour vérifier ce qui est disponible.
Restez à l’écoute pour la prochaine partie de la série, où nous mettrons à jour certaines informations de base pour les employés ! Comme pour chaque partie de cette série, vous trouverez l’exemple de code sur le dépôt officiel GitHub de Teleopti, disponible à l’adresse https://github.com/Teleopti/sdk-sample.