Implémentation des méthodes SOAP
- Rubriques :
- Configuration
Créé pour :
- Développeur
Introduction
Il est possible de créer des méthodes SOAP en Javascript. Cette fonctionnalité permet simplement des traitements applicatifs, elle peut remplacer le développement de JSPs et leur invocation dans les formulaire.
Ces méthodes SOAP se comporteront de la même façon que celles définies nativement dans l'application. Les mêmes attributs sont supportés : statique, clé seule et const.
Définition dʼune bibliothèque de méthodes
La création d'une bibliothèque de méthodes se divise en deux parties :
- La déclaration SOAP des méthodes,
- La définition (ou l'implémentation) en JavaScript.
Déclaration
Les méthodes doivent d’abord être déclarées dans les schémas (pour en savoir plus sur la création et l’édition des schémas, consultez cette section).
Leur déclaration est similaire à celle des méthodes natives. La seule différence est l’ajout de l’attribut 'library' spécifiant le nom de la bibliothèque de méthodes dans laquelle se trouve la définition.
Ce nom correspond au nom (avec l'espace de noms) de l'entité de type 'Code JavaScript'.
Exemple:
La méthode testLog(msg) est déclarée dans une extension de nms:recipient
<method name="testLog" static="true" library="cus:test">
<parameters>
<param name="message" type="string" inout="in"/>
</parameters>
</method>
Définition
Les méthodes SOAP sont implémentées sous forme de fonctions Javascript regroupées dans un script représentant une bibliothèque.
Le script peut contenir du code qui sera exécuté au chargement initial de la bibliothèque.
1. Nom
Le nom de la fonction doit respecter le format suivant :
<schema-namespace>_<schema-name>_<method-name>
Exemple:
La fonction JavaScript suivante correspond à l'implémentation de la méthode déclarée plus haut. Elle doit être définie dans l'entité de type 'Code JavaScript' et de nom 'cus:test'.
function nms_recipient_testLog(message)
{
logInfo("*** " + message)
}
2. Signature
La signature de la fonction doit inclure un argument correspondant à chaque paramètre de type 'in' ou 'inout' de la déclaration.
Cas particuliers :
- les méthodes non statiques : la fonction doit inclure un argument supplémentaire en première position correspondant à l'entité XML passée sous forme d'objet de type 'xml' (E4X).
- les méthodes de type "clé seule" : la fonction doit inclure un argument supplémentaire en première position correspondant à clé passée sous forme de chaîne de caractères.
3. Valeurs retournées
La fonction doit retourner une valeur pour chaque paramètre déclaré de type 'out' ou 'inout'. Cas particulier : Si la méthode est déclarée avec aucun des attributs 'statique', 'clé seule' et 'const', La première valeur retournée doit correspondre à l'entité modifiée. Il est possible de retourner un nouvel objet ou de retourner le premier paramètre modifié.
Par exemple :
function nms_recipient_setLastName(self, name)
{
self.@lastName = name
return self
}
Lorsque plusieurs valeurs doivent être retournées, celles-ci doivent être retournées sous la forme d'un tableau.
Exemple:
function nms_recipient_getKey(self)
{
return [self.@firstName, self.@lastName]
}