[GELÖST] Datensätze automatisch Updaten via Batch

27. Oktober 2014 15:56

Guten Tag zusammen,

ich habe schon so einiges gegoogelt und nirgendwo einen richtigen Ansatz gefunden. Ich hoffe Ihr könnt mir helfen.
Als erstes meine Problemstellung:
Ich erzeuge durch ein anderes Programm Datensätze für meine Datenbank. Diese werden in eine Datei geschrieben, die ich beeinflussen kann. Dabei kann ich mir das Dateiformat aussuchen, zB. csv-Datei mit allen Einträgen durch ein Komma getrennt oder auch eine sql-Datei in der ich INSERT INTO-Befehle benutze. ( INSERT INTO 'Tabellen-Name'(...) VALUES (...); ) Dies würde ich dann so anpassen, sodass es am besten funktioniert.
Diese Datei wird auf einem lokalem Rechner erzeugt. Nun möchte ich die Datensätze in meine Navision Datenbank bekommen. Am besten durch eine Batch oder so, damit der User nichts mehr machen muss.

Momentane Lösung:
Zur Zeit erstelle ich eine csv-Datei und lese diese durch Microsoft Access über eine odbc-Verbindung ein.
Das funkioniert auch einwandfrei.

Hat jemand evtl sowas in der Richtung schon gemacht und könnte mir ein paar Tipps geben wie ich da vorzugehen habe.

Im Netz habe ich die cmd-Funktion finsql.exe gefunden. Mit dieser kann ich ja direkt mit eine sql-Datei einlesen. Kann ich diese Funktion auch von einem lokalem Rechner benutzen? Also dass ein Windows User von seinem Rechner aus eine Verbindung zum Server aufbaut und dann die finsql.exe ausführt.

Ich bin dankbar für jede Hilfestellung.

MfG

Stanze86
Zuletzt geändert von Stanze86 am 30. Oktober 2014 22:14, insgesamt 1-mal geändert.

Re: Datensätze automatisch Updaten via Batch

27. Oktober 2014 18:39

Herzlich Willkommen im Forum!
Stanze86 hat geschrieben:Im Netz habe ich die cmd-Funktion finsql.exe gefunden.

finsql.exe ist normalerweise dafür da, die Entwicklungsumgebung für NAV 2015 aufzurufen.
Zusätzlich kann man die aber auch mit Parametern aus der cmd-Umgebung starten, das sind die Development Environment Commands. Die sind aber nicht dafür da, Mandantendaten zu im- oder exportieren. Man kann damit u.a. z.B. geänderten Programmcode importieren.
Nun möchte ich die Datensätze in meine Navision Datenbank bekommen.

Wenn man Daten unter Umgehung der Geschäftslogik von außen in die Datenbank injiziert, geht das selten gut, weil diese nicht validiert werden.
Wenn man dagegen Objekte in NAV startet und richtig programmiert, wird die Geschäftslogik berücksichtigt. Das ist zwingend notwendig für die Datenkonsistenz.
Eine Möglichkeit wäre, das über einen XMLport zu erledigen (die sind ab NAV 2013 auch für csv-Dateien zuständig), alternativ geht das auch über andere Objektypen wie "ProcessingOnly"- Reports oder Codeunits.

Re: Datensätze automatisch Updaten via Batch

28. Oktober 2014 20:29

Danke schon mal für die Antwort.

Ich möchte halt ohne viele Klicks die Daten in die Datenbank bekommen oder besser gesagt, ohne Klick.
Wenn ich das über Objekte in NAV mache, kann ich dann zB auf ein festes Verzeichnis zugreifen und kontrollieren, ob da eine CSV-Datei enthalten ist, diese einlesen und danach löschen?
Und kann man diese Prozedur so einstellen, dass sie alle 30 Minuten ausgeführt wird? Also kontrollieren, falls vorhanden importieren, anderenfalls 30 Minuten warten.

Ist den so etwas in der Art denkbar?

Wie gesagt, bin für jeden Vorschlag offen.

MfG

Stanze

Re: Datensätze automatisch Updaten via Batch

29. Oktober 2014 10:59

Die Schlagworte nach denen du suchst sind Codeunit und Projektwarteschlange. Mit dem Datentyp "File" kannst du Dateien einlesen und mit der Projektwarteschlange kannst du dieses Einlesen dann zeitlich steuern.

Re: Datensätze automatisch Updaten via Batch

29. Oktober 2014 11:09

Stanze86 hat geschrieben:Wenn ich das über Objekte in NAV mache, kann ich dann zB auf ein festes Verzeichnis zugreifen und kontrollieren, ob da eine CSV-Datei enthalten ist, diese einlesen und danach löschen?

Das sind ganz normale Dateiperationen, die man alle von C/AL aus machen kann.
http://msdn.microsoft.com/en-us/library ... 70%29.aspx

Für automatisches Verarbeiten gibt es in NAV die Job Queue (Projektwarteschlange) und den NAS (NAV Application Server).
http://msdn.microsoft.com/en-us/library ... 70%29.aspx
http://www.youtube.com/watch?v=R9G55fMq_vQ
http://blogs.msdn.com/b/nav/archive/201 ... -2013.aspx
und in NAV 2015 zusätzlich den Report Scheduler, wenn man Reports nutzen möchte.
http://www.ecanarys.com/blog-entry/repo ... s-nav-2015

Re: Datensätze automatisch Updaten via Batch

29. Oktober 2014 11:11

Vielen Dank für die Antworten!

Ich probiere das gleich mal aus.

MfG

Stanze

Re: Datensätze automatisch Updaten via Batch

30. Oktober 2014 12:35

Hallo,

falls das andere Programm ebenfalls eine Datenbank nutzt, dann ist es mögich über den Verbindungsserver zu erstellen. Über eine View ist es mögich dann auf die Daten zuzugreifen und diese View über die "LinkedObject" Eigenschaft als Tabelle in NAV einbinden. Dies erspart den Weg eine Datei zu erzeugen.

Gruß

Michael

Re: Datensätze automatisch Updaten via Batch

30. Oktober 2014 22:09

Servus,

das andere Programm nutzt leider keine Datenbank, aber trotzdem danke für die Antwort.

Habe das nun mit CodeUnit und Projektwarteschlange hinbekommen.
Vielen Dank nochmals.

MfG
Stanze