Vai al contenuto

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)

  1. Scorre ASNFASIC (a10-loop): ogni record letto viene inserito nella griglia, saltando gli step esclusi dalla configurazione modo-chiusura. Per ogni step trovato marca ts-esiste = "S" sull'elemento corrispondente della tabella hard-coded.
  2. In a30 completa 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".
  3. 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, emette m-tabella-piena e 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 con m-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 di k-max-step e nuovo messaggio m-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 ASNFASIC corrispondano esattamente alla griglia; la rinumerazione preventiva delle sequenze evita chiavi duplicate.