
Connexions OData pour Microsoft Dynamics 365
Nous avons le plaisir d’annoncer que nous prenons désormais en charge OData V4 pour l’intégration avec Microsoft Dynamics 365 Business Central et Microsoft Dynamics 365 for Finance and Operations. Les versions plus anciennes de Microsoft Dynamics sont également prises en charge – par exemple Microsoft Dynamics NAV 2016 et 2017.
QU’EST-CE QU’ODATA ?
OData (Open Data Protocol) est une norme OASIS qui définit les bonnes pratiques pour créer et consommer des API RESTful. OData vous permet de vous concentrer sur votre logique métier lorsque vous créez des API RESTful, sans avoir à vous préoccuper des approches à adopter pour définir les en-têtes de requête et de réponse, les codes de statut, les méthodes HTTP, les conventions d’URL, les types de médias, les formats de charge utile, les options de requête, etc. OData vous guide également sur le suivi des modifications, la définition de fonctions/actions pour des procédures réutilisables ou l’envoi de requêtes asynchrones et par lots, etc. OData offre en outre une possibilité d’extension pour répondre à tous les besoins spécifiques de vos API RESTful.
Tout cela semble très bien et vous pourriez alors vous attendre à accéder aux différents systèmes de la même manière. Sur le plan technique, c’est effectivement le cas, mais malheureusement (ou heureusement pour certains) la norme laisse encore la place à des implémentations différentes de cette prise en charge, et permet aussi d’en omettre certaines parties (comme le suivi des modifications, par exemple). Le filtrage peut également se faire de différentes façons.
Chez Rapidi, nous voulons rendre l’utilisation de nos différents connecteurs aussi simple que possible. Pour cela, nous intégrons le plus de connaissances et de fonctionnalités possible dans le connecteur, afin que vous n’ayez pas à vous soucier de détails spécifiques, comme la façon d’indiquer la société à utiliser pour un système ERP donné. Cela conduit souvent à des connecteurs spécifiques pour chaque système ERP ou CRM. C’est également le cas avec OData : nous avons des connecteurs spécifiques pour Microsoft Dynamics 365 Business Central (qui couvre aussi Microsoft Dynamics NAV 2016/2017/2018) et pour Microsoft Dynamics 365 for Finance and Operations (alias Microsoft Dynamics AX).
POURQUOI UTILISER ODATA
Microsoft a commencé à introduire la prise en charge d’OData pour l’accès par API à ses systèmes ERP il y a quelques années, mais ce n’est que ces deux dernières années que cette prise en charge est devenue largement disponible dans les différents systèmes ERP, avec en général la lecture comme l’écriture des données.
Nous avons également constaté que les implémentations OData de Microsoft sont assez rapides en lecture, ce qui est une très bonne nouvelle, car c’était justement une préoccupation majeure avec les Web Services (SOAP) fournis pour Microsoft Dynamics NAV comme pour AX.
Par ailleurs, les API OData fournies par Microsoft prennent aussi en charge la logique métier. Cela signifie que toute validation ou tout code présent dans le système s’exécute également lors de la lecture ou de l’écriture de données via l’API OData. C’était une préoccupation majeure avec l’accès direct à la base de données MS-SQL sous-jacente au système ERP.
D’une manière générale, l’utilisation d’OData pour l’intégration avec les systèmes Microsoft Dynamics 365 fonctionne très bien, et c’est aussi ce que Microsoft recommande. Certaines choses ne sont toutefois toujours pas prises en charge par OData, comme la lecture des seules modifications à partir des horodatages NAV (ce qui n’est possible que directement depuis MS-SQL). En outre, certaines opérations de création, comme la création de commandes client dans NAV, fonctionnent mieux avec les Web Services (SOAP) de NAV.
Rapidi utilisera OData pour l’intégration avec les versions les plus récentes comme Microsoft Dynamics 365 Business Central et Microsoft Dynamics 365 for Finance and Operations, mais nous continuerons aussi à utiliser les Web Services SOAP pour certaines opérations spécifiques. Pour les anciennes versions de Microsoft Dynamics NAV et Microsoft Dynamics AX ainsi que pour les systèmes on-premise, nous pouvons également utiliser OData, mais nous continuerons aussi à utiliser les Web Services SOAP et notre connecteur MS-SQL direct (pour lire les données), car il s’agit d’intégrations standard bien éprouvées.
Microsoft Dynamics 365 Business Central (NAV)
Notre connecteur OData pour Microsoft Dynamics 365 NAV prend en charge les versions suivantes :
- Microsoft Dynamics 365 Business Central (tous les déploiements : on-premise, hébergé sur Azure et hébergé dans Microsoft Dynamics 365)
- Microsoft Dynamics NAV 2017
- Microsoft Dynamics NAV 2016
Nous prenons en charge la lecture comme l’écriture (création, mise à jour et suppression). Vous pouvez filtrer des données précises de la manière habituelle dans Rapidi, mais la syntaxe des filtres dépend de ce que prend en charge Microsoft ODataV4 pour NAV.
Vous pouvez par exemple utiliser des opérateurs comme eq (égal), lt (inférieur à), gt (supérieur à), etc. – voir cette page de documentation Microsoft pour plus de détails.
Si vous indiquez uniquement la valeur (par exemple 'hello') dans le champ Value, par exemple pour Source Filter, Rapidi composera un filtre avec l’opérateur 'eq' (égal). Pour un filtre plus complexe, vous pouvez indiquer dans la partie Value à la fois le ou les noms de champs, l’opérateur et les valeurs. Omettez le "filter=", car Rapidi l’ajoute automatiquement.
Les Web Services OData de Microsoft Dynamics 365 Business Central reposent soit sur des Pages (lecture et écriture), soit sur des Queries (lecture seule). Pour utiliser un Web Service OData, vous devez d’abord publier ce Web Service dans Microsoft Dynamics 365 Business Central (recherchez "Web Services", suivez le lien et publiez les Web Services nécessaires). Pour utiliser ensuite le Web Service ODataV4 dans Rapidi, vous devez effectuer un "Read Design" sur la Connection correspondante.
Certains de nos clients utilisent déjà Microsoft Dynamics 365 Business Central et nous publierons bientôt une nouvelle intégration standard pour Microsoft Dynamics 365 Business Central – restez à l’écoute, nous vous en dirons bientôt plus.
En savoir plus : comment configurer une Connection OData vers Microsoft Dynamics 365 Business Central
Passer à Microsoft Dynamics 365 Business Central
Comme Rapidi prend en charge TOUTES les anciennes versions de Microsoft Dynamics NAV (jusqu’à l’ancien NAV356 en mode texte), vous pouvez utiliser Rapidi pour transférer vos données directement dans Microsoft Dynamics 365 Business Central lors d’une migration depuis une version Microsoft Dynamics NAV plus ancienne. Le processus est reproductible et vous pouvez l’exécuter en une seule étape depuis n’importe quelle version Microsoft Dynamics NAV plus ancienne, dès que les transferts sont configurés.
Microsoft Dynamics 365 for Finance and Operations (AX)
Notre connecteur OData pour Microsoft Dynamics 365 AX prend en charge les versions suivantes :
- Microsoft Dynamics 365 for Finance and Operations (tous les déploiements : on-premise, hébergé sur Azure et hébergé par Microsoft dans Dynamics 365)
- pour les versions plus anciennes, contactez-nous
Nous prenons en charge la lecture comme l’écriture (création, mise à jour et suppression). Vous pouvez filtrer des données précises de la manière habituelle dans Rapidi, mais la syntaxe des filtres dépend de ce que prend en charge Microsoft ODataV4 pour AX (vous pouvez par exemple utiliser des opérateurs comme eq (égal), lt (inférieur à), gt (supérieur à), etc. – voir cette page de documentation pour plus de détails.
Les entités OData dans Microsoft Dynamics 365 for Finance and Operations reposent sur le concept de vue modifiable (updatable view). Lorsque la propriété IsPublic d’une vue modifiable est définie sur True, cette vue est exposée comme entité OData de premier niveau. Un bon nombre de points de terminaison OData sont normalement déjà exposés dans Microsoft Dynamics 365 for Finance and Operations.
Rapidi ajoute automatiquement "cross-company=yes" à l’URL, ainsi qu’un filtre "dataAreaId eq xxx" (où xxx est la société indiquée sur la Connection). Nous garantissons ainsi la lecture d’une seule société. Ce comportement peut être remplacé en indiquant par exemple le filtre dataAreaId dans le transfert.
En savoir plus sur OData dans Microsoft Dynamics 365 for Finance and Operations
En savoir plus : comment configurer une Connection OData vers Microsoft Dynamics 365 Finance and Operations.
Ne transférer que les enregistrements modifiés avec OData
L’API OData de Microsoft ne prend actuellement pas en charge le suivi des modifications dans les données de l’ERP. Pour détecter et ne transférer que les modifications lors d’une lecture via l’interface OData, nous utilisons donc notre Mirror Technology. Notre Mirror Technology est disponible pour les installations on-premise comme hébergées (hébergement Azure ou Dynamics 365). La Mirror Technology est très simple à utiliser : vous (ou nous, si le mirror est hébergé par Rapidi) devez seulement créer une base de données vide pour le mirror et indiquer comment s’y connecter ; tout le reste fonctionne automatiquement.
Garder la trace des liens (Key Cross-references)
Pour suivre la relation entre les enregistrements de votre ERP (Microsoft Dynamics 365) et ceux de votre système CRM, nous utilisons notre Link Storage Technology. Cela nous permet d’enregistrer un lien entre la clé primaire utilisée dans le système ERP (par exemple le numéro de client) et l’Account Id correspondant dans le système CRM. Ce lien peut ensuite servir à mettre à jour ces enregistrements (clients/comptes) entre les systèmes, mais aussi de table de correspondance pour d’autres transferts (par exemple pour retrouver le numéro de client associé à un account id donné lors de la création d’un nouveau SalesOrder dans l’ERP). En savoir plus sur notre Link Storage Technology dans cet article de blog.
Nous espérons que cet article vous a plu. Comme toujours, si vous avez des questions ou des remarques, contactez-nous.
Bien cordialement
Michael
Et...
Joyeux Noël et bonne année de la part de l’équipe de développement !