Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 17:53

aydina81 hat geschrieben:Zwischen dem NAV-SQL und ERP-SQL braucht man also einen Dienst. Ob nun der Webservice oder NAS zum Einsatz kommt, macht nicht den großen Unterschied.


Das stimmt so nicht. Von ERP-SQL nach NAV-SQL kann man direkt gehen; hierfür ist kein NAS oder Webservice nötig (und wohl hier auch nicht vorgesehen).

NAS ist eigentlich ein ClassicClient ohne GUI. Ganz was anderes als ein Webservice.

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:01

Hi Volker,


aber auf dem direkten Wege wird die Buisness-Logik nicht ausgeführt, oder?
Dann wird nur in die Datenbank geschrieben.

Die Anforderung von Ahmed war ja, die Buisness-Logik mitauszuführen. Deswegen kam der Vorschlag mit dem Webservice (,weil der schon vorhanden sein sollte nach der Abbildung).


Gruß
Aydin

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:11

Ja, aber er kann mit SQL direkt in die Tabelle schreiben und mit dem NAS (regelmäßig) eine Codeunit aufrufen, die die Tabelle unter Einhaltung aller Business-Logik bearbeitet. Könnte u. U. die performaantere Lösung sein, aber ob diese Lösung mit späteren NAV-Versionen noch problemlos geht ist eine andere Frage.

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:22

Hi Volker,


aber den NAS Dienst müsste man zusätzlich installieren oder?
Ich bin immer von der Abbildung ausgegangen, weil da die Mittelschicht bereits installiert ist.




Gruß
Aydin

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:36

Hi zusammen,

also die Mittel-Schicht (NAV Server) ist schon vorhanden. Wihtig ist es hier nur für den RTC. :!:
Ich verstehe nicht was Ihr mit NAS meint. Ist das eine ältere Version des NAV Servers oder wie... :?:

Die Daten können ja schon in die NAV Zwischen-Tabelle durch einen Trigger übergeben werden, ohne einen Logik.
Jedoch wenn ich die Daten in die Zeiltabelle einfüge, sollte die Logik mitübernommen werden, und dies passiert doch über eine Codeunit oder Report (obwohl ich nicht weiss, wie ein Report aussieht)???

D.h.:

ERP-SQL Server (hier wird über einen Trigger die Daten übertragen in die ZwischenTabelle) :arrow: ERP-SQL-NAV (hier findet ein Datenaustausch per Codeunit mit dem NAV Server) :arrow: Somit habe ich doch meine Daten im NAV Server und ich kann über meinen RTC mir die Sachen ansehen.

Ich brauch einen Abbild, sonst verstehe ich nicht ganz.... :-(

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:38

Stimmt, den NAS müßte man installieren, allerdings falls er mit Job Queue arbeiten will, führt daran eigenlich kein Weg vorbei (außer http://www.msdynamics.de/viewtopic.php?f=23&t=9796&p=48282&hilit=job+nas#p48282).

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:55

Hi Ahmed,


der RTC kommuniziert über den NAV-Server mit der SQL-Datenbank.
So wenn du nun von außerhalb auf die Datenbank zugreifen willst und dabei die Logik mitausführen willst (mit der Logik ist eigentlich ein Trigger in der Codeunit oder der Tabelle gemeint ),
geschieht dies über den Webservice.

Webservice-Dienst ist für außenstehende Anwendungen zuständig. Genau so als würdest du NAV von außen steuern mit gewissen Einschränkungen.



gruß
Aydin
Zuletzt geändert von aydina81 am 23. März 2011 18:57, insgesamt 1-mal geändert.

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

23. März 2011 18:57

Du hast die Schritte doch schon selber aufgelistet.
AhmedA hat geschrieben:Schritt 1: Tabelle anlegen
...
Schritt 2: SQL Abfrage
...
Schritt 3: Codeunit

Du mußt aber immer noch die Codeunit irgendwie aufrufen.

Wie hast Du Dir das gedacht? Manuell über einen Button im RTC? oder soll das Automatisch laufen, z. B. via NAS oder wird die CU als Webservice veröffentlicht und irgendein Programm (evtl. erweiterung im ERP-SQL-Server nach Aufruf des SQL-Triggers) ruft den Webservice auf und sößt die CU an?

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 10:54

vsnase hat geschrieben:@Volker: der Codeunit soll automatisch aufgerufen werden! Ich wüsste aber nicht wie das mit NAS (= NAV Server oder NAV Application Server ???) aussieht und funktioniert (da ich mit 1 Woche Kurs damit nichts anfangen kann :-( ) Kann ich aus deiner Aussage schließen, dass wenn man mit NAS löst, dass ich keinen Webservice brauche oder brauche ich allg. den WebService???

@Volker: der Codeunit soll automatisch aufgerufen werden! Ich wüsste aber nicht wie das mit NAS (= NAV Server oder NAV Application Server ???) aussieht und funktioniert (da ich mit 1 Woche Kurs damit nichts anfangen kann :-( ) Kann ich aus deiner Aussage schließen, dass wenn man mit NAS löst, dass ich keinen Webservice brauche oder brauche ich allg. den WebService???
aydina81 hat geschrieben:Hi Ahmed,
der RTC kommuniziert über den NAV-Server mit der SQL-Datenbank.
So wenn du nun von außerhalb auf die Datenbank zugreifen willst und dabei die Logik mitausführen willst (mit der Logik ist eigentlich ein Trigger in der Codeunit oder der Tabelle gemeint ),
geschieht dies über den Webservice.
Webservice-Dienst ist für außenstehende Anwendungen zuständig. Genau so als würdest du NAV von außen steuern mit gewissen Einschränkungen.
gruß
Aydin

@Aydin: Wenn das so ist, dann müsste ich ja wirklich mit dem Webservice arbeiten. Ohne Webservice keinen Ausweg! Oder???

Wie sieht es eigentlich mit XML aus? NAV unterstütz ja XML auch. Müsste ich dann auch den Webservice für den Austausch nutzen und mit einem Codeunit den XMLPort steuern??? Wie sieht das denn hier mit XML aus???

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 11:42

Hi,

Du hast die Daten in NAV-SQL in einer Zwischentabelle und willst sie durch Ausführen einer Codeunit in die Fibutabelle bringen. Die Codeunit muss aber irgendwie gestartet werden. Du mußt Dir nur überlegen wer oder wie Deine Codeunit gestartet werden soll. Eine Möglichkeit ist NAS. Eine andere Möglichkeit ist die Codeunit über einen Webservice aufzurufen, aber irgendjemand oder irgendein Programm muss den Webservice aufrufen.

Wie Du die CU in eurem Fall am besten startest mußt Du selbst entscheiden.

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 11:48

Wieso wechselst du nun auf XML? o_O

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 13:17

Hi Ahmed,


zwar wäre NAS eine Alternative, aber selber kenne ich mich damit nicht aus.
Ich verwende zur Zeit nur den Webservice und schreibe mir eine Anwendung in Visual Studio (C#) und rufe die Codeunit (oder Page) auf.

Vielleicht schilderst du erstmal genau, welche Dienste (NAS oder Webservice, oder beide) bereits bei dir installiert sind.

Und wie willst du mit XML eine Codeunit ansprechen? Geht das überhaupt?? Mach es dir doch nicht so schwer! Nutze was vorhanden ist.
(Das Rad musst du auch nicht neu erfinden, oder:-))

Der Webservice ist bereist schon so eingerichtet, dass du im Grunde nur eine kleine Anwendung schreiben musst und die Codeunit, die du brauchst, in deiner Anwendung ansprichst. Sehr simple!
Der Webservice kommuniziert via XML-Stream.

Ich finde persönlich das Arbeiten mit dem Webservice einfach.:-)

Bist du frei in deiner Entscheidung, wie du die Aufgabe löst?
Musst du nicht erstmal klären, welche Komponenten (also Dienste) du verwenden darfst (Lizenztechnisch).


Gruß
Aydin

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 14:14

Hallo Aydin,

aydina81 hat geschrieben:zwar wäre NAS eine Alternative, aber selber kenne ich mich damit nicht aus.

ich auch nicht :-(

aydina81 hat geschrieben:Ich verwende zur Zeit nur den Webservice und schreibe mir eine Anwendung in Visual Studio (C#) und rufe die Codeunit (oder Page) auf.
...
Der Webservice ist bereist schon so eingerichtet, dass du im Grunde nur eine kleine Anwendung schreiben musst und die Codeunit, die du brauchst, in deiner Anwendung ansprichst. Sehr simple!
Der Webservice kommuniziert via XML-Stream.
...
Ich finde persönlich das Arbeiten mit dem Webservice einfach.:-)

ok, hört sich einfach an, aber habe bislang so etwas noch nie gemacht. Ich hoffe, ich muss es nicht programmieren...ich sollte mich erstmals nur mit theorie auseinandersetzen und dies schnellmöglichst umsetzen.

aydina81 hat geschrieben:Vielleicht schilderst du erstmal genau, welche Dienste (NAS oder Webservice, oder beide) bereits bei dir installiert sind.
Und wie willst du mit XML eine Codeunit ansprechen? Geht das überhaupt?? Mach es dir doch nicht so schwer! Nutze was vorhanden ist.
(Das Rad musst du auch nicht neu erfinden, oder:-))

NAS sollte vorhanden sein, webservice weiss ich nicht... ich dachte immer das NAS und der Webservice das gleiche ist und diese immer vorhanden ist... ich lerne immer dazu... danke nochmlas an der stelle

aydina81 hat geschrieben:Bist du frei in deiner Entscheidung, wie du die Aufgabe löst?
Musst du nicht erstmal klären, welche Komponenten (also Dienste) du verwenden darfst (Lizenztechnisch).

die Entscheidung liegt allein bei mir. Ich soll die Entscheidung treffen, also alle Möglichkeiten auflisten auch im Sinne in einer Architektur als Abbildung. Da ich mich neu mit der 3-Schichten-Architektur befasse, fällt es mir schwer, die einzelnen Komponenten zu verstehen und wie halt codeunit (oder Berichte) mit NAS oder SQl Server mit RTC und und und ...zusammenarbeitet. Das mit dem lizenztechn. muss ich mir auch überlegen, d.h. achten wie es mit verschiedenen Mandanten aussieht, wobei die Mandanten irgendwie über Parameter gelöst werden soll....

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 14:20

vsnase hat geschrieben:Du mußt aber immer noch die Codeunit irgendwie aufrufen.

Wie hast Du Dir das gedacht? Manuell über einen Button im RTC? oder soll das Automatisch laufen, z. B. via NAS oder wird die CU als Webservice veröffentlicht und irgendein Programm (evtl. erweiterung im ERP-SQL-Server nach Aufruf des SQL-Triggers) ruft den Webservice auf und sößt die CU an?
Volker


Hallo Volker,
ich habe mich geiirt, der CU-Aufruf sollte manuell und auch automatisch passieren, also beides...

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 14:26

AhmedA hat geschrieben:Ich soll die Entscheidung treffen, also alle Möglichkeiten auflisten auch im Sinne in einer Architektur als Abbildung. Da ich mich neu mit der 3-Schichten-Architektur befasse, fällt es mir schwer, die einzelnen Komponenten zu verstehen und wie halt codeunit (oder Berichte) mit NAS oder SQl Server mit RTC und und und ...zusammenarbeitet. Das mit dem lizenztechn. muss ich mir auch überlegen, d.h. achten wie es mit verschiedenen Mandanten aussieht, wobei die Mandanten irgendwie über Parameter gelöst werden soll....


Das ist jetzt echt nicht bös gemeint, aber Du kennst die Zusammenhänge in NAV nicht und sollst eine Entscheidung treffen? Und am Ende das ganze auch noch umsetzen? Ich glaube, Du solltest Dir erst noch ein bißchen Literatur holen und mal ein bißchen den NAV-Standard-Code ansehen und verstehen was NAV warum wie macht. Als MS Partner sollte man so ein paar Grundlagen schon wissen (z. B. dass NAS und Webservices nicht das Gleiche sind).

Volker

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 14:46

vsnase hat geschrieben: ... Als MS Partner sollte man so ein paar Grundlagen schon wissen (z. B. dass NAS und Webservices nicht das Gleiche sind).


Ich denke mal er ist ein Neuling und wirft noch ein paar Begriffe durcheinander. Partner holen sich fast ausschließlich neues Personal/Entwickler entweder über eine Ausbildung, oder Absolventen, um diese entsprechend so lange auszupressen bis sie sich was anderes suchen, da sie sonst zu teuer werden.

Nicht böse gemeint, Ahmed :-)

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 15:05

Hallo zusammen,
habe kein Problem mit Euren Aussagen, bin halt Neuling!

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 16:35

NAS müssen lizenziert werden. Soweit ich weiß ist einer schon immer mit dabei. Generell wäre es geschickt wenn dieser dann auf einem Verarbeitungsrechner läuft und nicht auf dem Datenbankserver selbst.

Grober Ablauf:
In der Codeunit 1 muss ein Parameter in ein Case-Konstrukt gebracht wird und dort dann zum Beispiel einen Timer startet und dann regelmäßig etwas tut. Anschließend musst du über einen Kommandozeilenaufruf einen Windows-Service installieren, welcher dann über deinen neu hinzugefügten Parameter startest.

Eigentlich recht simpel. Mit Webservices kenn ich mich nicht aus. Habe kein NAV2009 hier ... :(

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 16:37

Webservices sind genial. Leider wird bei den NAV WS kein Basic Auth angeboten, von daher ist eine native Anbindung z.B. von SAP nach NAV über WS nicht möglich.

Webservices können direkt auf Codeunits und Pages zugreifen. Gibt auf MSDN da ein paar sehr gute Beispiele! Alleine durch das durchlesen der Beispiele und des Codes bekommt man echt Lust auf mehr :-)

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 18:29

JanGD hat geschrieben:Webservices sind genial. Leider wird bei den NAV WS kein Basic Auth angeboten, von daher ist eine native Anbindung z.B. von SAP nach NAV über WS nicht möglich.

wo ist der unterwchied zu NAS? wo hat webservice seine vorteile...? nicht für SAP...

JanGD hat geschrieben:Webservices können direkt auf Codeunits und Pages zugreifen. Gibt auf MSDN da ein paar sehr gute Beispiele! Alleine durch das durchlesen der Beispiele und des Codes bekommt man echt Lust auf mehr :-)

kannst du bitte link schicken, habe gesucht nichts gefunden...

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

24. März 2011 18:31

Hi,

als Motivation!! Nav-Entwickler fallen nicht vom Himmel:-)

@Ahmed: Ich habe auch vor ein paar Monaten mit dem Webservice angefangen. Eigne dir erst die Theorie ein.
Dann kannst du mit kleinen Beispielen loslegen. (Immer klein anfangen :-) )

Hier ein Link:
http://dynamicsuser.net/blogs/nav2dotne ... l-app.aspx

Sind 4 Parts. Geh mal alle in ruhe durch:-)

Gruß
Aydin

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

25. März 2011 10:19

Für Webservice brauch man kein NAS. man ruft die Funktionalität direkt auf.
Quasi ein Web Service Tier für NAV.

Hier ein paar Links
http://msdn.microsoft.com/en-us/library/dd339004.aspx
http://msdn.microsoft.com/en-us/library/dd355398.aspx

Google nach msdn nav webservice dann gibts da noch nen haufen mehr links ;-)

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

29. März 2011 10:49

Hallo zusammen,

danke für die Motivation und eure Hilfe!

Mit Webservice habe ich das so im ganzen verstanden nur das NAS noch nicht aber ist ja auch egal, da ich mich für Webservice entschieden habe.

Ich hätte aber noch eine Frage:
Wie müsste die Zwischentabelle aussehen? Muss ich da alle Felder nochmal aufstellen (sozusagen eine Kopie der FiBu Buch.-Blatt-Tabelle) oder muss ich nur bestimmte Felder in der Zwischentabelle aufbauen?

Danke im Voraus!

Gruß
Ahmed

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

29. März 2011 16:27

Wie müsste die Zwischentabelle aussehen? Muss ich da alle Felder nochmal aufstellen (sozusagen eine Kopie der FiBu Buch.-Blatt-Tabelle) oder muss ich nur bestimmte Felder in der Zwischentabelle aufbauen?


Eine Zwischentabelle brauchst du bei den Webservices nicht. Da hier auch die Business- Logik von NAV greift, ist das nicht nötig. Allerdings solltest du prüfen, ob die Geschwindigkeit der WS für deine Bedürfnisse/Datenmenge ausreicht.

Gruß, Fiddi

Re: Datenaustausch zwischen NAV und anderen ERP-Systemen

29. März 2011 17:09

fiddi hat geschrieben:
Wie müsste die Zwischentabelle aussehen? Muss ich da alle Felder nochmal aufstellen (sozusagen eine Kopie der FiBu Buch.-Blatt-Tabelle) oder muss ich nur bestimmte Felder in der Zwischentabelle aufbauen?


Eine Zwischentabelle brauchst du bei den Webservices nicht. Da hier auch die Business- Logik von NAV greift, ist das nicht nötig. Allerdings solltest du prüfen, ob die Geschwindigkeit der WS für deine Bedürfnisse/Datenmenge ausreicht.

Gruß, Fiddi


Heisst das, ich müsste gar nicht eine Zwischentabelle aufbauen. Ich dachte, die FiBu-Tabelle wäre empfindlich. Hmm...ich hatte mir das so gedacht wie im bild zu sehen...

Würde das denn so aussehen, dass ich die daten direkt in die FiBu-Tabelle übertrage und der Codeunit würde dann die Daten bearbeiten oder wie...???