ASN047 - Fasi chiamata interna¶
Sorgente: cbl/asn047.cbl (1.076 righe) | Tipo: Programma interattivo a griglia con riordino sequenza e tabella hard-coded degli step
Menu: Assist 2.0 > Archivi > Strumenti > Fasi chiamata interna
Scopo¶
Configura la sequenza delle fasi (step) del ciclo di chiamata interna dell'assistenza strumenti (procedura "Endonova"). Il programma presenta in griglia l'elenco degli step previsti — combinando quelli gia' memorizzati nel file ASNFASIC con un catalogo completo hard-coded — consentendo di riordinarli (F5/F6), abilitarli/disabilitarli tramite il flag "eseguito" e salvarli. Il salvataggio riscrive per intero il file ASNFASIC.
Ogni step e' associato al programma COBOL che lo gestisce (es. ricezione strumento -> ASN510, stima -> ASN520, preventivo -> ASN545, chiusura lavoro -> ASN570, DDT di riconsegna -> ASN575, ecc.). L'elenco degli step disponibili e' filtrato in base alla configurazione ass-strum/modo-chiusura, che seleziona il flusso di chiusura chiamata (interno vs esterno) mostrando o nascondendo gli step in alternativa.
Il programma opera anche in modalita' called (w-dc-called = "S", gestita internamente): in tal caso e' abilitata la coppia selezione/modifica anziche' la sola gestione.
Interfaccia¶
procedure division using stringhe — il programma non riceve un linkage utility dedicato; l'unico parametro esterno e' stringhe (contesto standard wcont.cpy/wcont1.cpy).
File acceduti¶
Lettura/scrittura (file principale)¶
| File | Copybook (rec) | Uso |
|---|---|---|
| ASNFASIC | acif-rec |
Fasi della chiamata interna. In caricamento (a-avanti) scorre l'intero file; in salvataggio (b-aggiorna) cancella tutti i record e riscrive l'intera sequenza dalla griglia. Campi: acif-step, acif-des, acif-seq-def, acif-seq, acif-fl-ese, acif-programma |
Tabella step hard-coded (tab-step)¶
In working-storage e' definita tab-step con k-max-step = 23 elementi (ts-ele), ognuno con codice step (ts-step-cod, 3 char), descrizione (ts-step-des), programma associato (ts-step-programma, 7 char), sequenza di default (ts-step-seq) e flag di presenza (ts-esiste). Il catalogo comprende, tra gli altri:
| Cod | Descrizione | Programma |
|---|---|---|
| RS | Ricezione strumento | ASN510 |
| SRP | Stima (rilevazione problemi) | ASN520 |
| SPP | Stima (prestazioni previste) | ASN530 |
| AN | Analisi | ASN540 |
| PR | Preventivo | ASN545 |
| AU | Autorizzazione | ASN550 |
| PK | Pick-up | ASN555 |
| SM | Scarico materiali utilizzati | ASN560 |
| LE | Esecuzione attivita' | ASN565 |
| VF | Verifica finale | ASN520 |
| CH | Chiusura lavoro | ASN570 |
| IDC | DDT di riconsegna | ASN575 |
| DR | Stampa documento riparazioni | (nessun programma) |
| PF | Preventivo da fornitore | ASN541 |
| RR | Rientro strumento da forn. | ASN542 |
| OF | Ordine riparazione a forn. | ASN543 |
| BF | Buono di prelievo a fornitore | ASN544 |
| RM | Rientro materiali utilizzati | ASN560 |
| IG | Assegnazione intervento | ASN120 |
| IC | Chiusura intervento | ASN140 |
| VA | Verifica approfondita | ASN520 |
| NS | Note Stima | ASN551 |
| CTL | Chiusura tecnica lavoro | ASN552 |
Le descrizioni effettive vengono sovrascritte all'avvio dai messaggi multilingua m-asn047-100-1 ... m-asn047-100-23.
Copybook incluse (principali)¶
- Costanti dominio:
costanti-assist.cpy - Working-storage generali:
wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpy - Griglia e amministrazione:
wgrid.cpy,utilgdad.cpy - Configurazioni:
utilncnf.cpy - Utility/controlli:
utils52.cpy,utils93.cpy,utilu10.cpy,utilu20.cpy - Fine procedure:
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy,asn047.prc
Programmi chiamati¶
| Programma | Contesto | Scopo |
|---|---|---|
| COGU10 | apri |
GetDivisaConto: divisa di conto per la data di sistema |
| GRIDADMN | Prepara / S-F4 / Modify-Record | Preparazione e amministrazione griglia; riordino righe |
| RNEWCONF | x99-confi (init e F1) |
Lettura configurazioni ass-strum/modo-chiusura e ass-strum/gestione-mag-cl |
I codici programma della tabella step (ASN5xx, ASN120, ASN140, ecc.) sono riferimenti di dominio memorizzati sul record di fase, non chiamate dirette effettuate da ASN047.
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Parametro | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ass-strum |
modo-chiusura |
tm-cfg-modo-chiusura |
"E" = chiusura esterna: esclude gli step ASN555/ASN560/ASN565; altrimenti (interna) esclude ASN120/ASN140/ASN551 |
| 02 | ass-strum |
gestione-mag-cl |
tm-cfg-gestione-mag-cl |
Gestione magazzino conto lavoro |
Le configurazioni sono lette con ncnf-pac-gen = k-pack-coge. Se risultano attive contemporaneamente modo-chiusura = "E" e gestione-mag-cl = "S", il programma emette un errore bloccante e termina (le due impostazioni sono mutuamente esclusive).
Logica di elaborazione¶
Avvio (apri)¶
Init programma, ctr-abil, apertura file, x99-confi, abilitazione tasti funzione (in called: F3 selezione/modifica; standalone: F3 gestione; sempre F1, F3 aggiorna, F8 aiuto/calendario, S-F4, CTRL-A, CTRL-E, F7, F9, F5/F6 per lo spostamento), caricamento descrizioni step multilingua, recupero divisa di conto (COGU10), preparazione griglia. La modalita' iniziale e' selezione ("S") se called, aggiornamento ("A") altrimenti.
Caricamento griglia (a-avanti / a10-loop / a30)¶
- Scorre
ASNFASIC(a10-loop): ogni record letto viene inserito nella griglia, saltando gli step esclusi dalla configurazionemodo-chiusura. Per ogni step trovato marcats-esiste = "S"sull'elemento corrispondente della tabella hard-coded. - In
a30completa la griglia aggiungendo gli step del catalogo non ancora presenti (ts-esiste = " "), rispettando le stesse esclusioni di configurazione; i nuovi step ricevono sequenza progressiva e flag eseguito"S". - Ordina la tabella per
tm-seq(ordina-tab, ordinamento a bolle) e costruisce la griglia.
Gestione griglia (a-grid / a-accept-grid)¶
- F5 / F6: spostano la riga corrente su/giu' nella sequenza (
a5-sposta-su/a5-sposta-giu), scambiando l'elemento e il numero di sequenza con quello adiacente. - S-F4: amministrazione griglia (GRIDADMN).
- F1: rilancia le configurazioni in modifica.
- F3: in standalone rinumera le sequenze (per evitare duplicati), chiede conferma e salva (
a1-aggiorna); in called commuta tra modalita' selezione e aggiornamento, salvando all'uscita dall'aggiornamento.
Salvataggio (b-aggiorna)¶
Cancella integralmente ASNFASIC (scan + del-asnfasic), quindi riscrive un record per ogni riga della griglia (wr-asnfasic) copiando step, descrizione, sequenza di default, sequenza corrente, flag eseguito e programma. I paragrafi b1-inserisci/b2-modifica/b3-cancella sono presenti ma vuoti (approccio "cancella tutto e riscrivi").
Gestione errori e validazioni¶
- Tabella piena: se le righe superano
k-max-ele-tab(50) durante il caricamento, emettem-tabella-pienae interrompe. - Descrizione obbligatoria (
x-controlla-tm-des): lo step deve avere descrizione (m-asn047-37-1). - Cancellazione (
c1-ctrl-canc): non consentita a griglia vuota (m-asn047-35-1). - Celle non editabili (
z-tm-tab-fl-ese-be-ep): il flag "eseguito" non e' modificabile per gli step ASN510, ASN530, ASN570 (fasi obbligatorie). - Modifica riga esistente (
z-event-tm-tab-ep): in modalita' selezione le celle sono in sola lettura; se lo step esiste ma l'operatore non e' abilitato all'aggiornamento (w-abi-agg = "N"), la modifica e' bloccata conm-no-abi-modifica. - Configurazioni incompatibili:
modo-chiusura = "E"+gestione-mag-cl = "S"-> errore bloccante e uscita.
Note implementative¶
- Il catalogo degli step e i relativi programmi sono codificati staticamente in
tab-step: aggiungere una nuova fase richiede la modifica del sorgente (nuovo elemento, incremento dik-max-stepe nuovo messaggiom-asn047-100-n), oltre alle eventuali esclusioni per configurazione. - Alcuni codici step condividono lo stesso programma con sequenze diverse (es. SRP/VF/VA su ASN520), riflettendo fasi logiche distinte gestite dallo stesso modulo.
- Il salvataggio "cancella e riscrivi" garantisce che l'ordine e il set di step su
ASNFASICcorrispondano esattamente alla griglia; la rinumerazione preventiva delle sequenze evita chiavi duplicate.