Show Menu
ARGOMENTI×

Implementazione dei metodi SOAP

Introduzione

È possibile creare metodi SOAP in JavaScript. Questa funzione consente semplicemente i processi applicativi, può evitare lo sviluppo di JSP e la loro chiamata nei moduli.
Questi metodi SOAP si comportano nello stesso modo di quelli definiti in modo nativo nell'applicazione. Sono supportati gli stessi attributi: static, key only and const.

Definizione di una libreria di metodi

La creazione di una libreria di metodi prevede due fasi:
  • La dichiarazione del metodo SOAP,
  • Definizione (o implementazione) in JavaScript.

Dichiarazione

Cominciate dichiarando i metodi negli schemi (per ulteriori informazioni sulla creazione e la modifica degli schemi, consultate questa sezione ).
La loro dichiarazione è simile a quella dei metodi nativi, con la differenza che è necessario aggiungere l'attributo 'library' specificando 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>

Lo spazio dei nomi e il nome utilizzati per la libreria sono indipendenti dallo spazio dei nomi e dal nome dello schema in cui viene trovata la dichiarazione.

Definizione

I metodi SOAP sono implementati sotto forma di funzione JavaScript raggruppata in uno script che rappresenta una libreria.
Una libreria di metodi può raggruppare funzioni per vari schemi o viceversa; le funzioni di uno schema possono essere definite in librerie separate.
Lo script può contenere codice da eseguire durante il caricamento iniziale della libreria.
1. Nome
Il nome della funzione deve essere conforme al seguente formato:
 <schema-namespace>_<schema-name>_<method-name>

Esempio:
La seguente funzione JavaScript è l'implementazione del metodo descritto in precedenza. Deve essere definito 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 coincide 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 coincide 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 è 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 restituire il primo parametro modificato.
Ad esempio:
function nms_recipient_setLastName(self, name)
 {
   self.@lastName = name
   return self
 }

Per restituire più valori, questi devono essere visualizzati in una tabella.
Esempio:
function nms_recipient_getKey(self)
 {
   return [self.@firstName, self.@lastName]
 }