Bodo's Dynamics NAV Blog

Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet.

In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics NAV.

Dynamics NAV 2009 R2 Web Services – Ein Tutorial, Teil 2

Verfasst von Bodo am Freitag, 15. Juni 2012

Tags: webservices, 2009, r2, nav, codeunit, tutorial

Im zweiten Teil des Tutorials möchte ich Ihnen zeigen, wie Sie den im ersten Teil veröffentlichten Web Service von einer mit Visual Studio 2010 erstellten Konsolenanwendung aus nutzen. Wenn Sie den ersten Teil noch nicht gelesen haben, folgen Sie bitte diesem Link: Dynamics NAV 2009 R2 Web Services – Ein Tutorial, Teil 1

1) Für unser Beispiel starten Sie Visual Studio und legen auf Basis der Vorlage „Konsolenanwendung“ ein neues Projekt mit dem Namen „DemoApplication“ an. Als Programmiersprache verwende ich Visual Basic. Sie können aber auch gern C# nehmen.

2) Visual Studio erstellt uns automatisch das Projektgerüst und ich benenne unser Startobjekt von „Module1“ in „Application“ um.

3) Als nächstes müssen wir eine Referenz auf unseren Web Service „MyContactService“ dem Projekt hinzufügen. Dazu klicken Sie mit der rechten Maustaste im Projektmappen-Explorer auf „DemoApplication“ und wählen im Kontextmenü „Dienstverweis hinzufügen“. Es öffnet sich der Dialog „Dienstverweis hinzufügen“ und Sie klicken bitte auf die links unten angebrachte Schaltfläche „Erweitert“. Es öffnet sich der Dialog „Dienstverweiseinstellungen“ und Sie klicken jetzt auf die links unten abgebrachte Schaltfläche „Webverweis hinzufügen“. Es öffnet sich der Dialog „Webverweis hinzufügen“. Wir sind endlich angekommen und Sie geben die URL zu unserem Web Service (http://localhost:7047/DynamicsNAV/WS/Page/MyContactService) ein und drücken Enter. Visual Studio fragt den Web Service ab und zeigt die Methoden an, die unser Web Service veröffentlicht. Geben Sie jetzt noch den Webverweisnamen „MyContactServiceNAV“ an und klicken Sie auf die Schaltfläche „Verweis hinzufügen“.

4) Ich denke, die meisten Methoden sprechen für sich. Die Methode Create() entspricht dem Rec.INSERT in Dynamics NAV. Die Methode Read() entspricht dem Rec.GET(), die Methode Update() dem Rec.MODIFY() und Delete() entspricht Rec.DELETE().

5) Wir wollen die Methode Read() ausprobieren. Dazu kapsele ich den Web Service Zugriff in einer eigenen Klasse „MyContactHandler“. Zu beachten ist dabei folgendes:

A) Bisher sind wir in unser Web Service URL ohne Mandanten-Namen ausgekommen. Wenn wir nur die WSDL auslesen, ist das auch völlig okay. Wenn wir aber Daten lesen wollen, müssen wir den Mandanten-Name „CRONUS AG“ mit in die URL aufnehmen. Zur Verdeutlichung habe ich in meinem Codebeispiel unten die Bestandteile der URL einzeln aufgeführt.

B) Über die Eigenschaft „UseDefaultCredentials“ sorgen wir dafür, dass wir mit unserer aktuellen Windows-Anmeldung am Web Service angemeldet werden.

6) Zu guter Letzt fehlt nur noch der Aufruf und die Ausgabe in unser Application-Klasse.

7) Starten Sie die Anwendung und die Daten des Kontaktes werden ausgelesen.

8) Ende. Den Quellcode des Projektes können Sie herunterladen.