4D v16.3WEB SERVICE CALL |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
WEB SERVICE CALL
WEB SERVICE CALL
El comando WEB SERVICE CALL se utiliza para llamar un servicio web enviando una petición HTTP. Esta petición contiene el mensaje SOAP creado previamente utilizando el comando WEB SERVICE SET PARAMETER. Toda llamada posterior al comando WEB SERVICE SET PARAMETER provocará la creación de una nueva petición. La ejecución de un comando WEB SERVICE CALL también borra todo resultado del servicio web llamado anteriormente y lo reemplaza con los nuevos resultados. En urlAcceso, pase el URL completo que permite acceder al servicio web (no confunda este URL con el del archivo WSDL, que describe el servicio web).
Si quiere utilizar un servicio web en modo seguro utilizando SSL, pase https:// delante del URL en lugar de http://. Esta configuración activa automáticamente la conexión en modo seguro. Note que este comando puede utilizar un certificado servidor (ver el comando HTTP SET CERTIFICATES FOLDER). Si este certificado no es valido (vencido o revocado), la variable sistema OK toma el valor y se devuelve el error 901 "Certificado servidor invalido". Puede interceptar este error utilizando un método de gestión de errores instalado por el comando ON ERR CALL. En soapAccion, pase el contenido del campo SOAPAction de la petición. Este campo contiene por lo general el valor “ServiceName#MethodName”. En nomMetodo, pase el nombre del método remoto (que pertenece al servicio web) que quiere ejecutar. En espacioNombre, pase el espacio del nombre XML (namespace) utilizado para la petición SOAP. Para mayor información sobre los nombres de espacios XML, consulte el Manual de Diseño. El parámetro opcional tipoCompuesto especifica la configuración de los parámetros web Service enviados o recibidos (definidos utilizando los comandos WEB SERVICE SET PARAMETER y WEB SERVICE GET RESULT. En tipoCompuesto, debe pasar una de las siguientes constantes, ubicadas en el tema Servicios Web (Cliente):
Nota: recuerde que la característica “entrada” o “salida” de los parámetros se evalúa desde el punto de vista del método proxy/servicio web:
La siguiente tabla muestra todas las configuraciones posibles como también las constantes correspondientes:
Las cinco configuraciones descritas a continuación pueden implementarse. En todos los caso, 4D administrará el formato de la petición SOAP a enviar al servicio web como también su sobre. Es su decisión darle formato a los contenidos de esta petición de acuerdo a la configuración utilizada. Nota: a pesar del hecho de que los tipos XML compuestos, los arrays de datos son tratados por 4D como tipos simples. Esta configuración es la más fácil de utilizar. En este caso, el parámetro tipoCompuesto contiene la constante Web Service Dynamic o se omite. Los parámetros enviados y las respuestas recibidas pueden ser manipulados directamente, sin procesamiento previo. Consulte el ejemplo del comando WEB SERVICE GET RESULT. En este caso, el parámetro tipoComplejo contiene la constante Web Service Manual In. Con esta configuración, debe pasar “manualmente” al servicio Web cada elemento XML fuente bajo la forma de un BLOB, con la ayuda del comando WEB SERVICE SET PARAMETER. Depende de usted formatear el BLOB inicial como un elemento XML válido. Este BLOB debe contener como primer elemento el primer elemento “hijo” del elemento <Body> de la petición final. Ejemplo C_BLOB($1) En este caso, el parámetro tipoCompuesto contiene la constante Web Service Manual Out. Cada parámetro de salida será devuelto por el servicio Web bajo la forma del elemento XML almacenado en un BLOB. Recupera este parámetro utilizando el comando WEB SERVICE GET RESULT. Luego puede analizar el contenido del BLOB recibido utilizando los comandos XML de 4D. C_BLOB($0) En este caso, el parámetro tipoCompuesto contiene la constantes Web Service Manual. Cada parámetro de entrada y de salida debe ser almacenado en la forma de los elementos XML en los BLOBs, como se describió en las dos configuraciones anteriores. C_BLOB($0) Un método proxy de llamada de un servicio web DOC es similar a un método proxy de llamada de un servicio web RPC utilizando los parámetros de entrada y de salida compuestos. La única diferencia entre estas dos configuraciones es el nivel del contenido XML de los parámetros BLOB pasados y recibidos. Desde el punto de vista de 4D, la construcción y el envío de la petición SOAP son idénticos. Ejemplo C_BLOB($0) Nota: en el caso de los servicios web DOC, el valor de las cadenas (“MiXMLEntrada” y “MiXMLSalida”) pasadas como parámetros no es de importancia; incluso es posible pasar cadenas vacías"". De hecho, estos valores no se utilizan en la petición SOAP contenida en el documento XML. Es obligatorio pasar estos parámetros. Para utilizar un servicio web publicado en modo DOC (o en modo RPC con tipos compuestos), es recomendable proceder de esta forma:
El parámetro * puede utilizarse para optimizar llamadas. Cuando se pasa, el comando no cierra la conexión utilizada por el proceso al final de su ejecución. En este caso, la próxima llamada a WEB SERVICE CALL reutilizará la misma conexión si se pasa el parámetro *, etc. Para cerrar la conexión, simplemente ejecute el comando WEB SERVICE CALL sin el parámetro *. Este mecanismo puede utilizarse para acelerar sensiblemente los procesos en caso de llamadas sucesivas a varios servicios web en el mismo servidor, en particular en una configuración WAN (vía Internet, por ejemplo). Note que este mecanismo depende del parámetro “keep-alive” del servidor web. Este parámetro por lo general define un número máximo de peticiones vía la misma conexión, e incluso puede negar peticiones. Si las peticiones WEB SERVICE CALL encadenadas en la misma conexión alcanzan este número máximo, o si las conexiones keep-alive no son permitidas, 4D creará una nueva conexión para cada petición. Si la petición se enruta correctamente y el servicio web la acepta, la variable sistema OK toma el valor 1. De lo contrario, toma el valor 0 y se devuelve un error.
Ver también
|
PROPIEDADES
Producto: 4D HISTORIA
Modificado: 4D v11 SQL ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||