Exercício – Criar um XMLport para exportar dados XML

Concluído(a)

Cenário

Você é um desenvolvedor que trabalha na CRONUS International Ltd. Você deseja criar uma XMLport para exportar todas as informações de cliente da página Customer List no formato XML.

Tarefas

  • Criar uma nova Extensão.

  • Criar um XMLport.

  • Criar uma extensão de página.

  • Exportar dados usando um fluxo.

Etapas

  1. Inicie o Visual Studio Code.

  2. Selecione Exibir > Extensões (Ctrl + Shift + X).

  3. Insira AL Language na caixa de seleção Pesquisar Extensões no Marketplace.

  4. Selecione o botão verde Instalar.

  5. Crie um novo projeto da Extensão AL. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).

  6. Insira AL: Go! na caixa de pesquisa e selecione o comando na lista.

  7. Aceite o caminho sugerido (ou você pode inserir outro caminho).

  8. Selecione a plataforma de destino mais recente.

  9. Selecione Área restrita da nuvem da Microsoft como o ponto de extremidade de desenvolvimento.

  10. Baixe os símbolos do aplicativo. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).

  11. Insira AL: Download symbols na caixa de pesquisa e selecione o comando na lista.

  12. Se solicitado, forneça suas credenciais organizacionais (conta do Microsoft 365/conta do Microsoft Entra ID).

  13. Abra o arquivo app.json e mude a configuração de name para Customer XML. Altere o publisher para Cronus International Ltd.

  14. Remova o arquivo HelloWorld.al.

  15. Crie um novo arquivo chamado: CustomerXml.XmlPort.al.

  16. Insira txmlport e pressione a tecla Tab.

  17. Altere a ID para 50103 e o name para Customer XML.

  18. Defina Caption como Export Customers(s) to XML

  19. Defina a propriedade do XMLport Direction como Export e a propriedade Format como XML.

  20. Altere o elemento de texto do trecho para Customers.

  21. Em Customers, crie um TableElement. Altere o nome para Customer e defina SourceTableName como Customer.

  22. Adicione um FieldAttribute para os campos Número e Código de idioma.

  23. Crie um FieldElement para os campos Nome e No. de telefone.

  24. Crie um TextElement para o campo de endereço. Defina a propriedade XMLName como Address.

  25. Crie um FieldElement para os campos Address, Post Code e City no elemento de texto Address.

  26. Remova a seção 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. Crie um novo arquivo, chamado CustomerList.PageExt.al.

  28. Insira tpageext e pressione a tecla Tab.

  29. Altere a ID para 50101 e o name para CustomerList.

  30. Altere o objeto para estender a página Customer List.

  31. Na seção Actions, adicione uma nova ação com o nome ExportToXml. Defina a legenda como Exportar para XML. Essa ação deve ser adicionada como a última ação no grupo &Customer.

  32. No gatilho OnAction, crie uma variável chamada CustomerXml do tipo XMLportXML do cliente. Use a função setDestination para definir um OutStream. Chame a função Export na variável CustomerXml.

     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. Abra o arquivo launch.json e altere o startupObjectId para 22, que é Customer List.

  34. Publique sua extensão na área restrita. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).

  35. Insira AL: Publicar na caixa de pesquisa (ou pressione a tecla de atalho F5) e selecione o comando na lista.

  36. Selecione a ação exportar para XML no menu, se desejar testar a funcionalidade XMLport.