SupportConnexion
Contactez-nous
Mise à jour majeure du MS Dynamics NAV Web Service Connector

Mise à jour majeure du MS Dynamics NAV Web Service Connector

March 03, 2016 · Michael Bock · Fonctionnalités

Nous sommes très heureux d'annoncer que nous avons profondément mis à jour la prise en charge des Web Services MS Dynamics NAV, avec de toutes nouvelles fonctionnalités : la création d'une Sales Order en une seule étape, la prise en charge des Web Services de type Codeunit et, plus globalement, une meilleure gestion des erreurs.

Comme beaucoup d'entre vous – nos précieux clients – utilisent désormais les Web Services MS Dynamics NAV dans vos intégrations avec MS Dynamics NAV, nous avons estimé qu'il était temps de donner à ce module une mise à jour majeure. À partir de vos retours, nous avons ajouté de nouvelles fonctionnalités enthousiasmantes.

Nouvelle fonctionnalité : créer des Sales Orders MS Dynamics NAV en une seule étape (un seul transfert)

Nous avons désormais intégré la prise en charge de la création de Sales Orders dans notre MS Dynamics NAV Web Service Connector. Cette prise en charge particulière reconnaît que vous souhaitez créer une nouvelle Sales Order dans MS Dynamics NAV : à partir d'un seul Transfer, dans lequel vous mappez à la fois l'en-tête et les lignes avec tous les champs nécessaires, le Connector effectue les trois étapes listées ci-dessus et crée une nouvelle Sales Order complète dans MS Dynamics NAV !

Veuillez lire ce billet  « Créer une Sales Order MS Dynamics NAV avec les Web Services, en toute simplicité » pour une description plus détaillée de cette fonctionnalité.

Prise en charge de DBLookup ajoutée au MS Dynamics NAV Web Services Connector

Vous pouvez désormais utiliser DBLookup avec les MS Dynamics NAV WS Connectors. Si vous souhaitez par exemple récupérer le Country Code à partir d'un Country Name lors de la création d'un nouveau Customer ou Contact dans MS Dynamics NAV (via le Web Service correspondant), vous pouvez maintenant utiliser DBLookup('DESTDS','Countries','Name',"Country Name",'Code') en supposant que vous avez publié un Web Service MS Dynamics NAV nommé "Countries" permettant de récupérer le code pays.

Pour utiliser cette fonctionnalité, vous devez mettre à niveau le service central et le RapidiConnector local en version 3.2.91y ou ultérieure. Veuillez contacter notre support pour organiser cela.

Prise en charge des Codeunits avec XMLPorts publiés comme Web Services MS Dynamics NAV

Dans MS Dynamics NAV, vous pouvez publier soit des Pages, soit des Codeunits comme Web Services. Les Pages offrent certes de nombreuses fonctionnalités standard et une très bonne intégration dans le code MS Dynamics NAV, puisque vous publiez pour l'essentiel les mêmes Pages que celles qui servent à saisir les données ; dans certaines situations précises où vous avez besoin de plus de contrôle sur le code et les données, une Codeunit peut cependant être un meilleur choix. Nous sommes heureux d'annoncer que nous avons désormais ajouté cette option à notre MS Dynamics NAV WS Connector.

Comment construire la Codeunit

Pour que RapidiOnline sache comment appeler les méthodes de votre Codeunit, vous devez construire celle-ci d'une manière précise.
De façon générale, il vous faut des méthodes nommées "UpdateMultiple", "CreateMultiple" et "ReadMultiple", chacune prenant un paramètre var qui est un XMLPort (le même XMLPort pour toutes les méthodes). Nous détectons le paramètre XMLPort au travers de ces méthodes et vous permettons de créer des mappages vers les tables et les champs spécifiés dans le XMLPort.

Si vous souhaitez utiliser cette nouvelle fonctionnalité, veuillez contacter notre support pour obtenir un exemple de code. Nous prévoyons également de publier un peu plus tard un billet de blog détaillé sur ce sujet.

Pour utiliser cette fonctionnalité, vous devez mettre à niveau le service central et le RapidiConnector local en version 3.2.92u ou ultérieure. Veuillez contacter notre support pour organiser cela.


Prise en charge de la fonction SKIPFIELD avec le MS Dynamics NAV WS Connector

L'été dernier, nous avons introduit une nouvelle fonction appelée 'SkipField'. Cette fonction s'utilise dans le mappage et permet à RapidiOnline d'ignorer dynamiquement l'envoi d'un champ précis (pour un enregistrement précis) vers le système de destination. C'est très utile si vous souhaitez conserver la valeur déjà définie dans la destination (ou laisser la destination créer elle-même une valeur par défaut), ou si une valeur – même vide – n'est pas acceptée par la destination pour ce champ (généralement en fonction de la valeur d'autres champs).

Un exemple est la création de lignes de texte ou de commentaire sur une SalesOrder. Dans ce cas, le Web Service MS Dynamics NAV n'accepte pas que les champs 'No' (Item No), 'Quantity' et 'UnitPrice' soient envoyés sur cette ligne. Nous pouvons utiliser la fonction 'SkipField' pour obtenir exactement cela, avec une formule comme 

##IF(EQUALS(LineType,0),SKIPFIELD(),Quantity)

nous pouvons obtenir que le champ Quantity ne soit pas envoyé vers la destination si LineType vaut 0.

La fonction 'SkipField' est désormais prise en charge avec le MS Dynamics NAV WS Connector. Cela inclut le fait que l'information indiquant qu'un champ doit être ignoré est transmise au RapidiConnector (il nous a fallu faire fonctionner cela aussi). C'est une modification de la communication entre le serveur central et le RapidiConnector, les deux doivent donc être mis à niveau. En introduisant ce changement, nous assurons toutefois la compatibilité ascendante des deux côtés : un ancien RapidiConnector fonctionnera avec une nouvelle version de Rapidi Central, et de même un nouveau RapidiConnector fonctionnera avec une ancienne version de Rapidi Central. Lors de la communication initiale, les deux s'accordent simplement sur les fonctionnalités qu'ils ont en commun et sur ce qu'ils peuvent prendre en charge dans le protocole, ce qui rend les mises à niveau plus souples.

Pour utiliser cette fonctionnalité, vous devez mettre à niveau le service central et le RapidiConnector local en version 3.2.92u ou ultérieure. Veuillez contacter notre support pour organiser cela.
 

Meilleure gestion des erreurs, meilleurs messages d'erreur, ReadDesign et autres améliorations

Nous affichons désormais de meilleurs messages d'erreur lors de l'utilisation de "All Fields" ou lorsqu'aucune Field List n'est spécifiée. Vous devez toujours spécifier une Field List avec le MS Dynamics NAV WS Connector, mais vous obtenez maintenant au moins un message d'erreur clair et explicite qui indique ce qu'il faut corriger. Disponible en version 3.2.91y

Nous vérifions désormais si le serveur MS Dynamics NAV WS renvoie autre chose qu'une réponse HTTP 200 OK et, le cas échéant, nous renvoyons un meilleur message d'erreur. Ce message amélioré permet d'identifier le problème plus vite, et donc de le résoudre plus vite.

'ReadDesign' revu et amélioré

La fonctionnalité 'ReadDesign' du MS Dynamics NAV WS Connector a été améliorée afin de détecter davantage d'informations dans les WSDL générés par MS Dynamics NAV. Nous détectons désormais automatiquement, par exemple, les namespaces, les SOAP actions et l'objet ou la table principale utilisée. Nous utilisons ensuite ces informations pour générer les messages XML envoyés à MS Dynamics NAV WS. Le connecteur fonctionne ainsi avec davantage de Pages et de Codeunits personnalisées, et il n'est plus nécessaire de publier la Page sous le même nom que la table principale qu'elle utilise (auparavant, la Page Customer devait être publiée sous le nom "Customer" et la Page Sales Order sous le nom "SalesOrder" – ce n'est plus nécessaire). Disponible en 3.2.92s ou ultérieure.

Autres améliorations

Décodage correct des champs encodés en UTF-8 provenant de NAV

Lors de la lecture de données depuis MS Dynamics NAV via le MS Dynamics NAV WS, ou lors de mises à jour vers MS Dynamics NAV, le MS Dynamics NAV WS Connector ne décodait pas correctement les champs encodés en UTF-8 provenant de MS Dynamics NAV. C'est désormais corrigé.

Taille de Page et taille de batch étendues

La taille de Page par défaut lors de la lecture depuis MS Dynamics NAV WS est désormais fixée à 50 (auparavant seulement 5) ; il en va de même pour la taille de batch lors de l'envoi d'enregistrements vers MS Dynamics NAV WS (désormais 50 par défaut, 5 auparavant). Ces deux valeurs peuvent maintenant aussi être ajustées via le fichier local rapidi.cfg (ajoutez NavWSReadMultiplePageSize : xx (50 par défaut) ou NavWSUpdateAddBatchSize : xx (50 par défaut)).

Comment éviter "Server returned a HTTP error code (not 200 OK): 400 Bad Request"

Nous avons également introduit un autre paramètre rapidi.cfg permettant de contrôler si chaque requête vers le serveur MS Dynamics NAV WS doit être envoyée sur une nouvelle connexion. Le serveur WS de MS Dynamics NAV 2009R2 au moins l'exige. Cela se règle avec le paramètre rapidi.cfg NavWSRestartConnectionEachRequest : 1 (0 par défaut).
Cela évite un message d'erreur : "Server returned a HTTP error code (not 200 OK): 400 Bad Request"

Exécution plus rapide des transferts

Lors d'un Connection Test (clic sur "Test" pour une NAV WS Connection), nous appelons désormais le SystemService pour vérifier que l'accès est correctement configuré (nom d'utilisateur, mot de passe et domaine corrects, et connexion au serveur). Dans le même temps, nous avons supprimé cet appel supplémentaire au SystemService lors de l'initialisation du MS Dynamics NAV WS Connector, car il n'est plus nécessaire. Les transferts devraient ainsi s'exécuter un peu plus vite en général.

Ces fonctionnalités sont disponibles en version 3.2.92u ; vous devez mettre à niveau le service central et le RapidiConnector local en version 3.2.92u ou ultérieure. Veuillez contacter notre support pour organiser cela.

Rencontrez notre Customer Success Team - réservez un créneau dès maintenant !

 

Voyez si cela convient à votre environnement

Dites-nous quels systèmes vous utilisez et nous vous dirons franchement si Rapidi est le bon outil.