DECLARATION SOAP

4D - Documentation   Français   English   German   4e Dimension 2003, Commandes par thèmes   4e Dimension 2003, Liste alphabétique des commandes   4e Dimension 2003, Constantes par thèmes   Retour   Précédent   Suivant

version 2003


DECLARATION SOAP (variable; type; entrée_sortie{; alias})

ParamètreTypeDescription
variableVariable 4DVariable référençant un argument SOAP
entrant ou sortant
typeEntier longType 4D vers lequel pointe l'argument
entrée_sortieEntier long1 = Entrée SOAP, 2 = Sortie SOAP
aliasChaîneNom publié pour cet argument lors des
échanges SOAP

Description

La commande DECLARATION SOAP permet de déclarer explicitement le type des paramètres utilisés dans une méthode 4D publiée comme Web Service.

Lorsqu'une méthode est publiée en tant que Web Service, les paramètres standard $0, $1... $n sont utilisés pour décrire les paramètres du Web Service auprès du monde extérieur (notamment dans le fichier WSDL). Le protocole SOAP exigeant que les paramètres soient explicitement nommés, 4e Dimension utilise par défaut les noms "FourD_arg0, FourD_arg1 ... FourD_argn".

Ce fonctionnement par défaut peut toutefois s'avérer problématique pour les raisons suivantes :

Il n'est pas possible de déclarer $0 ou $1 en tant que tableau. Il est donc nécessaire d'utiliser des pointeurs, mais dans ce cas il reste à connaître le type des valeurs pour la génération du fichier WSDL.

Ensuite, il peut être utile ou nécessaire de personnaliser les noms des paramètres (entrants et sortants).

Enfin, ce fonctionnement rend impossible le retour de plus d'une valeur par appel (dans $0).

La commande DECLARATION SOAP permet de s'affranchir de ces limites. Vous pouvez exécuter cette commande pour chaque paramètre entrant et sortant et lui assigner un nom et un type.

Note : Même si la commande DECLARATION SOAP est utilisée, il est toujours nécessaire de déclarer les variables 4D à l'aide les commandes du thème "Compilateur".

Passez dans variable la variable 4D à référencer dans l'appel du Web Service.

Attention, vous pouvez référencer uniquement des variables process ou les arguments des méthodes 4D ($0 à $n). Les variables locales et interprocess ne peuvent pas être utilisées.

Passez dans type le type 4D correspondant. La plupart des types de variables et de tableaux 4D peuvent être employés. Vous pouvez utiliser les constantes prédéfinies suivantes, placées dans le thème "Types champs et variables" :

ConstanteTypeValeur
Est un BLOBEntier long30
Est un booléenEntier long6
Est un entierEntier long8
Est un entier longEntier long9
Est un numériqueEntier long1
Est un tableau booléenEntier long22
Est un tableau chaîneEntier long21
Est un tableau dateEntier long17
Est un tableau entierEntier long15
Est un tableau entierlongEntier long16
Est un tableau numériqueEntier long14
Est un tableau texteEntier long18
Est un texteEntier long2
Est une dateEntier long4
Est une heureEntier long11
Est une variable chaîneEntier long24

Note : Les constantes suivantes ne sont pas utilisables dans le cadre de méthodes SOAP : Est un champ alpha, Est un pointeur, Est un tableau 2D, Est un tableau image, Est un tableau pointeur, Est une image, Est une sous table, Est une variable indéfinie.

Passez dans entrée_sortie une valeur indiquant si le paramètre traité est "entrant" (c'est-à-dire correspondant à une valeur reçue par la méthode) ou "sortant" (c'est-à-dire correspondant à une valeur retournée par la méthode). Vous pouvez utiliser les constantes prédéfinies suivantes, placées dans le thème "Web Services (Serveur)" :

ConstanteTypeValeur
SOAP entréeEntier long1
SOAP sortieEntier long2

Méthode COMPILER_WEB : Les arguments SOAP entrants référencés à l'aide de variables 4D (et non via les arguments des méthodes 4D) doivent être préalablement déclarés dans la méthode projet COMPILER_WEB. En effet, l'utilisation de variables process dans les méthodes Web Services nécessite leur déclaration avant l'appel de la méthode. La méthode projet COMPILER_WEB est appelée, si elle existe, à chaque requête SOAP acceptée. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement.

A noter que la méthode COMPILER_WEB est également appelée par le serveur Web de 4D lors de la réception de requêtes Web "classiques" de type POST (cf. section URLs et actions de formulaires).

Passez dans alias le nom de l'argument tel qu'il doit apparaître dans la WSDL et dans les échanges SOAP. Attention, ce nom doit être unique dans l'appel RPC (paramètres entrants et sortants confondus), sinon seule la dernière déclaration sera prise en compte par 4D.

Note : Conformément à la norme XML concernant les noms de balises, les noms des arguments ne doivent PAS contenir d'espace ou de caractères étendus. Seuls les caractères latins suivants peuvent être utilisés : ([A-Za-z0-9._] | '-')*.

Si le paramètre alias est omis, 4e Dimension utilisera par défaut le nom de la variable ou FourD_argN pour les arguments des méthodes 4D ($0 à $n).

Note : La commande DECLARATION SOAP doit être incluse dans la méthode publiée comme Web Service. Il n'est pas possible de l'appeler d'une autre méthode.

Exemples

(1) Cet exemple spécifie un nom de paramètre :

      ` Lors de la génération du fichier WSDL et des appels SOAP, le libellé 
      ` zipcode sera utilisé au lieu de fourD_arg1
   C_ENTIER LONG($1)
   DECLARATION SOAP($1;Est un entier long;SOAP Entrée;"zipcode")

(2) Cet exemple permet de récupérer un tableau de codes postaux sous forme d'entiers longs :

   TABLEAU ENTIER LONG(tab_codes;0)
   DECLARATION SOAP(tab_codes;Est un tableau entierlong;SOAP Entrée;"in_tab_codes")

(3) Cet exemple permet de référencer deux valeurs de retour sans spécifier de nom d'argument :

   DECLARATION SOAP(ret1;Est un entier long;SOAP Sortie)
   DECLARATION SOAP(ret2;Est un entier long;SOAP Sortie)

Référence

ENVOYER ERREUR SOAP, Fichier donnees verrouille, Lire informations SOAP.

Constantes

Thèmes Types champs et variables et Web Services.


4D - Documentation   Français   English   German   4e Dimension 2003, Commandes par thèmes   4e Dimension 2003, Liste alphabétique des commandes   4e Dimension 2003, Constantes par thèmes   Retour   Précédent   Suivant