NAS zum einlesen von XML-Dateien verwenden

23. September 2006 16:25

Hallo!

Ich möchte gerne mittels dem NAS XML-Dateien einlesen.
Die XML-Dateien werden in unregelmäßigen Abständen, in einem bestimmten Ordner, abgelegt. Der NAS müsste erkennen, wenn eine neue Datei vorliegt und diese anschließend einlesen.

Ist das überhaupt machbar? Wenn ja, wie muss ich vorgehen?

Den NAS habe ich schon als Dienst eingerichtet.

Viele Grüße
RvdLohe

25. September 2006 17:23

Hi,
je nach Komfort und sonstigen Moeglichkeiten waere das mehr oder weniger aufwaendig zu realisieren.

Das Grobkonzept koennte so aussehen:

* NAS startet aus CU 1 Function 99 (Name egal) deine neue CU
* Deine CU hat mit einem Timer eine Endlosschleife und schaut nach, ob ein File im entsprechenden Ordner vorhanden ist
* Ist ein File da, wird es eingelesen und in ein XML-DOM Automation Objekt geladen (V4 hat ja auch noch XML-Ports, gibts die auch als Variablentyp? Da wir die Version nicht haben, kenne ich mich hier nicht so aus :oops: )

Fuer die Files musst du dir noch eine Benamung einfallen lassen, damit du aus Navision darauf zugreifen kannst. Z.B. EDI.1, EDI.2, EDI.3
So koenntest du dann schoen in einer Schleife, die den Dateinamen zusammenstellt, alles auf einmal einlesen.

Gruesse
feri

26. September 2006 15:46

Hallo,

Vielen Dank für die Antwort.

Besteht nicht auch die Möglichkeit, dass der NAS auf einen bestimmten Ordner horcht, ob da eine neue Datei vorhanden ist. Oder muss ich hierzu immer eine Endlosschleife zum Prüfen ob eine neue Datei vorhanden ist programmieren?

Viele Grüße
rvdlohe

26. September 2006 16:04

Ich habe mal einen kleinen Test mit NAS gemacht, bei dem ich einfach in regelmässigen Abständen die Kontakte exportiert habe. Dazu habe ich in einer Codeunit mit Timerfunktion gearbeitet. Die Codeunit muss aus CU1 aufgerufen werden aus dem NAS-Handler und als SingleInstance deklariert sein.

Ich hänge die CU mal an, da kannst du gerne reinschauen. Benutzung der CU aber auf eigenes Risiko.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

27. September 2006 14:28

rvdLohe hat geschrieben:Besteht nicht auch die Möglichkeit, dass der NAS auf einen bestimmten Ordner horcht, ob da eine neue Datei vorhanden ist.


Grundsaetzlich ist der NAS einfach ein Client, der beim Auslieferungszustand noch gar nichts kann. Saemtliche Programmlogik muss vom Anwender entwickelt werden.
Mit Navision Boardmitteln ist das Horchen, so wie du es gerne haettest, nicht moeglich (vermutlich gibts irgendwelche Plugins dafuer, ich kenne jetzt aber keines).

Einen großen Nachteil sehe ich in der selbstprogrammierten Schleife aber auch nicht. Du kannst den Timer ja auf einige Sekunden stellen, somit ist der zeitliche Verlust minimal.

Gruesse
feri

27. September 2006 20:33

Besteht nicht auch die Möglichkeit, dass der NAS auf einen bestimmten Ordner horcht, ob da eine neue Datei vorhanden ist.


Doch die besteht. Mit der virtuellen Tabelle Files.
Dort kann ein Filter auf ein bestimmtes Verzeichnis gesetzt werden und dann z.B. im TimerEven auf vorkommen von Dateien geprüft werden.
ACHTUNG:
Das Öffnen der Tabell Files sollte in einer sep. CodeUnit oder Report "verpackt" werden und dieses Objekt sollte nach jedem Aufruf mit Clear() zerstört werden, da sonst die Tabelle Files nicht neu geladen wird.

Gruss