CRM018 - Gruppi di informazioni CRM¶
Sorgente: cbl/crm018.cbl | Program-ID: CRM018 | Tipo: Programma interattivo (gestione tabella / dual-use aiuto)
Menu: CRM > Archivi > Gruppi di Informazioni
Scopo¶
CRM018 gestisce la tabella dei gruppi di informazioni CRM (CRMINFGR), usati per raggruppare le informazioni delle schede nominativo del modulo clienti potenziali. Ogni gruppo e' composto da un codice numerico, una descrizione e un numero di informazioni obbligatorie (num-obb).
Il programma e' dual-use, gestito tramite una griglia amministrata da GRIDADMN. Da menu parte in modalita' aggiornamento ("A") con inserimento (Ctrl+A), modifica (Invio) e cancellazione (Ctrl+E) dei gruppi. Se invocato come sottoprogramma di aiuto (crm018-called = "CRM018"), parte in modalita' selezione ("S"): l'operatore scorre l'elenco e con Invio restituisce codice e descrizione al chiamante (crm018-out-cod/crm018-out-des).
E' il piu' semplice dei quattro archivi CRM di questo gruppo: la cancellazione e' fisica e non prevede controlli di integrita' referenziale (il paragrafo c1-ctrl-canc pone incondizionatamente c-ok = 'S'). Ogni modifica e' sincronizzata verso KPN via SWN043.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri file aziendali (cogfiles.cpy) |
| CRMINFGR | ISAM | I-O | Gruppi di informazioni (igr-chia1 = igr-cod; igr-des, igr-num-obb) |
| CRMINFOR | ISAM | - | Dizionario informazioni (FD gestito da Screen, presente nell'FD generato) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crm018.select, crm018.fd, crm018.wrk, crm018-01.scr, crm018.prc, crm018.decla |
Screen Designer |
feurtab.fd, cogfiles.cpy |
FEURTAB |
wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy |
Working storage standard + dati azienda |
utilgdad.cpy |
Linkage GRIDADMN |
utilu20.cpy |
Linkage COGU20 |
utilncnf.cpy |
Linkage RNEWCONF |
utilagprg.cpy |
Linkage SWN043 (sincronizzazione KPN) |
utilcrm018.cpy |
Linkage di chiamata dual-use (crm018-caller/called/in-cod/out-cod/out-des) |
stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy |
Copybook di fine procedure |
La procedure division using stringhe util-crm018 riceve l'area comune e il copybook di linkage dual-use.
Logica¶
Struttura goto-driven a stati con griglia amministrata via GRIDADMN.
- apri: init,
z-99-init-program,open-files,rd-azi; imposta la modalita' (S secrm018-called, altrimenti A); abilita F1 configura, Invio, Invio modifica, F3 selezione/modifica (se chiamato), Shift+F4, Ctrl+A, Ctrl+E; prepara la griglia (z-prepara-tm-grid,z-costruisci-controlli). - a10 / a10-loop: scorre CRMINFGR (
st-crminfgr-notmin+rdnxt-crminfgr) e riempietm-tabcon codice, descrizione e numero obbligatorie. - a30 / a-grid / a-accept-grid: costruisce la griglia e attende l'input. Esc esce, F1 gestisce le configurazioni, Shift+F4 apre l'admin griglia (GRIDADMN via GRIDADMN). F3 commuta modalita' S/A. Invio: in aggiornamento apre il dettaglio in modifica, in selezione restituisce codice/descrizione al chiamante. Ctrl+A inserisce, Ctrl+E cancella (previa conferma).
- a-riga-dettaglio ... a-tm-cod / a-tm-des / a-tm-num-obb: accept sequenziale dei tre campi. In inserimento il codice e' editabile e verificato univoco (rilettura CRMINFGR); in modifica il codice e' bloccato.
- a-riga-dettaglio-fine: valida (
x-imposta-conferma), aggiorna la riga in griglia (Add-Record o Modify-Record), poi scrive/riscrive CRMINFGR (wr-crminfgr/rwr-crminfgr) e sincronizza con KPN (x-sincronizza-kpn= SWN043, chiave"C" + igr-chia1). - c-cancella: rilegge il record in lock (
rd-crminfgr-lk), eseguedel-crminfgre sincronizza con KPN. La cancellazione e' fisica. - c1-ctrl-canc: nessun controllo di integrita' (imposta sempre
c-ok = 'S'). - fine / z-chiudi:
z-close-files, chiude la window,exit program.
Configurazioni (RNEWCONF)¶
Pacchetto "C" (x99-confi), letto quando si gestiscono le configurazioni da F1:
| Chiave | Gruppo | Uso |
|---|---|---|
gruppo-aziende |
abilita |
Flag gruppo aziende (tm-cfg-abil-gruppo) |
CALL¶
| Programma | Scopo |
|---|---|
GRIDADMN |
Amministrazione e riempimento della griglia |
SWN043 |
Sincronizzazione gruppo informazioni verso KPN |
RNEWCONF |
Lettura configurazione gruppo aziende |
COGU20 |
Editor numerico (via copybook utilu20.cpy) |
Note¶
- Il codice usa
PERFORM ... THRUeGO TOin modo estensivo (stile legacy). - Dual-use: il chiamante imposta
crm018-called = "CRM018"per aprire in selezione e ricevecrm018-out-cod(codice numerico su 4 cifre) ecrm018-out-des. - La cancellazione e' fisica e priva di controlli referenziali: eliminare un gruppo referenziato altrove non e' impedito dal programma. E' la differenza principale rispetto a CRM017, dove la cancellazione e' logica e presidiata.
- La sincronizzazione KPN (SWN043) usa come chiave
"C"concatenato aigr-chia1; e' invocata sia dopo l'aggiornamento sia dopo la cancellazione (x-sincronizza-kpn).