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): scorreASNCHTESper 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 suASNCHTES(rwr-asnchtes: forzatura diacht-statoallo 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): ASNINDMG→asnindm1 (prefisso aci1-), COGTESBO→cogtesb1 (te1-), COGMOMAG→cogmoma1 (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, paragrafost-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)¶
- 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). - Pagina "Risultati" (
a-pag-risultati/a-grid): griglia di dettaglio.
Estrazione (z-grid-det-crea-transito → z-grid-ricerca-dati)¶
- Modalita' "E" (
a1-ricerca-ddt-e): scorreCOGTESBOper 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 viaASNINDM1→ASNINTES→ASNCHTES(a1-20), filtrando classe"L". - Modalita' "C" (
a2-ricerca-chiam): scorreASNCHTESper data (k06), filtra classe"L"e chiamab1-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-chiusacercando i documenti di riconsegna:ricerca-ddt(DDT tipo"D"collegato all'intervento) ericerca-ord(ordine di riconsegna). Conmodo-chiusura = "E"(PCASE-3912/3953) lo stato "chiuso" dipende daacht-situazione = "C"(o dalla permuta), non dalla presenza del documento. - Applica il filtro
tm-situazione(con eccezioni per la personalizzazione AESSE, che usaacht-statovs 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 canalecogtrans), con doppia chiave e i copybookt-grd-filtri/maskgtgt/maskgtgdper il motore di griglia paginata; a fine programma il file viene chiuso e cancellato (delete file t-grid-det). ASNCHTESe' aperta ini-o(chiusa e riaperta inapri) 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 ... THRUeGO TOverso label di fine paragrafo (loopa1-*/a2-*,ex-*): strutture del legacy, da non replicare in nuovo codice.