RE:Web Service Consume SDT
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