CRM011 - Pagine Scheda per Tipologia (CRM)¶
Sorgente: cbl/crm011.cbl | Program-ID: CRM011 | Tipo: Programma interattivo a griglia (gestione anagrafica, dual-use standalone/selettore)
Menu: CRM > Archivi > Pagine Scheda
Scopo¶
Gestisce le pagine di cui si compone la scheda di una data tipologia di nominativo. La scheda nominativo di una tipologia puo' essere suddivisa in piu' pagine (schede a tab); per ciascuna tipologia (CRMTIPCL) questa funzione consente di definire l'elenco delle pagine (CRMSKPAG), con numero pagina, descrizione, tipo pagina (I/P) e flag di sincronizzazione verso il mondo WEB.
L'operatore seleziona prima una tipologia (con lookup F8 verso CRM010), quindi il programma carica in una tabella di lavoro (tm-tab, max 900 righe) le pagine gia' definite e ne consente aggiunta/modifica/cancellazione tramite griglia GRIDADMN e area dettaglio. Le scritture su CRMSKPAG avvengono per singola riga confermata (write/rewrite/delete diretti).
Il programma e' dual-use: se richiamato con crm011-called = "CRM011" (linkage utilcrm011.cpy) opera in modalita' "selezione" sulla tipologia gia' passata (crm011-tcl) e restituisce la pagina scelta (crm011-out-cod, crm011-out-des).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri file aziendali (cogfiles.cpy) |
| CRMTIPCL | ISAM | Input | Anagrafica tipologie nominativo; letta per validare/descrivere la tipologia selezionata (tcl-cod, tcl-des) |
| CRMSKPAG | ISAM | I-O | Pagine scheda per tipologia (skp-tcl, skp-pag, skp-des, skp-tip, skp-sincro-web) - file principale gestito |
| CRMSKINF | ISAM | Input | Informazioni collocate sulle pagine scheda; scansionata in c1-ctrl-canc per bloccare la cancellazione di una pagina se contiene informazioni (ski-tcl, ski-pag) |
| CRMUSRTP | ISAM (k02) | I-O | Abilitazioni pagina per utente; ripulita in cancella-usrtp alla cancellazione della pagina (chiave 2 ctp-tcl, ctp-pag) |
L'apertura file e' gestita dal paragrafo search-file-f-crm (open per indice: CRMTIPCL input, CRMSKPAG/CRMSKINF/CRMUSRTP i-o) tramite open-files-crm (opencrm.cpy). I verbi di accesso (st-/rdnxt-/rd-/wr-/rwr-/del-crmskpag, ecc.) sono i gestori generati dallo Screen Designer.
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crm011.wrk, crm011-01.scr, crm011.prc |
Screen Designer (working/screen/procedure) |
feurtab.fd + cogfiles.cpy, crmtipcl.fd/crmtipcl.cpy, crmskpag.fd/crmskpag.cpy, crmskinf.fd/crmskinf.cpy, crmusrtp.fd/crmusrtp.cpy |
Definizioni file e record (dichiarati esplicitamente nel sorgente) |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy |
Working storage standard + dati azienda |
wgrid.cpy, utilgdad.cpy, utilgrid.cpy |
Gestione griglia GUI e linkage GRIDADMN |
utils68.cpy |
Linkage COGS68 |
utilgre001.cpy |
Linkage gre001 (sincronizzazione pagine su gruppo aziende) |
utilncnf.cpy |
Linkage RNEWCONF |
utilagprg.cpy |
Linkage sincronizzazione KPN/Areagate (SWN042) |
utilcrm010.cpy |
Linkage CALL a CRM010 (selettore tipologia, F8) |
utilcrm028.cpy |
Linkage CALL a CRM028 (abilitazione pagine per utente, F7) |
utilcrm011.cpy |
Linkage di chiamata proprio (called/caller, tcl, out-cod/out-des) |
wcont.cpy, wcont1.cpy |
Linkage standard maschera |
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, util1.cpy, opencrm.cpy, mmmask.cpy |
Copybook di fine procedure |
crmtipcl.k01, crmskpag.k01, crmskinf.k01, crmusrtp.k01, crmusrtp.k02 |
Chiavi (incluse esplicitamente; crmusrtp.k02 = chiave secondaria) |
Logica¶
Struttura goto-driven a stati. Fasi principali:
- apri: init,
open-files-crm; determina modalita' called; attiva tasti funzione (F3-aggiorna, F4-cancella, F8-aiuto, F1-configura, Invio/Invio-modifica, Shift+F4, Ctrl+A, Ctrl+E; F3-selezione/modifica solo se chiamato); carica bitmapclipote crea pulsante F7 (abilitazione pagine per utente);x99-confi;z-prepara-tm-grid;z-costruisci-controlli. - a4: reset maschera; se chiamato imposta subito
tm-tcl = crm011-tcle salta aa-tm-tcl-controlla; altrimenti attende la tipologia. - a-tm-tcl: accept del codice tipologia; F1 configurazione; F8 richiama CRM010 in modalita' selettore per scegliere la tipologia.
x-controlla-tm-tclverifica esistenza su CRMTIPCL e ne mostra la descrizione. - a-inizio-dati/carica-dati: caricamento in
tm-tabdelle pagine della tipologia scorrendo CRMSKPAG (st-crmskpag-notmin+rdnxt-crmskpag, break suskp-tcl). - a-grid/a-accept-grid: costruzione griglia e ciclo accept: Shift+F4 (GRIDADMN admin), F3 (toggle modalita'/uscita/torna selezione), Invio (modifica riga in "A" con
w-abi-agg, oppure ritorno pagina al chiamante in "S"), Ctrl+A (aggiungi conw-abi-ins), Ctrl+E (elimina conw-abi-del), F7 richiama CRM028 passando tipologia+pagina. - a-riga-dettaglio ... a-riga-dettaglio-fine: accept validati dei campi dettaglio:
a-tm-pag(numero pagina),a-tm-des(descrizione),a-tm-tip(tipo pagina via COGS60),a-tm-sincro-web(sincronizzazione WEB via COGS60, aggiunto 2021). ESC su campo torna aa-tm-pag-tfcon ripristino datm-ele-sav. - a-riga-dettaglio-fine:
x-imposta-conferma(x-controlla-tm-tcl/pag/des/tip/sincro-web), conferma, aggiorna griglia, write/rewrite su CRMSKPAG auto-correggendo I/M;x-sincronizza-kpn(SWN042); setm-cfg-abil-gruppo = "S"chiama gre001 (AGGIORNA) per propagare la pagina al gruppo aziende. - Cancellazione (
c-cancella): lock +del-crmskpag,x-sincronizza-kpn,cancella-usrtp(pulisce abilitazioni utente CRMUSRTP), e se gruppo abilitato gre001 (CANCELLA).c1-ctrl-cancla blocca se la pagina contiene informazioni (CRMSKINF). - fine/z-chiudi: close file, chiusura finestra,
z-99-exit-program,cancel "COGZDEW"e (se gruppo)cancel "gre001",exit program.
Il paragrafo x-controlla-sequenza (verifica pagine progressive da 1) e' presente ma il blocco del salvataggio e' commentato: emette solo un warning.
Configurazioni (RNEWCONF)¶
Pacchetto "C", 2 chiavi (x99-confi):
| Chiave | Uso |
|---|---|
clipot / abilitazione-pagine-scheda |
Se "S", abilita il pulsante F7 di gestione abilitazioni pagina per utente (tm-cfg-abil-pagine-scheda) |
abilita / gruppo-aziende |
Se "S", attiva la sincronizzazione delle pagine sul gruppo aziende via gre001 e il relativo cancel in uscita (tm-cfg-abil-gruppo) |
CALL¶
| Programma | Scopo |
|---|---|
CRM010 |
Selettore tipologia nominativo (F8 su campo tipologia) |
CRM028 |
Abilitazione delle pagine scheda per i singoli utenti (F7) |
gre001 |
Sincronizzazione pagina scheda sul gruppo aziende (AGGIORNA/CANCELLA), solo se gruppo-aziende = "S" |
GRIDADMN |
Gestione griglia |
RNEWCONF |
Lettura configurazioni |
SWN042 |
Sincronizzazione chiave verso KPN/Areagate (ESPORTA-KEY, agprg-key = "C" + skp-chia1) |
Note¶
- Dual-use: da menu gestisce le pagine di una tipologia a scelta; se richiamato riceve la tipologia in
crm011-tcle restituisce la pagina selezionata al chiamante. - Codice goto-driven con
PERFORM ... THRU(carica-dati thru ex-carica-dati,c-cancella thru ex-c,c1-ctrl-canc thru ex-c1,cancella-usrtp thru ex-cancella-usrtp): stile legacy. - A differenza di CRM010/CRM013, i file NON sono dichiarati via
.select/.fddi Screens ma esplicitamente nel sorgente (copycrmtipcl.fd,crmskpag.fd, ecc.) e aperti dasearch-file-f-crm. - Effetti collaterali su archivi condivisi: la cancellazione di una pagina elimina in cascata le abilitazioni utente (CRMUSRTP) e, se il gruppo aziende e' abilitato, propaga la cancellazione via gre001.
- Il campo
skp-sincro-webe le relative logiche (accept, colonna griglia, validazione) sono un'aggiunta datata 130721 per la sincronizzazione WEB. - I gestori di tabella
Y*(YCRMSKPAG, ecc.) sono generati automaticamente dallo Screen Designer.