Implementare metodi SOAP implementing-soap-methods
Introduzione introduction
È possibile creare metodi SOAP in JavaScript. Questa funzione abilita semplicemente i processi applicativi, evitando di sviluppare JSP e le relative chiamate nei moduli.
Questi metodi SOAP si comportano nello stesso modo di quelli definiti in modo nativo nella domanda. Sono supportati gli stessi attributi: static, key only e const.
Definire una libreria di metodi defining-a-method-library
La creazione di una libreria di metodi prevede due fasi:
- la dichiarazione relativa al metodo SOAP,
- Definizione (o implementazione) in JavaScript.
Dichiarazione declaration
Inizia dichiarando i metodi negli schemi (per ulteriori informazioni su come creare e modificare gli schemi, consulta questa sezione).
La loro dichiarazione è simile a quella dei metodi nativi, con la differenza che è necessario aggiungere l'attributo "library" che specifica il nome della libreria dei metodi in cui si trova la definizione.
Questo nome coincide con il nome (con lo spazio dei nomi) dell'entità di tipo "Codice JavaScript".
Esempio:
Il metodo testLog(msg) è dichiarato in un'estensione nms:recipient
<method name="testLog" static="true" library="cus:test">
<parameters>
<param name="message" type="string" inout="in"/>
</parameters>
</method>
Definizione definition
I metodi SOAP sono implementati sotto forma di funzione JavaScript raggruppata in uno script che rappresenta una libreria.
Lo script può contenere il codice da eseguire durante il caricamento iniziale della libreria.
1. Nome
Il nome della funzione deve rispettare il seguente formato:
<schema-namespace>_<schema-name>_<method-name>
Esempio:
La seguente funzione di JavaScript è l’implementazione del metodo descritto sopra. È definita nell'entità di tipo "codice JavaScript" utilizzando il nome "cus:test".
function nms_recipient_testLog(message)
{
logInfo("*** " + message)
}
2. Firma
La firma della funzione deve includere un argomento per ogni parametro 'in' o 'inout' della dichiarazione.
Casi specifici:
- metodi non statici: la funzione deve includere prima un argomento aggiuntivo che coincida con l'entità XML passata sotto forma di oggetto di tipo 'xml' (E4X).
- metodi di tipo "solo chiave": la funzione deve includere prima un argomento aggiuntivo che coincida con la chiave passata sotto forma di stringhe di caratteri.
3. Valori restituiti
La funzione deve restituire un valore per ogni parametro di tipo "out" o "inout". Caso specifico: se il metodo viene dichiarato senza gli attributi "static", "key only" o "const", il primo valore restituito deve coincidere con l’entità modificata. È possibile restituire un nuovo oggetto o il primo parametro modificato.
Ad esempio:
function nms_recipient_setLastName(self, name)
{
self.@lastName = name
return self
}
Quando devono essere restituiti più valori, questi devono essere visualizzati in una tabella.
Esempio:
function nms_recipient_getKey(self)
{
return [self.@firstName, self.@lastName]
}