RTC: Dateien und Ordner

Bild Häufig gestellte Fragen (Frequently asked questions) zu den Microsoft Dynamics NAV Versionen

RTC: Dateien und Ordner

Beitragvon Natalie » 25. November 2010 14:03

Grundsätzlich empfehlenswert: Zu jedem einzelnen FILE-Befehl die Beschreibung in der Onlinehilfe nachlesen! Stichwort: Differences Between the Classic Client and RoleTailored Client

Zu EXISTS, RENAME, ERASE, COPY
http://blogs.msdn.com/b/nav/archive/2010/09/02/few-tips-for-nav-developers.aspx
[Edit Kowa 22.12.21]: https://cloudblogs.microsoft.com/dynamics365/no-audience/2010/09/02/few-tips-for-nav-developers/

Eine super Zusammenfassung zur Vorgehensweise gibt es im Hilfeartikel DOWNLOAD Function (File), Abschnitt "Remarks".
Beachtet hierzu auch:
"We recommend that you use the functions in Codeunit 419, 3-Tier Automation Mgt., to upload and download files."


Hilfeartikel File Handling

Dialog unterdrĂĽcken: MagicPath (DOWNLOADFROMSTREAM and UPLOADINTOSTREAM without a dialog box)
[Edit Kowa 22.12.21]MagicPath (DOWNLOADFROMSTREAM and UPLOADINTOSTREAM without a dialog box)

Wie immer: Ergänzungen sehr, sehr gern gesehen!
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon Natalie » 2. Dezember 2010 16:05

Verschoben aus: NAV Tipps & Tricks
In der Theorie habt ihr bestimmt schon längst gehört, dass sich durch den Service-Tier das Dateihandling "verkompliziert".
Aber wie genau funktioniert das, und wo finde ich vielleicht Hinweise im Standard?

Zunächst gibt die Hilfe durchaus nützliche Hinweise:
File Handling

Kurz: Soll z.B. eine Datei fĂĽr den RTC erzeugt werden, so muss diese erst auf der Serviceschicht erzeugt und dananach vom RTC heruntergeladen werden (wobei sie auf der Serviceschicht wieder entfernt werden muss).

Aber jetzt ein bisschen konkreter:

Eine bestehende Datei ergänzen (und danach öffnen)
Haltet euch am besten an den Standardreport 7132 Export Item Budget to Excel mit der Option "Arbeitsmappe aktualisieren".
Hangelt euch am besten von diesem Abschnitt in Integer - OnAfterGetRecord bis zu den aufgerufenen Funktionen herunter:
Code: Alles auswählen
  IF ISSERVICETIER THEN
    IF UploadedFileName = '' THEN
      UploadFile
    ELSE
      FileName := UploadedFileName;


Eine Exceldatei erstellen, ohne sie zu speichern
Auch hier Standardreport 7132, Option "Arbeitsmappe erstellen" -> keine gesonderte Programmierung erforderlich. :-)

Eine Worddatei erstellen oder ergänzen
Siehe Codeunit 5054, ExecuteMerge.
Code: Alles auswählen
  MergeFile.WRITEMODE := TRUE;
  MergeFile.TEXTMODE := TRUE;
  MergeFileName := RBAutoMgt.ServerTempFileName(Text029,'.HTM');
  MergeFile.CREATE(MergeFileName);
  ...
  MergeFile.WRITE('</html>');
  MergeFile.CLOSE;
  MergeFileName := RBAutoMgt.DownloadTempFile(MergeFileName);
  wrdDoc := wrdApp.Documents.Open(MainFileName);
  ...

RBAutoMgt ist die Codeunit 419.

Datenexport (txt, csv) mit einem Report statt Dataport
Diese Aufgabe hat mich dazu bewegt, dieses Thema zu schreiben.
Meine Lösung (gekürzt):

Auf der Request Form das Dialogfeld fĂĽr den Dateinamen (Variable FileName) nur einblenden, wenn Classic Client.
Denn: Den Pfad schon auf der Reqeuest Form auswählen zu lassen, macht keinen Sinn, weil der spätere Download nicht ohne Dialog ausgeführt werden kann -> der Benutzer müsste den Zielort dann ein zweites Mal bestätigen.
Wollen wir aber nicht, gibts auch nicht :-)

Dort im Trigger OnAssistEdit:
Code: Alles auswählen
IF NOT ISSERVICETIER THEN BEGIN
  FileName := CommonDialogMgt.OpenFile(Text002,FileName,4,Text005,1);
END;


Datei erzeugen:
Code: Alles auswählen
CSVFile.WRITEMODE := TRUE;
CSVFile.TEXTMODE := TRUE;
IF ISSERVICETIER THEN BEGIN
  CSVFile.CREATETEMPFILE();
END ELSE BEGIN
  CSVFile.CREATE(FileName);
END;


Datei fĂĽllen (wie gehabt):
Code: Alles auswählen
CSVFile.WRITE(...);


Datei ggf. von der Serviceschicht zum Client transferieren:
Code: Alles auswählen
IF ISSERVICETIER THEN BEGIN
  CSVFile.CREATEINSTREAM(NewStream);
  IF DOWNLOADFROMSTREAM(
                NewStream,
                Text007,
                '',
                'csv File *.csv| *.csv',
                FileName) THEN;
END;
CSVFile.CLOSE();

Die Hilfe hat mir veraten, dass in der Serviceschicht mit
Code: Alles auswählen
File.CREATETEMPFILE();
...
File.CLOSE;

die Datei durch CLOSE automatisch entfernt wird.

Bei DOWNLOADFROMSTREAM erhält der Benutzer den Eingabedialog, in welchem er den Client-Ablageort für die Datei bestimmt.
Wenn der Dialog unterdrĂĽckt werden soll: MagicPath (DOWNLOADFROMSTREAM and UPLOADINTOSTREAM without a dialog box)

---
Wenn ihr diesbezüglich schon viel weiter seid und merkt, dass ich es mir viel zu umständlich gemacht habe, dann lasst es mich bitte wissen :-)
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 22. September 2011 09:24

Hallo Natalie,
Ich habe versucht nach deinen Vorgaben hier einen Report fĂĽr die Erzeugung einer TXT-Datei zu erstellen.

Obowhl ich den Code hier übernommen habe erhalte ich am Schluss der Verarbeitung keinen Dialog für das Speichern der Datei. Es geschieht einfach nichts, der Report läuft durch und fertig.

Hast du ev. eine Idee, woran das liegen kann?
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: RTC: Dateien und Ordner

Beitragvon Natalie » 22. September 2011 09:56

Ist es ein CC-Report (also auch, wenn ein Report ohne Layout im RTC ausgefĂĽhrt wird) oder RTC-Report?
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 22. September 2011 10:16

Der Report läuft 'ProcessingOnly', also gänzlich ohne Layout, wird aber im RTC ausgeführt.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: RTC: Dateien und Ordner

Beitragvon Natalie » 22. September 2011 11:01

rotsch hat geschrieben:Der Report läuft 'ProcessingOnly', also gänzlich ohne Layout, wird aber im RTC ausgeführt.

Lass dir mal ĂĽber eine MESSAGE ausgehen, ob ISSERVICETIER wahr oder falsch ist. Erst dann wissen wir doch, welcher Teil des Codes nicht so funktioniert, wie er soll.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 22. September 2011 11:17

Das habe ich gemacht.

Die Funktion IF DOWNLOADFROMSTREAM... ganz am Schluss liefert FALSE zurĂĽck. Da bin ich bereits innerhalb ISSERVICETIER.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: RTC: Dateien und Ordner

Beitragvon Natalie » 22. September 2011 11:44

Dann lass doch das IF weg, denn bekommst du eine Fehlermeldung, die dir hoffentlichen den Grund nennt. Wahrscheinlich eine fehlende Berechtigung auf ein Verzeichnis.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 22. September 2011 13:05

Die Meldung lautet 'Der angegeben Pfad ist ungĂĽltig'

Aber genau den will ich ja im nicht erscheinenden Dialog angeben können.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: RTC: Dateien und Ordner

Beitragvon Natalie » 22. September 2011 13:29

Oops, die Onlinehilfe sagt zu CREATETEMPFILE: "This function is not supported in the RoleTailored client".
War das in frĂĽheren NAV2009 ohne SP etwa anders ...?
Belass es mal oben beim CSVFile.CREATE(FileName);
Den Dialog zur Auswahl von FileName mĂĽsstest du dann noch selbst erzeugen.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 23. September 2011 09:31

Alles klar, besten Dank. So hats geklappt :-)
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: RTC: Dateien und Ordner

Beitragvon rotsch » 9. November 2011 14:06

Ich habe in diesem Zusammenhang noch ein Problem, dem ich nicht auf die Spur komme.

Der Report mit der Erstellung des Files funktioniert tadellos. Wenn nun aber ein Anwender den Report ausführt kann er den kompletten Vorgang ausführen bis zum Speichern der Datei. Dort erscheint dann die Fehlermeldung 'Der Pfad ist ungültig'. Wenn ich das direkt auf dem Server ausführe, funktioniert auch das. Und wenn der Anwnder die Datei in ein lokales Verzeichnis seines PC's speichert, welches auch auf dem Server existiert, kann er die Datei ebenfalls problemlos speichern. Einzig beim Versuch, die Datei z.B. auf dem eigenen Desktop abzulegen, bringt die erwähnte Fehlermeldung.

Hat jemand eine Idee, wie ich das lösen könnte?

[Nachtrag]
Da dieses Problem nach wie vor besteht möchte ich den Task nochmals anstossen mit der Frage:
Müssen Verzeichnisse wirklich auf dem Server, in welche Dateien gespeichert werden sollen auch lokal auf den einzelnen PC's angelegt werden, damît das klappt? Einen anderen Weg habe ich bis jetzt noch nicht gefunden, denke aber, das dies ja nicht die Lösung sein kann, oder?
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Dialog zum Auswählen eines Ordners öffnen

Beitragvon Natalie » 24. Juli 2012 16:13

Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: RTC: Dateien und Ordner

Beitragvon Kowa » 26. Mai 2017 09:48

GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01


ZurĂĽck zu NAV FAQ

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast