Foros de discusión Foro en Español de Magic eDeveloper - ProaSistemas.com
Magic en español, eDeveloper, iBOLT, UniPaaS, Magic Software
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   LoginLogin 

Web Services en Magic 9.4

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Web
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mauricio Valcarcel
Magic Jr.


Registrado: 07 Jun 2007
Mensajes: 7
Ubicación: Peru

MensajePublicado: Jue Oct 11, 2007 11:22 am    Asunto: Web Services en Magic 9.4 Responder citando

Estoy hace ya tiempo tratando de implementar una llamada a un Web service y no encuentro la forma de hacerlo.
Tengo el siguiente servicio que ya lo he probado desde otras plataformas y funciona correctamente:
http://samples.gotdotnet.com/quickstart/aspplus/samples/services/mathservice/vb/mathservice.asmx?wsdl
Si alguien pudiera hacer un programa que llame a este Web service y devuelva la suma de dos números y me lo envia exportado me ayudaría mucho.
Yo estoy utilizando Magic 9.4 SP7d

Gracias por anticipado.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
iram79
Magic


Registrado: 01 Mar 2007
Mensajes: 67
Ubicación: México, D.F.

MensajePublicado: Vie Oct 12, 2007 12:05 pm    Asunto: Responder citando

Mauricio:

Existe un viejo proverbio chino que dice:

"Regala un pescado a un hombre y le darás alimento para un día, enseñale a pescar y lo alimentarás para el resto de su vida"

Así que creo mucho más conveniente explicarte como hacer este programa, que solo hacerte el programa exportado... Además, alguien puede encontrarse con este Tópico, y de algo le pudiera ayudar... asi que aqui vamos...

El Web Service al que te estás enfrentando, es de tipo Document. Los WS tipo RPC son mucho más fáciles de utilizar, puesto que envias los valores a las variables directamente.

Pero en el caso de los WS tipo Document, tienes que enviarles los valores contenidos dentro de un documento XML. En Magic, puedes generar en XML de muy distintas maneras: formas Merge, formas de texto, concatenar cadenas, generar un archivo XML y meterlo a un blob, etc...

Te voy a explicar el caso más sencillo:

1. Tienes un programa online con 3 variables virtuales BLOB, llamadas:
a) XML de Envio
b) XML de Respuesta
c) Código de Error

2. Tienes un Handler a un evento (p.ej. Handler User Action 1)

3. Dentro del Handler, defines un Call Web S

4. Al entrar a las propiedades del Call, se disparará el "WSDL Assistant", donde insertarás el URL de tu WSDL, y al cambiar de campo, verás los métodos de tu Web Service

5. Selecciona el método "Add" y esto te regresa a la pantalla de "Web Service Parameters"

6. En el campo Return Value, haz un zoom y selecciona el blob 'XML de Respuesta'

7. En el campo Fault, haz un zoom y selecciona el blob 'Código de Error'

8. Presiona el botón OK, y ve a la parte de 'Arg' (Arguments)

9. Dentro de los argumentos, define el blob 'XML de Envio'

10. Genera la forma, definiendo los blobs como campos RTF edit.

11. No olvides un botón que dispare el User Action 1

Y ya está listo para correr...

Una vez en ejecución, digamos que quieres sumar
A=5.5
B=8.2

En el blob XML de Envio, insertas el siguiente código XML:

Código:
<?xml version="1.0"?>
<tns:Add xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://tempuri.org/">
         <tns:A>5.5</tns:A>
         <tns:B>8.2</tns:B>
</tns:Add>


Este código se puede obtener a partir de los XSD que te obtiene el WSDL Assistant de Magic.

Cuando presiones el botón para llamar al WS, obtendrás el resultado, tambien contenido en un documento XML. por ejemplo:

Código:
<AddResponse xmlns="http://tempuri.org/"    xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <AddResult>13.7</AddResult>
</AddResponse>


Para extraer el resultado de dicho XML, puedes usar la función XMLGet.

No es muy complicado hacer esto... solo hay que saber como funcionan las cosas y no depender tanto de los asistentes...

Saludos...
_________________
Ing. Ivan Eli Ramirez Herrera
Consultor de Software
ROCA Sistemas SA de CV
-----------------------------------------
Siempre existe más de una manera de hacer las cosas.
La genialidad proviene de escoger la que mejor convenga...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
alexmtz213
Magic


Registrado: 01 Mar 2007
Mensajes: 85
Ubicación: Monterrey, NL. Mexico

MensajePublicado: Vie Oct 12, 2007 12:38 pm    Asunto: Responder citando

Excelente respuesta iram79. Gracias por el aporte.

Saludos!!!!

Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión -> Web Todas las horas son GMT - 6 Horas
Página 1 de 1

 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro


Powered by phpBB © 2001, 2005 phpBB Group