.xml-Datei in lokalen- oder Netzwerkorder speichern

17. Juli 2024 13:18

Hallo zusammen,

ich bin Azubi und neu in der AL/Business Central-Welt und habe da mal eine Frage, die mir hier jemand hoffentlich beantworten kann.


Ich habe eine Codeunit erstellt (wichtig, es soll kein XML-Port benutzt werden), in der eine XMl-Datei erstellt wird mit Daten aus der Einkaufsbestellung, dazugehörigen Zeilen und im selben Dokument Verkaufskopf und dazugehörige Zeilen.
Das nur als "Randinformation", da der wichtige Part erst gleich kommt.

Meine XML-Datei wird auf jeden Fall erstellt und sieht genau so aus, wie sie aussehen soll. Problem ist nur, dass mit der Funktion DownloadFromStream(InStr, ' ', 'C:\meinBeispielVerzeichnis', ' ', FileName) es nicht funktioniert, dass die Datei in diesem Verzeichnis gespeichert wird (was in diesem Fall ein lokales Verzeichnis wäre, es funktioniert aber auch nicht mit dem Netzwerkordner). Sondern sie wird eben im Web Client runtergeladen und landet im "Standard"-Downloadordner wie alles, was man aus dem Internet runterlädt.

Gibt es dafür irgendeine Möglichkeit, dafür zu sorgen, dass die XML-Datei in meinem Ordner landet?

(Falls irgendetwas unklar sein sollte oder unklar formuliert ist, dann gerne Verbesserungsvorschläge geben, denn das ist mein 1. Beitrag in solch einem Forum :D)

Vielen Dank im Voraus!


Liebe Grüße
TS

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

17. Juli 2024 13:46

Das Thema hatten wir kürzlich hier:
viewtopic.php?f=87&t=39194

Das Problem ist dass D365BC eine Browser Anwendung ist und als solche keinen Zugriff auf lokale Rechner oder Netzwerk Laufwerke/Pfade hat.

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

17. Juli 2024 13:50

Alles klar, dann bin ich ja schonmal ein Stück schlauer geworden. Vielen Dank!

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

17. Juli 2024 14:33

enh hat geschrieben:Das Thema hatten wir kürzlich hier:
viewtopic.php?f=87&t=39194

Das Problem ist dass D365BC eine Browser Anwendung ist und als solche keinen Zugriff auf lokale Rechner oder Netzwerk Laufwerke/Pfade hat.



Ich hätte diesbezüglich doch noch eine Frage.

Gibt es denn keine anderen Möglichkeit (wie die im anderen Beitrag genannten), die einem das ermöglichen. Also das Ziel ist es, dass man selber händisch mit diesen Dateien nichts macht, sondern diese Dateien irgendwie ins Verzeichnis gelangen, damit ein FTP-Server daraufzugreifen kann, um eben beispielsweise Bestellungen in dieser Art an andere Firmen mit anderen Systemen zu senden. Oder gibt es eine Möglichkeit das direkt an den FTP-Server zu senden?

Oder wie handhabt man das, wenn ich beispielsweise eine Bestellung in Navision habe, diese an eine andere Firma geht, welche aber kein Navision nutzt und eine XML-Datei stattdessen geschickt kriegen soll die sie dann einlesen können?

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

17. Juli 2024 17:10

leider nein bzw. naja doch, sofern deine App nicht target = cloud ist, kannst du weiterhin Dateien auf die Platte schreiben.
aber das kostet richtig Geld pro User, wenn die app nicht target cloud ist und ich bezweifle, dass das jemand nur für die Ablage von Dateien bezahlen möchte.

Wir nutzen daher dafür, ebenfalls wie andere Partner, einen eigenen Webservice, der im Container gehostet, Zugriff auf das gemappte Dateisystem hat.
Via http-Request werden dann Streams ausgetauscht und dann zu einer Datei geschrieben. Oder halt aus einer Datei gelesen, Stream nach Business Central ...etc.

Du kannst auch in AzureBlob speichern, dafür gibt es entsprechende Routinen

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

18. Juli 2024 09:43

Okay, danke für die liebe Antwort!

Nur um ein bisschen mehr Verständnis dafür zu kriegen. Den WebService erstelle ich selbst in BC, richtig? Was genau ist mit "Container" gemeint? Ich habe jetzt auch schon einige Beispiele gesehen und ausprobiert, wo man noch mit C# im Zusammenspiel arbeitet, aber es ist auch rein mit AL-Programmierung möglich, ja? Nur, dass ich mich jetzt nicht auf die falsche Spur führen lasse.
Zuletzt geändert von McClane am 18. Juli 2024 09:44, insgesamt 1-mal geändert.
Grund: Bitte keine Vollzitate

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

18. Juli 2024 10:50

Hallo,

je nach dem, was du machen möchtest (wer der Auslöser ist BC oder der lokale Client) benötigst du dort einen WEB-Service- Zugang.
In deinem Fall das du lokal eine Datei speichern möchtest.
hier findest du ein Beispiel (GitHub).

Beachte dabei, das dieser WEB-Service- Endpunkt aus dem Internet erreichbar sein muss, wenn Ihr in der Cloud arbeitet, und damit ein Sicherheitsproblem für euer lokales Netzwerk darstellen kann.
Daher solltest du das mit eurem IT- Verantwortlichen durchsprechen, der dich auch bei der Einrichtung unterstützen muss.


Gruß Fidd

Re: .xml-Datei in lokalen- oder Netzwerkorder speichern

18. Juli 2024 12:40

Vielen Dank! Ich werde mal mit den gegebenen Tipps mein Bestes versuchen. :D