CRMK15 - Gestione step workflow (modello e istanza)¶
Sorgente: cbl/crmk15.cbl | Program-ID: CRMK15 | Tipo: Programma interattivo GUI
Menu: CRM > Operativo > Gestione dossier > Workflow in esecuzione
Scopo¶
Gestisce gli step di un workflow lavorando sulla tabella CRMWKFST. Opera in due modalita' a seconda del valore di tm-tip-ogg:
"A"(Anagrafica): step del modello workflow; tipicamente richiamato da CRMK06 concrmk15-tip-ogg = "A"."O"(Oggetto): step di un'istanza di workflow agganciata a un dossier; modalita' attivata quando il parametro operatorewo-parametro = "O"oppure quando il programma e' chiamato concrmk15-tip-ogg = "O".
Per ogni step gestisce: numero progressivo, tipo attivita', descrizione, vincoli di precedenza (min-padri), esecuzione automatica e inserimento automatico, configurazione allarmi (prima/dopo, anticipo, tipo attivita' allarme, flag obbligatorio, nominativo) e note.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| CRMWKFTS | ISAM | I-O | Testata workflow (lettura per validare il workflow scelto) |
| CRMWKFST | ISAM | I-O | Step del workflow (chiave: tip-ogg + tdo + cod + ver + step) |
| CRMDOSTP | ISAM | Input | Tipi dossier (validazione tm-tdo) |
| FEURTAB | ISAM | Input | Tabella features/abilitazioni utente |
| (altre tabelle aperte tramite copybook delle utilita' chiamate) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crmk15.select, crmk15.fd, crmk15.wrk |
SELECT, FD, working storage (Screens) |
crmk15-01.scr, crmk15.decla, crmk15.prc |
Screen, declaratives, procedure I/O |
cogfiles.cpy |
Record FEURTAB |
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy |
Working storage standard |
cogazien.cpy |
Dati azienda |
wgrid.cpy, utilgdad.cpy |
Supporto griglia (GRIDADMN) |
utilncnf.cpy |
Linkage RNEWCONF |
utilcrm017.cpy |
Linkage CRM017 (selezione tipo attivita' tecnico) |
utilcrmk01.cpy |
Linkage CRMK01 (selezione tipo dossier) |
utilcrmk06.cpy |
Linkage CRMK06 (selezione workflow) |
utilcrmk11.cpy |
Linkage CRMK11 (ricerca avanzata dossier) |
utilcrmk16.cpy |
Linkage CRMK16 (dettaglio step) |
utilcrmk15.cpy |
Linkage di chiamata (tip-ogg, in-, out-) |
wcont.cpy, wcont1.cpy |
Linkage standard |
stato, stato1, winmsg, grave, opengen, mmmask |
Infrastruttura standard |
Logica di elaborazione¶
Inizializzazione (apri): Init programma, apertura file, lettura azienda, lettura configurazione RNEWCONF (colore warning, tipo numerazione pratica). Lettura wo-parametro -> dep-parametro. Se chiamato (crmk15-called = CRMK15) imposta w-dc-tip-ogg, w-dc-tdo, w-dc-cod, w-dc-ver dai parametri; se tip-ogg = "O" forza dep-parametro = "O". Configura tasti funzione (Ctrl+A, Ctrl+E, F8, F1, F6, F9, Shift+F4). Carica bitmap custom per pulsante F6 (gestione dettaglio step).
Il titolo della maschera viene composto in base a dep-parametro: m-crmk15-2-1 (modello) o m-crmk15-3-1 (istanza).
Selezione chiave workflow (a-tm-tdo, a-tm-cod, a-tm-ver, a-tm-cod-n):
- tm-tdo: F8 chiama CRMK01.
- tm-cod: F8 chiama CRMK06 (selezione workflow per quel tipo dossier).
- tm-ver: F8 chiama CRMK06; proponi-ver propone la versione corrente.
- tm-cod-n (numero dossier, solo in modalita' "O"): F9 chiama CRMK11 (ricerca avanzata dossier).
In modalita' chiamata (w-dc-called = "S"), la fase di input parametri e' saltata: si va direttamente al caricamento griglia.
Caricamento griglia (a-fine-dati): Lettura in lock di CRMWKFTS con la chiave costruita; scansione di CRMWKFST con chiave testata; accumulo step in tm-tab (occurs 800).
Loop griglia (a-grid / a-accept-grid):
- Invio -> modifica step (controllo su ctrl-wkfmv se in modalita' "O": rifiuta la modifica se ci sono movimenti registrati)
- Ctrl+A -> nuovo step (numero proposto come consecutivo all'ultimo)
- Ctrl+E -> cancellazione step (con conferma)
- F6 -> chiama CRMK16 per gestione dettaglio dello step corrente, poi rilegge lo step da CRMWKFST e aggiorna la riga in griglia
- Shift+F4 -> personalizzazione griglia (GRIDADMN)
Dettaglio riga (a-riga-dettaglio): In modifica fa rd-crmwkfst-lk. Accept dei campi: tm-r-step, tm-r-att-tip (con s60 combo), tm-r-des, tm-r-min-padri, tm-r-ese-autom, tm-r-autom, tm-r-tat (F8 -> CRM017), tm-r-fl-nom, tm-r-fl-all-prima, tm-r-fl-all-dopo, tm-r-ta-qta, tm-r-ta-unita, tm-r-fl-all-obb, tm-r-note. Mutua esclusione tra allarme prima e allarme dopo (se uno e' "S" l'altro va a "N").
In fase di salvataggio: rilettura in lock di CRMWKFST, scrittura via wr-crmwkfst (insert) o rwr-crmwkfst (modifica), sincronizzazione griglia via GRIDADMN.
Resize: ricalcolo dimensioni griglia su ntf-resized.
Chiamate a sottoprogrammi¶
| Programma | Utilizzo |
|---|---|
CRMK01 |
Selezione tipo dossier (F8 su tm-tdo) |
CRMK06 |
Selezione workflow/versione (F8 su tm-cod/tm-ver) |
CRMK11 |
Ricerca avanzata dossier (F9 su tm-cod-n) |
CRMK16 |
Gestione dettaglio step (F6) |
CRM017 |
Selezione tipo attivita' tecnico (F8 su tm-r-tat) |
GRIDADMN |
Gestione griglia |
RNEWCONF |
Lettura configurazione (colore warning, tipo numerazione) |
Note implementative¶
- Autore: Gianluca Tonti (09/03/2007).
k-max-ele-tab = 800: dimensionetm-tabin memoria.- La modalita' operativa (
A/O) e' decisa dawo-parametroper l'avvio dal menu ("Workflow in esecuzione"settaO), oppure dal parametrocrmk15-tip-oggse chiamato come subroutine. - In modalita' "O" la modifica di uno step e' subordinata al controllo
ctrl-wkfmv: se sono gia' presenti movimenti su quello step la modifica e' rifiutata. - L'
unlock crmwkftsin apertura del paragrafoa4rilascia il lock prima di tornare ad accettare nuovi parametri. - La gestione del dettaglio "esteso" dello step (
tm-r-noteda 2000 byte ecc.) e' delegata a CRMK16, richiamato con F6.