INSTITUCIONAL
COMUNIDADE
BLOG
AJUDA
MINHA CONTA
EN PT ES

Imagen6368P

De GeneXus 8.0 RC: Tipos de dados estruturados (III)

Nesta edição comentaremos a definição de estruturados mais complexos (coleções), suas propriedades e novos casos de uso de Webservices

Coleções

Se bem já definimos uma lista de telefones do cliente, uma coleção de um tipo simples (numérico), se poderia definir um novo SDT, ou o mesmo, como uma lista de clientes.

Neste caso são criados dois tipos de dados, um Clientes e outro Clientes.Cliente.

Carregar uma coleção

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

 

Relacionado
De GeneXus 8.0 RC: Tipos de dados estruturados (SDT)
De GeneXus 8.0 RC: Tipos de dados estruturados (II)
Seleção em grades web
Novos parceiros acadêmicos no Brasil!