Vai al contenuto

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 bitmap dossier e crea il pulsante F6 (tipologie).
  • a4 / carica-griglia: scansione di CRMDOSST a partire da dds-tdo = spaces; carica in tm-tab (occurs 800) i soli record con dds-tdo vuoto (stati generali). Se dds-stato-part e' vuoto lo normalizza a "S" (Standard). Al termine esegue carica-usato che 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-canc che 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-stato impedisce 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) con dds-tdo = spaces; se il tipo stato e' "S" azzera dds-stato-part. Esegue poi modifica-descr (propagazione descrizione ai record dello stesso stato associati a tipi dossier) e x-sincronizza-kpn, quindi aggiorna la griglia via GRIDADMN.
  • cerca-usato: uno stato risulta "usato" se esiste almeno un record CRMDOSST con lo stesso dds-stato ma dds-tdo valorizzato (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 da x-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 ... THRU e GO 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 (paragrafo modifica-descr, marcatore 01/07/2022) a tutti i record CRMDOSST con lo stesso codice stato ma dds-tdo valorizzato, 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.