Übung – Einen eine XMLport erstellen, um XML-Daten zu exportieren

Abgeschlossen

Szenario

Sie sind ein Entwickler und arbeiten für CRONUS International Ltd. Sie möchten einen XMLport erstellen, um alle Debitoreninformationen von der Seite Customer List im XML-Format exportieren.

Aufgaben

  • Erstellen Sie eine neue Erweiterung.

  • Erstellen Sie einen XMLport.

  • Erstellen Sie eine Seitenerweiterung.

  • Exportieren Sie Daten mithilfe eines Streams.

Schritte

  1. Starten Sie Visual Studio Code.

  2. Wählen Sie Ansicht > Erweiterungen (STRG+UMSCHALT+X) aus.

  3. Geben Sie AL Language in das Suchfeld Nach Extensions in Marketplace suchen ein.

  4. Wählen Sie dann die grüne Schaltfläche Installieren aus.

  5. Erstellen Sie ein neues AL-Erweiterungsprojekt. Wählen Sie Anzeigen > Befehlspalette ... (STRG+UMSCHALT+P) aus.

  6. Geben Sie AL: Go! in das Suchfeld ein, und wählen Sie den Befehl aus der Liste aus.

  7. Akzeptieren Sie den vorgeschlagenen Pfad (oder geben Sie einen anderen Pfad ein).

  8. Wählen Sie die aktuelle Zielplattform aus.

  9. Wählen Sie als Entwicklungsendpunkt Microsoft-Cloud-Sandbox aus.

  10. Laden Sie die Anwendungssymbole herunter. Wählen Sie Anzeigen > Befehlspalette ... (STRG+UMSCHALT+P) aus.

  11. Geben Sie AL: Symbole herunterladen in das Suchfeld ein, und wählen Sie den Befehl aus der Liste aus.

  12. Geben Sie auf Anfrage Ihre organisatorischen Anmeldeinformationen an (Microsoft 365-Konto oder Microsoft Entra ID-Konto).

  13. Öffnen Sie die Datei app.json, und ändern Sie die Einstellung Name in Customer XML. Ändern Sie den Herausgeber in Cronus International Ltd.

  14. Entfernen Sie die Datei „HelloWorld.al“.

  15. Erstellen Sie eine neue Datei mit dem Namen: CustomerXml.XmlPort.al.

  16. Geben Sie txmlport ein, und drücken Sie dann die TAB-Taste.

  17. Ändern Sie die ID in 50103 und Name in Customer XML.

  18. Stellen Sie die Caption auf Export Customers(s) to XML ein.

  19. Legen Sie die XMLport-Eigenschaft Direction auf Export die Eigenschaft Format auf XML fest.

  20. Ändern Sie das Textelement des Ausschnitts in Customers.

  21. Erstellen Sie unter Customers ein TableElement. Ändern Sie den Namen zu Customer, und stellen Sie den SourceTableName auf Customer ein.

  22. Fügen Sie ein FieldAttribute für die Felder Nummer und Sprachcode hinzu.

  23. Erstellen Sie ein FieldElement für die Felder Name und Telefon-Nr..

  24. Erstellen Sie ein TextElement für das Feld Adresse. Legen Sie die Eigenschaft XMLName auf Adresse fest.

  25. Erstellen Sie ein FieldElement für die Felder Address, Post Code und City innerhalb des Textelements Address.

  26. Entfernen Sie den Abschnitt RequestPage.

     xmlport 50103 "Customer XML"
     {
         Direction = Export;
         Format = Xml;
         Caption = 'Export Customers(s) to XML';
    
         schema
         {
             textelement(Customers)
             {
                 tableelement(Customer; Customer)
                 {
                     fieldattribute(Number; Customer."No.") { }
                     fieldattribute(Language; Customer."Language Code") { }
                     fieldelement(Name; Customer.Name) { }
                     fieldelement(Phone; Customer."Phone No.") { }
                     textelement(Address)
                     {
                         XmlName = 'Address';
                         fieldelement(StreetAndNr; Customer.Address) { }
                         fieldelement(Zipcode; Customer."Post Code") { }
                         fieldelement(City; Customer.City) { }
                     }
                 }
             }
         }
     }
    
  27. Erstellen Sie eine neue Datei mit dem Namen: CustomerList.PageExt.al.

  28. Geben Sie tpageext ein, und drücken Sie dann die TAB-Taste.

  29. Ändern Sie die ID in 50101 und Name in CustomerList.

  30. Ändern Sie das Objekt, um die Seite Customer List zu erweitern.

  31. Fügen Sie im Abschnitt „Aktivitäten“ eine neue Aktivität mit dem Namen ExportToXml hinzu. Stellen Sie die Beschriftung auf Nach XML exportieren ein. Diese Aktivität sollte als letzte Aktivität in der Gruppe &Debitor hinzugefügt werden.

  32. Erstellen Sie im Trigger OnAction eine Variable mit dem Namen CustomerXml vom Typ XMLport-Debitor-XML. Verwenden Sie die Funktion SetDestination zum Einstellen eines OutStream. Rufen Sie die Funktion Export auf der Variable CustomerXml auf.

     pageextension 50101 CustomerList extends "Customer List"
     {
         layout
         {
             // Add changes to page layout here
         }
    
         actions
         {
             // Add changes to page actions here
    
             addafter("&Customer")
             {
                 action(ExportToXml)
                 {
                     Caption = 'Export to XML';
                     ToolTip = 'Export to XML';
                     ApplicationArea = All;
                     Image = XMLFile;
    
                     trigger OnAction()
                     var
                         TempBlob: Codeunit "Temp Blob";
                         CustomerXml: XmlPort "Customer XML";
                         OutStr: OutStream;
                         InStr: InStream;
                         FileName: Text;
                     begin
                         TempBlob.CreateOutStream(OutStr);
                         CustomerXml.SetDestination(OutStr);
                         CustomerXml.Export();
                         TempBlob.CreateInStream(InStr);
                         FileName := 'Customers.xml';
                         File.DownloadFromStream(InStr, 'Download', '', '', FileName);
                     end;
                 }
             }
         }
    
         var
             myInt: Integer;
     }
    
  33. Öffnen Sie die Datei launch.json, und ändern Sie die startupObjectId in 22, das ist die Customer List.

  34. Veröffentlichen Sie Ihre Erweiterung in der Sandbox. Wählen Sie Anzeigen > Befehlspalette ... (STRG+UMSCHALT+P) aus.

  35. Geben Sie AL: Publish in das Suchfeld ein (oder drücken Sie die F5-Taste), und wählen Sie den Befehl aus der Liste aus.

  36. Wählen Sie die Aktivität Nach XML exportieren im Menü aus, wenn Sie die XMLport-Funktionalität testen möchten.