Vai al contenuto

ASN044 - Modelli contratti

Sorgente: cbl/asn044.cbl | Program-ID: ASN044 | Tipo: Programma interattivo (maschera con griglia, modalita' aggiornamento/selezione)

Menu: Assist 2.0 > Archivi > Contratti > Modelli contratti


Scopo

Gestisce l'anagrafica dei modelli di contratto del modulo Assist 2.0. Ogni record e' identificato da tipo contratto + codice modello, e contiene descrizione, tipo attivita' di default e modalita' di proposta del modello. La funzione opera con dialog a griglia e supporta richiamo in modalita' selezione (asn044-called = k-program-id) da altri programmi.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda
ASNTPATT ISAM Input Anagrafica tipi attivita' (decodifica tm-tip-att)
ASNCNTIP ISAM Input Anagrafica tipi contratto (categoria selezionata)
ASNCNMOD ISAM I-O Modelli di contratto (record principale: tipo + codice)

Copybook utilizzate

Copybook Descrizione
asn044.select, asn044.fd, asn044.wrk, asn044-01.scr, asn044.prc, asn044.decla Screen Designer: select, FD, working, screen, procedure, declaratives
cogfiles.cpy Layout FEURTAB
wgrave, wnscr, wopenf, wstato, cogazien Working storage standard + dati azienda
utilagprg.cpy Linkage SWN092 (sincronizzazione KPN)
utilncnf.cpy Linkage RNEWCONF
wgrid.cpy, utilgdad.cpy Working griglia + linkage GRIDADMN
utilasn016.cpy Linkage ASN016 (selezione tipo attivita')
utilasn043.cpy Linkage ASN043 (aiuto categoria contratto / tipi contratto)
utilasn045.cpy Linkage ASN045 (condizioni del modello)
utilasn044.cpy Linkage del programma (per chiamata esterna)
wcont.cpy, wcont1.cpy Linkage standard
grave, mmmask, opengen, stato, stato1, winmsg Infrastruttura standard fine procedure

Logica di elaborazione

Apertura (apri): init, apertura file, valutazione linkage utilasn044 per determinare modalita' (selezione vs aggiornamento), caricamento configurazioni via x99-load-config, preparazione pulsante custom "Condizioni (F5)" via bitmap assist, definizione tasti funzione (F3 conferma/passaggio, F8 aiuto, S-F4 griglia, Ctrl+A aggiungi, Ctrl+E elimina).

Modalita': - Se chiamato da esterno (asn044-called = k-program-id) -> modo "S" (selezione), F3 = conferma selezione e ritorno al chiamante. - Altrimenti modo "A" (aggiornamento), F3 = salvataggio modifiche.

Accept categoria (a-tm-tip): se chiamato con asn044-in-tip valorizzato e trovato in ASNCNTIP, salta direttamente in griglia (a-avanti). Altrimenti chiede categoria con F8 -> chiama ASN043 (aiuto tipi contratto).

Caricamento griglia (a-avanti / a10-loop): start su ASNCNMOD con chiave tip = asn044-in-tip, loop fino a k-max-ele-tab = 500 o cambio chiave. Per ogni riga decodifica tipo attivita' tramite ASNTPATT. Salva tm-cod-prec per rilevare modifiche/inserimenti/cancellazioni.

Gestione griglia (a-grid / a-accept-grid): - F3 (modo A): valida tutto -> a1-aggiorna -> b-aggiorna. Confronta tm-cod vs tm-cod-prec: uguale = modifica, prec vuoto = inserisci, cod vuoto = cancella, diversi = cancella+inserisci. Dopo ogni operazione su ASNCNMOD chiama x-sincronizza-kpn. - F3 (modo S, chiamato): conferma selezione modello e ritorno. - F5 (su riga esistente): apre ASN045 (condizioni del modello). - Ctrl+A: aggiunge riga. Per asn044-in-tip = tm-cfg-tipo-contratto (categoria configurata come "proposte") imposta automaticamente tm-modo-prop = "P". - Ctrl+E: elimina riga (con conferma). - S-F4: chiama GRIDADMN per personalizzazione/amministrazione griglia. - F8 su cella "Tipo attivita'": apre ASN016 (selezione tipo attivita').

Aggiornamento (b-aggiorna): chiama b1-inserisci, b2-modifica, b3-cancella: - b1-inserisci: scrive ASNCNMOD; se esiste gia' chiede conferma sovrascrittura. - b2-modifica: se non esiste piu' chiede se reinserire. - b3-cancella: cancella se presente.

Ogni operazione sincronizza con KPN (vedi sotto).

Chiamate a sottoprogrammi

Programma Utilizzo
ASN016 Selezione tipo attivita' (F8 su cella tipo attivita')
ASN043 Selezione/aiuto tipo contratto (F8 su campo categoria)
ASN045 Condizioni del modello (F5 su riga selezionata)
GRIDADMN Personalizzazione griglia (S-F4)
RNEWCONF Lettura configurazioni (ass-contr.tipo-contratto-proposte)
SWN092 Sincronizzazione esportazione chiave verso KPN

Configurazioni RNEWCONF

Gruppo Chiave Descrizione
ass-contr tipo-contratto-proposte Categoria di contratto per cui i nuovi modelli inseriti vengono automaticamente marcati con modo proposta "P"

Sincronizzazione KPN (x-sincronizza-kpn)

Dopo ogni wr/rwr/del su ASNCNMOD viene chiamato SWN092 (AGPRG-CALLED, agprg-ope = "ESPORTA-KEY", key = acnm-chia1) per propagare la modifica al sistema KPN. Chiamata in on overflow continue per tollerare assenza/timeout di SWN092.

Linkage di chiamata (utilasn044)

Campo Direzione Descrizione
asn044-called in Se uguale a "ASN044" indica chiamata in modalita' selezione
asn044-caller in Identificativo del chiamante
asn044-in-tip in Categoria di contratto (tipo) su cui posizionarsi
asn044-out-tip out Tipo contratto selezionato in uscita
asn044-out-cod out Codice modello selezionato
asn044-out-des out Descrizione modello selezionato

Note implementative

  • Massimo modelli per categoria: k-max-ele-tab = 500.
  • Pulsante custom "Condizioni (F5)" con bitmap assist, numero 25.
  • Pattern standard COBOL Eurocoge per gestione tabella con griglia: tm-cod-prec salva il valore iniziale per determinare se la riga e' nuova/modificata/cancellata.
  • La logica F3 dipende dalla modalita': in selezione conferma e ritorna; in aggiornamento salva e ri-entra in selezione.
  • Permessi w-abi-ins, w-abi-agg, w-abi-del controllano se l'operatore puo' aggiungere, modificare o eliminare; messaggi specifici (m-asn044-2-1, m-asn044-3-1, ecc.) in caso di blocco.
  • L'autore originale e' Daniele (annotato nei commenti).