ASN030 - Gestione anagrafica Matricole (Assist 2.0)¶
Sorgente: cbl/asn030.cbl (4.959 righe) | Tipo: Programma interattivo di anagrafica (inserimento/modifica/cancellazione a maschera singola), richiamabile anche come called
Menu: Assist 2.0 > Archivi > Matricole
Scopo¶
Gestione completa dell'anagrafica Matricole dell'Assist 2.0 (ASNMATRI): una "matricola" e' l'oggetto/apparecchiatura installata presso il cliente su cui si erogano assistenze, contratti e controlli. Il programma consente inserimento, modifica e cancellazione di una matricola identificata da un id numerico (amtr-id), con gestione contestuale di:
- Serial number, tipo matricola, descrizione, merce collegata, matricola di magazzino (
COGMATRI); - Cliente/destinazione/contatto/tecnico, ubicazione, catasto, chiave, garanzia, valore, produttore, marca, modello, modello di certificazione (check-list);
- Distinta base matricola (
ASNMTRDB), scheda CRM collegata, collegamento a impianto (ASNMTRLK), dossier commessa; - Controlli qualita' collegati (via
ASNS27) e sincronizzazione verso Areagate/KPN (viaSWN039).
Dalla maschera sono raggiungibili funzioni collegate: creazione contratto (F6/menu → ASN050/ASN220), note post-it (ASN03C), scheda matricola/distinta base (ASN03B), galleria documenti (COGUC0), scheda CRM (CRM030).
Interfaccia chiamato (linkage util-asn030)¶
| Campo | Uso |
|---|---|
asn030-called / asn030-caller |
Identificativi chiamato/chiamante (se coincidono con k-program-id/non spazi → w-dc-called = 'S') |
asn030-modalita |
'M' = modifica diretta (usa asn030-id), spazio = inserimento |
asn030-id |
Id matricola in ingresso (modalita' M) |
asn030-id-out |
Id matricola creata (output, inserimento da called) |
asn030-sn / asn030-cliente |
S/N e cliente proposti in inserimento (chiamata da ASN510/ASN110/ASN050) |
Chiamanti tipici individuati nel sorgente: ASN200 (inserimento nuova matricola), ASN510/ASN110/ASN050 (inserimento con S/N e cliente proposti), ASN049 (in modifica M dal tree impianto).
File acceduti¶
Lettura/scrittura principale¶
| File | Copybook | Uso |
|---|---|---|
| ASNMATRI | amtr-rec |
Matricola (record principale). wr/rwr/del; numeratore id automatico. Chiave k02 su amtr-sn |
| ASNMATR2 | amtr2-rec |
Estensione matricola: amtr2-portale-catasto, amtr2-portale-chiave |
| ASNMTRTP | amtp-rec |
Tipo matricola (descrizione amtp-des) |
| ASNMODEL | amod-rec |
Modello matricola (amod-nome, amod-des, amod-marca, amod-tcl-cod, amod-cod-nom). Chiave k02 |
| ASNPRODU | aprd-rec |
Produttore (aprd-des) |
| ASNMARCH | amrc-rec |
Marca (amrc-des) |
| ASNSKMOD | askm-rec |
Modello checklist/certificazione (askm-des, askm-val) |
| ASNMTRDB | amdb-rec |
Distinta base matricola (inserita/cancellata per tipo "firewall") |
| ASNMTRLK | amlk-rec |
Link matricola↔impianto (amlk-id-padre, amlk-id-mtr). Chiave k02 |
| ASNCNMTR | acnc-rec |
Matricole collegate a contratti (controllo cancellazione + ricerca contratto piu' recente). Chiave k02 |
| ASNCHDET | achd-rec |
Dettaglio chiamate (controllo cancellazione: matricola presente in chiamata). Chiave k02 |
| ASNCNTES | acnt-rec |
Testata contratto (ricerca id/rif contratto piu' recente della matricola) |
| ASNCNTE2 | acn2-rec |
acn2-data-scadenza (disdetta anticipata, TASK-2499) |
| COGMERCI | mer-rec |
Merce collegata (mer-padre, mer-classe); obbligo distinta base per tipo firewall |
| COGMERA3 | ma3-rec |
Dati assist merce: marca/modello/tipo matricola proposti in inserimento (PCASE-1430) |
| COGMATRI | mtr-rec |
Matricola di magazzino (mtr-merce) |
| COGGEANA | ana-rec |
Cliente e cliente fatturazione (padre) |
| COGDESTI/COGDEST2 | dst-rec/dst2-rec |
Destinazioni cliente (default, telefono) |
| COGRIFER | rif-rec |
Riferimenti/contatti (tecnico, contatto, telefono) |
| COGAPPOG | app-rec |
Appoggio anagrafica (telefono cliente) |
| CRMANAGR | cra-rec |
Scheda CRM collegata (nome, sincronizzazione descrizione) |
| CRMINFOR/CRMANANF | ipt-rec/nnf-rec |
Info variabili CRM (telefono); chiave k03 |
| COGDBASE | dba-rec |
Distinta base standard (per popolare ASNMTRDB su tipo firewall) |
Chiavi secondarie¶
asnmatri.k02(serial number),asnmodel.k02,asncnmtr.k02,asnchdet.k02,asnctrrc.k03,asnmtrlk.k02,crmananf.k03,crminfor.k03
Programmi chiamati¶
| Programma | Contesto |
|---|---|
| ASN200 | F9 ricerca matricola (ASN200-CALLED) su id / s/n / id-origine |
| ASN010 | F8 lookup tipo matricola |
| ASN011 | F8 lookup produttore |
| ASN012 | F8 lookup marca |
| ASN013 | F8 lookup modello (per marca) |
| ASN029 | F8 lookup modello certificazione |
| ASN050 | Menu "Crea contratto manuale" (asn050-id-matricola) |
| ASN03C | Menu "Note Post-it" (asn03c-id-matricola) |
| ASN03B | Shift+F6/Shift+F7 gestione/inserimento distinta base matricola |
| ASN220 | F6 ricerca/gestione contratti della matricola (ASN220-CALLED) |
| ASN049 | Cancellazione: SCOLLEGA-MATR-BKG se la matricola e' collegata ad impianto |
| ASNS27 | Gestione controlli qualita': INSERISCI/AGGIORNA/CANCELLA-MATRICOLA |
| COGV89 | F8 selezione matricola magazzino per s/n |
| COGU07 | cerca-sn-link: aggancio matricola magazzino da s/n (PCASE-1413) |
| COGG32/COGG67 | Ricerca contatto/tecnico |
| COGSAE | CTR-CL-MATRICOLA: verifica modello stampa check-list (escluso az-personal = "PU") |
| CRMS07 | Scrivi: creazione scheda CRM matricola |
| CRM030 | Apertura scheda CRM (CRM030-CALLED) |
| CRMK10 | F7/menu dossier commessa impianto |
| COGUC0 | F1 galleria documenti (archiviazione ottica, MA) |
| SWN039 | AGPRG-CALLED / ESPORTA-KEY: sincronizzazione matricola verso Areagate/KPN |
| RNEWCONF | Lettura configurazioni (x99-confi) |
| DIALOGS | Dialoghi scelta scheda CRM matricola/modello, prima matricola |
| W$MENU | Menu a tendina File/Operazioni |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ASSIST |
GESTIONE-PRODUTTORE |
tm-cfg-produttore |
Abilita gestione produttore |
| 02 | ASS-STRUM |
MERCE-MATRICOLA-DEFAULT |
tm-cfg-merce-default |
Merce proposta di default in inserimento |
| 03 | assist |
matr-destinazione-obbligatoria |
tm-cfg-obb-dest |
Se N, destinazione non obbligatoria |
| 04 | ASS-STRUM |
TIPO-MATRICOLA-GENERICO |
tm-cfg-tipo-matricola-generico |
Tipo "generico": vieta l'assegnazione cliente |
| 05 | assist |
gestione-scheda-matricole |
tm-cfg-gest-scheda-matr |
Abilita scheda CRM matricola (F5) |
| 06 | ass-chiam |
gestione-certificazioni |
tm-cfg-gest-certificazioni |
Abilita modello certificazione |
| 07 | commesse |
commessa-impianto |
tm-cfg-commessa-impianto |
Abilita dossier commessa (F7) |
| 08 | commesse |
tipo-dossier-commessa |
tm-cfg-tipo-dossier-commessa |
Tipo dossier per commessa impianto |
| 09 | ass-contr |
tipo-mtr-firewall |
tm-cfg-tipo-mtr-firewall |
Tipo matricola "firewall": merce = distinta base obbligatoria + gestione ASNMTRDB (PCASE-2443) |
| 10 | ass-mtr |
gestione-db |
tm-cfg-gestione-db |
Gestione distinta base |
| 11 | ass-mtr |
modo-creazione-sn-matricola |
tm-cfg-modo-creazione-sn |
B = crea s/n = tipo matricola + progressivo (TASK-2399) |
(link: ASSIST, ASS-STRUM, ass-chiam, commesse, ass-contr, ass-mtr)
Logica di elaborazione¶
Chiave e caricamento (a-tm-amtr-id → carica-dati)¶
- Se la matricola esiste →
fl-vario = "V"(modifica), altrimenti"I"(inserimento). carica-datipopola tutti i campi maschera dal record, ricerca modello/produttore/marca, contatto/telefono, distinta base (tm-fl-dbase), scheda CRM (creata se mancante e configurata), e (250316) l'id/rif del contratto piu' recente della matricola scorrendoASNCNMTR→ASNCNTES/ASNCNTE2(per la disdetta anticipata usaacn2-data-scadenza).- F7 nuovo: se
ASNMATRIe' vuota (prima-matricola) propone l'inserimento manuale del primo id.
Salvataggio (a-fine-dati → a-fine-dati-ok)¶
- Validazioni campo per campo (
x-controlla-datiche invoca tutti glix-controlla-*). - (TASK-2399) Se
modo-creazione-sn = "B"e inserimento →x1-creazione-sn: compone il s/n cometipo-matricola + progressivo(scorrendoASNMATRIa ritroso sul k02). - Ricerca numeratore id automatico (inserimento) scorrendo
ASNMATRI. - Verifica abilitazioni operatore (
w-abi-ins/w-abi-agg). wr/rwrdiASNMATRI+ aggiornamentoASNMATR2(catasto/chiave).- (PCASE-2443) Se tipo = firewall: cancella e ricrea la distinta base
ASNMTRDBdaCOGDBASE(inserimento, o modifica con cambio merce). - Scheda CRM: se configurata e modello con tipologia nominativo, crea la scheda via
CRMS07/CRM030; (PCASE-2565) allinea la descrizione scheda CRM alla descrizione matricola. - Controlli qualita' (
ASNS27): in inserimentoINSERISCI-MATRICOLA; in modifica gestisce i casi cancellazione logica (amtr-val = "C") →CANCELLA, ripristino →INSERISCI, altrimentiAGGIORNA. - Sincronizzazione KPN/Areagate (
x-sincronizza-kpn→SWN039).
Cancellazione (cancella)¶
Blocchi preventivi: matricola presente in un contratto (ASNCNMTR), in una chiamata (ASNCHDET), oppure che e' un "Impianto" (ha figli in ASNMTRLK). Se ok: scollega da eventuale impianto (ASN049 SCOLLEGA-MATR-BKG), del-asnmatri, cancella controlli (ASNS27 CANCELLA-MATRICOLA), sincronizza KPN.
Messaggi principali¶
Messaggi in tabella maschera con id m-asn030-NN-1 (letti da .prc), tra cui:
m-asn030-71-1/72-1: id matricola mancante / inesistentem-asn030-74-1: serial number obbligatoriom-asn030-75-1/76-1: tipo matricola mancante / inesistentem-asn030-77-1..80-1: controlli matricola magazzino / mercem-asn030-105/106: (firewall) merce obbligatoria / deve essere distinta base (padreP)m-asn030-69-1/70-1: cancellazione bloccata (in contratto / in chiamata)m-asn030-62-1: cancellazione bloccata (matricola e' impianto)
Storico modifiche significative (dal sorgente)¶
- 280812: scheda matricola CRM (F5) + creazione automatica scheda per modello con tipologia nominativo.
- 080713: gestione
amod-cod-nom(scheda CRM lato modello). - 020216: menu a tendina File/Operazioni; voci "Crea contratto" (ASN050) e "Note Post-it" (ASN03C).
- 250915: gestione distinta base matricola (Shift+F6/F7 → ASN03B).
- 250316: F6 contratti (ASN220); ricerca id/rif contratto piu' recente.
- 160616: campo tecnico (COGG32).
- 250620 (PCASE-1430): proposta marca/modello/tipo da COGMERA3 in inserimento.
- 220620 (PCASE-1413): aggancio matricola magazzino da s/n via COGU07.
- 160322 (PCASE-2565): allineamento descrizione scheda CRM alla descrizione matricola.
- 230221: sincronizzazione KPN/Areagate via SWN039.
- 221221 (PCASE-2443): tipo matricola "firewall" con distinta base da COGDBASE.
- 250923: anno di costruzione (
amtr-anno-costr). - 121124: config
ass-mtr / gestione-db. - 031125 (TASK-2399): modalita' creazione s/n = tipo matricola + progressivo (
modo-creazione-sn = "B"). - 141125/171125 (TASK-2499): disdetta anticipata contratto nella ricerca contratto piu' recente.
Note implementative¶
- La cancellazione e' logica (flag
amtr-val = "C") o fisica (del-asnmatri): entrambe innescano la gestione controlliASNS27come se la matricola fosse eliminata. - Il collegamento matricola↔impianto (
ASNMTRLK) e' gestito da ASN049; ASN030 vi accede solo per determinare se una matricola e' impianto/parte e per scollegarla in cancellazione. - I
perform ... thru ex-...e igo toverso i paragrafi di accept sono ampiamente presenti (stile legacy della maschera): il flusso di navigazione tra campi e' basato sugo to a-tm-*ex-test-mouse.