ASN03D - Assegnazione schede di stima¶
Sorgente: cbl/asn03d.cbl (1.351 righe) | Tipo: Programma interattivo a griglia editabile con file di transito e filtri memorizzabili
Menu: Assist 2.0 > Archivi > Strumenti > Assegnazione schede di stima
Scopo¶
Gestisce le regole di assegnazione automatica dei modelli scheda di stima (schede di certificazione) alle chiamate di assistenza. Ogni regola lega un modello scheda (ASNSKMOD) a una combinazione di condizioni: tipo attivita', cliente di fatturazione, brand e (opzionalmente) gruppo azienda. Le regole sono memorizzate nel file di legame ASNSKLNK e vengono editate direttamente in una griglia di dettaglio con inserimento, modifica e cancellazione riga.
Il programma opera in due modalita':
- Standalone (uso da menu): mostra tutte le regole presenti, con possibilita' di aggiungere/modificare/eliminare righe per qualsiasi modello.
- Called (
asn03d-called = k-program-ideasn03d-callervalorizzato): opera filtrato su un singolo modello passato inasn03d-in-modello. La colonna modello e' bloccata in editing (nuove righe ereditano il modello passato) e all'uscita si ritorna al chiamante anziche' ricominciare.
Interfaccia chiamato (linkage)¶
util-asn03d (copybook utilasn03d.cpy):
| Campo | Tipo | Uso |
|---|---|---|
asn03d-caller |
x(08) | Identificativo del chiamante |
asn03d-called |
x(08) | Identificativo del chiamato (confrontato con k-program-id) |
asn03d-in-modello |
x(20) | Codice modello scheda su cui filtrare in modalita' called |
File acceduti¶
Scrittura (file principale)¶
| File | Copybook (rec) | Uso |
|---|---|---|
| ASNSKLNK | askl-rec |
Legame regola di assegnazione scheda di stima. Chiave askl-id; chiave secondaria chia2 su askl-modello-cl per estrazione filtrata sul modello. Campi: askl-modello-cl, askl-tip-att, askl-brand, askl-cli-fat, askl-grp-az, askl-fl-sta-rap, askl-fl-sta-cl |
Lettura (decodifiche descrizioni)¶
| File | Copybook (rec) | Uso |
|---|---|---|
| ASNSKMOD | askm-rec |
Anagrafica modelli scheda di stima: askm-des, askm-val ("C" = modello cancellato) |
| ASNTPATT | atpa-rec |
Tipi attivita': atpa-des |
| COGGEANA | ana-rec |
Anagrafica clienti (tipo "C"): ana-nome |
| COGBRAND | bra-rec |
Anagrafica brand: bra-des |
| GRPAZIEN | ao-azi-rec |
Gruppi azienda (letto solo se gestione-gruppo-aziende = "S"): ao-azi-des |
Transito¶
| File | Scopo |
|---|---|
| t-grid-det | File di transito della griglia (gestito da wgrid.cpy / utilgdad.cpy): buffer delle righe editate. Aperto in z-grid-det-apri-transito, ricreato a ogni rilettura e cancellato in chiusura |
Chiavi secondarie¶
asnsklnk.k02(chia2suaskl-modello-cl) — inclusa manualmente in fondo alla procedure division
Copybook incluse (principali)¶
- Working-storage generali:
wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpy - Griglia e amministrazione:
wgrid.cpy,utilgdad.cpy - Configurazioni:
utilncnf.cpy; filtri memorizzabili:utilimppredf.cpy,asn03d.imppredf-wrk,asn03d.imppredf - Lookup (linkage sottoprogrammi):
utilasn029.cpy,utilasn016.cpy,utils65.cpy,utilcogmah.cpy,utilgrp002.cpy - Utility:
utilu10.cpy,utilu20.cpy,k-tipi-cogtabel.cpy - Fine procedure:
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy,asn03d.prc
Programmi chiamati¶
| Programma | Contesto | Scopo |
|---|---|---|
| ASN029 | F8 su colonna modello | Lookup/ricerca modello scheda di stima; ritorna asn029-out-cod |
| ASN016 | F8 su colonna tipo attivita' | Lookup tipo attivita'; ritorna asn016-out-cod |
| COGMAH | F8 su colonna brand | Lookup brand; ritorna cogmah-out-cod |
| GRP002 | F8 su colonna gruppo azienda | Lookup gruppo azienda; ritorna grp002-out-cod |
| COGS65W | (implicito, colonna cliente) | Lookup cliente; annullato (cancel) in z-chiudi |
| GRIDADMN | Prepara / S-F4 / Modify-Record | Preparazione e personalizzazione griglia di dettaglio |
| RNEWCONF | x99-confi (init e F1) |
Lettura configurazione assist/gestione-gruppo-aziende |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Parametro | Variabile | Effetto |
|---|---|---|---|---|
| 01 | assist |
gestione-gruppo-aziende |
tm-cfg-gestione-gruppo-aziende |
Se "S" rende visibile/editabile la colonna gruppo azienda e attiva la relativa decodifica/validazione |
Il valore e' letto con ncnf-pac-gen = "C". Con F1 la configurazione e' rieseguita in modo "Modifica".
Logica di elaborazione¶
Avvio (apri)¶
- Init programma, controllo abilitazioni (
ctr-abil), lettura configurazione (x99-confi), apertura file. - Rileva la modalita' called: se
asn03d-called = k-program-ideasn03d-caller != spaces, impostaw-dc-called = "S"e salva il modello di input. - Abilita i tasti funzione: F1 configura, F3 aggiorna, F8 aiuto, S-F4 griglia, S-F5 esporta Excel, CTRL-A aggiungi, CTRL-E elimina, F9 ricerca avanzata.
- Crea il menu contestuale della griglia e i pulsanti custom "Salva impostazione (CTRL-S)" e "Cerca impostazione (CTRL-F)" per i filtri memorizzabili.
- Prepara la griglia (
z-prepara-tm-grid->GRIDADMN "Prepara"), imposta ordinamento predefinito ascendente per colonna modello, carica l'eventuale filtro di default (z-imppredf-carica-default).
Caricamento dati (a-leggi-dati / z-grid-det-crea-transito)¶
Scorre ASNSKLNK via chiave chia2; in modalita' called si posiziona sul modello di input e interrompe l'estrazione al cambio modello. Per ogni record legge le descrizioni di modello, tipo attivita', cliente, brand e gruppo azienda e riempie il record di transito (z-grid-det-riempi-campi-t-gor). I record con askm-val = "C" mostrano la dicitura "Modello di certificazione cancellato!".
Gestione griglia (a-grid)¶
Ciclo eventi con:
- F1: rilancia le configurazioni in modifica.
- S-F4: amministrazione griglia (GRIDADMN).
- S-F5: esporta la griglia in Excel.
- F3 (Aggiorna): valida tutte le righe (
x-controlla-grid-det-tutto), chiede conferma e, se confermato, esegueb-aggiorna. - CTRL-A: aggiunge una riga vuota (
z-grid-det-nuova-riga); in modalita' called imposta modello e descrizione dalla scheda di input e i flag stato"I". - CTRL-E: marca/smarca la riga per cancellazione (flag
tm-r-fl-agg = "C"); vietata se e' attivo un filtro. - Menu pop-up griglia (exception 151-199).
Salvataggio (b-aggiorna)¶
Scorre il file di transito e per ogni riga:
- se flag
"C"e id valorizzato ->del-asnsklnk(cancellazione regola); - se riga modificata (
riga-mod = "S") e id = 0 ->b1-inser-record-det(inserimento con nuovoaskl-idcalcolato leggendo l'ultima chiave e incrementando fino a trovare un id libero); - se riga modificata con id valorizzato ->
b2-aggiorna-record-det(rilettura +rwr-asnsklnk).
Validazioni per colonna¶
Ogni colonna ha un paragrafo x-controlla-tm-r-* che verifica l'esistenza del codice sul file anagrafico corrispondente (modello, tipo attivita', cliente, brand, gruppo azienda) e riporta la descrizione; se non codificato imposta il messaggio di errore. Il controllo generale x-controlla-grid-det-col-ep impone che, valorizzato il modello, sia presente almeno una condizione tra tipo attivita', cliente, brand o gruppo azienda.
Filtri memorizzabili (imppredf)¶
Tramite utilimppredf il programma consente di salvare (CTRL-S) e caricare (CTRL-F) impostazioni di filtro predefinite. La differenza tra i parametri correnti e quelli caricati (tm-interfaccia <> tm-interfaccia-copia) attiva/disattiva il pulsante custom "Salva".
Note implementative¶
- Il file di legame
ASNSKLNKnon ha una chiave "naturale" sulla combinazione condizioni: l'identificativoaskl-ide' progressivo e generato dal programma. - La colonna gruppo azienda e' pilotata interamente dalla configurazione
gestione-gruppo-aziende; se non attiva, la cella e' resa non editabile (z-grid-det-grp-az-be-ep) e la decodifica saltata. - In modalita' called la cella modello e' bloccata (
z-grid-det-modello-be-ep) per vincolare tutte le regole allo stesso modello. - La copybook chiave secondaria
asnsklnk.k02e' inclusa manualmente, come da convenzione (Screens genera solo la chiave primaria).