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-precsalva 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-delcontrollano 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).