Questa è una vecchia versione del documento!
Indice
Azioni massive tramite Stored Procedure LUA
Possibilità di lanciare delle azioni massive definite tramite stored procedure LUA da:
- Lista titoli derivanti da una ricerca su DocWay o ACL
- Visualizzazione di uno specifico record su DocWay o ACL
Configurazione
File di properties
Per attivare il modulo relativo alle azioni massive occorre settare la property abilitaAzioniMassiveLUA all'interno del file it.highwaytech.apps.generic.properties. L'elenco completo delle properties è indicato di seguito:
# Abilitazione delle esportazioni massive tramite stored procedure LUA ('si', 'no' - Default = 'no') abilitaAzioniMassiveLUA=no # Nome della stored procedure LUA attraverso la quale recuperare l'elenco delle stored procedure da esporre da interfaccia applicativa (con identificazione # dei relativi parametri di input). Corrisponde al parametro da passare al comando eXtraWay attraverso l'attributo 'stored': # <?xml version="1.0" encoding="ISO-8859-1"?> # <cmd stored="$.massive.getAvailableMassiveOperations"> # </cmd> nomeStoredProcedureLuaAzioniMassive=$.massive.getAvailableMassiveOperations
Oltre all'attivazione del modulo è possibile indicare il nome della stored procedure da invocare per ottenere l'elenco delle possibili azioni massive da mostrare in base alla pagina dell'applicazione (nomeStoredProcedureLuaAzioniMassive). Per maggiori informazioni si rimanda al paragrafo “Specifiche funzionali”
Diritti
Da interfaccia applicativa, non tutti gli utenti devono poter avviare le azioni massive. Per questo motivo è stato previsto un set di diritti (uno per ogni archivio xdocwaydoc o acl) attraverso i quali è possibile dare la visibilità della funzione agli operatori.
- acl.xml
<listof_rights> <applicativo cod="ACL">acl</applicativo> <common> <group label="Access Control List" tipo="base"> ... <group label="Diritti speciali"> ... <right cod="ACL-SP01" label="Avvio azioni massive (Stored Procedure LUA)"></right> </group> ... </group> </common> ... </listof_rights>
- docway.xml
<listof_rights> <applicativo cod="DW">xdocway</applicativo> <db nome="xdocwaydoc" cod="DOC"> <group label="Diritti dell'utente per DOCWAY" tipo="base"> ... <group label="Diritti speciali"> ... <right cod="DW-DOC-SP01" label="Avvio azioni massive (Stored Procedure LUA)"></right> </group> ... </group> ... </db> ... </listof_rights>
Se i file dei diritti acl.xml e docway.xml risultano personalizzati per un cliente (file presenti sul configuratore) occorre aggiungere le righe relative al permesso *-SP01 (avvio azioni massive) ai file personalizzati sul configuratore
Se su DocWay sono stati configurati più archivi (es. archivio periferico) occorre definire il diritto di azioni massive per ogni archivio docway definito sul file docway.xml
- docway_periferico.xml
<listof_rights> <applicativo cod="DW">xdocway</applicativo> <db nome="xdocwaydoc" cod="DOC"> <group label="Diritti dell'utente per DOCWAY" tipo="base"> ... <group label="Diritti speciali"> ... <right cod="DW-DOC-SP01" label="Avvio azioni massive (Stored Procedure LUA)"></right> </group> ... </group> ... </db> ... <db nome="xdocwaydoc-periferico" cod="DOCP"> <group label="Diritti dell'utente per DOCWAY" tipo="base"> ... <group label="Diritti speciali"> ... <right cod="DW-DOCP-SP01" label="Avvio azioni massive (Stored Procedure LUA)"></right> </group> ... </group> ... </db> ... </listof_rights>
Specifiche funzionali
Gli script LUA da realizzare per poter implementare le azioni massive su DocWay (o ACL) sono sintetizzati come segue:
- Uno script attraverso il quale recuperare l'elenco di azioni massive disponibili in base alla pagina dell'applicativo caricata (lista titoli, showdoc)
- Uno script per ogni azione massiva, corrispondente all'implementazione della specifica funzionalità prevista dall'azione
Di seguito è indicata la definizione del paradigma di comunicazione implementato per la comunicazione fra l'applicazione DocWay (o ACL) e gli script LUA.
Elenco azioni disponibili
Recupero delle possibili azioni massive in base alla pagina dell'applicativo DocWay (o ACL) nella quale si trova l'operatore
Richiesta
<?xml version="1.0" encoding="ISO-8859-1"?> <cmd stored="$.massive.getAvailableMassiveOperations"> <db>acl</db> <page>showtitles</page> <dbTable>@persona_interna</dbTable> </cmd>
Sono previsti i seguenti parametri:
- db - corrisponde al database eXtraWay al quale sono connesso
- page - corrisponde alla pagina dell'applicazione che sto caricando. I possibili valori sono showtitles e showdoc
- dbTable - tipologia di record sul quale sto operando (es. @persona_interna, @struttura_esterna, @doc, @fascicolo)
- N.B. Il parametro dbTable potrebbe essere vuoto. Un esempio è il caricamento della lista titoli da ricerca globale
Risposta
<?xml version="1.0" encoding="UTF-8"?> <rsp ack="1" e="0"> <dtl dtype="result"> <azioni_massive db="acl"> <azione titolo="attiva diritto FREEZE" descrizione="attiva il diritto FREEZE (persona interna)" stored="$.massive.acl_pi_right_set_FRZ"/> <azione titolo="disattiva diritto FREEZE" descrizione="disattiva il diritto FREEZE (persona interna)" stored="$.massive.acl_pi_right_unset_FRZ"/> <azione titolo="imposta data attivazione diritto FREEZE" descrizione="imposta la data di attivazione del diritto di FREEZE (persona interna)" stored="$.massive.acl_pi_right_set_DATAFRZ"> <parametri_input> <param id="valueToSet" label="data (aaaammgg)" help="Impostare la data (formato aaaammgg)" tipo="text" required="true"/> </parametri_input> </azione> <azione titolo="rimuovi data attivazione diritto FREEZE" descrizione="rimuovi la data di attivazione del diritto di FREEZE (persona interna)" stored="$.massive.acl_pi_right_unset_DATAFRZ"/> </azioni_massive> </dtl> </rsp>
La risposta contiene l'elenco delle azioni massive disponibili in base ai parametri indicati (/rsp/dtl/azioni_massive[@db=DB]/azione dove DB corrisponde all'archivio eXtraWay corrente).
Per ogni azione massiva sono indicati le seguenti impostazioni:
- Nome dell'azione che deve essere mostrato a livello di interfaccia applicativa (attributo @titolo)
- Descrizione dell'azione (attributo @descrizione) che sarà visualizzata come tooltip sul comando
- Nome della stored procedure LUA da invocare per avviare l'azione (attributo @stored)
Ogni azione massiva, inoltre, può prevedere l'immissione di parametri di input necessari alla propria invocazione. La definizione di questi parametri avviene attraverso l'xpath ./parametri_input/param. Per ogni parametro è possibili indicare:
- Nome del parametro da settare per l'avvio della stored procedure LUA (attributo @id)
- Etichetta da mostrare all'operatore nell'interfaccia di input dei parametri della stored procedure (attributo @label)
- Eventuale messaggio di aiuto da mostrare all'operatore nell'interfaccia di input dei parametri della stored procedure (attributo @help)
- Tipo di dato del parametro (attributo @tipo). In base alla tipologia del dato è possibile differenziare il campo da mostrare all'operatore
- Valori possibili: text
- Obbligatorietà del parametro (attributo @required). Se true il parametro di input è richiesto per l'avvio della stored procedure, in caso contrario si tratta di un parametro facoltativo