ASN05A - Cambio modo programmazione¶
Sorgente: cbl/asn05a.cbl (443 righe) | Tipo: Utility batch interattiva (una tantum)
Menu: Assist 2.0 > Archivi > Contratti > Utility > Cambio modo programmazione
Scopo¶
Migra l'installazione dal modo di programmazione "vecchio" (manuale/calendariale) al modo "Avanzato" (A). Per ciascun contratto attivo:
- Fase 1: cancella la programmazione esistente (ASN053
CANCELLA-TUTTO) - Aggiorna
cogcnfimpostandoass-contr / modo-programmazione = "B" - Fase 2: rigenera la programmazione con la nuova logica (ASN053
AGGIORNA-TUTTO)
Esclude contratti chiusi/disdetti, contratti con chiamate gia' lavorate (stato R/C) della provenienza configurata, contratti con interventi gia' collegati a documenti di magazzino.
File acceduti¶
| File | Copybook | Modalita' | Uso |
|---|---|---|---|
| ASNCNTES | acnt-rec |
Input | Scorre testate contratti (chiave primaria) |
| ASNCNINT | acni-rec |
Input | Verifica esistenza pertinenza Cliente |
| ASNCHTES | acht-rec |
Input | Scorre chiamate per contratto (chiave k02 id-contratto) |
| ASNINTES | acit-rec |
Input | Scorre interventi per chiamata (chiave k02 id-chiamata) |
| ASNINDMG | acim-rec |
Input | Verifica documenti di magazzino collegati all'intervento |
| COGCNF | cfg-rec |
I-O | Aggiornamento valore modo-programmazione |
Chiavi secondarie¶
asnchtes.k02(id-contratto)asnintes.k02(id-chiamata)
Programmi chiamati¶
| Programma | Operazione | Scopo |
|---|---|---|
| ASN053 | CANCELLA-TUTTO (fase 1) |
Cancella tutta la programmazione del contratto |
| ASN053 | AGGIORNA-TUTTO (fase 2) |
Rigenera la programmazione |
| RNEWCONF | — | Lettura configurazioni iniziali |
Configurazioni RNEWCONF¶
| Gruppo | Parametro | Variabile | Effetto |
|---|---|---|---|
assist |
chiamate-programmate-provenienza |
tm-cfg-program-prov x(02) |
Identifica la provenienza delle chiamate generate dalla vecchia programmazione |
ass-contr |
modo-programmazione |
tm-cfg-modo-programmazione x(01) |
Modalita' attuale: se = "A" (gia' Avanzata) blocca l'esecuzione |
Se tm-cfg-program-prov = spaces o tm-cfg-modo-programmazione = "A" mostra rispettivamente m-asn05a-3-1/4-1 e m-asn05a-2-1, poi go to fine.
Logica di selezione contratti¶
Paragrafo elabora-asncntes:
- Salta se
acnt-fl-chiuso = 'C'oacnt-fl-chiuso = 'D'(chiuso/disdetto, TASK 141125) - Scorre
ASNCHTESper il contratto (chiave k02). Per ogni chiamata:- Se
acht-provenienza = tm-cfg-program-proveacht-situazione = 'R'o'C'→ flagok-trovato = 'S' - Invoca
cerca-intervento-condoc→ scorreASNINTESperacht-id, per ogni intervento scorreASNINDMG: se trovato unacim-tes-num not = zero→w-inter-con-doc = "S"→ok-trovato = 'S'
- Se
- Se
ok-trovato:- In fase 1: mostra messaggio "Contratto: \<id> ..." (
m-asn05a-7-1+m-asn05a-7-2) e salta - In fase 2: salta silenziosamente
- In fase 1: mostra messaggio "Contratto: \<id> ..." (
- Verifica
ASNCNINTperpertinenza = "C"+id-contratto: se nessuna pertinenza Cliente, salta - Incrementa contatore (
tm-rec-upd-1otm-rec-upd-2a seconda della fase) - Chiama
ASN053con operazione corrispondente alla fase
Aggiornamento configurazione¶
Tra fase 1 e fase 2, aggiorna cogcnf:
move 'C' to cfg-pack
move 'ass-contr' to cfg-prog
move 'modo-programmazione' to cfg-param-key
move 1 to cfg-param-idx
perform rd-cogcnf
if w-verbo-ok
move 'B' to cfg-value
perform rwr-cogcnf
else
move 'B' to cfg-value
perform wr-cogcnf
end-if
Nota: il valore impostato e' "B", non "A". (Verificato dal sorgente: il check pre-esecuzione confronta con "A", ma la scrittura usa "B".)
Verificare il significato dei valori
Lettura sorgente: la guardia iniziale rifiuta se tm-cfg-modo-programmazione = "A" (= "Avanzata" gia' attiva), ma l'aggiornamento successivo scrive "B". Possibile incongruenza o significato specifico dei codici (A = "Antica/storica" gia' migrata? B = "Base avanzata"?). Verificare con utente esperto prima di replicare la convenzione altrove.
Maschera¶
Una sola maschera con visualizzazione contatori (tm-rec-letti-1, tm-rec-upd-1, tm-rec-letti-2, tm-rec-upd-2) e tasto F3 di conferma. Nessun input significativo dall'utente.
Messaggi¶
| ID | Contesto |
|---|---|
m-asn05a-2-1 |
Modalita' programmazione gia' "Avanzata": blocco |
m-asn05a-3-1/4-1 |
Configurazione provenienza chiamate mancante |
m-asn05a-5-1 |
"Elaborazione completata" |
m-asn05a-6-1 |
Titolo maschera |
m-asn05a-7-1/7-2 |
"Contratto: \<id> ..." (skipped in fase 1) |
Note¶
- Utility "one-shot": non e' atteso che l'utente la rilanci dopo il primo passaggio
- La sequenza Fase 1 → Update config → Fase 2 garantisce che ASN053 in fase 2 trovi la configurazione gia' allineata al nuovo modo
- I copybook
utilasn053.cpydefiniscono l'interfaccia con ASN053;utilncnf.cpyquella con RNEWCONF