|
|
|
|
|
|
|
|
|
|
- Modo de funcionamiento
- Caso especial: Utilización de un servicio web intermedio
DeclareWebserviceContext (Función) Se utiliza para declarar una lista de variables cuyo valor será persistente entre las sucesivas llamadas a un servicio web. Esta función indica las variables que se guardarán y restaurarán durante cada llamada al servicio web. Esto le da la capacidad de gestionar un contexto en el servicio web. DeclareWebserviceContext se tiene en cuenta al ejecutar los servicios web implementados en el WEBDEV Application Server (Webservice en .AWWS). Se recomienda utilizar esta función en el evento "Inicialización" del proyecto (para variables de proyecto) y/o en el código de inicialización de clases o conjuntos de procedimientos. En la mayoría de los casos, esta función debe utilizarse en el proceso en el que se declaran e inicializan las variables. Si el proyecto utiliza sesiones preiniciadas, esta función no debe utilizarse en el evento "Inicialización" del proyecto. Debe utilizarse en el evento "Inicialización en modo de sesión preiniciada". Atención: - Esta función está destinada a los desarrolladores con un buen conocimiento de WINDEV/WEBDEV.
- Por defecto, un servicio web REST no tiene un contexto. Por lo tanto, esta función no puede utilizarse en un servicio web REST.
gnNumProduitEnCours is int = 1
DeclareWebserviceContext(gnNumProduitEnCours)
Sintaxis
<Result> = DeclareWebserviceContext(<Variable name 1> [, <Variable name 2> [... [, <Name of variable N>]]])
<Result>: Boolean - True si se restauraron las variables especificadas,
- False en caso contrario (al llamar al servicio web por primera vez, por ejemplo).
<Variable name 1>: Tipo de variable Nombre de la primera variable que se guardará al final de la visualización. El valor de esta variable se recuperará durante las sucesivas llamadas al servicio web. <Variable name 2>: Tipo de variable Nombre de la segunda variable que se guardará al final de la visualización. El valor de esta variable se recuperará durante las sucesivas llamadas al servicio web. <Name of variable N>: Tipo de variable Nombre de la enésima variable que se guardará al final de la visualización. El valor de esta variable se recuperará durante las sucesivas llamadas al servicio web. Observaciones Modo de funcionamiento - El contexto siempre se guarda en disco y se transmite a través de una cabecera SOAP.
- La función DeclareWebserviceContext utiliza contextos en el disco. Los valores de las variables se restablecen siempre.
- El tamaño total de los valores de las distintas variables no está limitado.
- La función DeclareWebserviceContext puede utilizarse para datos confidenciales (contraseña del usuario, por ejemplo).
- Si se guardan dos variables con el mismo nombre (una en el proyecto y otra en una página, por ejemplo), las dos variables se guardan independientemente.
- La función DeclareWebserviceContext devuelve False si no se restauró una de las variables
- Todas las variables pasadas a DeclareWebserviceContext cuando se llama a un servicio web pueden recuperarse durante la siguiente llamada. Las variables pasadas anteriormente se vuelven a guardar automáticamente.
- Se admiten variables de tipos simples (int, string, etc.), así como variables de tipo Structure, Class, Array o Associative array.
- Los arrays fijos, los miembros globales de clase, los arrays asociativos de estructuras locales y los tipos avanzados de WLanguage (por ejemplo, las variables de Connexion) no son compatibles.
Caso especial: Utilización de un servicio web intermedio En algunos casos, es posible que tenga que utilizar un servicio web intermedio para utilizar las variables. Estudiemos el siguiente caso: - Un servicio web "WS1" utiliza la función DeclareWebserviceContext para una variable global "globalString". Este servicio web contiene 2 funciones:
- "Write(param)" que asigna "param" en "globalString"
- "Read()" que devuelve el contenido de "globalString".
- Un ejecutable cliente, que consume WS1, llama a "WS1.Write("Hola")", luego "WS1.Read()" recupera la cadena enviada.
- Un servicio web intermedio "WS2", que consume WS1, contiene 2 funciones:
- "Write(param)" que llama a "WS1.Write()".
- "Read()" que llama a "WS1.Read()".
- Un ejecutable cliente, consumiendo WS2, llama a "WS2.Write("Hola")", entonces "WS2.Read()" NO recupera la cadena enviada.
Solución: En el servicio web WS2, utilice una función "WriteRead()" que ejecute "WS1.Write()" y "WS1.Read()" en el mismo proceso. Componente: wd310awws.dll
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|