ASN116 - Modifica dati chiamate¶
Sorgente: cbl/asn116.cbl (2.307 righe) | Tipo: Programma interattivo con griglia editabile su file di transito (pattern GRID-DET), importazione massiva da Excel, log di elaborazione GESDEBUG
Menu: Assist 2.0 > Operativo > Utility > Modifica dati chiamate
Scopo¶
Consente di modificare in blocco alcuni dati anagrafici delle chiamate di assistenza (ASNCHTES) e la propagazione delle modifiche sugli interventi collegati, sui dati di produzione, sui documenti di magazzino e sui dati aggiuntivi intervento. I dati "nuovi" possono essere:
- Azienda del gruppo (
grp-az-ese/grp-az-app) di esecuzione - Cliente di fatturazione (
cli-fat-cod) - Id chiamata originale e flag garanzia (gestione garanzie, sez. datata
250523)
Le righe da elaborare possono essere:
- Importate massivamente da un file Excel (F6) tramite il motore standard di import (
COGPA9con modellok-ie-modello-i-mod-chiamate) - Inserite/modificate a mano nella griglia (CTRL-A per aggiungere, editing delle celle)
Ogni riga viene validata; le righe valide (t-gor-r-valida = "S" o "W" warning) vengono applicate alla conferma (F3). L'esito e' tracciato in un log GESDEBUG consultabile con F7.
File acceduti¶
| File | Copybook | Uso |
|---|---|---|
| feurtab | cogfiles.cpy |
Tabella di sistema |
| ASNCHTES | acht-rec |
Testata chiamata: lettura (rd-asnchtes) e riscrittura dei dati modificati (rwr-asnchtes) |
| ASNINTES | acit-rec |
Testata intervento: scansione per id-chiamata (st-asnintes-notmin-chia2), modifica flag (rwr-asnintes) |
| ASNINTE2 | acit2-rec |
Dati aggiuntivi intervento: lettura/crea/riscrittura (x-aggiorna-asninte2) |
| ASNINDET | acid-rec |
Righe dettaglio intervento: azzeramento riferimenti documento e flag movimento |
| ASNINDMG | acim-rec |
Legame intervento-documenti di magazzino: scansione (st-asnindmg-notmin) |
| ASNPRODT | aptn-rec |
Dati di produzione intervento: aggiornamento cliente/azienda (aggio-asnprodt) |
| COGGEANA | ana-rec |
Anagrafica clienti (tipo "C"): validazione codici cliente e recupero nome |
| GRPAZIEN | ao-azi-rec |
Anagrafica aziende del gruppo: validazione codice e recupero descrizione |
| COGRACCO | rac-rec |
Raccolta contabile: verifica se un documento risulta gia' fatturato (cerco-cogracco, chiave k02) |
| cogpa9-t-dati (transito import) | t-pa9-d-... |
File dati prodotto dall'importazione Excel: un record per singola informazione |
| t-grid-det (transito) | t-gor-r-rec |
File di transito della griglia (righe da elaborare) |
Copybook incluse¶
- File/environment:
feurtab.fd,asn116.select,asn116.fd,cogfiles.cpy - Working di programma:
asn116.wrk,asn116.imppredf-wrk,asn116.tm,k-personal.cpy,k-modelli-ie-i-mod-chiamate.cpy(costanti modello import) - Working standard:
wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpy,utilu20.cpy,utilncnf.cpy - Griglia/filtri:
wgrid.cpy,utilgdad.cpy,utilimppredf.cpy - Interfacce sub:
utils65.cpy,utils93.cpy,utildlg.cpy,utilcogpa9.cpy,utilcogsa8.cpy,utilcogsa9.cpy,utilu11.cpy,utilasn351.cpy,utilasn210.cpy,utilgrp002.cpy,utilasns23.cpy - Log/debug:
utilgesdebug.cpy,gesdebug.cpy,utilgesstr.cpy - Linkage:
wcont.cpy,wcont1.cpy - Screen:
asn116-01.scr - Chiavi secondarie:
asnintes.k02,cogracco.k02,coggeana.k02 - Fine procedure:
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy,asn116.prc,asn116.imppredf
Programmi chiamati¶
| Programma | Operazione | Scopo |
|---|---|---|
| COGPA9 | (modello k-ie-modello-i-mod-chiamate) |
Selezione/apertura del file Excel da importare (motore standard import/export) |
| COGSA9 | CONTROLLA |
Verifica se un documento di magazzino collegato all'intervento risulta gia' fatturato/bloccante (legame-condoc) |
| COGSA8 | CERCA-VALORE-RTM |
Recupera dai raggruppamenti merci (RTM) l'azienda e il cliente attesi per una merce, per il controllo di congruenza (m-controlla-acid-merce) |
| COGU11 | cancella-tutto |
Cancellazione dei DDT collegati agli interventi prima della rigenerazione (aggio-docum) |
| ASN351 | ASN351-CALLED |
Rigenerazione dei nuovi DDT dell'intervento dopo la modifica (aggio-docum) |
| ASNS23 | CALCOLA |
Ricalcolo dei dati di produzione dell'intervento quando cambiano id-originale/flag garanzia (ricalcolo-dati-produzione) |
| ASN210 | ASN210-CALLED |
Ricerca avanzata chiamata (F9 su colonna id-chiamata e id-originale) |
| GRP002 | GRP002 |
Lookup azienda del gruppo (F8 su colonna azienda) |
| GESLPRC | CONSULTA-PROCEDURA |
Consultazione del log della procedura (F7) |
| RNEWCONF | Lettura configurazioni (x99-confi) |
|
| GRIDADMN | Prepara / (S-F4) |
Preparazione e personalizzazione della griglia |
| W$MENU | Menu contestuale (right-click) griglia | |
| GESSTR | Cancellato in z-chiudi (utility stringhe) |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ASSIST |
GESTIONE-GRUPPO-AZIENDE |
tm-cfg-gruppo-aziende |
"S" abilita la gestione dell'azienda del gruppo e i controlli di congruenza |
| 02 | PROGCOGV51 |
euta-c041-db-sca |
tm-cfg-db-sca |
Parametro DB scarico passato a COGU11 |
| 03 | PROGCOGV51 |
euta-c041-db-esc |
tm-cfg-db-esc |
Parametro DB esclusione (gruppo/sottogruppo) passato a COGU11 |
| 04 | ORDINI |
GESTIONE-DISTINTE-KIT |
tm-cfg-gestione-kit |
Gestione kit passata a COGU11 |
| 05 | SISTMERAVA |
TAB-CMA-AZIENDE-GRUPPO |
tm-cfg-tab-cma-azienda |
Tipo tabella CMA per il controllo azienda su merce |
| 06 | SISTMERAVA |
TAB-CMA-CLI-FAT |
tm-cfg-tab-cma-clifat |
Tipo tabella CMA per il controllo cliente-fatturazione su merce |
Flusso di importazione da Excel (c-importa-excel)¶
- Apertura del file dati restituito da COGPA9 (
cogpa9-t-dati) - Apertura di un sotto-log GESDEBUG per registrare le segnalazioni
- Scansione del file: i record sono raggruppati per id-record; a ogni rottura di record si invoca
c-importa-record. Ogni singola informazione e' interpretata dax-analisi-t-pa9-d-dato(id-chiamata, azienda esecuzione, cliente fatturazione, id-originale, flag garanzia) - Al termine mostra i contatori (
tm-n-cht-lrighe lette,tm-n-cht-vrighe valide) e, se presenti segnalazioni, apre il log e attiva F7
Validazione di un record importato (c-importa-record)¶
Per ogni chiamata importata verifica:
- Azienda (se tm-cfg-gruppo-aziende = "S"): deve esistere in GRPAZIEN (c-analisi-azienda)
- Cliente di fatturazione: deve esistere in COGGEANA (c-analisi-cli-fat)
- Id chiamata originale (c-analisi-id-orig): deve esistere, essere di classe "C" (assistenza, non laboratorio), non fittizia (situazione = "Z"), e con lo stesso cliente di fatturazione della chiamata
- Chiamata: deve esistere in ASNCHTES
- Documenti gia' fatturati (cerca-intervento-condoc): per ogni intervento e documento collegato, COGSA9 verifica che non risultino gia' fatturati; COGRACCO verifica la presenza in raccolta contabile. Se bloccante → riga non valida
I dati "da" (stato attuale) e "a" (nuovo valore) vengono caricati sulla riga di transito; i campi non valorizzati sono normalizzati copiando il valore "da". Le righe non valide sono marcate t-gor-r-valida = "N"; gli errori sono scritti nel log via c-aggiungi-errore.
Controlli di congruenza articoli (m-controlli-articoli-chiamata)¶
Eseguito in fase di conferma (x-altri-controlli) solo se tm-cfg-gruppo-aziende = "S" e almeno una tabella CMA e' configurata. Per ogni merce degli interventi della chiamata, COGSA8 restituisce azienda e cliente attesi: se differiscono dai valori "a" della riga, la riga viene marcata "W" (warning, non bloccante) con messaggio, e scritta nel log come warning.
Aggiornamento (F3, d-aggiorna)¶
Previa conferma, scorre le righe di transito valide ("S" o "W") e per ciascuna esegue d1-aggiorna-chiamata:
- Se nessun dato e' cambiato (azienda, cliente, id-originale, flag garanzia invariati) → salta la chiamata, la segnala nel log
- ASNCHTES: aggiorna cliente di fatturazione (
cli-fat-tip = "C"), azienda di esecuzione/apporto, id-garanzia e flag garanzia. Se in garanzia (acht-fl-garanzia = "S") impostaacht-fl-fat = "N"; altrimenti, se il flag garanzia e' cambiato,acht-fl-fat = "S" - ASNPRODT (
aggio-asnprodt): aggiorna cliente di fatturazione e azienda intervento sui dati di produzione - Documenti (
aggio-docum): cancella i DDT collegati (COGU11), azzera flag e riferimenti documento su intervento e righe (acit-fl-bol = "N",acid-fl-moveacid-chiave-movazzerati), e rigenera i nuovi DDT (ASN351) - ASNINTE2 (
x-aggiorna-asninte2): crea/aggiorna i dati aggiuntivi intervento - Ricalcolo produzione (
ricalcolo-dati-produzione): se id-originale o flag garanzia sono cambiati, per ogni intervento invoca ASNS23CALCOLA
L'esito completo e' scritto nel log GESDEBUG; al termine invita a premere F7 per il risultato.
Validazioni di riga in griglia (editing manuale)¶
x-controlla-tm-r-id-chiam: la chiamata deve esistere; recupera i dati "da" (azienda, cliente, id-originale, flag garanzia) e riesegue i controlli su documenti fatturatix-controlla-tm-r-a-az-cod: richiede numero chiamata; l'azienda deve esistere in GRPAZIEN (solo se gruppo aziende attivo)x-controlla-tm-r-acli-cod: il cliente deve esistere in COGGEANAx-controlla-tm-r-a-id-orig: id-originale deve esistere, essere classe"C", non fittizio, con stesso cliente di fatturazionex-controlla-tm-r-a-fl-gara: se flag garanzia"S"richiede id-originale- Le celle di una riga marcata non valida (
tm-r-valida = "N") e la cella id-chiamata di una riga gia' importata (tm-r-nr-chiam not = zero) sono in sola lettura
Note implementative¶
- La griglia adotta il pattern GRID-DET su file di transito con supporto ai filtri predefiniti (
utilimppredf.cpy); inserimento/cancellazione righe bloccati con filtro attivo - Il flag validita' ha tre stati:
"S"valida,"N"bloccante (non aggiornata),"W"warning (aggiornata ma segnalata) - L'aggiornamento e' distruttivo sui DDT: cancella e rigenera i documenti collegati agli interventi (COGU11 + ASN351). Modifica dati condivisi tra chiamata, interventi, produzione e magazzino
- Tutta l'elaborazione e' tracciata in un log GESDEBUG con procedura consultabile (
tm-log-procedura, F7) - La gestione garanzie (id-originale + flag garanzia) e' stata aggiunta nella revisione datata
250523; il controllo bloccante sul cliente assistito diverso e' stato rimosso il090623(resta solo il controllo sul cliente di fatturazione)