[gelöst] BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 10:45

Moin zusammen,

ich stehe Mal wieder auf dem Schlauch.
Ich möchte aus dem NAV BC eine XML-Datei erzeugen, in der die Artikelnummer, die Chargennummer und eine ausgeählte Sprache stehen.
Grundsätzlich habe ich das auch hinbekommen. Ich starte den Aufruf aus den Item Ledger Entries, es öffnet sich die Request Page des XMLPorts auf der ich die Sprache auswählen kann und die Datei wird erstellt.
Ich bekomme es aber nicht hin, diese Datei in einem bestimmten Ordner zu erstellen. Sie landet immer im Standard-Download Ordner.
Ich hätte die Datei aber gerne in einem anderen Ordner, damit von dort aus eine weitere automatisiert Verarbeitung stattfinden kann.

Habt ihr einen Tip für mich?

Danke.

Gruß
Alexander
Zuletzt geändert von zannaleer am 24. September 2025 11:48, insgesamt 1-mal geändert.

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 11:13

Hallo,

einfach dem Browser sagen, das er jedes mal fragen soll, wo du die Datei ablegen möchtest. :mrgreen:

Mit dem Server hättest du evtl. noch die Möglichkeit, die Datei in einem Verzeichnis zu speichern auf die der Benutzer Zugriff hat, der den Servicetier ausführt. Das dürfte aber nicht Cloud- Ready sein.

Gruß Fiddi

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 11:20

Hallo fiddi,

ich möchte nicht, dass der User die Möglichkeit hat, den Pfad zu wählen.
Dieser Pfad soll fest hinterlegt sein und die Datei aus diesem Prozess soll dann immer in diesem Pfad abgelgt werden ohne dass User daran etwas ändern können.
Cloud-Ready ist mir aktuell nicht wichtig, da wir unsere NAV BCs OnPrem betreiben.

Gruß
Alexander

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 11:51

Hallo,

das mit dem Cloud-Ready hat nix mit OnPrem zu tun.
Auch eure OnPrem- Lizenz sollte CloudRedy sein. Das könnte sonst Lizenz/Wartungs-technisch sehr teuer werden.

Gruß Fiddi

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 11:59

Hallo fiddi,

okay.
Aber das hilft mir jetzt nicht bei diesem Thema weiter:
ich möchte nicht, dass der User die Möglichkeit hat, den Pfad zu wählen.
Dieser Pfad soll fest hinterlegt sein und die Datei aus diesem Prozess soll dann immer in diesem Pfad abgelgt werden ohne dass User daran etwas ändern können.


Gruß
Alexander

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 12:13

Hallo,

das weiß ich, das du das möchtest. das geht aber nicht direkt.

Du musst dann die Datei auf dem Server speichern (geht aber nicht direkt). Dazu musst du eine Codeunit haben, die den XML-Inhalt als BLOB oder Stream bekommt, und dann auf einem Server- Verzeichnis speichert. (wenn eure Lizenz das zulässt)

Sonst musst du dir einen lokalen Webservice installieren, dem du die Daten schickst, und der speicher die dann auf dem lokalen Rechner.

Gruß Fiddi

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 12:25

Für das Dateihandling gibt es auch fertige Add-ons. Wenn du einen Zahlungsverkehr von Continia nutzt dann hättest du Zugriff auf Continia File Services. Damit sollte sowas möglich sein.

Re: BC 19.3: XMLPort Ändern des Dateipfades

23. September 2025 12:58

Hallo enh,

das haben wir leider nicht im Einsatz.
Du hast mich aber auf eine andere Idee bebracht. Wir nutzen das ProE-SCM von Yaveon, das Daten exportieren und in beliebigen Pfaden ablegen kann.
Das werde ich über einen kleinen Umweg nutzen.

Gruß
Alexander

Re: BC 19.3: XMLPort Ändern des Dateipfades

24. September 2025 11:47

Moin zusammen,

ich habe Mal claude.ai befragt und diese Lösung bekommen, die mein Problem tatsächlich gelöst hat.

Code:
report 50000 "XML Export with Language"
{
    ProcessingOnly = true;
    UseRequestPage = true;
   
    requestpage
    {
        layout
        {
            area(Content)
            {
                group(Options)
                {
                    field(Language; LanguageCode)
                    {
                        ApplicationArea = All;
                        Caption = 'Language';
                        TableRelation = Language;
                    }
                    field(ExportPath; UNCPath)
                    {
                        ApplicationArea = All;
                        Caption = 'Export Path';
                    }
                }
            }
        }
    }
   
    trigger OnInitReport()
    begin
        LanguageCode := GlobalLanguage;
        UNCPath := '\\FileServer\Share\Export\';
    end;
   
    trigger OnPostReport()
    var
        MyXMLPort: XMLport "My XMLPort";
        TempBlob: Codeunit "Temp Blob";
        InStr: InStream;
        OutStr: OutStream;
        UNCFile: File;
        FinalPath: Text;
    begin
        // Setze Sprache
        GlobalLanguage := LanguageCode;
       
        FinalPath := UNCPath + 'Export_' + LanguageCode + '_' + Format(Today, 0, 9) + '.xml';
       
        // Export über TempBlob
        TempBlob.CreateOutStream(OutStr);
        MyXMLPort.SetDestination(OutStr);
        MyXMLPort.Export();
       
        // Schreibe in UNC-Datei
        TempBlob.CreateInStream(InStr);
        UNCFile.Create(FinalPath);
        UNCFile.CreateOutStream(OutStr);
        CopyStream(OutStr, InStr);
        UNCFile.Close();
       
        Message('Export erfolgreich: %1', FinalPath);
    end;
   
    var
        LanguageCode: Code[10];
        UNCPath: Text;
}


Gruß
Alexander

Re: [gelöst] BC 19.3: XMLPort Ändern des Dateipfades

24. September 2025 13:47

Hallo,

wenn man das selber schreibt, und die Funktionalität so benutzen darf (Zugriff auf lokale Ressourcen), dann sieht das ungefähr so aus:

Code:
    local procedure MyProcedure(destpath:Text,LanguageCode:Text)
    var
      outstr:OutStream;
      UNCFile:File;
      xml:XmlPort "Export Contact";
    begin
       UNCFile.Create(dechr(destpath,'>','\')+'\'+ 'Export_' + LanguageCode + '_' + Format(Today, 0, 9) + '.xml');
       UNCFile.CreateOutStream(outstr);
       xml.SetDestination(outstr);
       xml.Export();
       UNCFile.Close();
    end;

Re: [gelöst] BC 19.3: XMLPort Ändern des Dateipfades

24. September 2025 14:48

Es ging mir bei meinem letzten Beitrag auch eher darum zu zeigen, dass claude.ai mittlerweile echt gute Antworten geben kann.

Re: [gelöst] BC 19.3: XMLPort Ändern des Dateipfades

24. September 2025 16:25

Das war mir schon klar.

Ich wollte damit nur Zeigen, das die Antwort optimaler sein könnte, und die KI in einigen (vielen?) Fällen auch ziemlichen Nonsens produziert. (hatte gerade wieder so einen Fall :twisted: )

Gruß Fiddi