Uma variável de tipo Clientes se carregaria de uma forma similar ao Cliente,
mas é necessário utilizar o comado new, já que os SDT por defaut se designam por
referência. Com o seguinte código poderíamos carregar a lista de clientes.
For Each
&Cliente = new Clientes.Cliente ()
&Cliente.Nome = Clinom
&Cliente.Identidade = CliDoc
&Cliente.Nacionalidade= &Nacionalidade
&CLiente.Endereço.Empresa = Clidir
&Cliente.Telefones.Add(CliTel)
&Clientes.add(&Cliente)
Endfor
Pecorrer uma coleção
Depois de carregada a estrutura de clientes é possível percorrê-la
com o comando For IN Array, com as seguintes linhas de código:
For &Cliente in Clientes
&Clinom = &cliente.Nome
...
EndFor
Fornecer/consumir serviços
Agora podemos fornecer/consumir em um Webservice a lista de clientes. Da
mesma forma que no caso dos dados do cliente, para fornecer simplesmente deve-se
definir um procedimento com call protocol SOAP e retornar por parâmetro uma
variável de tipo Clientes.
Para consumir utilizar o WSDL inspetor.
Muitos dos webservices disponíveis fornecem dados estruturados, por exemplo:
http://www.swanandmokashi.com/HomePage/WebServices/Horoscope.asmx?WSDL fornece,
diariamente, a lista dos signos do horóscopo com seu respectivo previsão.
Para programar dita interfase no seu portal, deveria:
1) Incluir a definição do webservices desde desenho
2) Definir num objeto Web Panel duas variáveis, "array" e "item", com os
novos tipos de dados e uma variável, "ws" com o serviço:
3) Codificar a carga de um subfile percorrendo o array resultante da
invocação:
Event Load
&array = &ws.GetHoroscope()
For &item in &array
&SodiacSign = &item.ZodiacSign
&ForeDailiy = &item.DailyForecast
load
endfor
EndEvent // Enter