WikiUp

Costruttore A38

Il costruttore A38 ha lo scopo di mettere a disposizione una configurazione, e la relativa interfaccia per l'utilizzo, che permette di definire e dichiarare connettori verso servizi (in prima istanza HTTP-based, ma non solo) esposti da esterni esterni.
Il caso principale è il consumo di web service SOAP o REST.

La configurazione

La configurazione si basa sugli script con prefisso LOA38_ contenuti nel file SCP_SET.
ereditando la struttuta dagli script dei LOA, la struttura riproposta è quella di Sezione e Subsezione.

La sezione

Nella sezione, viene definito chi è l'interlocutore esterno, quindi il plugin che verrà attivato.
Es: Operazioni tramite Socialmailer per l'infrastuttura di web marketing, operazioni tramite Gulliver per l'infrasturttura offline, etc.
Nella sezione è presente la specifica A38.CLSSEZ attraverso il quale viene definito il "driver" da attivare. Il driver non è altro che una classe java che implementa le operazioni definite nelle varie subsezioni attestate in questa sezione.
Es: ::A38.CLSSEZ Class="Smeup.smeww.webservices.client.socialmailer.SocialMailerConnectorAdapter" Pgm=""

La subsezione

Nella subsezione ci sono diversi tipi di istruzioni.
Nella istruzione che la definisce è presente il timeout di attesa del completamento dell'istruzione. Al raggiungimento del timeout la richiesta viene considerata persa.
Es: ::SUB Cod="B00" Txt="Richiesta Messaggi" Timeout="300"
C'è poi l'istruzione che definisce il nome dell'operazione
Es: ::A38.SUBMET Value="MSGLIS" Txt="Nome che identifica la funzione"
Poi una serie di definizioni dei parametri necessari all'operazione che si sta definendo
Es: ::A38.SUBVAR Name="Token" Value="" Txt="Token di autenticazione" DftVal=""
Con questa istruzione si definisce il nome del parametro, il valore (qualora questo valore si volgia passarlo "cablato" o ereditato da una variabile), la sua descrizione ed il valore di default (qualora lo si volgia impostare)
Infine esiste, tramite l'istruzione A38.MSGOGG, la possibilità di gestire i parametri di risposta. Quindi oggettizzare le colonne della matrice che costituitrà la risposta piuttosto che gestire degli alias per ovviare ai limite del campo Col della colonna.
Es: ::A38.MSGOGG Name="newsletter_messenger" Ogg="V2SI/NO" Alias="NWLMSGR"


Connettori disponibili


Con il client Looc.UP vengono distribuiti dei connettori predefiniti, disponibili per l'uso senza la necessità di installare software integrativo.

WS: Connettore per invocazione di Web Service su Smeup Provider remoto


Consente l'accesso a funzioni Smeu.Up esposte come web service su uno Smeup Provider remoto

Esiste in due versioni:

Connettore LOA38_WS di tipo stateless


Esegue accessi al web service remoto di tipo stateless.
Ogni richiesta è pertanto gestita in 3 fasi distinte, eseguite in sequenza:

  1. Connessione al webservice remoto e autenticazione sul server di riferimento con le credenziali fornite (utente, password, ambiente)
  2. Esecuzione della FUN passata e lettura XML di risposta
  3. Disconnessione

Esempio di script (vedi LOA38_WS su server sviluppo):

::SEZ Cod="S00" Txt="Accesso a Smeup Provider remoto tramite Web Service"::A38.CLSSEZ Class="_h_Smeup.smeui.loa38.smeupprovider.SLWSLOA38Connector_n_" Pgm=""::A38.CNFSEZ Name="HTTPS" Value="0"::A38.CNFSEZ Name="SERVICE" Value="127.0.0.1"::A38.CNFSEZ Name="PORT" Value="9090"::SUB Cod="B00" Txt="Invocazione WS" Timeout="100000"::A38.SUBMET Value="SLWSINVOKE" Txt="Nome che identifica la funzione"::A38.SUBVAR Name="SYSTEM" Value="" Txt="Server di destinazione della FUN" DftVal=""::A38.SUBVAR Name="USR" Value="" Txt="Utente" DftVal=""::A38.SUBVAR Name="PWD" Value="" Txt="Password" DftVal=""::A38.SUBVAR Name="ENV" Value="" Txt="Ambiente" DftVal=""::A38.SUBVAR Name="FUN" Value="" Txt="FUN richiesta (deve tornare matrice XML)" DftVal=""

Connettore LOA38_WS con gestione del pool di connessioni


Consente l'accesso utilizzando un pool di connessioni predefinite e create in fase di inizializzazione del connettore
La gestione è pertanto del seguente tipo:

  • All'avvio del connettore WS vengono create N connessioni con lo Smeup Provider remoto che fornisce il web service
  • Quando viene richiesta una FUN, viene allocata una delle connessioni attive e viene usata per l'invocazione su web service della FUN richiesta. Alla risposta la connessione viene tornata al pool.
  • Se nessuna connessione è disponibile, la richiesta di esecuzione viene messa in coda.

Le connessioni che appartengono al pool sono tutte dello stesso tipo e pertanto condividono le stesse credenziali,
definire nella configurazione a livello di sezione. Il richiamo della singola funzione deve quindi specificare la sola
FUN da eseguire.

Esempio di script (vedi SCP_SET/LOA38_WS su server sviluppo)

::SEZ Cod="S01" Txt="Esempio connettore WS pooled"::A38.CLSSEZ Class="_h_Smeup.smeui.loa38.smeupprovider.WSLOA38Connector_n_" Pgm=""::A38.CNFSEZ Name="SIZE" Value="3"::A38.CNFSEZ Name="HTTPS" Value="0"::A38.CNFSEZ Name="SERVICE" Value="127.0.0.1"::A38.CNFSEZ Name="PORT" Value="9090"::A38.CNFSEZ Name="SYSTEM" Value="srvlab01.smeup.com"::A38.CNFSEZ Name="USR" Value="FORDAR"::A38.CNFSEZ Name="PWD" Value="dario0316"::A38.CNFSEZ Name="ENV" Value="0010"::A38.CNFSEZ Name="TIMEOUT" Value="300"::SUB Cod="B00" Txt="Invocazione WS" Timeout="100000"::A38.SUBMET Value="WSINVOKE" Txt="Nome che identifica la funzione"::A38.SUBVAR Name="FUN" Value="" DftVal="" Txt="FUN richiesta (deve tornare matrice XML)"
si noti il parametro SIZE che iodentifica il numero di connessioni create nel pool in fase di inizializzazione e il parametro
TIMEOUT che definisce il tempo di attesa (in secondi) di una risposta da parte del web service remoto prima che la
richiesta sia considerata fallita e la connessione ritornata al pool.



39: Connettore per invocazione di servizi A39 su Smeup Provider remoto


Consente l'accesso a funzioni A39 esposte da uno Smeup Provider remoto

Esiste in due versioni:

Conettore LOA38_39 di tipo stateless


Esegue richieste A39 allo Smeup Provider remoto senza mantenere a connessione attiva
Ogni richiesta è pertanto gestita in 3 fasi distinte, eseguite in sequenza:

  1. Connessione allo Smeup Provider remoto e autenticazione sul server di riferimento con le credenziali fornite (utente, password, ambiente)
  2. Esecuzione della funzione A39 richiesta e lettura XML di risposta
  3. Disconnessione

Esempio di script (vedi SCP_SET/LOA38_39 su server sviluppo):

-- Accesso A39 remoto di tipo stateless (connessione-call-disconnessione)

::SEZ Cod="A39SL" Txt="Accesso a Smeup Provider remoto tramite A39 stateless"::A38.CLSSEZ Class="_h_Smeup.smeui.loa38.smeupprovider.SLA39LOA38Connector_n_" Pgm=""::A38.CNFSEZ Name="HTTPS" Value="0"::A38.CNFSEZ Name="SERVICE" Value="127.0.0.1"::A38.CNFSEZ Name="PORT" Value="9090"::A38.CNFSEZ Name="SYSTEM" Value="" Txt="Server di destinazione della FUN" DftVal=""::A38.CNFSEZ Name="USR" Value="" Txt="Utente" DftVal=""::A38.CNFSEZ Name="PWD" Value="" Txt="Password" DftVal=""::A38.CNFSEZ Name="ENV" Value="" Txt="Ambiente" DftVal=""::SUB Cod="DEC" Txt="Lettura DEC di un oggetto" Timeout="3000"::A38.SUBMET Value="DEC" Txt="Decodifica oggetto"::A38.SUBVAR Name="FUN" Value="" DftVal="DEC" Txt="DEC su A39_MU"::A38.SUBVAR Name="TIPO" Value="" Txt="Tipo oggetto"::A38.SUBVAR Name="PARAMETRO" Value="" Txt="Parametro oggetto"::A38.SUBVAR Name="CODICE" Value="" Txt="Codice oggetto"
N.B.:Si noti che la variabile di sezione FUN deve essere inizializzata con un valore di default uguale al nome della funzione A39 che
si vuole invocare. Nell'esempio si la sezione DEC è pensata per il richiamo della funzione A39 remota con nome "DEC"

N.B.:Le variabili successive alla FUN sono le stesse variabili attese dalla funzione A39 remota. In questo esempio la funzione
remota DEC esegue la decodifica di un oggetto quindi si attende le varibili TIPO, PARAMETRO e CODICE. Ovviamente funzioni
remote diverse hanno un set di parametri diversi, quindi la parte di script successiva al campo FUN ha una struttura che dipende
dalla funzione A39 chiamata. Il connettore è in grado di leggere tutte le variabili successive alla FUN e
passarle correttamente alla funzione A39 invocata.

Connettore LOA38_39 con gestione del pool di connessioni


Consente l'accesso ai servizi A39 offerti da uno Smeup Provider remoto utilizzando un pool di connessioni
predefinite e create in fase di inizializzazione del connettore.
La gestione è pertanto del seguente tipo:

  • All'avvio del connettore WS vengono create N connessioni con lo Smeup Provider remoto che fornisce il web service
  • Quando viene richiesta una funzione A39, una delle connessioni disponibili viene allocata ed utilizzata per la
comunicazione con il servizio A39 remoto. Eseguita la richiesta la connessione viene liberata per utilizzi futuri.
  • Se nessuna connessione è disponibile, la richiesta di esecuzione viene messa in coda.

Le connessioni che appartengono al pool sono tutte dello stesso tipo e pertanto condividono le stesse credenziali,
definire nella configurazione a livello di sezione. Il richiamo della singola funzione deve quindi specificare la sola
FUN da eseguire.

Esempio di script (vedi SCP_SET/LOA38_39 su server sviluppo):

-- Accesso A39 remoto con pool di connessioni

::SEZ Cod="A39" Txt="Esempio connettore A39"::A38.CLSSEZ Class="_h_Smeup.smeui.loa38.smeupprovider.A39LOA38Connector_n_" Pgm=""::A38.CNFSEZ Name="SIZE" Value="3"::A38.CNFSEZ Name="HTTPS" Value="0"::A38.CNFSEZ Name="SERVICE" Value="127.0.0.1"::A38.CNFSEZ Name="PORT" Value="9090"::A38.CNFSEZ Name="SYSTEM" Value="srvlab01.smeup.com"::A38.CNFSEZ Name="USR" Value="USER"::A38.CNFSEZ Name="PWD" Value="PASSWORD"::A38.CNFSEZ Name="ENV" Value="0010"::A38.CNFSEZ Name="TIMEOUT" Value="300"::SUB Cod="DEC" Txt="Lettura DEC di un oggetto" Timeout="3000"::A38.SUBMET Value="DEC" Txt="Decodifica oggetto"::A38.SUBVAR Name="FUN" Value="" DftVal="DEC" Txt="DEC su A39_MU"::A38.SUBVAR Name="TIPO" Value="" Txt="Tipo oggetto"::A38.SUBVAR Name="PARAMETRO" Value="" Txt="Parametro oggetto"::A38.SUBVAR Name="CODICE" Value="" Txt="Codice oggetto"

si noti il parametro SIZE che iodentifica il numero di connessioni create nel pool in fase di inizializzazione e il parametro
TIMEOUT che definisce il tempo di attesa (in secondi) di una risposta da parte del web service remoto prima che la
richiesta sia considerata fallita e la connessione ritornata al pool.

N.B.:Si noti anche che la variabile di sezione FUN deve essere inizializzata con un valore di default uguale al nome della funzione A39 che
si vuole invocare. Nell'esempio si la sezione DEC è pensata per il richiamo della funzione A39 remota con nome "DEC"

N.B.:Le variabili successive alla FUN sono le stesse variabili attese dalla funzione A39 remota. In questo esempio la funzione
remota DEC esegue la decodifica di un oggetto quindi si attende le varibili TIPO, PARAMETRO e CODICE. Ovviamente funzioni
remote diverse hanno un set di parametri diversi, quindi la parte di script successiva al campo FUN ha una struttura che dipende
dalla funzione A39 chiamata. Il connettore è in grado di leggere tutte le variabili successive alla FUN e
passarle correttamente alla funzione A39 invocata.

UP: Connettore per l'upload di file su Smeup Provider remoto


Consente di effettuare l'uload di un file su uno Smeup Provider remoto. Il file uloadato può essere salvato sia sul file system
dello SmeupProvider (o di un server da esso accessibile) sia nel IFS del sistema iSeries a cui è connesso il provider.

Esempio di script (vedi SCP_SET/LOA38_UP su server sviluppo):

::SEZ Cod="S00" Txt="Upload di un file su Smeup Provider remoto"::A38.CLSSEZ Class="_h_Smeup.smeui.loa38.smeupprovider.FileUploadLOA38Connector_n_" Pgm=""::A38.CNFSEZ Name="HTTPS" Value="0"::A38.CNFSEZ Name="SERVICE" Value="127.0.0.1"::A38.CNFSEZ Name="PORT" Value="9090"::SUB Cod="B00" Txt="File upload" Timeout="100000"::A38.SUBMET Value="UPLOAD" Txt="Nome che identifica la funzione"::A38.SUBVAR Name="SYSTEM" Value="srvlab01.smeup.com"::A38.SUBVAR Name="USR" Value="USER"::A38.SUBVAR Name="PWD" Value="PASSWORD"::A38.SUBVAR Name="ENV" Value="0010"::A38.SUBVAR Name="FILE" Value="" Txt="Path del file da caricare" DftVal=""::A38.SUBVAR Name="FS_DEST" Value="" Txt="Destinazione su FS" DftVal=""::A38.SUBVAR Name="IFS_DEST" Value="" Txt="Destinazione su IFS" DftVal=""::A38.SUBVAR Name="OVERWRITE" Value="" Txt="Sovrascrivi (0/1) (opt.)" DftVal=""::A38.SUBVAR Name="CRC32" Value="" Txt="CRC file (opt, per controllo)" DftVal=""::A38.SUBVAR Name="FILE_SIZE" Value="" Txt="Dimensione file (opt, per controllo)" DftVal=""::A38.SUBVAR Name="LAST_MODIFIED" Value="" Txt="Last mod. file (opt, per controllo)" DftVal=""::A38.SUBVAR Name="DES_TYPE" Value="" Txt="Tipo destinazione (opt.)" DftVal=""
Le variabili vanno valorizzate opportunamente a seconda dell'operazione desiderata

  • Se si valorizza la variabile FS_DEST, il file uploadato verrà salvato nel file system dello Smeup Provider nella posizione
definita dal valore passato
  • Se si valorizza la variabile IFS_DEST, il file uploadato verrà salvato nel file IFS del sistema iSeries connesso allo Smeup Provider nella posizione
definita dal valore passato

Ovviamente solo una delle variabili FS_DEST e IFS_DEST deve essere valorizzata, se entrambe son definite verrà considerata la
sola variabile FS_DEST.

Le variabili con opt nella descrizione sono da considerare opzionali.

La funzione di upload di un file risponde con un file XML di conferma spedizione oppure, in caso di errore, con un
messaggio di warning.

Add new attachment

Only authorized users are allowed to upload new attachments.
«