WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 11:41

Guten Tag,

Ich verwede den "Microsoft Dynamics NAV 2009 Classic with Microsoft SQL Server" Client. (CC)

Nun soll ich WebServices realisieren. Wie muss ich dazu vorgehen, die WebService Tabelle gibt es im Classic Client ja anscheinend nicht.

Anfangs würde es reichen wenn ich einfach eine Codeunit anstoßen kann und ggf. eine Antwort erhalten würde.

Ist das Möglich? Wenn Ja Wie? Brauche ich einen Application server oder sowas?

Schonmal danke! Mfg

Magon

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 12:13

Hallo,

die WebService-Tabelle und die zugehörige Einrichtungs gibt's natürlich auch im ClassicClient.
Unter "Verwaltung" --> "IT-Verwaltung" --> "Allgemeine Einrichtung" gibt es den Menüpunkt "Web Services".
dort kannst du die codeunit(s), die als WebService veröffentlicht werden sollen, einrichten.

Um die webServices zu nutzen, muss m.W. der Dienst "Microsoft Dynamics NAV Business Web Services" gestartet werden/sein.

Gruß
Jörg

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 13:20

Wenn Du den Eintrag Web Services nicht findest, wirst Du wohl nur technisch auf NAV 2009 upgedated worden sein. Dann klappt das nicht so ohne weiteres.

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 13:57

Okay habe es gefunden, nur das mit dem Link klappt iwie nicht, wie genau muss ich den Link aufbauen?

Habe es so:


http://[Rechnername, wie in Computer-> Eigenschaften]:7047/[Datenbankname]/WS/[Mandantenname]/Services


Bekomme aber immer das angezeigt:

Service Unavailable

--------------------------------------------------------------------------------

HTTP Error 503. The service is unavailable.


Was mache ich noch Falsch?

Danke für eure Antworten!

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 14:06

Magon hat geschrieben:Habe es so:

http://[Rechnername, wie in Computer-> Eigenschaften]:7047/[Datenbankname]/WS/[Mandantenname]/Services

Bekomme aber immer das angezeigt:

Service Unavailable

--------------------------------------------------------------------------------

HTTP Error 503. The service is unavailable.


Was mache ich noch Falsch?


Ist auf diesem Rechner
[Rechnername, wie in Computer-> Eigenschaften]
der Dienst für die Dynamics NAV Web Services gestartet?

Gruß
Jörg

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 14:15

Ja, ist er

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 14:24

Läuft der Service auf deinem Rechner oder auf einem anderen? Falls anderer Rechner überprüf mal die Firewall.

Wenn auf Deinem Rechner, dann nimm mal localhost statt Rechnername.

Weitere mögliche Probleme:
Rechte für den Service in NAV vergeben?
Leerzeichen und/oder Umlaute im Mandantennamen?
Falscher Port in customsettings.config?

Volker

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 14:25

Ich seh grade nochwas:

Was ist Datenbankname?

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 14:55

Datenbankname ist der Name den ich beim Öffnen einer Datenbank auswähle?

Der Service läuft auf dem Rechner und mit localhost funktioniert es auch nicht.

Wo finde ich die config datei, habe da normal nichts geändert?

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 15:01

Dann setz erstmal statt datenbankname "DynamicsNAV" ein.

Und dann erstmal ohne Mandant probieren:

Code:
http://DeinNAVServiceTierServer:7047/DynamicsNAV/WS/SystemService

Volker

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 15:08

http://localhost:7047/DynamicsNAV/WS/SystemService klappt. Bekomme den roten Text, meine Freigegebene Codeunit erscheint jedoch nicht (also der Name)

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 16:05

Magon hat geschrieben:Bekomme den roten Text
????

Du solltest am besten mal anfangen hier zu lesen http://msdn.microsoft.com/en-us/library/aa496089.aspx Da gibt es genug Anleitungen und Beispiele.

Volker

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 16:10

Da war ich schon. Habe mich vllt. etwas unglücklich ausgedrückt, meine das:

<?xml version="1.0"?>
-<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:microsoft-dynamics-schemas/nav/system/" targetNamespace="urn:microsoft-dynamics-schemas/nav/system/">

...


Leider aber nicht den Webservice den ich "eingetragen" habe (in Form 810). Habe einen Fehler im Link denke ich.

Re: WebService mit dem Classic Client realisieren (CC)

20. Juni 2011 16:23

Magon hat geschrieben:Da war ich schon.

Glaub ich nicht, sonst hättest Du auch hier gelesen http://msdn.microsoft.com/en-us/library/dd355036.aspx

Volker

Re: WebService mit dem Classic Client realisieren (CC)

21. Juni 2011 12:15

Hi Magon,

versuch den folgenden Link:
http://Servername:7047/DynamicsNAV/WS/Mandant/services

Dann solltest du eine Áuflistung der freigegebenen Objekte (Form 810) kriegen.

Code:
http://Servername:7047/DynamicsNAV/WS/Mandant/Systemservice


zeigt nur die Mandanten an.



Gruß
Aydin

Re: WebService mit dem Classic Client realisieren (CC)

21. Juni 2011 13:42

Hi,

Magon, evtl. solltest du dich grundsätzlich erst einmal mit Webservices auseinander setzen. Ich habe das Gefühl das hier ins Blaue rein probiert wird, ohne grundsätzliches Verständnis zu haben. Verstehe mich nicht falsch, ich bin ein Freund von "ich probiere das einfach mal aus", aber hier scheinen essentielle Dinge noch unklar zu sein.
Ich bin mir gerade nicht sicher ob du Schüler, Auszubildener, End-Anwender o.ä. bist aber du solltest zur not Rücksprache mit deinem Ansprechpartner halten.

Beispiel für den Anfang:
http://en.wikipedia.org/wiki/Web_service

ich hoffe du nimmst mir die Antwort nicht übel :/

gruß,
Matthias

Re: WebService mit dem Classic Client realisieren (CC)

29. Juni 2011 10:58

JanGD hat geschrieben:Wenn Du den Eintrag Web Services nicht findest, wirst Du wohl nur technisch auf NAV 2009 upgedated worden sein. Dann klappt das nicht so ohne weiteres.


Finde den Eintrag, habe Nav 2009 nochmal komplett neu Installiert.

JRenz hat geschrieben:die WebService-Tabelle und die zugehörige Einrichtungs gibt's natürlich auch im ClassicClient.
Unter "Verwaltung" --> "IT-Verwaltung" --> "Allgemeine Einrichtung" gibt es den Menüpunkt "Web Services".
dort kannst du die codeunit(s), die als WebService veröffentlicht werden sollen, einrichten.

Um die webServices zu nutzen, muss m.W. der Dienst "Microsoft Dynamics NAV Business Web Services" gestartet werden/sein.


Habe die von mir erstellte Codeunit in der Form 810 WebService eingetragen, den Dienst habe ich gestartet.

vsnase hat geschrieben:Läuft der Service auf deinem Rechner oder auf einem anderen? Falls anderer Rechner überprüf mal die Firewall.

Wenn auf Deinem Rechner, dann nimm mal localhost statt Rechnername.

Weitere mögliche Probleme:
Rechte für den Service in NAV vergeben?
Leerzeichen und/oder Umlaute im Mandantennamen?
Falscher Port in customsettings.config?


Der Service läuft auf meinem Rechner, ich verwende also "localhost" als Rechnername.

In NAV habe ich das SUPER, somit müsste ich alle Rechte haben.

Im Mandantennamen CRONUS AG (Verwende Momentan die Demo Datenbank) ist ein Leerzeichen, muss ich das irgendwie Maskieren?

In der customsettings.config ist der richtige Port eingetragen

Code:
<add key="WebServicePort" value="7047"></add>


Wenn ich die im Browser Folgendes eingebe:

Code:
http://localhost:7047/DynamicsNAV/WS/SystemService


Dann erscheint das:

Code:
<?xml version="1.0"?>
-<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">-<s:Body>-<s:Fault><faultcode xmlns:a="urn:microsoft-dynamics-schemas/error">a:Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLMetadataFailedException</faultcode><faultstring xml:lang="de-DE">Die Metadaten für das Objekt vom Typ 'Table' mit der ID '2000000006' befinden sich in einem fehlerhaften Zustand, der auf eine frühere Ausnahme zurückzuführen ist: Der angegebene Pfad ist ungültig. </faultstring>-<detail><string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Die Metadaten für das Objekt vom Typ 'Table' mit der ID '2000000006' befinden sich in einem fehlerhaften Zustand, der auf eine frühere Ausnahme zurückzuführen ist: Der angegebene Pfad ist ungültig. </string></detail></s:Fault></s:Body></s:Envelope>


Damit kann ich nicht viel Anfangen, der von mir eingetragene WebService Namens "Test1" Taucht hier nicht auf.

MatthiasKönig hat geschrieben:Beispiel für den Anfang:
http://en.wikipedia.org/wiki/Web_service

ich hoffe du nimmst mir die Antwort nicht übel :/

gruß,
Matthias


Hallo Matthias,

das tu ich natürlich nicht. Ich weiß was ein WebService ist und was er macht und habe auch ein paar Anleitungen durch nur bleibe ich bei dem Link zum testen des Web Service immer hängen, ich schaffe nicht dass mir dieser Angezeigt wird.

Arbeite mit der Standard Cronus Datenbank und einer Entwickler Lizenz


Was mir außerdem Aufgefallen ist:

Wenn ich im Rollencenter Client auf WebServices gehe bekomme ich einen Fehler angezeigt:

Bild

(Habe aber nichts offen, also der Classic Client und Somit die Form sind geschlossen)


Ich bedanke mich schon jetzt für eure Geduld und die Zahlreichen Antworten.

Mfg

Magon


-------------
EDIT: Die Fehlerhafte Tabelle neu zu kompilieren hat das Problem behoben!

Re: WebService mit dem Classic Client realisieren (CC)

29. Juni 2011 11:38

Magon hat geschrieben:Die Metadaten für das Objekt vom Typ 'Table' mit der ID '2000000006' befinden sich in einem fehlerhaften Zustand


Dann compile mal dieTabelle neu.

Volker

Re: WebService mit dem Classic Client realisieren (CC)

29. Juni 2011 23:03

Hi,


bevor du die Tabelle "2000000006" neu kompilierst solltest du diese erstmal aus der Tabelle "Object MetaData" rausschmeißen.
Nach dem kompilieren erscheint die Tabelle wieder dort. Die .cs Datei ist anscheinend im fehlerhaften Zustand.



Gruß
Aydin

Re: WebService mit dem Classic Client realisieren (CC)

30. Juni 2011 08:33

neu kompilieren reicht nach meiner Erfahrung nicht. Die Navdienste müssen auch neu gestartet werden. Macht man das nicht, bleiben alte Einträge übrig.
http://www.msdynamics.de/viewtopic.php?f=40&t=8274&hilit=+object

Volker

Re: WebService mit dem Classic Client realisieren (CC)

30. Juni 2011 13:27

Habe sie neu kompiliert und die Dienste neu gestartet und vorsichtshalber gleich noch den Rechner, jetzt klappt alles.

Danke für eure Hilfe!