|
|
|
|
|
- Fonctionnement
- Cas particulier : Utilisation d'un WebService intermédiaire
DéclareContexteWebservice (Fonction) En anglais : DeclareWebserviceContext Permet de déclarer une liste de variables dont la valeur sera persistante entre les appels successifs à un Webservice. Cette fonction indique quelles variables sauver et restaurer lors de chaque appel au webservice. Il est ainsi possible de gérer un contexte dans le webservice. La fonction DéclareContexteWebservice est prise en compte uniquement lors de l'exécution de Webservices déployés sur le serveur d'application WEBDEV (Webservice en .AWWS). Il est conseillé d'utiliser cette fonction dans l'événement "Initialisation" du projet (pour les variables du projet) et / ou dans le code d'initialisation des collections de procédures ou des classes. En règle générale, il faut utiliser cette fonction dans le traitement où sont déclarées et initialisées les variables. Si votre projet utilise les sessions prélancées, cette fonction ne doit pas être utilisée dans l'événement "Initialisation" du projet. Cette fonction doit être utilisée dans l'événement "Initialisation lors d'une connexion à une session prélancée". Attention : - Cette fonction est destinée aux développeurs maîtrisant WINDEV/WEBDEV.
- Par défintion, un webservice REST est sans contexte. Cette fonction ne peut donc pas être utilisée dans un webservice REST.
gnNumProduitEnCours est un entier = 1
DéclareContexteWebservice(gnNumProduitEnCours)
Syntaxe
<Résultat> = DéclareContexteWebservice(<Nom de la variable 1> [, <Nom de la variable 2> [... [, <Nom de la variable N>]]])
<Résultat> : Booléen - Vrai si la ou les variables indiquées ont bien été restaurées,
- Faux dans le cas contraire (lors du premier appel du Webservice par exemple).
<Nom de la variable 1> : Type de la variable Nom de la première variable à sauver à la fin de l'affichage. La valeur de cette variable sera récupérée lors des appels successifs du Webservice. <Nom de la variable 2> : Type de la variable Nom de la seconde variable à sauver à la fin de l'affichage. La valeur de cette variable sera récupérée lors des appels successifs du Webservice. <Nom de la variable N> : Type de la variable Nom de la Nième variable à sauver à la fin de l'affichage. La valeur de cette variable sera récupérée lors des appels successifs du Webservice. Remarques Fonctionnement - Le contexte est toujours sauvé sur le disque et transmis via un entête SOAP.
- La fonction DéclareContexteWebservice utilise les contextes sur disque. Les valeurs des variables sont toujours restaurées.
- La taille totale des valeurs des différentes variables n'est pas limitée.
- La fonction DéclareContexteWebservice peut être utilisée pour des données sensibles (mot de passe de l'utilisateur par exemple).
- Si deux variables sauvées ont le même nom (par exemple une dans le projet et l'autre dans une page), les deux variables sont mémorisées indépendamment.
- La fonction DéclareContexteWebservice renvoie Faux si une des variables n'a pas été restaurée.
- Toutes les variables passées à la fonction DéclareContexteWebservice lors de l'appel d'un Webservice pourront être récupérées lors de l'appel suivant. Les variables passées précédemment sont automatiquement sauvegardées une nouvelle fois.
- Les variables de type simple (entier, chaîne, ...) sont gérées, ainsi que les variables de type structure, classe, tableau ou tableau associatif.
- Ne sont pas gérés : les tableaux fixes, les membres globaux de classes, les tableaux associatifs de structures locales et les types avancés du WLangage (comme par exemple les variables de type Connexion).
Cas particulier : Utilisation d'un WebService intermédiaire Dans certains cas, il peut être nécessaire d'utiliser un Webservice intermédiaire pour utiliser les variables. Examinons le cas suivant : - Un Webservice "WS1" utilise la fonction DéclareContexteWebservice pour une variable globale "globaleChaine". Ce Webservice contient 2 fonctions:
- "Ecrit(param)" qui affecte le "param" dans "globaleChaine"
- "Lit()" qui renvoie le contenu de "globaleChaine".
- Un exécutable client, consommateur de WS1, appelle "WS1.Ecrit("Coucou")", puis "WS1.Lit()" récupère bien la chaîne envoyée.
- Un Webservice intermédiaire "WS2", consommateur de WS1, contient 2 fonctions :
- "Ecrit(param)" qui appelle "WS1.Ecrit()".
- "Lit()" qui appelle "WS1.Lit()".
- Un exécutable client, consommateur de WS2, appelle "WS2.Ecrit("Coucou")", puis "WS2.Lit()" NE récupère PAS la chaîne envoyée.
Solution : Dans le Webservice WS2, utiliser une fonction "EcritLit()" qui fait "WS1.Ecrit()" et "WS1.Lit()" dans le même traitement. Composante : wd300awws.dll
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|