Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 22-Jul-2016 12:21 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 added 119 lines
%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! Obiettivo\\
\\
La finalità dei promemoria è quella di poter avere una notifica che viene emessa tramite un messaggio a popup in Loocup.\\
Tipicamente i promemoria sono legati ad un impegno di workflow, ma è possibile creare anche promemoria indipendenti dagli impegni.\\
\\
In estrema sintesi, quindi:\\
* Un promemoria è un record di database intestato a oggetto (utente)/data/ora.\\
* I promemoria aperti vengono scanditi periodicamente e, quando data/ora vengono raggiunte o superate, vengono emessi sul Looc.up dell'utente interessato, che può posporli o chiuderli.\\
\\
!!! Prerequisiti\\
\\
È necessario avere installato almeno la versione V3R2M121109 di Loocup.\\
È necessario che sia presente la libreria SMEUPUIDQ in cui creare la coda dati per l'emissione dei promemoria.\\
\\
!!! Descrizione del funzionamento\\
\\
!! Scrittura dei promemoria\\
\\
I promemoria sono record del file __WFPROM0F__ intestati a un oggetto destinatario tramite i campi F3TIPO, F3PARA e F3CODI; attualmente tale oggetto deve essere un elemento di TAB£U.\\
Un promemoria destinato ad un gruppo o ad una lista di utenti viene quindi esploso scrivendo una serie di record (uno per ciascun utente), in modo da poter gestire separatamente per ciascun utente lo stato del record così come la posposizione del promemoria.\\
I promemoria possono essere scritti:\\
* Automaticamente, ad esempio come __conseguenza esterna__ di qualche impegno di workflow (e.g. all'attivazione dell'impegno viene impostato un promemoria alla sua scadenza).\\
* In modo manuale (come in un calendario/scadenzario) realizzando una scheda di interfaccia utente.\\
\\
!! Emissione dei promemoria\\
\\
In sintesi:\\
* Per ogni ambiente di Sme.up in cui sono attivi i promemoria è attivo un job che scandisce periodicamente i promemoria attivi;\\
* Per ogni promemoria attivo per cui è stata raggiunta o superata la data/ora di emissione viene scritto un XML di messaggio in una apposita coda dati;\\
* Sui Looc.up degli utenti è attivo un listener che legge la coda dati ed emette in locale i promemoria trovati per l'utente.\\
\\
L'utente una volta apparso il promemoria, sceglie una di queste tre azioni:\\
* Non ricordarmelo più\\
* Ripianifica\\
* Ricordamelo dopo\\
\\
* Se sceglie la prima il promemoria non esce più\\
* Se sceglie la seconda apre una scheda che permette di pianificare quando far uscire il promemoria la prossima volta\\
* Se sceglie la terza (o chiude semplicemente la finestra del messaggio) mostra il promemoria dopo un intervallo di tempo indicato in tabella WFP sul tipo promemoria\\
\\
E' possibile aggiungere altre azioni o modificare il messaggio di secondo livello tramite la exit\\
WFPROM00_* il cui suffisso è tabellato in WF1.\\
\\
!!! Impostazione dell'ambiente per l'emissione dei promemoria\\
\\
Servono:\\
* Un job per ogni ambiente in cui sono attivi i promemoria;\\
* Una coda dati;\\
* Un listener attivo sui Looc.up degli utenti.\\
\\
!! Tabelle da impostare\\
[Impostazioni generali workflow|MBDOC_OGG-TA_WF1]\\
[Tipo Promemoria|MBDOC_OGG-TA_WFP]\\
L'oggetto __F3__ promemoria ha come codice un contatore definito nell'elemento __OG.F3__ della tabella __CRNWF__.\\
\\
!! Schedulazione del Job di scansione dei promemoria\\
\\
L'emissione dei promemoria avviene tramite la schedulazione di un JOB che lanci il programma WFPROM00 ogni mattina.\\
\\
Tale programma va schedulato:\\
* Una volta con parametro 'CLEAR' per eseguire la pulitura della coda (pulisce i promemoria scritti per tutti gli ambienti) - Es. CALL PGM(WFPROM00) PARM('CLEAR').\\
* N volte, una per ambiente, con parametro 'START' per far partire il controllo dei promemoria e la loro scrittura sulla coda - Es. CALL PGM(WFPROM00) PARM('START').\\
NB: La schedulazione deve essere effettuata tramite l'opportuna scheda di schedulazione SMEUP, in modo che sia possibile lanciare il programma con l'ambiente corretto.\\
Per questo si rimanda a:\\
[Nuovi cmd B£QQ00,B£QQ01 e WRKJOBSCDE in scheda|MBDOC_NWS-NWS001549]\\
[Lancio/Esecuzione Programma batch|MBDOC-AXBASE_SM]\\
\\
Il programma si chiude una volta superato l'orario impostato nella tabella di configurazione __WF1__.\\
Il programma esegue un ciclo di controllo sul file WFPROM0F restando in attesa per un tempo indicato in minuti nella tabella __WF1__.\\
Sempre nella stessa tabella viene indicato il tempo dopo il quale reinviare un messaggio se su di esso l'utente non ha eseguito nessuna azione di risposta (non ha cioè posposto il promemoria, nè lo ha ripianificato, nè lo ha chiuso.)\\
\\
__N.B.:__Trattandosi di un lavoro sempre attivo, prestare attenzione a schedularlo su una coda dedicata oppure su una coda *NOMAX\\
\\
!! Creazione della Coda dati\\
\\
Il programma di scansione dei promemoria scrive l'XML dei messaggi da emettere in una singola coda dati con chiavi UTENTE e AMBIENTE.\\
Il nome della coda da creare è anch'esso impostato nella tabella __WF1__; la coda viene creata automaticamente in __SMEUPUIDQ__ all'avvio del programma WFPROM00.\\
\\
!! Attivazione del Listener sulla coda dati dei promemoria\\
\\
La lettura della coda avviene tramite un apposito listener di loocup attivabile tramite SCP_CLO aggiungendo le righe nello script di ambiente A_codiceambiente\\
\\
%%quote
|. ::C.SEZ Cod="Listener"
|. ::C.LST Cod="£01" Txt="Listener coda con chiave" Add="localhost" Protocol="JAVA" Wiz="LST_DIR" Param="class=Smeup.smeui.uimainmodule.externallistener.java.keyedqueues.UIKeyedQueueListenerManager;QNAM=WFPROM;QLIB=SMEUPUIDQ;WTO=60" LoadOnStartup="1" MaxDelay="60000" SendEvt="1" TypeLog="C1S0" MaxLog="1" NumDayLog="1"
/%
----
\\
I parametri da specificare sono la coda dati da leggere, la libreria in cui si trova e l'intervallo di attesa tra un tentativo di lettura e il successivo.\\
I parametri presenti nelle righe sopra riportate indicano di leggere la coda dati WFPROM nella libreria SMEUPUIDQ ogni 60 secondi (ogni lettura recupera un solo messaggio e poi si mette in attesa per il timeout specificato prima di leggere il messaggio successivo).\\
\\
!! Verifica della corretta scrittura dei promemoria sulla coda dati\\
Per verificare che i promemoria siano stati correttamente scritti sulla coda dati nell'ambiente nel quale si sono attivati i promemoria accedere alla scheda del modulo WFBASE e cliccare sulla chiave di menù __Set'n Play Promemoria__ sotto la voce __SETUP__.\\
La scheda WFPROM che viene aperta permette di visualizzare il contenuto del file WFPROM0F, il contenuto della coda dati e la scheda del listener da cui è possibile verificare se il listener è attivo e visionarne il log.\\
\\
\\
!!! Modalità di calcolo della data/ora di emissione del promemoria\\
\\
La data ora di emissione del promemoria può essere calcolata in due modi (V2 WF_23)\\
* 1 - Orario assoluto : la data ora di emissione viene indicata direttamente nel record del promemoria.\\
* 2 - Tempo prima della data riferim. : la data ora di emissione viene ricalcolata in base alla data di riferimento (sul record vengono indicati giorni, ore e minuti di anticipo rispetto alla data di riferimento ai quali emettere la notifica).\\
\\
In caso la modalità di calcolo della data ora sia "2 - Tempo prima della data riferim.", la data di riferimento è indicata nella tabella __WFP__ (Tipo promemoria) tramite i valori del V2/WF_24 :\\
* 0 - Libero;\\
* 1 - Data attivazione impegno;\\
* 2 - Data rich.esec.impegno;\\
* 3 - Data rich.esec.ordine.\\
\\
Nella tabella __WFP__ viene anche indicata la modalità di calcolo della data/ora utilizzata per inizializzare il record di WFPROM0F tramite la /copy £WFF. La £WFF consente comunque la forzatura di una modalità di calcolo differente.\\
\\
E' anche possibile creare dei promemoria non collegati ad un impegno di workflow utilizzando un tipo promemoria la cui data di riferimento abbia valore "0 - Libero" (a modello è presente l'elemento £02).\\
\\
\\
This page has only one version
«