Dynamics 365 et WINDEV®

Utiliser les constructeurs CrmServiceClient avec Windev pour se connecter à Dynamics 365
Microsoft Dynamics 365 est un outil de collaboration et de productivité de Microsoft Office 365.

L'objectif est de créer un projet Windev pour réaliser une application client Windows utilisant les données de Microsoft Dynamics 365. Cette application pourrait, par exemple, simplifier et automatiser des traitements que les utilisateurs effectuent fréquemment avec Dynamics 365. On peut aussi imaginer un traitement qui fusionne les données de Dynamics CRM avec les données d'un autre système informatique.

Pour arriver à ce résultat, nous allons aborder les points suivants :

  • Comment se connecter à Dynamics 365 avec Windev en mode client Windows
  • Comment accéder dynamiquement aux entités et attributs d'entité
  • Comment extraire les données à l'aide des assemblys du SDK et les afficher dans une table dynamique Windev
  • Comment utiliser les requêtes FetchXML afin d'extraire les données
  • Comment utiliser une jointure externe gauche dans FetchXML
  • Comment convertir une requête SQL en requête FetchXML

Le but de cette première fiche technique est donc d'expérimenter la chaine de connexion des outils XRM pour se connecter à Dynamics 365.

PREREQUIS
Vous devez disposer d'un environnement Dynamics 365 et si cela n'est pas le cas, vous pouvez souscrire une évaluation gratuite de 30 jours sur Microsoft Dynamics 365 à partir de cette adresse :  30 jours gratuits

Environnement technique :

  • Windev Version 21
  • Microsoft .NET Framework 4.5 (ou supérieur) installé sur le poste client - Téléchargement
  • Connexion internet
Fiche technique 20170105-1111 : comment se connecter à Dynamics 365, en ligne(Office 365) avec Windev

A partir du SDK pour Dynamics CRM, il faudra intégrer 4 fichiers dll pour construire l'assemblage.net dans votre projet windev :

  • Microsoft.Xrm.Sdk.dll
  • Microsoft.Xrm.Sdk.Deployment.dll
  • Microsoft.Xrm.Tooling.Connector.dll
  • Microsoft.Xrm.Tooling.CrmConnectControl.dll
Au minimum vous devez avoir ces 4 assemblages .NET présents dans votre projet Windev :

Deux autres fichiers seront nécessaires et à placer à la racine de l'exécutable sans toutefois les intégrer au projet Windev :

  • Microsoft.Crm.Sdk.Proxy.dll
  • Microsoft.IdentityModel.Clients.ActiveDirectory.dll

Le kit de développement logiciel (SDK) pour Dynamics CRM se télécharge ici

Pour se connecter à Microsoft Dynamics 365, vous devez crééer une instance de la classe CrmServiceClient.
La variable bisOffice365 retourne 1 si la connexion s'est effectuée correctement.
Les valeurs des paramètres passés au constructeur de la classe (ou zones de saisie de votre fenêtre Windev) devront être adaptées en fonction des valeurs de vos identifiants et mot de passe de votre environnement Dynamics.

// Exemple code en Wlangage
sUserName est une chaîne = SAI_User     		
sPassword est une chaîne = SAI_Password			
sCrmRegion est une chaîne = "EMEA"	
sOrgName est une chaîne = SAI_Organisme			
bisOffice365 est booléen = clCrmServiceClient est un CrmServiceClient(sUserName,CrmServiceClient.MakeSecureString(sPassword),sCrmRegion,sOrgName,0,0,Null,bisOffice365)
Source Microsoft : Utiliser les constructeurs CrmServiceClient...

Exemple de valeurs d'identification :
   SAI_User = [votre login]@[votre compte].onmicrosoft.com
   SAI_Password = votre mot de passe de connexion
   SAI_Organisme = https://[votre compte].crm4.dynamics.com

Nom de la fenêtre Windev : FEN_Dynamics_01.wdw

L'interface de la fenêtre Windev est minimaliste car il s'agit de tester uniquement la connexion à l'environnement Dynamics 365.
A noter qu'il est tout a fait possible d'avoir à la fois la connection Dynamics 365 à partir de l'environnement Microsoft et la connexion à partir du projet Windev.

La fiche technique suivante consistera à écrire le code de lecture de l'entité "account" sur 2 attributs et afficher le résultat dans une table mémoire Windev.

Fiche suivante ...

Conseilsicone

Après avoir effectué votre première connection je vous conseille de tester votre exécutable Windev sur un poste dédié aux tests, sans environnement de développement et uniquement avec un Framework Microsoft .NET
Vous pourrez ainsi mieux maitriser l'installation sur un poste client utilisateur qui n'a certainement pas toutes les ressources de nos postes de développement chargés en DLL et installations diverses lors des tests.