ASN093 - Gestione raccordo anagrafica Assist-Portale¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | ASN093 |
| Titolo | Raccordo Clienti Portale |
| Modulo | Assist 2.0 |
| Posizione menu | Assist 2.0 > Archivi > Portale WEB > Raccordo Clienti Portale |
| Sorgente | cbl/asn093.cbl (~987 righe) |
| Tipo | Programma a griglia con pannello dettaglio per gestione COGGENER tipo 'AG' |
Scopo¶
Gestione manuale (inserimento/modifica/cancellazione) della tabella di raccordo tra clienti gestionale e clienti del portale WEB. Lavora sui record COGGENER con gnr-tip = 'AG':
gnr-parte-1(1:5)= codice cliente Assist (5 cifre numeriche)gnr-parte-2= codice cliente Portale (10 caratteri alfanumerici)gnr-prog= 0
E' la controparte interattiva di ASN091 (caricamento massivo da file).
Flusso¶
- Init:
ctr-abil,z-99-init-program,open-files,rd-azi - Setup tasti: F3, F8, F9, S-F4, Ctrl-A, Ctrl-E
- Caricamento griglia (
a10/a10-loop): scan completoCOGGENERconst-coggener-notminfiltrandognr-tip = 'AG'. Per ogni record carica intm-righe(i)codice Assist, codice Portale e (viard-coggeana) ragione sociale, indirizzo, localita', provincia. - Loop griglia (
a-grid/a-accept-grid): accept con gestione Ctrl-A/Ctrl-E/S-F4 - Pannello dettaglio (
a-riga-dettaglio): accept ditm-cli-a(con lookup COGS65W) etm-cli-g - Salvataggio (
a-riga-dettaglio-fine): write o rewrite suCOGGENERcon gestione automatica del cambio operazione (se in'I'ma esiste -> diventa'M'; se in'M'ma non esiste -> diventa'I')
Operazioni (a-operazione)¶
| Valore | Significato |
|---|---|
'I' |
Inserimento (Ctrl-A) - usa wr-coggener |
'M' |
Modifica - usa rwr-coggener (logica 'M' mappata su selezione griglia, ma la branch in codice e' commentata; resta solo via auto-correzione dall''I') |
File acceduti¶
| File | Record | Modo | Uso |
|---|---|---|---|
COGGENER |
gnr-rec |
I-O | Tabella raccordi (rd / rd-lk / wr / rwr / del / st-notmin / st-notmin-chia2 / rdnxt). Chiave secondaria coggener.k02 per gnr-parte-2. |
COGGEANA |
ana-rec |
Input | Anagrafica clienti (tipo k-ana-tipo-cli) per validazione e display dati anagrafici |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
COGS65W |
Lookup cliente Assist (F8/F9 su tm-cli-a) - z-s65-tm-cli-a |
GRIDADMN |
Amministrazione griglia (preparazione + Add-Record / Modify-Record + S-F4) |
Configurazioni (RNEWCONF)¶
Il programma non utilizza configurazioni RNEWCONF.
L'unica configurazione attiva e' la condizione az-personal = "TI" (presa dall'azienda) che impone soglia minima del codice cliente >= 50000.
Linkage¶
Programma standalone - wcont, wcont1.
Tasti funzione¶
| Tasto | Contesto | Funzione |
|---|---|---|
| F3 | Pannello dettaglio | Conferma (a-riga-dettaglio-fine) |
| F8 | Campo cli-a | Aiuto/lookup cliente (via COGS65W) |
| F9 | Campo cli-a | Ricerca avanzata |
| Ctrl+A | Griglia (modalita' A) |
Inserisce nuova riga -> a-riga-dettaglio con a-operazione = "I" |
| Ctrl+E | Griglia (modalita' A) |
Elimina riga (c1-ctrl-canc + conferma) |
| S-F4 | Griglia | GRIDADMN config colonne |
| ESC | Dettaglio | Annulla con conferma; ripristina tm-ele-sav |
Validazioni¶
Cliente Assist (x-controlla-tm-cli-a)¶
| Condizione | Esito |
|---|---|
tm-cli-a(i) = zero |
"Cliente 'Assist' Obbligatorio" |
az-personal = "TI" AND tm-cli-a < 50000 |
"Codice Cliente Deve Essere > 50000" |
Esiste gia' record con stesso gnr-parte-1(1:5) |
"Codice Cliente 'Assist' Gia' Collegato" |
rd-coggeana invalido |
"Cliente Non Codificato" |
Se OK: popola tm-nome, tm-ind, tm-loca, tm-prov da ana-rec.
Cliente Portale (x-controlla-tm-cli-g)¶
| Condizione | Esito |
|---|---|
tm-cli-g(i) = spaces |
"Cliente 'Portale' Obbligatorio" |
Esiste gia' record con stesso gnr-parte-2 (chiave secondaria k02) |
"Codice Cliente 'Portale' Gia' Collegato" |
Logica auto-correzione I/M¶
In a-riga-dettaglio-fine, prima del salvataggio:
- Se
a-operazione = "I"ma il record esiste (rd-coggener-lkok) -> warning "Raccordo gia' inserito; verra' variato" ->a-operazione = "M" - Se
a-operazione = "M"ma il record non esiste -> warning "Raccordo cancellato; verra' reinserito" ->a-operazione = "I"
Poi esegue wr-coggener o rwr-coggener in base a a-operazione.
Cancellazione (c-cancella)¶
rd-coggener-lkcon chiave ('AG',tm-cli-a,tm-cli-g,0)- Se non trovato: warning "Raccordo non e' piu' esistente"
- Altrimenti:
del-coggener
Limiti¶
| Elemento | Limite | Costante |
|---|---|---|
Righe in tabella tm-righe |
900 | k-max-ele-tab |
Se in caricamento iniziale viene raggiunto il limite: warning "Tabella Piena! Ulteriori elementi scartati. Contattare il personale Eurosystem2000".
Note implementative¶
- Il programma carica all'apertura tutti i raccordi esistenti in
tm-tab(occurs 900). La griglia visualizza i dati da memoria, non rilegge da disco. - I dati anagrafici (
tm-nome,tm-ind,tm-loca,tm-prov) NON vengono salvati nel raccordo: sono read-only e provengono da COGGEANA. - La modalita' standalone fissa
a-modalita = "A"(aggiornamento). La modalita' "selezione" e' presente nello scheletro ma commentata. - Il pannello di dettaglio e' visibile in parallelo alla griglia. Sull'evento
msg-begin-entryviene impedita l'edit diretta della griglia (event-action-fail-terminate): l'edit avviene esclusivamente tramite il pannello. - La gestione di Add/Modify in griglia avviene tramite chiamate a
GRIDADMNcongdad-ope = "Add-Record"o"Modify-Record"egdad-record=grid-record(struttura di interscambio).
Copybook utilizzate
wgrave, wnscr, wopenf, wstato, cogazien, wgrid, utilgdad, utils65, utilgrid, coggener.k02, wcont, wcont1. Copybook .prc/.fd/.select/.wrk generate da Screens.