AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Funciones de servicios web
  • Modo de funcionamiento
  • Caso especial: Utilización de un servicio web intermedio
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
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.
La gestión de los contextos se realiza en disco. Para obtener más información, consulte Generar un 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.
// -- Evénement "Initialisation" du projet 
gnNumProduitEnCours is int = 1

// On indique que l'on souhaite sauver la valeur de gnNumProduitEnCours
// à chaque appel du Webservice
DeclareWebserviceContext(gnNumProduitEnCours)

// Lors des prochains appels du Webservice :
// - soit la valeur gnNumProduitEnCours n'est pas récupérée 
// et elle est automatiquement réinitialisée avec "1"
// (par exemple, lors du premier appel par un nouveau client)
// - soit la valeur gnNumProduitEnCours est récupérée et utilisée
// (par exemple, lors d'appels successifs par un même client)
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
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 08/10/2025

Señalar un error o enviar una sugerencia | Ayuda local