CRMK21 - Ricerca e situazione dossier/workflow¶
Sorgente: cbl/crmk21.cbl | Program-ID: CRMK21 | Tipo: Programma interattivo GUI (ricerca a due pagine con griglia)
Menu: CRM > Operativo > Gestione dossier > Situazione Workflow
Scopo¶
Fornisce la ricerca dei dossier CRM e la visualizzazione della loro situazione di workflow: per ogni dossier aperto (con workflow assegnato) mostra lo step attivo, l'attivita' collegata, l'operatore assegnatario, la data/ora di scadenza e lo stato, evidenziando in colore i workflow in ritardo. Dalla griglia l'utente accede alle funzioni operative sul dossier (destinatari, attivita', gestione step, dettaglio, agenda AreaWkAd) e puo' eliminare o sbloccare un dossier.
La maschera e' organizzata su due pagine (tab): pagina 1 con i criteri di filtro, pagina 2 con la griglia dei risultati. I risultati vengono materializzati in un file di transito temporaneo COGTRANS (per operatore), che consente lo scorrimento paginato e l'ordinamento su piu' chiavi.
Nota: il commento di testata del sorgente riporta "Ricerca dossier"; la voce di menu "Situazione Workflow" ne evidenzia l'uso operativo per il monitoraggio degli step di workflow. Le due descrizioni sono coerenti: la funzione reale e' la ricerca dossier con vista sulla situazione workflow.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | I-O | Tabella features/abilitazioni utente |
| COGTRANS | ISAM (temporaneo, #$CRMK21.<oper>) |
I-O | File di transito con i dossier estratti (chiavi: trs-chia1 + 3 chiavi alternate per ordinamento) |
| tran-crmk04 | file temporaneo | Input | Insieme dossier che soddisfano la ricerca testuale (da CRMK04) |
| CRMDOSSR | ISAM | Input | Testate dossier (scansione principale, chiave k04) |
| CRMDOSAN | ISAM | Input | Nominativi associati al dossier (dsn-*) |
| CRMDOSCP | ISAM | Input | Controparti del dossier (dsc-*) |
| CRMDOSNT | ISAM | Input | Note dossier (dnt-*) |
| CRMDOSTP | ISAM | Input | Tipologie dossier (dtp-*) |
| CRMDOSST | ISAM | Input | Stati dossier (dds-*, individua lo stato "chiuso") |
| CRMDOSCO/CRMDOSMP/CRMDOSRS | ISAM | Input | Descrizioni codice operazione / mezzo provenienza / raggruppamento statistico |
| CRMANAGR | ISAM | Input | Anagrafica nominativi CRM (cra-*) |
| CRMWKFMV | ISAM | Input/I-O | Movimenti/step di workflow (wkm-*); riaperto I-O per sblocco |
| CRMWKFST | ISAM | Input | Anagrafica step workflow (wks-*, descrizione step) |
| CRMATTIV | ISAM | Input/I-O | Attivita' collegate agli step (crt-*); riaperto I-O per sblocco |
| CRMATTOP | ISAM | Input | Operatori assegnati all'attivita' (crp-*) |
| CRMUSERS | ISAM | Input | Profilo utente CRM (visibilita' nominativi, amministratore dossier) |
| PRNTOPER | ISAM | Input | Anagrafica operatori (ptop-*) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crmk21.select, crmk21.fd, crmk21.wrk |
SELECT, FD, working storage (Screens) |
crmk21-01.scr, crmk21.decla, crmk21.prc |
Screen, declaratives, procedure I/O |
feurtab.fd, cogfiles.cpy |
Record FEURTAB |
tran-crmk04.fd, tran-crmk04.cpy, tran-crmk04.k01 |
File temporaneo esiti ricerca testuale |
k-u10.cpy |
Costanti U10 |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy |
Working storage standard |
cogazien.cpy |
Dati azienda |
wgrid.cpy, utilgdad.cpy, utilpggr.cpy, fscrol2.cpy |
Supporto griglia paginata (GRIDADMN) |
utilareawkad.cpy |
Linkage AREAWKAD (agenda/stato workflow) |
utilcrm051.cpy, utilcrm056.cpy |
Linkage CRM051 (attivita'), CRM056 (destinatari) |
utilcrmk01.cpy, utilcrmk04.cpy, utilcrmk10.cpy, utilcrmk15.cpy, utilcrmk19.cpy, utilcrmk25.cpy |
Linkage sottoprogrammi CRMK* |
utilcrms02.cpy, utilwp04.cpy |
Linkage CRMS02 (ricerca nominativo), WP04 (ricerca operatore) |
utilncnf.cpy |
Linkage RNEWCONF |
acucobol.def |
Definizioni ambiente |
wcont.cpy, wcont1.cpy |
Linkage standard |
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy |
Infrastruttura standard |
dtab.cpy, sendwp04.cpy |
Supporto |
crmdossr.k04, cogtrans.k01..k04 |
Chiavi CRMDOSSR e COGTRANS |
Logica di elaborazione¶
Inizializzazione (apri): Init programma, apertura file, configurazione tasti (F1 configura, F3 modifica, F7 filtra, Shift+F4 griglia, Shift+F5 esporta Excel, F8 aiuto/dettaglio, Ctrl+E elimina). Legge la configurazione RNEWCONF (x99-confi). Compone il nome del file di transito temporaneo COGTRANS con directory temp, program-id e codice operatore. Carica 5 pulsanti custom (F4 attivita', F6 gestione, F2 destinatari, F5 attivita', F10 stato workflow).
Pagina 1 - filtri (a-pagina-1 e accept): Carica il profilo dell'operatore (carica-dati-ope da CRMUSERS: flag di visibilita' per fornitori/clienti/prospect/altri e flag amministratore dossier). Accept dei criteri: identificativo dossier, ordinamento, nominativo (via CRMS02), tipologia (F8 -> CRMK01), descrizione, note, controparte, operatore (F8 -> WP04). La visibilita' del nominativo per tipo anagrafica e' filtrata in base ai flag del profilo. F7 conferma i filtri e passa alla griglia.
Costruzione risultati (a-ricarica-dati / carica-dati): Se i filtri sono cambiati, ricrea COGTRANS (close/open output/open i-o). Se sono valorizzati descrizione, note o controparte, invoca CRMK04 (z-crmk04-ricerca) per ottenere il file temporaneo tran-crmk04 con i dossier che soddisfano la ricerca testuale. Poi scansiona CRMDOSSR (chiave 4) applicando i filtri:
- Esclude dossier nello stato "chiuso" (w-stato, individuato in carica-stato da CRMDOSST con dds-stato-part = "C").
- Esclude dossier senza workflow assegnato o chiusi manualmente.
- Applica i filtri su identificativo, tipologia, nominativo (posizione 1 o 2 su CRMDOSAN), esito ricerca testuale (tran-crmk04), operatore (ctrl-ope-att: operatore assegnato ad almeno un'attivita' aperta e non eseguita).
Per ogni dossier che passa i filtri costruisce un record COGTRANS arricchito con nominativi (carica-nomi), controparti (carica-controparte), note, descrizioni codici, stato e situazione step (carica-step).
Situazione step (carica-step): Scorre a ritroso i movimenti workflow CRMWKFMV del dossier (esclude gli step eliminati wkm-stato = "E"), individua lo step attivo, conta il numero di step aperti (trs-num-step), memorizza l'ultimo progressivo, legge la descrizione step (CRMWKFST) e l'attivita' collegata (CRMATTIV) con relativa data/ora di scadenza. Determina l'operatore (carica-ope da CRMATTOP; se piu' operatori imposta il flag "Piu' destinatari"). Se il workflow non ha alcuno step aperto emette un avviso.
Griglia (a-grid): Popolamento paginato via GRIDADMN (z-costruisci-grid, x-add-record-to-grid). Il colore riga (colore-griglia) marca in ritardo i workflow con data/ora attivita' precedente alla data/ora di sistema, usando il colore configurato. Funzioni disponibili sulla riga selezionata:
- F2 (w-pbc-visible) -> CRM056 gestione destinatari (per step iniziali).
- F3 (a1-sblocca-workflow) -> sblocco workflow: riapre l'ultimo step (wkm-stato = "A") e la relativa attivita' (crt-fl-ese = "N"); workaround per workflow rimasti bloccati da errori di runtime.
- F4 -> CRM051 attivita' del dossier (periodo anno corrente).
- F5 -> CRMK19 attivita' (per step successivi al primo).
- F6 -> CRMK15 gestione step (modalita' "O" ogg).
- F8 -> CRMK10 dettaglio dossier (ope "V").
- F10 -> AREAWKAD stato/agenda workflow (se abilitato da configurazione).
- Ctrl+E -> eliminazione dossier via CRMK25 (solo amministratore dossier): alla conferma cancella il record da COGTRANS.
- Shift+F4 -> GRIDADMN personalizzazione; Shift+F5 -> esportazione Excel della griglia.
Chiusura (fine): Chiude e cancella i file temporanei COGTRANS e tran-crmk04.
Chiamate a sottoprogrammi¶
| Programma | Utilizzo |
|---|---|
CRMK04 |
Ricerca testuale su descrizione/note/controparte (produce tran-crmk04) |
CRMK01 |
Selezione tipologia dossier (F8) |
CRMS02 |
Ricerca/selezione nominativo (accept nominativo) |
WP04 |
Ricerca/selezione operatore (F8 su operatore) |
CRM056 |
Gestione destinatari (F2) |
CRM051 |
Attivita' del dossier (F4) |
CRMK19 |
Attivita' workflow (F5) |
CRMK15 |
Gestione step del workflow (F6) |
CRMK10 |
Dettaglio dossier (F8) |
CRMK25 |
Eliminazione dossier (Ctrl+E) |
AREAWKAD |
Stato/agenda workflow (F10) |
GRIDADMN |
Gestione griglia paginata |
RNEWCONF |
Lettura/modifica configurazione |
Configurazione (RNEWCONF)¶
Gruppo/chiavi lette in x99-confi (pacchetto C):
| Gruppo | Chiave | Uso |
|---|---|---|
| dossier | ricerca-dossier-ord-default | Ordinamento di default della ricerca |
| crm-agenda | colore-att-wf-ritardo | Colore evidenziazione workflow in ritardo |
| dossier | etichetta-mezzi-prov | Etichetta colonna mezzi di provenienza |
| dossier | etichetta-ragg-stat | Etichetta colonna raggruppamento statistico |
| dossier | etichetta-nominativo-primario | Etichetta colonna nominativo primario |
| dossier | etichetta-nominativo-secondario | Etichetta colonna nominativo secondario |
| dossier | abilito-areawkad | Abilitazione pulsante F10 stato workflow (AREAWKAD) |
Gestione errori¶
- Errore in apertura del file di transito
COGTRANS-> messaggio e uscita. - La scansione dossier e' presidiata da filtri sequenziali che scartano i record non pertinenti (stato chiuso, senza workflow, chiusi manualmente, fuori filtro).
- Workflow senza step aperto -> avviso all'utente (
vbx-msg-warning) incarica-step-fine. - Lo sblocco workflow (F3) opera solo se l'ultimo step del dossier viene trovato su
CRMWKFMV.
Note implementative¶
- Autore: Gianluca Tonti (19/04/2007), direttamente GUI.
k-max-ele-tab = 900: dimensione della tabella righe in memoria; la griglia e' comunque paginata suCOGTRANS.- L'ordinamento della griglia (
tm-ord) seleziona a runtime la chiave di lettura diCOGTRANStratrs-chia1(default),chia2(data),chia3(id),chia4(nominativo). a1-sblocca-workflowe' un workaround esplicito per recuperare workflow rimasti bloccati da errori di runtime: riapre l'ultimo step e l'attivita' collegata affinche' possano essere rieseguiti.configuration section: usasource-computer/object-computer acu-cobol.