Vai al contenuto

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:

  1. Importate massivamente da un file Excel (F6) tramite il motore standard di import (COGPA9 con modello k-ie-modello-i-mod-chiamate)
  2. 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)

  1. Apertura del file dati restituito da COGPA9 (cogpa9-t-dati)
  2. Apertura di un sotto-log GESDEBUG per registrare le segnalazioni
  3. 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 da x-analisi-t-pa9-d-dato (id-chiamata, azienda esecuzione, cliente fatturazione, id-originale, flag garanzia)
  4. Al termine mostra i contatori (tm-n-cht-l righe lette, tm-n-cht-v righe 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:

  1. Se nessun dato e' cambiato (azienda, cliente, id-originale, flag garanzia invariati) → salta la chiamata, la segnala nel log
  2. 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") imposta acht-fl-fat = "N"; altrimenti, se il flag garanzia e' cambiato, acht-fl-fat = "S"
  3. ASNPRODT (aggio-asnprodt): aggiorna cliente di fatturazione e azienda intervento sui dati di produzione
  4. Documenti (aggio-docum): cancella i DDT collegati (COGU11), azzera flag e riferimenti documento su intervento e righe (acit-fl-bol = "N", acid-fl-mov e acid-chiave-mov azzerati), e rigenera i nuovi DDT (ASN351)
  5. ASNINTE2 (x-aggiorna-asninte2): crea/aggiorna i dati aggiuntivi intervento
  6. Ricalcolo produzione (ricalcolo-dati-produzione): se id-originale o flag garanzia sono cambiati, per ogni intervento invoca ASNS23 CALCOLA

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 fatturati
  • x-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 COGGEANA
  • x-controlla-tm-r-a-id-orig: id-originale deve esistere, essere classe "C", non fittizio, con stesso cliente di fatturazione
  • x-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 il 090623 (resta solo il controllo sul cliente di fatturazione)