Vai al contenuto

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 bitmap clipot e 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-tcl e salta a a-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-tcl verifica esistenza su CRMTIPCL e ne mostra la descrizione.
  • a-inizio-dati/carica-dati: caricamento in tm-tab delle pagine della tipologia scorrendo CRMSKPAG (st-crmskpag-notmin + rdnxt-crmskpag, break su skp-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 con w-abi-ins), Ctrl+E (elimina con w-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 a a-tm-pag-tf con ripristino da tm-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); se tm-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-canc la 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-tcl e 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/.fd di Screens ma esplicitamente nel sorgente (copy crmtipcl.fd, crmskpag.fd, ecc.) e aperti da search-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-web e 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.