Vai al contenuto

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-id e asn03d-caller valorizzato): opera filtrato su un singolo modello passato in asn03d-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 (chia2 su askl-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)

  1. Init programma, controllo abilitazioni (ctr-abil), lettura configurazione (x99-confi), apertura file.
  2. Rileva la modalita' called: se asn03d-called = k-program-id e asn03d-caller != spaces, imposta w-dc-called = "S" e salva il modello di input.
  3. 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.
  4. Crea il menu contestuale della griglia e i pulsanti custom "Salva impostazione (CTRL-S)" e "Cerca impostazione (CTRL-F)" per i filtri memorizzabili.
  5. 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, esegue b-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 nuovo askl-id calcolato 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 ASNSKLNK non ha una chiave "naturale" sulla combinazione condizioni: l'identificativo askl-id e' 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.k02 e' inclusa manualmente, come da convenzione (Screens genera solo la chiave primaria).