Vai al contenuto

CRM010 - Tipologie Nominativo (CRM)

Sorgente: cbl/crm010.cbl | Program-ID: CRM010 | Tipo: Programma interattivo a griglia (gestione anagrafica, dual-use standalone/selettore)

Menu: CRM > Archivi > Tipologie Nominativo


Scopo

Gestisce l'anagrafica delle tipologie di nominativo del modulo CRM (clienti potenziali): sono le "categorie" nelle quali si classificano i nominativi (es. Cliente, Fornitore, Prospect), ciascuna con la propria scheda dati. Per ogni tipologia si definiscono codice, descrizione, tipo anagrafico associato (C/F/P/A), dimensioni della scheda nominativo (V-Size in righe, H-Size in colonne), il flag "dati anagrafici", il punto di partenza del numeratore automatico (tcl-id-start) e il flag di inclusione nella ricerca nominativi.

L'interfaccia e' basata su una griglia GRIDADMN in cui l'elenco delle tipologie e' caricato in una tabella di lavoro interna (tm-tab, fino a 900 righe); l'aggiunta/modifica avviene su una "area dettaglio" separata i cui campi vengono validati campo per campo. Le scritture su CRMTIPCL avvengono direttamente per singola riga confermata (write/rewrite), non a fine sessione.

Il programma e' dual-use: se richiamato con crm010-called = "CRM010" (linkage utilcrm010.cpy) opera in modalita' "selezione" restituendo al chiamante il codice/descrizione scelti (crm010-out-cod, crm010-out-des); e' cosi' usato come selettore di tipologia da CRM011 e CRM013 (tasto F8).

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri file aziendali (cogfiles.cpy)
CRMTIPCL ISAM I-O (gestore Screens) Anagrafica tipologie nominativo (tcl-cod, tcl-des, tcl-ana-tip, tcl-v-size, tcl-h-size, tcl-fl-dati-ana, tcl-id, tcl-id-start, tcl-fl-ricerca-nom) - file principale gestito
CRMINFOR ISAM Input Informazioni; letta per tcl-id per verificare che l'informazione identificativa sia di tipo "I" (ipt-fl-id) e recuperarne descrizione/tipo
CRMSKPAG ISAM Input Pagine scheda; scansionata in c1-ctrl-canc per bloccare la cancellazione se esistono pagine configurate sulla tipologia (skp-tcl)
CRMUSRTC ISAM (k02) I-O Abilitazioni tipologia per utente; ripulita in cancella-usrtc alla cancellazione della tipologia (chiave 2 ctc-tcl)

I file dichiarati tramite crm010.select/crm010.fd (CRMTIPCL, CRMINFOR, CRMSKPAG, CRMUSRTC) sono gestiti dai gestori generati dallo Screen Designer (st-/rdnxt-/rd-/wr-/rwr-/del- + verbi crmtipcl, crminfor, crmskpag, crmusrtc).

Copybook utilizzate

Copybook Descrizione
crm010.select, crm010.fd, crm010.wrk, crm010-01.scr, crm010.prc, crm010.decla Screen Designer (SELECT/FD/working/screen/procedure/declaratives)
feurtab.fd, cogfiles.cpy FEURTAB
costanti-clipot.cpy Costanti CRM clienti potenziali (tipi informazione, link, ecc.)
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy Working storage standard + dati azienda
wgrid.cpy, utilgdad.cpy, utilgrid.cpy Gestione griglia GUI e linkage GRIDADMN
utilncnf.cpy Linkage RNEWCONF
utilcrm025.cpy Linkage CALL a CRM025 (abilitazione tipologie per utente)
utilcrm010.cpy Linkage di chiamata proprio (dati called/caller, out-cod/out-des)
utilagprg.cpy Linkage sincronizzazione KPN/Areagate (SWN024)
wcont.cpy, wcont1.cpy Linkage standard maschera
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy Copybook di fine procedure
crmusrtc.k02 Chiave secondaria CRMUSRTC (aggiunta manualmente a fine procedure)

Logica

Struttura goto-driven a stati (stile legacy). Fasi principali:

  • apri: ctr-abil, z-99-init-program, caricamento lingua, open-files, rd-azi; legge configurazione via x99-confi; determina se e' chiamato (w-dc-called = "S"). Attiva i tasti funzione previsti (Invio, Invio-modifica, Ctrl+A aggiungi, Ctrl+E elimina, Shift+F4 griglia, F1 configura, e F3-selezione/F3-modifica solo se chiamato); carica la bitmap custom clipot e crea il pulsante "F7" (abilitazione tipologie). Imposta modalita' iniziale: "S" (selezione) se chiamato, "A" (aggiornamento) altrimenti. z-prepara-tm-grid, z-costruisci-controlli.
  • a4/a10/a10-loop: caricamento della tabella di lavoro scorrendo CRMTIPCL (st-crmtipcl-notmin + rdnxt-crmtipcl) fino a max 900 righe; per ogni tipologia con tcl-id <> 0 legge CRMINFOR e avvisa se l'informazione ID non e' di tipo "I".
  • a30/a-grid/a-accept-grid: costruzione griglia (z-costruisci-grid via GRIDADMN Svuota-Tutto + Add-Record) e ciclo di accept sulla griglia. Gestisce: doppio click/Invio sulla cella (imposta Invio), Shift+F4 (amministrazione griglia GRIDADMN), F3 (toggle modalita' selezione/aggiornamento), Invio (in "A" modifica riga se w-abi-agg; in "S" ritorna codice al chiamante), Ctrl+A (aggiungi, se w-abi-ins), Ctrl+E (elimina, se w-abi-del), F7 (CALL CRM025), F1 (configurazione in modifica).
  • a-riga-dettaglio ... a-riga-dettaglio-fine: sequenza di accept validati dei campi di dettaglio (a-tm-cod, a-tm-des, a-tm-tip-ana via COGS60, a-tm-v-size, a-tm-h-size, a-tm-fl-dati-ana via COGS95, a-tm-id-start, a-tm-ricerca-nom). ESC su un campo torna a a-tm-cod-tf che, previa conferma, ripristina la riga da tm-ele-sav. Ogni campo ha un x-controlla-* che colora il controllo e imposta x-f3-ok-parziale. Validazioni notevoli: V-Size 10-99, H-Size 80-200, codice univoco in inserimento.
  • a-riga-dettaglio-fine: x-imposta-conferma (verifica cumulativa tutti i campi), conferma custom, aggiorna la riga in griglia (GRIDADMN Add/Modify-Record), poi write/rewrite su CRMTIPCL (wr-crmtipcl/rwr-crmtipcl) auto-correggendo I/M in base all'esistenza del record; infine x-sincronizza-kpn.
  • Cancellazione (c-cancella): rilegge in lock, del-crmtipcl, x-sincronizza-kpn, cancella-usrtc (pulisce le abilitazioni utente). c1-ctrl-canc la blocca se esistono pagine scheda (CRMSKPAG) sulla tipologia.
  • fine/z-chiudi: z-close-files, chiusura finestra, z-99-exit-program, exit program.

Configurazioni (RNEWCONF)

Pacchetto "C", punto 01, percorso CLIPOT.CNF:

Chiave Uso
clipot / abilitazione-tipologia Se "S", abilita il pulsante F7 di gestione abilitazioni tipologia per utente (tm-cfg-abi-tipologia, letta in x99-confi, valorizza la visibilita' del pulsante in x-attiva-tf-grid)

CALL

Programma Scopo
CRM025 Abilitazione delle tipologie di nominativo per i singoli utenti dell'azienda (F7)
GRIDADMN Gestione griglia (Prepara/Svuota-Tutto/Add-Record/Modify-Record, amministrazione Shift+F4)
RNEWCONF Lettura configurazione abilitazione tipologia
SWN024 Sincronizzazione chiave verso KPN/Areagate (ESPORTA-KEY, agprg-key = "C" + tcl-chia1) a ogni scrittura/cancellazione

Note

  • Dual-use: se lanciato da menu opera come gestione completa (modalita' "A"); se richiamato (crm010-called) opera come selettore in modalita' "S" e restituisce crm010-out-cod/crm010-out-des. In modalita' selezione l'Invio non modifica ma ritorna al chiamante.
  • Codice goto-driven con uso estensivo di GO TO tra stati e PERFORM ... THRU (c-cancella thru ex-c, c1-ctrl-canc thru ex-c1, cancella-usrtc thru ex-cancella-usrtc): stile legacy antecedente alle convenzioni attuali.
  • Effetto collaterale su archivio condiviso: la cancellazione di una tipologia elimina in cascata anche le abilitazioni utente su CRMUSRTC (cancella-usrtc).
  • La sincronizzazione KPN (x-sincronizza-kpn -> SWN024) e' invocata a ogni write/rewrite/delete della tipologia; propaga la chiave verso l'esterno (Areagate).
  • I gestori di tabella Y* (es. YCRMTIPCL) sono gestori generati automaticamente dallo Screen Designer.
  • La chiave secondaria crmusrtc.k02 (ctc-tcl) e' inclusa manualmente a fine procedure, come da convenzione (Screens genera solo .k01).