Navision <-> Navision Connection

23. Januar 2007 09:23

Hallo,

ich würde gerne mal wissen, ob jemand eine Idee hat wie man am geschicktesten und perfomantesten von einer Navision(native)DB auf eine andere Navision(Native oder auc SQL)DB zugreifen und Abfragen/Änderungen machen zu können.

Ich dachte dabei an ODBC oder MQSeries. Aber vielleicht gibts ja auch noch eine bessere Lösung/Automation.

Danke und Gruß
Daniel

23. Januar 2007 09:53

Folgende Optionen, um direkte Abfragen auszuführen, stehen zur Verfügung:

Nativ <-> Nativ
- N/ODBC (mäßige Performance)
- C/FRONT (mäßige/bessere Performance)

Nativ <-> SQL
- N/ODBC (mäßige Performance)
- C/FRONT (mäßige/bessere Performance)
- MS ADO (gute Performance)
- Linked Tables (bessere/gute Performance)

SQL <-> SQL
- N/ODBC (mäßige Performance)
- C/FRONT (mäßige/bessere Performance)
- MS ADO (gute Performance)
- Linked Tables (gute Performance)
- Linked Server (gute Performance)

(Wie sich die Performance tatsächlich verhält ist natürlich abhängig von den Abfragen und den Resultsets)

Prinzipiell ist auch möglich, auch mittelbar Abfragen an einen entfernten Server zu richten; z.B. via Navision Application Server unter Nutzung von Sockets, Named Pipes oder Message Queue: hier könnte man ein Abfrage - oder was auch immer - z.B. per XML senden wonach der Empfänger veranlasst wird bestimmte Funktionen auszuführen ...

6. Februar 2007 11:16

Hallo,

sorry für die späte Antwort und Danke für die Zusammenstellung.

Ein Frage hätte ich dazu noch :

Was kann ich genau unter den "Linked Tables" und "Linked Server" verstehen bzw. wie ist dort ide Funktionsweise ?

Danke und Gruß
Daniel

6. Februar 2007 11:49

Hi!

Nun, "Linked Tables" ist ein NAV Feature. Es z.B. möglich, auf SQL Server Seite einen View zu erstellen, und diesen dann in NAV wie "normale" Tabellen zu nutzen. Dazu muss in NAV die Tabelle mit den selben Bezeichnungen/Datentypen definiert sein wie der View, und die Eigenschaft "LinkedObjekt" muss TRUE sein. I.d.R. sind solche "Linked Tables" auch mandantenübergreifend, also "DataPerCompany" = FALSE.

"Linked Server" (Verbindungsserver) ist ein SQL Server Feature. Hier kann man soz. externe Datenquellen als Server einbinden; dies kann eine Access DB sein, oder eben auch ein native NAV Datenbank (= Datenquelle/Provider). Im Falle von NAV ist hier N/ODBC als Provider zu verwenden. Daten können somit direkt abgefragt oder modifiziert werden.

--- Edit ---

D.h. meine Aufzäählung müsste ergänzt werden:

SQL <-> Nativ
- N/ODBC (mäßige Performance)
- C/FRONT (mäßige/bessere Performance)
- Linked Server (bessere/gute Performance)