Vai al contenuto

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

  1. Init: ctr-abil, z-99-init-program, open-files, rd-azi
  2. Setup tasti: F3, F8, F9, S-F4, Ctrl-A, Ctrl-E
  3. Caricamento griglia (a10 / a10-loop): scan completo COGGENER con st-coggener-notmin filtrando gnr-tip = 'AG'. Per ogni record carica in tm-righe(i) codice Assist, codice Portale e (via rd-coggeana) ragione sociale, indirizzo, localita', provincia.
  4. Loop griglia (a-grid / a-accept-grid): accept con gestione Ctrl-A/Ctrl-E/S-F4
  5. Pannello dettaglio (a-riga-dettaglio): accept di tm-cli-a (con lookup COGS65W) e tm-cli-g
  6. Salvataggio (a-riga-dettaglio-fine): write o rewrite su COGGENER con 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-lk ok) -> 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-lk con 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-entry viene 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 GRIDADMN con gdad-ope = "Add-Record" o "Modify-Record" e gdad-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.