Vai al contenuto

ASN203 - Situazione chiamate di laboratorio

Sorgente: cbl/asn203.cbl (3.426 righe) | Tipo: Programma interattivo di consultazione con maschera a filtri (tab-control), griglia di dettaglio paginata su file di transito indicizzato ed export Excel

Menu: Assist 2.0 > Operativo > Visualizzazioni > Situazione chiamate di laboratorio


Scopo

ASN203 estrae e mostra in griglia la situazione delle chiamate di laboratorio (classe "L", riparazioni tipo Endonova), con tutti i documenti del ciclo di riparazione collegati a ciascuna chiamata: DDT di entrata (carico), preventivi cliente, ordine/DDT di riparazione a fornitore, ordine/DDT di riconsegna, matricola/serial number, stato del workflow, agenti, priorita', tipo attivita'. La griglia consente il filtro contestuale, l'ordinamento, l'export Excel, la stampa di un report Wordmdl, la navigazione sulla filiera del documento (S-F2 → COGMA3) e l'apertura della gestione chiamata (F3 → ASN500).

L'estrazione ha due modalita' (campo tm-fl-periodo):

  • "C" (da Chiamate): scorre ASNCHTES per data (chiave k06) filtrando le chiamate di classe "L".
  • "E" (da DDT di Entrata): parte dai DDT con causale di riparazione (COGTESBO) e risale alle chiamate collegate; usata quando si arriva da un documento (modalita' called o filtro documento valorizzato).

Nota (etichetta menu): la voce di menu classifica ASN203 come "Visualizzazione". La funzione e' prevalentemente di consultazione, ma non e' strettamente read-only: durante l'estrazione (b11-cerco-dati) il programma esegue alcuni aggiornamenti di allineamento su ASNCHTES (rwr-asnchtes: forzatura di acht-stato allo stato di evasione configurato quando la chiamata risulta chiusa) e la griglia consente l'ingresso in gestione chiamata via F3 (ASN500). Da tenere presente nell'analisi di impatto.


Interfaccia chiamato (linkage)

Procedura chiamata con using stringhe util-asn203.

util-asn203 (utilasn203.cpy):

Campo Tipo Uso
asn203-caller / asn203-called x(08) Identificativi chiamante/chiamato
asn203-in-tes-chia3 (mag/ann/tip/bol) Documento di entrata di partenza (modalita' called da bolla di carico)

Modalita' called: se asn203-called = "ASN203" e asn203-caller valorizzato, imposta w-dc-called = "S", forza tm-fl-periodo = "E", precompila il documento e va direttamente alla pagina risultati sulle chiamate collegate a quel documento.

File acceduti

L'ampia rosa di file riflette la ricostruzione dell'intera filiera di riparazione. Alcune FD sono incluse in copia rinominata (vedi utilasn203.cpy / asn203.select): ASNINDMGasnindm1 (prefisso aci1-), COGTESBOcogtesb1 (te1-), COGMOMAGcogmoma1 (ma1-).

Input/lettura

File Copybook Uso
ASNCHTES acht-rec Testata chiamata (classe "L"); chiave k06 per estrazione da data. Aperta in i-o (vedi nota)
ASNCHDET achd-rec Righe chiamata: matricola, difetto segnalato
ASNINTES acit-rec Interventi collegati (chiave k02)
ASNINDMG / ASNINDM1 acim-rec / aci1-rec Legami intervento → documento; asnindm1 k02 su tes-chia3 per risalire dal DDT
ASNINDAG aitd-rec Note (chiusura "F")
ASNCHWKF achw-rec Workflow chiamata: ultimo step non "N" (stato avanzamento)
ASNFASIC acif-rec Descrizione step/fase
ASNCHPRV achv-rec Preventivi cliente collegati (selezione, testata/anno/numero)
ASNCHORD acho-rec Ordini collegati (riconsegna, tip "C")
ASNCHRIP arpt-rec Processi di riparazione della chiamata (chiave k02); ultimo processo
ASNCHRID arpd-rec Dettaglio processo riparazione: progressivi 20 (DDT a fornitore), 30 (ordine riparazione forn.), 40 (DDT restituzione)
ASNMATRI amtr-rec Matricola: serial number, merce, ubicazione
ASNSTCHM astc-rec Descrizione stato chiamata
ASNTPATT atpa-rec Descrizione tipo attivita'
ASNTPDIF atpd-rec Descrizione tipo difetto
ASNPRIOR apri-rec Descrizione priorita'
COGTESBO / COGTESB1 tes-rec / te1-rec Testate documenti magazzino; k02 per estrazione da data (modalita' "E")
COGMOMAG / COGMOMA1 mag-rec / ma1-rec Righe documenti magazzino (quantita', merce)
COGTESOR tor-rec Testate ordini (riparazione/riconsegna)
COGRIGOR ror-rec Righe ordini (quantita' ordinata)
COGTESPR tpr-rec Testate preventivi cliente
COGRIGPR rpr-rec Righe preventivi (totale, escludendo righe descrittive - ticket 305851)
COGRACMT rtm-rec Raccordo merce → codice tabella (part-number, tab-cma-part-number)
COGMERCI mer-rec Merci: flag gestione s/n
COGGEANA ana-rec Clienti/agenti (denominazioni)
COGMAGAZ magz-rec Validazione magazzino filtro
COGDESTI dst-rec Destinazione diversa (ragione sociale, indirizzo)
COGSNAGG sna-rec Chiave alternativa serial number (sna-key-alt)
COGTABEL euta-rec Validazione agente (tipo agente)
PRNTOPER ptop-rec Profilo operatore: agente collegato

Output/aggiornamento

File Copybook Scrittura
ASNCHTES acht-rec rwr in b11-cerco-dati: se acht-situazione = "C" forza acht-stato = tm-cfg-stato-evasione

Transito

File Scopo
t-grid-det (w-nome-t-grid-det) Buffer indicizzato dei record estratti per la griglia (t-gor-r-rec); chiave k01 t-gor-r-chia1, k02 t-gor-r-chia2 duplicates. Include t-grd-filtri.fd, maskgtgt.fd, maskgtgd.fd
exp-grid (w-nome-exp-grid) File sequenziale per l'export Excel

Chiavi secondarie

  • cogtesbo.k02, cogracmt.k02, asnindmg.k02, asnchtes.k06, asnchtes.k01-agg, asnintes.k02, asnchrip.k02, asnindm1.chia2 (start custom nel sorgente, paragrafo st-asnindm1-notmin-chia2)

Programmi chiamati

Programma Operazione Scopo
CRMS12 PREPARA / CONTROLLA-NOM PBUG-1857: restrizioni di abilitazione cliente per operatore. PREPARA all'avvio (flag w-crms12-fl-restrizioni); CONTROLLA-NOM in estrazione per filtrare i nominativi non abilitati
ASN500 ASN500-CALLED F3 sulla riga: gestione chiamata di laboratorio (id chiamata asn500-in-id)
COGMA3 COGMA3-CALLED S-F2 sulla riga: navigazione filiera documento (classe "A", chiave chiamata)
COGV49 COGV49-CALLED F9 su campi documento: ricerca documento (ritorna estremi mag/ann/tip/num)
COGU09 cerca-consegna / cerca-magazzino Ricerca ordine di riconsegna collegato al DDT e relativo DDT di riconsegna
COGE35 F8 su agente: lookup agente
COGS65W Lookup cliente / agente (campi tm-ana-cod-c, tm-age-cod)
GRIDADMN Prepara Personalizzazione/formattazione griglia
W$MENU Menu pop-up contestuale sulla griglia (right-click)
RNEWCONF Lettura/modifica configurazioni
SENDW36 (copy sendw36.cpy) Lookup magazzino (F8 su tm-tes-mag)
Report Wordmdl z-wordmdl-report F9: produzione report standard della griglia

Configurazioni RNEWCONF (x99-confi)

Idx Gruppo Chiave Variabile Effetto
01 assist tipo-colore-righe-vis-chiamate tm-cfg-tipo-colore Criterio di colorazione righe griglia
02 ENTRATE CAU-RIPARAZIONE-ASSIST tm-cfg-cau-rip Causale DDT di entrata considerati (modalita' "E")
03 ass-strum modalita-doc-riconsegna tm-cfg-modalita-doc-riconsegna "D" (DDT) / "O" (Ordine): tipo documento di riconsegna. Nota (31/01/2023): entrambe le ricerche vengono comunque eseguite
04 matricole tab-cma-part-number tm-cfg-tab-cma-part-number Tipo tabella per il codice part-number della merce
05 ASSIST codice-stato-evasione tm-cfg-stato-evasione Stato "evasione"; forzato su chiamata chiusa e usato nei filtri per la personalizzazione AESSE
06 entrate cau-rip-permuta-fat tm-cfg-cau-rip-permuta-fat Causale riparazione permuta (fatturata)
07 entrate cau-rip-permuta-nofat tm-cfg-cau-rip-permuta-nofat Causale riparazione permuta (non fatturata)
08 ass-strum modo-chiusura tm-cfg-modo-chiusura "E" = chiusura esterna: cambia la logica "chiamata chiusa" (PCASE-3912/PBUG-1860)

(idx 09 info-analisi-ps-completata presente ma commentato)

Logica di elaborazione

Maschera a due pagine (tab-control)

  1. Pagina "Filtri" (a-pag-filtri): situazione (T/A/C - tutti/aperte/chiuse), cliente assistito, data da/a, tipo periodo (C/E), documento (mag/ann/tip/num), agente. F7 = esegue il filtro; CTRL-S/CTRL-F = salva/carica impostazioni predefinite (asn203.imppredf).
  2. Pagina "Risultati" (a-pag-risultati / a-grid): griglia di dettaglio.

Estrazione (z-grid-det-crea-transitoz-grid-ricerca-dati)

  • Modalita' "E" (a1-ricerca-ddt-e): scorre COGTESBO per data, considera i DDT con causale di riparazione/permuta; per le righe non gestite a s/n estrae i dati dal DDT (b2-dati-da-ddt); poi risale alle chiamate collegate al DDT via ASNINDM1ASNINTESASNCHTES (a1-20), filtrando classe "L".
  • Modalita' "C" (a2-ricerca-chiam): scorre ASNCHTES per data (k06), filtra classe "L" e chiama b1-dati-da-chiamata.
  • Filtri comuni: cliente assistito, agente (acht-agente/acht-agente-2), restrizioni CRMS12 sui nominativi.

Determinazione stato chiamata (b1-dati-da-chiamata)

  • Calcola w-fl-chiamata-chiusa cercando i documenti di riconsegna: ricerca-ddt (DDT tipo "D" collegato all'intervento) e ricerca-ord (ordine di riconsegna). Con modo-chiusura = "E" (PCASE-3912/3953) lo stato "chiuso" dipende da acht-situazione = "C" (o dalla permuta), non dalla presenza del documento.
  • Applica il filtro tm-situazione (con eccezioni per la personalizzazione AESSE, che usa acht-stato vs stato-evasione).

Valorizzazione riga griglia (b11-cerco-dati)

Popola il record di transito t-gor-r-* con: DDT di entrata e quantita', cliente fatturazione/assistito e relativi agenti, destinazione diversa, matricola/serial/merce/part-number/ubicazione, difetto, ultimo step di workflow (con marcatura "(completata)" per lo step Note stima se acht-fl-fine-stima = "S", TASK 031024), dettagli ultimo processo di riparazione (DDT a fornitore prog 20, ordine riparazione prog 30, DDT restituzione prog 40), preventivo cliente selezionato e totale, ordine/DDT di riconsegna e quantita'. Qui avviene anche il rwr-asnchtes di allineamento stato (vedi nota in Scopo).

Azioni sulla griglia (a-grid)

  • F3: apre ASN500 (gestione chiamata) sull'id riga, poi rilegge e aggiorna la riga.
  • S-F2: COGMA3 (filiera documento).
  • F9: report Wordmdl.
  • S-F4: GRIDADMN (personalizzazione griglia).
  • S-F5: export Excel (z-esporta-grid-det).
  • Right-click: menu pop-up contestuale.

Messaggi principali

Testo Contesto
"Nessun dato estratto!" Estrazione vuota
" Cliente non codificato " / "Cliente non abilitato per l' operatore" Validazione filtro cliente (con CRMS12)
"Da data maggiore di A data !" Validazione intervallo date
"Magazzino non esistente!!" / "Documento non esistente!!" Validazione filtri documento
"Agente non esistente!!" / "Fornitore non esistente!!" Validazione filtro agente

Note implementative

  • La griglia usa un file di transito indicizzato t-grid-det (non il canale cogtrans), con doppia chiave e i copybook t-grd-filtri/maskgtgt/maskgtgd per il motore di griglia paginata; a fine programma il file viene chiuso e cancellato (delete file t-grid-det).
  • ASNCHTES e' aperta in i-o (chiusa e riaperta in apri) proprio perche' l'estrazione puo' aggiornare lo stato di evasione.
  • Restrizioni CRMS12 (PBUG-1857): dal 2024-01 il filtro agente non e' piu' precompilato con l'agente dell'operatore; l'abilitazione e' governata da CRMS12 (CONTROLLA-NOM) applicato ai clienti assistito/fatturazione.
  • Escludendo le righe descrittive (rpr-merce = k-merce-null) dal totale preventivo si evita il calcolo di importi errati (ticket 305851, 26/04/2024).
  • Il codice usa PERFORM ... THRU e GO TO verso label di fine paragrafo (loop a1-*/a2-*, ex-*): strutture del legacy, da non replicare in nuovo codice.