PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Résultat de la procédure serveur
  • Procédures pouvant être appelées par AJAX
  • Anciens navigateurs
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Exécute une procédure serveur sans rafraîchir la page. Cette fonction est bloquante. Tant que le résultat de la procédure exécutée n'est pas récupéré, aucun autre traitement n'est exécuté.
Pour éviter de bloquer les traitements, utilisez la fonction AJAXExécuteAsynchrone.
// AJAX supporté sur le navigateur en cours ?
SI AJAXDisponible() = Vrai ALORS
// Exécution de la procédure serveur "MaProc"
Res est une chaîne
Res = AJAXExécute(MaProc, IDProduit, VilleClient)
// Utilisation des données à modifier
...
SINON
// Traitements sans utilisation de AJAX
...
FIN
// -- Procédure serveur MaProc // --
// Procédure permettant de rechercher les données à modifier dans la page
PROCÉDURE MaProc(RefProd, CVille)
// Recherche des données à modifier
...
// Renvoi du résultat
RENVOYER Résultat1
Syntaxe
<Résultat> = AJAXExécute([<Options>, ] <Procédure WLangage> [, <Paramètre 1> [... [, <Paramètre N>]]])
<Résultat> : Chaîne de caractères
Résultat de la procédure <Nom de la procédure>. Ce résultat contient les données à modifier dans la page.
<Options> : Constante de type Entier
Versions 20 et supérieures
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.

Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
Nouveauté 20
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.

Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.

Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
<Procédure WLangage> : Nom de procédure
Nom de la procédure serveur à exécuter (procédure globale ou locale). Cette procédure permet de rechercher les données à modifier dans la page.
Le résultat de cette procédure doit être une chaîne de caractères renvoyée au navigateur grâce au mot-clé RENVOYER. Pour plus de détails, consultez les remarques.
Cette procédure doit être autorisée à être appelée par AJAX (voir les Notes).
<Paramètre 1> : Chaîne de caractères optionnelle (avec guillemets)
Premier paramètre passé à la procédure <Nom de la procédure>.
Attention : Seuls les types simples sont utilisables (chaîne de caractères, entier, ...). Les types structurés ne peuvent pas être utilisés.
<Paramètre N> : Chaîne de caractères optionnelle (avec guillemets)
Nième paramètre passé à la procédure <Nom de la procédure>.
Attention : Seuls les types simples sont utilisables (chaîne de caractères, entier, ...). Les types structurés ne peuvent pas être utilisés.
Remarques

Résultat de la procédure serveur

La procédure serveur <Procédure WLangage> permet de rechercher les données à modifier dans la page. Le résultat de cette procédure correspond aux données à modifier.
Pour renvoyer ce résultat au navigateur, il suffit d'utiliser le mot-clé RENVOYER en spécifiant :
  • soit la chaîne de caractères contenant les données.
  • soit le nom du document XML contenant les données.
Ce résultat sera automatiquement contenu dans le paramètre <Résultat> de la fonction AJAXExécute. Il suffit ensuite de gérer ce résultat pour rafraîchir les données à modifier.
Si ce résultat correspond au nom d'un document XML, ce document sera automatiquement transmis et créé sur le navigateur. Ce document pourra alors être manipulé grâce aux fonctions XML.
Remarque : Dans le cas d'utilisation d'un document XML :
  • le document XML n'est pas détruit automatiquement sur le serveur lors de sa transmission au navigateur.
  • si un document XML du même nom existe déjà sur le navigateur, le nouveau document XML le remplace automatiquement.

Procédures pouvant être appelées par AJAX

Par défaut, pour sécuriser les sites WEBDEV, les procédures serveurs sont protégées de tout appel illégal (tentative de détournement de session par exemple). Pour exécuter une procédure serveur à partir d'un traitement navigateur (fonction AJAXExécute ou AJAXExécuteAsynchrone), il est donc nécessaire d'autoriser l'appel de cette procédure par AJAX.
Pour permettre l'appel d'une procédure serveur par AJAX, cliquez simplement sur le terme "AJAX" dans le bandeau de la procédure :
Procédure ne pouvant pas être appelée par AJAX
Procédure pouvant être appelée par AJAX

Anciens navigateurs

Les navigateurs anciens ne supportent pas la technologie AJAX (Internet Explorer 5.5 et supérieur, FireFox 1.0 et supérieur, Netscape 7 et supérieur, Opera 8 et supérieur, Safari 1.2 et supérieur, ...). La fonction AJAXDisponible permet de savoir si le navigateur en cours supporte la technologie AJAX. Si un traitement utilisant la technologie AJAX est exécuté sur un navigateur ne supportant pas cette technologie, le traitement s'exécute "comme si" il n'utilisait pas la technologie AJAX (rafraîchissement de la page entière par exemple).
Composante : WDJS.DLL
Version minimum requise
  • Version 10
Commentaires
Les petits compléments de Xavier
Quelques petites précisions, dans l'aide il manque la constante ajaxSynchroniseVariablesServeur qui permet de mettre à jour les variables <synchronisé navigateur> déclarées dans le code de déclaration de la page ou d'initialisation du projet qui ont une portée globale.

Aussi, il est possible de combiner cette constante avec d'autres, par exemple :
ajaxActualiseChamps+ajaxSynchroniseVariablesServeur

Cela permet de synchroniser les variables et de mettre à jour l'IHM en une seul fois.

Cette astuce peux aussi permettre de s'affranchir de la limitation de passage de paramètre simple dans la fonction serveur appelée au profit par exemple de tableau via la synchro des variables. Ce n'est pas l'idéal, mais pas mieux en attendant une évolution par PC SOFT.
MindSoft
29 oct. 2020