Vai al contenuto

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 con crmk15-tip-ogg = "A".
  • "O" (Oggetto): step di un'istanza di workflow agganciata a un dossier; modalita' attivata quando il parametro operatore wo-parametro = "O" oppure quando il programma e' chiamato con crmk15-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: dimensione tm-tab in memoria.
  • La modalita' operativa (A / O) e' decisa da wo-parametro per l'avvio dal menu ("Workflow in esecuzione" setta O), oppure dal parametro crmk15-tip-ogg se 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 crmwkfts in apertura del paragrafo a4 rilascia il lock prima di tornare ad accettare nuovi parametri.
  • La gestione del dettaglio "esteso" dello step (tm-r-note da 2000 byte ecc.) e' delegata a CRMK16, richiamato con F6.