Vai al contenuto

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:

  1. Fase 1: cancella la programmazione esistente (ASN053 CANCELLA-TUTTO)
  2. Aggiorna cogcnf impostando ass-contr / modo-programmazione = "B"
  3. 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:

  1. Salta se acnt-fl-chiuso = 'C' o acnt-fl-chiuso = 'D' (chiuso/disdetto, TASK 141125)
  2. Scorre ASNCHTES per il contratto (chiave k02). Per ogni chiamata:
    • Se acht-provenienza = tm-cfg-program-prov e acht-situazione = 'R' o 'C' → flag ok-trovato = 'S'
    • Invoca cerca-intervento-condoc → scorre ASNINTES per acht-id, per ogni intervento scorre ASNINDMG: se trovato un acim-tes-num not = zerow-inter-con-doc = "S"ok-trovato = 'S'
  3. 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
  4. Verifica ASNCNINT per pertinenza = "C" + id-contratto: se nessuna pertinenza Cliente, salta
  5. Incrementa contatore (tm-rec-upd-1 o tm-rec-upd-2 a seconda della fase)
  6. Chiama ASN053 con 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.cpy definiscono l'interfaccia con ASN053; utilncnf.cpy quella con RNEWCONF