Exercício – Criar um XMLport para exportar dados XML
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
Inicie o Visual Studio Code.
Selecione Exibir > Extensões (Ctrl + Shift + X).
Insira AL Language na caixa de seleção Pesquisar Extensões no Marketplace.
Selecione o botão verde Instalar.
Crie um novo projeto da Extensão AL. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).
Insira AL: Go! na caixa de pesquisa e selecione o comando na lista.
Aceite o caminho sugerido (ou você pode inserir outro caminho).
Selecione a plataforma de destino mais recente.
Selecione Área restrita da nuvem da Microsoft como o ponto de extremidade de desenvolvimento.
Baixe os símbolos do aplicativo. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).
Insira AL: Download symbols na caixa de pesquisa e selecione o comando na lista.
Se solicitado, forneça suas credenciais organizacionais (conta do Microsoft 365/conta do Microsoft Entra ID).
Abra o arquivo app.json e mude a configuração de name para Customer XML. Altere o publisher para Cronus International Ltd.
Remova o arquivo HelloWorld.al.
Crie um novo arquivo chamado: CustomerXml.XmlPort.al.
Insira txmlport e pressione a tecla Tab.
Altere a ID para 50103 e o name para Customer XML.
Defina Caption como Export Customers(s) to XML
Defina a propriedade do XMLport Direction como Export e a propriedade Format como XML.
Altere o elemento de texto do trecho para Customers.
Em Customers, crie um TableElement. Altere o nome para Customer e defina SourceTableName como Customer.
Adicione um FieldAttribute para os campos Número e Código de idioma.
Crie um FieldElement para os campos Nome e No. de telefone.
Crie um TextElement para o campo de endereço. Defina a propriedade XMLName como Address.
Crie um FieldElement para os campos Address, Post Code e City no elemento de texto Address.
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) { } } } } } }Crie um novo arquivo, chamado CustomerList.PageExt.al.
Insira tpageext e pressione a tecla Tab.
Altere a ID para 50101 e o name para CustomerList.
Altere o objeto para estender a página Customer List.
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.
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; }Abra o arquivo launch.json e altere o startupObjectId para 22, que é Customer List.
Publique sua extensão na área restrita. Selecione Exibir > Paleta de Comandos... (Ctrl+Shift+P).
Insira AL: Publicar na caixa de pesquisa (ou pressione a tecla de atalho F5) e selecione o comando na lista.
Selecione a ação exportar para XML no menu, se desejar testar a funcionalidade XMLport.