[Gelöst]XML-Import wenn der Name unbekannt ist

28. Juni 2010 15:43

Hallo,

unser Kunde bekommt Aufträge in XML-format übermittelt. Durch das Starten einer Codeunit kann man diese manuell auswählen, danach werden sie mit hilfe eines XMLport in das System eingelesen.

Nun soll das Ganz automatisch ablaufen. Also...NAS Sheduler startet eine Codeunit, die die erste XML-Datei aus einem vorgegeben PFad nehmen soll und in das System einlesen soll. Nur weis ich nicht wie man einen Dateiname definieren kann wenn man nicht weis wie sie heißt. Gibt es eine möglichkeit NAV zusagen nimm die Erste Datei im Verzeichnis C:\... und lies die ein?

Gruß
T000bi
Zuletzt geändert von t000bi am 28. Juni 2010 17:04, insgesamt 2-mal geändert.

Re: XML-Import wenn der Namen unbekannt ist

28. Juni 2010 16:05

Wie wäre es mit:
Code:
File.SETRANGE(Path, 'C:\woauchimmer\'); // File ist ein Record von der "Tabelle" File
File.SETRANGE(Name, '*.xml');
File.SETRANGE("Is a file", TRUE);
IF File.FINDSET(false, false) then
  REPEAT
    // Hier kommt die Import-Logik rein
    // vermutlich createinstream
    // und xmlport.import
  UNTIL File.NEXT = 0;


So und schon wird jedes XML-file in dem Verzeichnis eingelesen.

Gruß,
Sebastian

[EDIT: "Is a file" sollte auch gegeben sein, ansonsten könnte ein Unterverzeichnis, welches mit ".xml" endet Probleme bereiten]

Re: XML-Import wenn der Namen unbekannt ist

28. Juni 2010 16:35

Danke für die schnelle Antwort.

Habe den Code so übernommen. Aber leider geht er bei mir nicht in die Repeat-Until schleife, weil er kein Eintrag findet. aber ich kann auch nix in die Tabelle "File" reinschreiben weil sie schreibgeschützt ist.

Muss ich noch was beachten?

T000bi

Re: XML-Import wenn der Namen unbekannt ist

28. Juni 2010 16:41

Anstelle von "File" musst du eine Variable erstellen (MyFile oder so, record vom SubType File - die kann dann nicht "File" heissen, da File ein Datentyp ist) und in der zweiten Zeile muss ein SetFilter anstelle des SetRange, denke ich.
Zuletzt geändert von McClane am 28. Juni 2010 17:06, insgesamt 1-mal geändert.

Re: XML-Import wenn der Namen unbekannt ist

28. Juni 2010 16:52

Hi,

In die Tabelle vom Typ "File" wirst du nichts reinscheiben können, diese ist nur eine Sicht auf die Dateien im Verzeichnis.
Finden wird er nur etwas, wenn ein Filter (mit setfilter glaub ich auch) gesetzt ist, ansonsten weiß "er" nicht wo er suchen soll.

VG,
René

Re: XML-Import wenn der Namen unbekannt ist

28. Juni 2010 17:03

Super, jetzt klappts! Das Setfilter zunehmen anstatt dem Setrange ist die Lösung.

Vielen Dank an alle :D :D

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 08:31

Oh, mein Fehler :oops:

Eine Sache noch: *.xml findet z.B. nicht *.XML (Groß-/Kleinschreibung). Du könntest stattdessen auf '@*.xml' filtern.

P.S. Kann mir einer sagen, seit wann Groß-/Kleinschreibung beim Filtern zu beachten ist? Ich dachte '@' wäre überholt und wird nicht mehr gebraucht.

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 08:45

Sebastian Pfliegel hat geschrieben:Ich dachte '@' wäre überholt und wird nicht mehr gebraucht.

Davon höre ich zum ersten Mal... In welchem Zusammenhang ist denn diese Bemerkung gefallen?

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 08:52

Sebastian Pfliegel hat geschrieben: Kann mir einer sagen, seit wann Groß-/Kleinschreibung beim Filtern zu beachten ist?

Doch schon immer, wenn man auf ein Textfeld filtert?¿ Verwechselst du das grad mit Filter auf ein Code-Feld?

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 10:17

Natalie hat geschrieben:
Sebastian Pfliegel hat geschrieben:Ich dachte '@' wäre überholt und wird nicht mehr gebraucht.

Davon höre ich zum ersten Mal... In welchem Zusammenhang ist denn diese Bemerkung gefallen?


Nirgendwo, aber wenn ich egal ob manuell oder per Code auf ein Textfeld (ja ein Textfeld) filtere, dann ist die Groß-/Kleinschreibung egal. Nur beim Record File ist dies nicht der Fall. Nur dort ist der Case relevant.

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 10:21

Sebastian Pfliegel hat geschrieben:Nirgendwo, aber wenn ich egal ob manuell oder per Code auf ein Textfeld (ja ein Textfeld) filtere, dann ist die Groß-/Kleinschreibung egal. Nur beim Record File ist dies nicht der Fall. Nur dort ist der Case relevant.

Gib mir mal bitte ein Beispiel in der Cronus-DB ... also ich bin z.B. in der Form VK-Übersicht. Als Verk. an Name gibts dort "VisioSound". Filtere ich nach VISIO*, wird nichts gefunden.
Kann es sein, dass du statt Filtern Suchen meinst?

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 10:27

Arbeitest du evtl. auf einem SQL-Server und ist die DB so eingerichtet, dass "Groß-Kleinschreibung beachten" nicht aktiviert ist?

Re: [Gelöst]XML-Import wenn der Name unbekannt ist

29. Juni 2010 10:38

McClane hats getroffen. Tja, und schon ist man wieder schlauer. Vielen Dank!