CRMK03 - Stati dossier¶
Sorgente: cbl/crmk03.cbl | Program-ID: CRMK03 | Tipo: Programma interattivo GUI (tabella di supporto a griglia)
Menu: CRM > Archivi > Dossier/Workflow > Stati dossier
Scopo¶
Gestisce l'anagrafica degli stati dossier (tabella CRMDOSST), cioe' i valori di stato che un dossier puo' assumere nel suo ciclo di vita (aperto, chiuso, sospeso, ecc.). Ogni stato ha un codice a un carattere, una descrizione e un "tipo stato" particolare (dds-stato-part): Standard, Apertura ("A"), Chiusura ("C") o Sospeso ("O"). Gli stati di apertura e chiusura sono usati dal resto del modulo per determinare il default di ricerca e la logica di apertura/chiusura dei dossier.
Il programma gestisce gli stati generali (senza tipo dossier: dds-tdo = spaces): la griglia carica e opera solo sui record con dds-tdo vuoto. La chiave dds-chia1 e' pero' composta da dds-tdo + dds-stato, quindi lo stesso codice stato puo' esistere anche associato a specifici tipi dossier (record gestiti altrove, es. CRMK08); questo programma, alla modifica della descrizione di uno stato generale, propaga la nuova descrizione anche ai record dello stesso codice associati a tipi dossier (modifica-descr).
La maschera e' a griglia unica con dettaglio inline: inserimento (Ctrl+A), modifica (Invio), cancellazione (Ctrl+E, bloccata se lo stato risulta usato). Dalla griglia, con F6, si accede a CRMK09 (gestione tipologie per stato). Puo' essere richiamato in modalita' "selezione" restituendo lo stato scelto in crmk03-out-stato.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| CRMDOSST | ISAM (k02) | I-O | Stati dossier (chiave dds-chia1 = dds-tdo + dds-stato; alt. dds-chia2 = dds-stato + dds-chia1) |
| CRMDOSSR | ISAM (k04) | Input | Anagrafica dossier: in cerca-usato verifica se lo stato e' usato da un dossier (dsa-stato, chiave 4) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crmk03.select, crmk03.fd, crmk03.wrk |
SELECT, FD, working storage (Screens) |
crmk03-01.scr, crmk03.decla, crmk03.prc |
Screen, declaratives, procedure I/O |
cogfiles.cpy |
Record FEURTAB |
crmdosst.cpy, crmdossr.cpy |
Record stati e anagrafica dossier (via FD Screens) |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy |
Working storage standard |
cogazien.cpy |
Dati azienda |
wgrid.cpy, utilgdad.cpy, utilgrid.cpy |
Supporto griglia (GRIDADMN) |
utilagprg.cpy |
Linkage sincronizzazione portale/KPN (SWN060) |
utilcrmk09.cpy |
Linkage CRMK09 (tipologie per stato, F6) |
utilcrmk03.cpy |
Linkage di chiamata (called/caller, out-stato) |
wcont.cpy, wcont1.cpy |
Linkage standard |
grave, mmmask, opengen, stato, stato1, winmsg |
Infrastruttura standard |
crmdosst.k02, crmdossr.k04 |
Chiavi secondarie (aggiunte a fine procedure) |
Logica¶
Struttura goto-driven (stile Screens legacy).
- apri: init,
open-files. Rileva la modalita' "selezione" (w-dc-called = "S"). Abilita i tasti funzione (Invio modifica, F3 conferma, Shift+F4 griglia, Ctrl+A/Ctrl+E, F8 aiuto; in selezione anche i tasti di selezione). Carica la bitmapdossiere crea il pulsante F6 (tipologie). - a4 / carica-griglia: scansione di CRMDOSST a partire da
dds-tdo = spaces; carica intm-tab(occurs 800) i soli record condds-tdovuoto (stati generali). Sedds-stato-parte' vuoto lo normalizza a "S" (Standard). Al termine eseguecarica-usatoche marca per ogni stato il flag "usato". - a-grid / a-accept-grid: gestione griglia. Invio in "A" apre il dettaglio (operazione "M"), Invio in "S" restituisce lo stato al chiamante. Ctrl+A inserisce, Ctrl+E cancella (con
c1-ctrl-cancche blocca se lo stato e' usato). Shift+F4 apre GRIDADMN. F6 chiama CRMK09. - a-riga-dettaglio + a-tm-r-*: accept di stato, descrizione, tipo stato (
tm-r-stato-part, gestito via COGS60W). Lo stato "T" non e' ammesso (riservato a "Tutti"). - x-controlla-tm-r-stato-part: se il tipo stato e' "A" (apertura) o "C" (chiusura),
controlla-statoimpedisce di avere due stati generali dello stesso tipo particolare (unicita' dello stato di apertura e di chiusura). - a-fine-dettaglio: validazione, conferma custom, scrittura (
wr-crmdosst) o riscrittura (rwr-crmdosst) condds-tdo = spaces; se il tipo stato e' "S" azzeradds-stato-part. Esegue poimodifica-descr(propagazione descrizione ai record dello stesso stato associati a tipi dossier) ex-sincronizza-kpn, quindi aggiorna la griglia via GRIDADMN. - cerca-usato: uno stato risulta "usato" se esiste almeno un record CRMDOSST con lo stesso
dds-statomadds-tdovalorizzato (associazione a tipo dossier), oppure se esiste almeno un dossier con quello stato (CRMDOSSR chiave 4). - c-cancella: rilettura in lock e
del-crmdosst, seguita dax-sincronizza-kpn.
CALL¶
| Programma | Scopo |
|---|---|
CRMK09 |
Gestione tipologie per stato dossier (F6) |
GRIDADMN |
Gestione/personalizzazione griglia (prepara, add/modify record, svuota) |
SWN060 |
Sincronizzazione della chiave stato dossier verso il portale/KPN (x-sincronizza-kpn, agprg-ope = "ESPORTA-KEY") |
Note¶
- Il codice usa
PERFORM ... THRUeGO TO(stile Screens pre-convenzioni attuali). - Il programma opera esclusivamente sugli stati generali (
dds-tdo = spaces). La modifica della descrizione di uno stato generale viene propagata (paragrafomodifica-descr, marcatore 01/07/2022) a tutti i record CRMDOSST con lo stesso codice stato madds-tdovalorizzato, per mantenere allineate le descrizioni. - Il codice stato "T" e' riservato al valore "Tutti" usato nei filtri (vedi CRMK11) e non e' inseribile.
- Unicita' garantita per gli stati di tipo Apertura e Chiusura tra gli stati generali.
- La cancellazione e' bloccata se lo stato risulta usato (da associazioni a tipi dossier o da dossier reali): unico controllo di integrita' del sotto-modulo tra i tre archivi di supporto.
- La sincronizzazione portale (SWN060) e' invocata con
ON OVERFLOW CONTINUE: l'assenza del modulo non blocca il salvataggio.