GeneXus - Web Service Consume SDT

   
Vista:

Web Service Consume SDT

Publicado por Alejandro (28 intervenciones) el 20/11/2007 15:53:07
Buenos Dias Foro,

Nesecito realizar una aplicacion que consuma un webservice en el cual se van a pasar como parametros, tipos de datos SDT's alguien me podria dar algun ejemplo de como enviar datos sdts y como consumirlos cualquier ayuda en bienvenida.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Web Service Consume SDT

Publicado por Javac (10 intervenciones) el 21/11/2007 00:13:35
Hola Alejandro.

A continuación trato de presentarte un ejemplo, es muy simple pero puede darte una idea. El ejemplo se trata de guardar los datos existentes en una tabla de productos en un SDT, publicarlo como webservice y pasar ese SDT a un procedimiento que consume el servicio para guardar los datos en otra base da datos que el objeto consumidor se conecta (No se me ocurrió nada mejor :P )

Lo primero sería definir un SDT llamado ProductoLista(Asumimos que ya existe una Transacción de productos) con la siguiente estructura:

ProductoId
ProductoNombre
ProductoPrecio

y definir el SDT como collection = TRUE, cada Item será ProductoItem

Entonces en un procedimiento main con Call Protocol = SOAP (el cual será nuestro webservice a fin de cuentas) escribimos el siguiente código:

for each
&ProductoItem = new ProductoLista.ProductoItem()
&ProductoItem.ProductoId = ProductoId
&ProductoItem.ProductoNombre = ProductoNombre
&ProductoItem.ProductoPrecio = ProductoPrecio

&ProductoLista.Add(&ProductoItem)
endfor

en donde
&ProductoItem es del tipo ProductoLista.ProductoItem
&ProductoLista es del tipo ProductoLista

En las reglas pones lo siguiente:

parm(&ProductoLista);

Eso sería para generar el WS. Para consumirlo, después de ejecutar el WSDL Inspector y que éste cree los tipos datos y estructuras necesarias, lo que debes hacer es lo siguiente:

En un procedimiento

&WS.Execute(&ProductoLista)

For &ProductoItem in &ProductoLista
new
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Web Service Consume SDT

Publicado por Javac (10 intervenciones) el 21/11/2007 00:17:28
Sorry se me fué sin terminar :(

For &ProductoItem in &ProductoLista
new
ProductoId = &ProductoItem.ProductoId
ProductoNombre = &ProductoItem.ProductoNombre
ProductoPrecio = &ProductoItem.ProductoPrecio
endnew
endfor

donde

&WS es del tipo que te consolida el WebService
&ProductoItem es del tipo ProductoLista_ ProductoItem
&ProductoLista es del tipo ProductoLista

Espero te sirva al menos para darte una idea un poco mas clara ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Web Service Consume SDT

Publicado por Alejandro (28 intervenciones) el 21/11/2007 21:18:24
Muchas Gracias,

Me sirvio bastante tu ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Web Service Consume SDT

Publicado por Angel Coto (1 intervención) el 04/12/2007 18:00:13
Hola, ya que vi este thread quiero hacerles una consulta

Como puedo consumir un Web Service que devuelve una coleccion de SDTs??

seria capaz de meterlos en un grid?

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar