
Großes Upgrade des MS Dynamics NAV Web Service Connector
Wir freuen uns sehr, ankündigen zu können, dass wir unsere Unterstützung für MS Dynamics NAV Web Services grundlegend aktualisiert haben – mit ganz neuen Funktionen wie dem Anlegen von Sales Orders in einem Schritt, Unterstützung für Codeunit-Web-Services und insgesamt besserer Fehlerbehandlung.
Da viele von Ihnen – unsere geschätzten Kunden – die MS Dynamics NAV Web Services inzwischen in Ihren Integrationen mit MS Dynamics NAV einsetzen, war es unserer Ansicht nach Zeit für ein größeres Update dieses Moduls. Auf Basis Ihres Feedbacks haben wir einige spannende neue Funktionen ergänzt.
Neue Funktion: MS Dynamics NAV Sales Orders in einem Schritt anlegen (ein Transfer)
Wir haben die Unterstützung für das Anlegen von Sales Orders jetzt direkt in unseren MS Dynamics NAV Web Service Connector eingebaut. Diese besondere Unterstützung erkennt, dass Sie eine neue Sales Order in MS Dynamics NAV anlegen möchten: Aus einem einzigen Transfer, in dem Sie sowohl Kopf- als auch Zeilendaten mit allen benötigten Feldern mappen, führt der Connector die oben genannten drei Schritte aus und legt eine vollständige neue Sales Order in MS Dynamics NAV an!
Bitte lesen Sie diesen Beitrag 'MS Dynamics NAV Sales Order per Web Service – ganz einfach' für eine ausführlichere Beschreibung dieser Funktion.
DBLookup-Unterstützung im MS Dynamics NAV Web Services Connector ergänzt
Sie können DBLookup jetzt mit MS Dynamics NAV WS Connectors verwenden. Wenn Sie zum Beispiel den Country Code anhand eines Country Name ermitteln möchten, während Sie einen neuen Customer oder Contact in MS Dynamics NAV anlegen (über den entsprechenden Web Service), können Sie jetzt DBLookup('DESTDS','Countries','Name',"Country Name",'Code') verwenden – vorausgesetzt, Sie haben einen MS Dynamics NAV Web Service mit dem Namen "Countries" veröffentlicht, über den sich der Country Code abrufen lässt.
Um diese Funktion nutzen zu können, müssen Sie sowohl den zentralen Service als auch den lokalen RapidiConnector auf Version 3.2.91y oder höher aktualisieren. Bitte wenden Sie sich an unseren Support, um das zu veranlassen.
Unterstützung für Codeunits mit XMLPorts, die als MS Dynamics NAV Web Services veröffentlicht sind
In MS Dynamics NAV können Sie entweder Pages oder Codeunits als Web Services veröffentlichen. Pages bieten zwar viel Standardfunktionalität und eine sehr gute Integration in den MS Dynamics NAV Code, da Sie im Grunde dieselben Pages veröffentlichen, über die auch Daten eingegeben werden; in bestimmten Situationen, in denen Sie mehr Kontrolle über Code und Daten benötigen, kann eine Codeunit jedoch die bessere Wahl sein. Wir freuen uns, dass wir diese Option jetzt in unseren MS Dynamics NAV WS Connector aufgenommen haben.
So bauen Sie die Codeunit auf
Damit RapidiOnline weiß, wie es die Methoden in Ihrer Codeunit aufrufen soll, müssen Sie die Codeunit auf eine bestimmte Weise aufbauen.
Grundsätzlich benötigen Sie Methoden mit den Namen "UpdateMultiple", "CreateMultiple" und "ReadMultiple", die jeweils einen var-Parameter entgegennehmen, der ein XMLPort ist (derselbe XMLPort für alle Methoden). Wir erkennen den XMLPort-Parameter über diese Methoden und ermöglichen Ihnen, Mappings auf die im XMLPort angegebenen Tabellen und Felder anzulegen.
Wenn Sie diese neue Funktion nutzen möchten, wenden Sie sich bitte an unseren Support, um Beispielcode zu erhalten. Wir planen außerdem, etwas später einen ausführlichen Blogbeitrag zu diesem Thema zu veröffentlichen.
Um diese Funktion nutzen zu können, müssen Sie sowohl den zentralen Service als auch den lokalen RapidiConnector auf Version 3.2.92u oder höher aktualisieren. Bitte wenden Sie sich an unseren Support, um das zu veranlassen.
Unterstützung der SKIPFIELD-Funktion im MS Dynamics NAV WS Connector
Im vergangenen Sommer haben wir eine neue Funktion namens 'SkipField' eingeführt. Die Funktion lässt sich im Mapping verwenden und bewirkt, dass RapidiOnline das Senden eines bestimmten Feldes (für einen bestimmten Datensatz) an das Zielsystem dynamisch überspringen kann. Das ist sehr nützlich, wenn Sie entweder den im Ziel bereits gesetzten Wert erhalten möchten (oder das Zielsystem selbst einen Standardwert erzeugen lassen wollen) oder wenn ein Wert – selbst ein leerer – vom Ziel für dieses Feld nicht akzeptiert wird (typischerweise abhängig vom Wert anderer Felder).
Ein Beispiel ist das Anlegen von Text- oder Kommentarzeilen auf einer SalesOrder. In diesem Fall akzeptiert der MS Dynamics NAV Web Service nicht, dass die Felder 'No' (Item No), 'Quantity' und 'UnitPrice' auf dieser Zeile mitgesendet werden. Mit der Funktion 'SkipField' erreichen wir genau das, mit einer Formel wie
##IF(EQUALS(LineType,0),SKIPFIELD(),Quantity)
erreichen wir, dass das Feld Quantity nicht an das Zielsystem gesendet wird, wenn LineType 0 ist.
Die Funktion 'SkipField' wird jetzt auch im MS Dynamics NAV WS Connector unterstützt. Dazu gehört, dass die Information, dass ein Feld übersprungen werden soll, an den RapidiConnector übermittelt wird (auch das mussten wir erst zum Laufen bringen). Das ist eine Änderung an der Kommunikation zwischen dem zentralen Server und dem RapidiConnector, daher müssen beide aktualisiert werden. Bei dieser Änderung stellen wir die Rückwärtskompatibilität für beide Seiten jedoch weiterhin sicher: Ein alter RapidiConnector arbeitet also mit einer neuen Rapidi Central Version zusammen und ebenso ein neuer RapidiConnector mit einer alten Rapidi Central Version. Bei der ersten Kommunikation verständigen sich die beiden einfach darüber, welche Funktionen sie gemeinsam haben und was sie im Protokoll unterstützen können – das macht Upgrades flexibler.
Um diese Funktion nutzen zu können, müssen Sie sowohl den zentralen Service als auch den lokalen RapidiConnector auf Version 3.2.92u oder höher aktualisieren. Bitte wenden Sie sich an unseren Support, um das zu veranlassen.
Bessere Fehlerbehandlung, Fehlermeldungen, ReadDesign und weitere Verbesserungen
Wir geben jetzt bessere Fehlermeldungen aus, wenn "All Fields" verwendet wird oder wenn keine Field List angegeben ist. Sie müssen beim MS Dynamics NAV WS Connector zwar weiterhin immer eine Field List angeben, erhalten jetzt aber zumindest eine gute, aussagekräftige Fehlermeldung, die sagt, was zu korrigieren ist. Verfügbar in Version 3.2.91y
Wir prüfen jetzt, ob der MS Dynamics NAV WS Server etwas anderes als eine 200 OK HTTP-Antwort zurückgibt, und geben in diesem Fall eine bessere Fehlermeldung zurück. Die verbesserte Fehlermeldung erlaubt es, das Problem schneller zu erkennen und damit schneller zu lösen.
'ReadDesign' überarbeitet und verbessert
Die Funktion 'ReadDesign' für den MS Dynamics NAV WS Connector wurde verbessert und erkennt jetzt mehr Informationen in den von MS Dynamics NAV generierten WSDLs. Wir erkennen zum Beispiel Namespaces, SOAP Actions und das verwendete Hauptobjekt bzw. die Haupttabelle jetzt automatisch. Diese Informationen nutzen wir dann, um die XML-Nachrichten zu erzeugen, die an MS Dynamics NAV WS gesendet werden. Damit arbeitet der Connector mit mehr selbst definierten Pages und Codeunits zusammen, und die Page muss nicht mehr unter demselben Namen veröffentlicht werden wie die Haupttabelle, die sie verwendet (früher musste die Customer Page als "Customer" und die Sales Order Page als "SalesOrder" veröffentlicht werden – das ist jetzt nicht mehr nötig). Verfügbar in 3.2.92s oder höher.
Weitere Verbesserungen
Korrektes Dekodieren UTF-8-codierter Felder aus NAV
Beim Lesen von Daten aus MS Dynamics NAV über den MS Dynamics NAV WS oder bei Updates in MS Dynamics NAV dekodierte der MS Dynamics NAV WS Connector UTF-8-codierte Felder aus MS Dynamics NAV nicht korrekt. Das ist jetzt behoben.
Page- und Batch-Größe erweitert
Die Standard-Page-Größe beim Lesen aus MS Dynamics NAV WS liegt jetzt bei 50 (vorher waren es nur 5); dasselbe gilt für die Batch-Größe beim Senden von Datensätzen an MS Dynamics NAV WS (jetzt standardmäßig 50, vorher 5). Diese beiden Werte lassen sich jetzt außerdem über die lokale Datei rapidi.cfg anpassen (fügen Sie NavWSReadMultiplePageSize : xx (Standard 50) oder NavWSUpdateAddBatchSize : xx (Standard 50) hinzu).
So vermeiden Sie "Server returned a HTTP error code (not 200 OK): 400 Bad Request"
Wir haben außerdem einen weiteren rapidi.cfg-Parameter eingeführt, mit dem Sie steuern, ob jede Anfrage an den MS Dynamics NAV WS Server über eine neue Verbindung gesendet werden soll. Mindestens der WS Server von MS Dynamics NAV 2009R2 verlangt das. Einstellen lässt sich das über den rapidi.cfg-Parameter NavWSRestartConnectionEachRequest : 1 (Standard ist 0).
Damit wird die Fehlermeldung "Server returned a HTTP error code (not 200 OK): 400 Bad Request" vermieden.
Schnellere Ausführung von Transfers
Beim Connection Test (Klick auf "Test" bei einer NAV WS Connection) rufen wir jetzt den SystemService auf, um zu prüfen, ob der Zugriff korrekt eingerichtet ist (richtiger Benutzername, richtiges Kennwort, richtige Domäne und Serververbindung). Gleichzeitig haben wir diesen zusätzlichen Aufruf des SystemService aus der Initialisierung des MS Dynamics NAV WS Connector entfernt, da er dort nicht mehr nötig ist. Das dürfte Transfers insgesamt etwas schneller machen.
Diese Funktionen sind in Version 3.2.92u verfügbar; Sie müssen sowohl den zentralen Service als auch den lokalen RapidiConnector auf Version 3.2.92u oder höher aktualisieren. Bitte wenden Sie sich an unseren Support, um das zu veranlassen.
