Azione utente 

Introduzione

Una azione utente XTEND si traduce sia con un'azione effettuata direttamente dal server XTEND, sia con la chiamata di un web service X3 che può essere sia un sottoprogramma che un'azione associata ad un oggetto X3.

L'azione utilizza i web service X3 quando viene associata ad una interfaccia.

Una azione Web si aspetta dei parametri in input, effettua un'elaborazione e valorizza un certo numero di parametri in output come la chiamata di un sottoprogramma in 4GL.

Nel caso di una applicazione XTEND, i parametri in input sono generalmente inseriti dall'utente in un form HTML e i valori restituiti dal sottoprogramma sono messi in memoria nella sessione utente (mapping) allo scopo di essere visualizzati in una pagina HTML o utilizzati come parametri di altre azioni.

Questo documento indica il metodo da seguire per creare delle nuove azioni utente.

Programmazione e test in X3

La prima fase consiste nel programmare e TESTARE in modalità client X3 il programma 4GL o l'oggetto X3 che verrà chiamato dall'azione XTEND.

Caso degli oggetti X3

Prima di utilizzare un oggetto X3 in una applicazione XTEND è necessario assicurarsi che tale oggetto X3 possa essere utilizzato attraverso dei web service.

In particolare bisogna accertarsi che il programma delle azioni non necessiti della presenza di un utente (umano) davanti allo schermo per rispondere a eventuali domande o messaggi inviati dal server X3.

Messaggi utente

Il programma AWEB contiene dei sotto-programmi di utilità per la gestione dei messaggi utente.

Invio di messaggi informativi, di warning o di errore:

  • Subprog ADDMESSINF(MESSAGE)
  • Subprog ADDMESSWARN(MESSAGE)
  • Subprog ADDMESSERR(MESSAGE)

In modalità test

  • Subprog INITABMES
  • Subprog VISUALLMES

Un'azione utente viene considerata come validata se la chiamata del web service non ha prodotto alcun messaggio di errore.

I messaggi di errore vengono postati in 4GL via il sotto programma ADDMESSERR (Call ADDMESSERR("Messaggio") From AWEB)

La visualizzazione dei messaggi X3 avviene grazie al token AXUSERMSG.

Es: <span id="userMsg" class="userMsg" adx="aMsgUser"></span>

Caso dei sotto-programmi

E' importante osservare che la chiamata di un programma X3 via un web service è 'senza stato' (stateless), vale a dire che il contesto della sessione X3 (globali) utilizzata per elaborare un web service è valida solo durante l'elaborazione del servizio. Tale contesto viene perso dopo l'esecuzione del programma. E' reinizializzato ad ogni chiamata.

Tutti i dati contestuali devono essere trasportati nei parametri di chiamata del web service.

In fase di chiamata di un web service di tipo sotto-programma, il server XTEND aggiunge i parametri contestuali alla chiamata di tale sotto-programma valorizzando i parametri AXPARCOD e AXPARVAL del gruppo di pubblicazione AX_PAR, se il gruppo AX_PAR è stato definito durante la pubblicazione del sotto-programma.

I parametri contestuali di default sono i seguenti:

Codice

Descrizione

SITCOD

Codice del sito XTEND

USRCOD

Codice utente XTEND se l'utente è identificato

USRPRF

Codice profilo utente XTEND se l'utente è identificato

USRLANG

Codice lingua XTEND (lingua del sito)

Pubblicazione e test dei web service

Questa fase permette di verificare che i web service siano disponibili e che funzionino correttamente.

Vedere la pagina web services.

Creazione di un'azione

-1- Parametrizzazione dell'interfaccia

Creare una scheda interfaccia via la funzione Sviluppo/Safe X3 WAS/Link SAFE X3/Interfaccia.

-2- Creazione dei campi

La chiamata di un web service di tipo Azione restituisce dei dati che sono sia parametri di un sotto-programma, sia campi di un oggetto X3.

Tutti i campi utilizzati per la visualizzazione od il passaggio di parametri di tipo web o XTEND devono essere dichiarati nel dizionario dei campi.

Dopo aver creato l'interfaccia, si consiglia di creare tutti i campi ottenuti dal web service via il menù 'Strumenti/Creazione token campo' della scheda interfaccia.

-3- Creazione delle entità

I parametri in output restituiti dal web service sono raggruppati per gruppi di pubblicazione.

Questa fase consiste nel creare un'entità XTEND per gruppo di pubblicazione.

Per creare le entità, utilizzare la funzione di utilità creazione delle entità accessibile dal menù 'Strumenti\Aiuto alla compilazione' della scheda entità.

-4 - Creazione dell'azione web

Questa fase consiste nel creare l'azione web per definire il mapping tra i parametri del web service e le entità XTEND.

Il mapping riguarda:
  • I parametri (in input) che bisogna valorizzare durante la chiamata del web service
  • I parametri (in output) restituiti dal web service, che bisogna conservare in memoria e a partire dai quali verranno create le entità XTEND di tipo sessione

-5- Creazione di un link dimanico

Questa fase consiste nel creare un token link dinamico che verrà inserito nella pagina html, sia in un bottone, sia in un anchor, per permettere all'utente di attivare l'azione con un clic del mouse.

Il link dinamico permette inoltre di indicare come verranno valorizzati i parametri di chiamata dell'azione web sia a partire da dati inseriti dall'utente (campi web), sia a partire da dati presenti in memoria (campi XTEND).

Azione di login

Principio del login XTEND

XTEND considera 2 tipi di utenti:

  • gli utenti anonimi
  • gli utenti identificati

L'utente si identifica al server XTEND attraverso la pagina di login fornendo un codice utente ed una password.

L'azione di login XTEND chiama un sotto-programma 4GL (web service) incaricato di verificare l'esistenza dell'utente e la validità della password. Viene inviato un errore (ADDMESSERR) in caso di login errato.

Una pagina XTEND 'protetta' sarà visibile solo dagli utenti identificati.

E' così possibile proteggere l'accesso alle pagine XTEND in funzione del profilo XTEND, il cui codice lo si ottiene dal programma di login (opzionale).

Vedere login del sito ASAMPLE.

Interfaccia del sotto-programma 4GL di login

XTEND può chiamare qualunque sotto-programma 4GL i cui primi 12 parametri sono i seguenti:

Subprog ACTION (AXPARCOD, AXPARVAL, AXUSERCODE, AXPWD, AXUSERPROF, AX3SOL,
 AX3FLDR, AX3LANG, AX3USER, AX3PWD, AXLOGCOD ,AXLOGVAL ...)
Variable Char     AXPARCOD()()
Variable Char     AXPARVAL()()
Variable Char     AXUSERCODE()
Value    Char     AXPWD()
Variable Char     AXUSERPROF()   
Variable Char     AX3SOL()()
Variable Char     AX3FLDR()()
Variable Char     AX3LANG()()  
Variable Char     AX3USER()()
Variable Char     AX3PWD()()
Variable Char     AXLOGCOD()()  
Variable Char     AXLOGVAL()()
...

Parametro 

Tipo

Descrizione

AXPARCOD
AXPARVAL



Valorizzato dal motore XTEND




Parametri contestuali chiave/valore valorizzati dal server XTEND al momento della chiamata del sotto-programma.
SITCOD : Codice del sito XTEND
USRCOD : Codice utente XTEND (blank se utente anonimo)
USRPRF : Codice profilo XTEND
USRLANG: Codice lingua XTEND

AXUSERCODE

Inserito dall'utente

Codice utente XTEND inserito dall'utente

AXPWD

Inserito dall'utente

Password inserita dall'utente

AXUSERPROF

Restituito da X3

Codice profilo XTEND utilizzato per gestire l'accesso alle pagine

AX3SOL

Restituito da X3

Codice soluzione X3

 AX3FLDR

Restituito da X3

Codice dossier X3

AX3LANG

Restituito da X3

Codice lingua X3 per il login a AX3SOL/AX3FLDR

AX3USER

Restituito da X3

Codice utente X3 per il login a AX3SOL/AX3FLDR

AX3PWD

Restituito da X3

Password X3 per il login a AX3SOL/AX3FLDR

AXLOGCOD
AXLOGVAL

Restituito da X3

Informazioni complementari sull'utente, di tipo chiave/valore, che saranno memorizzate nella sessione XTEND (blocco ASESSION).
Es: NOME/DELPONTE,TEL/0476232526,COMPANY/SAGE...

....

 

Il sotto-programma di login può restituire altre informazioni che potranno essere 'mappate' su entità XTEND
Es: Elenco degli indirizzi di consegna, elenco ultime fatture o ordini...

Scheda sotto-programma

Scheda di descrizione del sotto-programma di login.

I nomi dei gruppi di pubblicazione dei parametri AX* vanno rispettati.

Codice

Tipo

Dim

Tipo argomento

Gruppo di pubblicazione

AXPARCOD

Char

20

Per indirizzo

AX_PAR

AXPARVAL

Char

20

Per indirizzo

AX_PAR

AXUSERCODE

Char

1

Per valore

AXLOG_PAR

AXPWD

Char

1

Per valore

AXLOG_PAR

AXUSERPROF

Char

1

Per indirizzo

AXLOG_PAR

AX3SOL

Char

10

Per indirizzo

AXLOG_X3

 AX3FLDR

Char

10

Per indirizzo

AXLOG_X3

AX3LANG

Char

10

Per indirizzo

AXLOG_X3

AX3USER

Char

10

Per indirizzo

AXLOG_X3

AX3PWD

Char

10

Per indirizzo

AXLOG_X3

AXLOGCOD

Char

50

Per indirizzo

AXLOG_RES

AXLOGVAL

Char

50

Per indirizzo

AXLOG_RES

I parametri seguenti vengono forniti a titolo di esempio e gestiti dal programmatore XTEND.
Un elenco di indirizzi di consegna ed uno di indirizzi di fatturazione (max 10 righe) che saranno 'mappati' sulle entità SHIPADDR e INVADDR

SHIPADDR

Char

10

Per indirizzo

SHIPADDR

SHIPCITY

Char

10

Per indirizzo

SHIPADDR

SHIPZIP

Char

10

Per indirizzo

SHIPADDR

INVADDR

Char

10

Per indirizzo

SHIPADDR

INVCITY

Char

10

Per indirizzo

SHIPADDR

INVZIP

Char

10

Per indirizzo

SHIPADDR