ASN510 - Ricezione chiamata di riparazione (controllo strumenti Endonova)¶
Sorgente: cbl/asn510.cbl (7.616 righe) | Tipo: Programma interattivo di inserimento/modifica con griglia accessori, numerazione automatica, generazione intervento/workflow, carico da cliente e dossier; utilizzabile standalone e called
Menu: Assist 2.0 > Operativo > Riparazioni > Ricezione
Scopo¶
ASN510 e' la ricezione (apertura o modifica) di una chiamata di laboratorio (classe "L", controllo/riparazione strumenti tipo Endonova). Raccoglie in un'unica maschera tutti i dati della chiamata - matricola/serial number dello strumento, cliente assistito e di fatturazione, destinazione, priorita', oggetto, brand, tipo attivita', area tecnica, tipo difetto, commessa, agente, note, stato disinfezione - e la griglia degli accessori ricevuti insieme allo strumento.
Alla conferma il programma:
- numera la chiamata (COGS25) e scrive
ASNCHTES+ riga di dettaglioASNCHDET; - genera il workflow della chiamata da
ASNFASIC(ASNCHWKF, con lo step di ricezione marcato completato); - crea l'intervento collegato (
ASNINTES, +ASNINTE2); - aggiorna gli accessori (
ASNACCES/ASNCHACC) e il raccordo chiamata-commessa (COGRIGCM); - opzionalmente crea il dossier documentale (CRMS10) e, per gli strumenti muletto di proprieta' interna, il carico da cliente in magazzino (COGU30 via transito
TRAN-G43); - propone stampa registrazione/etichetta e invio muletto.
Puo' essere invocato in inserimento automatico (asn510-in-ope = "INS-AUTO") senza interazione, tipicamente da flussi che ricevono uno strumento gia' identificato da un documento di entrata.
Interfaccia chiamato (linkage)¶
Procedura chiamata con using stringhe util-asn510.
util-asn510 (utilasn510.cpy):
| Campo | Tipo | Uso |
|---|---|---|
asn510-caller / asn510-called |
x(08) | Identificativi chiamante/chiamato |
asn510-in-modalita |
x(1) | "I" = inserimento diretto |
asn510-in-id |
9(13) | Id chiamata da aprire in modifica |
asn510-out-id |
9(13) | Id chiamata creata/selezionata (output) |
asn510-in-ope |
x(10) | Operazione: " ", "VERIFICA" (verifica s/n acquistato), "INS-AUTO" (inserimento automatico non interattivo) |
asn510-in-mtr |
9(12) | Matricola per cui aprire la chiamata |
asn510-in-crea-carico |
x(01) | Se "S" crea il carico di magazzino della matricola (caso INS-AUTO) |
asn510-in-tes-chia3 (mag/ann/tip/bol) |
Documento di entrata da cui nasce la chiamata (INS-AUTO) |
Modalita' called / INS-AUTO: con asn510-in-ope = "INS-AUTO" la maschera non viene costruita (nessun display/accept); i dati sono precaricati da linkage e dalla matricola, i controlli sono eseguiti in batch e la chiamata e' salvata direttamente, restituendo asn510-out-id.
File acceduti¶
Input/lettura (anagrafiche e supporto)¶
| File | Copybook | Uso |
|---|---|---|
| ASNMATRI | amtr-rec |
Matricola strumento: s/n, tipo, marca, modello, cliente, merce, matricola magazzino (amtr-mat), ubicazione, dst |
| ASNMTRTP | amtp-rec |
Tipo matricola (descrizione) |
| ASNMODEL | amod-rec |
Modello matricola (nome, usato come chiave accessori) |
| ASNACCES | aacc-rec |
Accessori previsti per modello (chiave k02 aacc-mod-nome) |
| ASNTPATT | atpa-rec |
Tipo attivita' (validazione, cliente collegato) |
| ASNTPAT2 | atp2-rec |
Estensione tipo attivita' |
| ASNTPDIF | atpd-rec |
Tipo difetto (validazione, tipo matricola) |
| ASNPRIOR | apri-rec |
Priorita' (descrizione) |
| ASNAREAT | arte-rec |
Area tecnica (sede/magazzino, tipo fatturazione associato) |
| ASNCNTES | acnt-rec |
Testata contratto (ricerca contratto del cliente, chiave k02) |
| ASNCNCND | acnd-rec |
Condizioni contratto (priorita' da contratto) |
| ASNCNTE2 | acn2-rec |
Estensione contratto (data scadenza disdetta, TASK-2499) |
| ASNCNMTR | acnc-rec |
Matricole gestite dal contratto |
| ASNCNMT2 | acnb-rec |
Estensione matricole contratto (PCASE-4281) |
| ASNFASIC | acif-rec |
Anagrafica fasi/step (chiave k03) per generare il workflow |
| ASNINTES | acit-rec |
Interventi collegati (chiave k02) |
| COGTABEL | euta-rec |
Tipo fatturazione (descrizione) |
| COGGEANA | ana-rec |
Clienti (assistito/fatturazione)/agenti; ana-padre per cliente di fatturazione |
| COGTESBO | tes-rec |
Documento di entrata (agenti, dst) - modalita' INS-AUTO |
| COGTESCM | tsc-rec |
Commessa (validazione, cliente) |
| COGSOTCM | sot-rec |
Sottocommessa (validazione) |
| COGMATRI | mtr-rec |
Matricola magazzino (chiave k03 mtr-ent) |
| COGDESTI | dst-rec |
Destinazioni diverse del cliente |
| COGANAPP | aap-rec |
Estensione anagrafica (ente pubblico - logica commesse, oggi commentata) |
| COGANCAP | anc-rec |
Brand del cliente (anc-brand) |
| COGBRAND | bra-rec |
Anagrafica brand (descrizione) |
| PRNTOPER | ptop-rec |
Operatore (descrizione) |
Output/scrittura¶
| File | Copybook | Scrittura |
|---|---|---|
| ASNCHTES | acht-rec |
wr/rwr: testata chiamata (classe "L", cliente, contratto, priorita', tipo att., area tecnica, tipo fat., brand, commessa, note, agenti, scadenza da ASNS01, dossier). In cancellazione del |
| ASNCHDET | achd-rec |
wr/rwr: riga chiamata (matricola, difetto segnalato) |
| ASNCHWKF | achw-rec |
wr/rwr: workflow generato da ASNFASIC; step di ricezione a stato "C" |
| ASNINTES | acit-rec |
wr: intervento collegato (data, stato "A", magazzino se chiusura esterna) |
| ASNINTE2 | acit2-rec |
wr/rwr: estensione intervento |
| ASNACCES | aacc-rec |
wr/rwr/del: accessori del modello (griglia) |
| ASNCHACC | acha-rec |
wr/rwr/del: accessori ricevuti sulla chiamata (tip "T"/"M") |
| ASNCHSTO | achs-rec |
del in cancellazione chiamata |
| ASNCHPRP | achp-rec |
del in cancellazione chiamata |
| ASNCHRAC | achr-rec |
rwr: aggiorna riferimento chiamata esterna collegata (in cancellazione) |
| ASNCNMTR / ASNCNMT2 | acnc-rec / acnb-rec |
wr: aggancio matricola a contratto |
| ASNINDMG | acim-rec |
wr/del: legame intervento → documento di carico muletto |
| COGRIGCM | rgc-rec |
wr/del: raccordo chiamata → commessa (tip "CH", chiave k02) |
| COGMATRI | mtr-rec |
(lettura per carico; scrittura via COGU30) |
| COGIMAGE | img-rec |
del: immagini collegate alla chiamata (in cancellazione, chiave k02) |
| ASNMATRI | amtr-rec |
rwr: aggiornamento ubicazione matricola |
Transito¶
| File | Copybook | Scopo |
|---|---|---|
| TRAN-G43 | trs-g43-rec |
Righe per la creazione del carico da cliente via COGU30 (merce, matricola, classe movimento). Nominato #$COGG43.<oper> in ext-tmp-dir |
Chiavi secondarie¶
asncntes.k02,asnchdet.k02,asnacces.k02,asnchwkf.k02,asncnmtr.k02,asnfasic.k03,asnintes.k02,asnchrac.k04,cogimage.k02,cogmatri.k03,cogrigcm.k02,tran-g43.k01
Programmi chiamati¶
| Programma | Operazione | Scopo |
|---|---|---|
| COGS25 | (numeratore) | Numerazione automatica chiamata (s25-i-cod = 59, PBUG-667) e intervento |
| ASN200 | ASN200-CALLED |
F9 su serial number: ricerca matricola (ritorna asn200-id) |
| ASN210 | ASN210-CALLED |
F9 su Id chiamata: ricerca chiamata |
| ASN220 | ASN220-CALLED |
F6: visualizzazione/selezione contratti del cliente (x-f6-contratti) |
| ASN030 | Inserimento/manutenzione matricola (nuovo s/n o matricola provvisoria) | |
| ASNS01 | Calcolo data/ora di scadenza chiamata da data/ora/priorita' | |
| ASNS02 | Ricerca matricola da serial number (ritorna asns02-out-id) |
|
| ASN016 / ASN018 / ASN035 / ASN041 | Lookup: tipo attivita' / tipo difetto / area tecnica / priorita' | |
| COGT20 | Lookup operatore (F8) | |
| COGY68 | Lookup tipo fatturazione (F8) | |
| COGMAH | Lookup brand (F8) | |
| COGS65W | Lookup cliente assistito/fatturazione/agente | |
| COGW92 (send-w92) | R/S |
Gestione/lookup destinazione diversa |
| COGU35W (call-u35) | Gestione campi commessa/sottocommessa in maschera | |
| COGU30 | make-doc |
Creazione documento di carico da cliente (muletto) da TRAN-G43 |
| CRMS10 | SCRIVI / CREA-GRUPPO-DOC |
Creazione dossier documentale della chiamata e nodi (Allegati/Preventivi/DDT) |
| ASN120 | ASN120-CALLED |
Cancellazione interventi e archivi CRM collegati (in cancellazione chiamata) |
| ASN515 | F5 dopo salvataggio: invio muletto sostitutivo | |
| ASN530 | PREPARA-DEFAULT |
INS-AUTO: preparazione default sulla chiamata |
| ASN599 | Stampa/archiviazione modulo di registrazione chiamata | |
| ASNP01 | Stampa etichetta chiamata | |
| DIALOGS | Dialogo finale post-salvataggio (Esci / Invio muletto / Stampa / Etichetta) | |
| GRIDADMN | Prepara |
Personalizzazione griglia accessori |
| RNEWCONF | Lettura/modifica configurazioni |
Configurazioni RNEWCONF (x99-load-config, 31 chiavi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ass-strum |
priorita-default |
tm-cfg-priorita |
Priorita' proposta |
| 02 | ass-strum |
stato-disinf-default |
tm-cfg-stato-disinf |
Stato disinfezione proposto |
| 03 | ass-strum |
oggetto-default |
tm-cfg-oggetto |
Oggetto proposto |
| 04 | ass-strum |
tipo-att-default |
tm-cfg-tipo-att-def |
Tipo attivita' di default |
| 05 | assist |
codice-stato-chiamata |
tm-cfg-codice-stato-chiamata |
Stato iniziale chiamata |
| 06 | ass-strum |
presenza-disinfezione |
tm-cfg-gest-disinfez |
Abilita gestione disinfezione |
| 07 | ass-strum |
modalita-ricerca-matricola |
tm-cfg-modo-rice-matr |
"B": ricerca matricola prima del cliente |
| 08 | ASSIST |
gestione-cliente-fatturazione |
tm-cfg-ges-cli-fatt |
Gestione cliente di fatturazione |
| 09 | ASSIST |
cancella-chiamata-chiusa |
tm-cfg-canc-chia-chiu |
Regole cancellazione chiamata chiusa |
| 10 | ass-strum |
stampa-etichetta-chiamata |
tm-cfg-stampa-etich |
Abilita stampa etichetta (ASNP01) |
| 11 | ASSIST |
ins-manuale-num-chiamata |
tm-cfg-ins-manuale-num-c |
Numero chiamata inserito manualmente |
| 12 | ASS-STRUM |
GENERAZIONE-DOSSIER |
tm-cfg-genera-dossier |
"S"/"D": crea dossier CRMS10 |
| 13 | ASS-STRUM |
TIPO-DOSSIER-CHIAMATA |
tm-cfg-dsr-tip |
Tipo dossier |
| 14 | ASS-STRUM |
PREFISSO-ID-DOSSIER |
tm-cfg-dsr-prefisso-id |
Prefisso id dossier |
| 15 | ASSIST |
arc-ott-autom |
tm-cfg-arc-ott |
Archiviazione ottica automatica (giro COGU06 oggi disattivato) |
| 16 | ASSIST |
gestione-dest-diversa |
tm-cfg-gestione-dest-diversa |
Gestione destinazione diversa |
| 17 | assist |
matr-destinazione-obbligatoria |
tm-cfg-obb-dest |
Destinazione obbligatoria per matricola |
| 18 | ASS-STRUM |
TIPO-MATRICOLA-GENERICO |
tm-cfg-tipo-matricola-generico |
Tipo matricola "generico" (salta controlli cliente/contratto) |
| 19 | ASSIST |
tipo-numerazione-interventi |
tm-cfg-tipo-numerazione |
"C": intervento numerato con chiave chiamata*100+prog |
| 20 | ASS-STRUM |
CLASSE-MOV-ENTRATA-MULETTO |
tm-cfg-classe-mov-entrata-mul |
Classe movimento per carico muletto (PBUG-691: se vuota, no COGU30) |
| 21 | commesse |
tracciatura-flussi-finanziari |
tm-cfg-tracciatura-flussi-finanz |
Tracciatura flussi finanziari commessa |
| 22 | contabil |
tipi-doc-per-causale |
tm-cfg-doc-per-causale |
Documenti per causale |
| 23 | ass-chiam |
tipo-fat-assistenza |
tm-cfg-tipo-fat-assist |
Tipo fatturazione assistenza di default |
| 24 | azienda |
gestione-brand-marchio |
tm-cfg-gestione-brand |
Abilita gestione brand |
| 25 | ENTRATE |
CAU-RIPARAZIONE-ASSIST |
tm-cfg-cau-rip |
Causale carico "in riparazione" |
| 26 | ass-strum |
modo-chiusura |
tm-cfg-modo-chiusura |
"E" = chiusura esterna (usa mag-intervento) |
| 27 | ass-strum |
mag-intervento |
tm-cfg-mag-intervento |
Magazzino intervento (chiusura esterna) |
| 28 | entrate |
cau-rip-permuta-fat |
tm-cfg-cau-rip-permuta-fat |
Causale riparazione permuta fatturata |
| 29 | entrate |
cau-rip-permuta-nofat |
tm-cfg-cau-rip-permuta-nofat |
Causale riparazione permuta non fatturata |
| 30 | ass-chiam |
gestione-tipo-attivita |
tm-cfg-gestione-tipo-attivita |
A (forzato default), B (facoltativo), C (obbligatorio) |
| 31 | ass-chiam |
tipo-fat-da-areatec-brand |
tm-cfg-tipo-fat-da-areatec-brand |
"A": tipo fatturazione derivato da area tecnica/brand (180326) |
Logica di elaborazione¶
Ingresso (apri / a4)¶
Carica azienda e le 31 configurazioni. Se INS-AUTO salta tutta la costruzione GUI e precarica i dati dalla matricola (asn510-in-mtr) e dal documento (asn510-in-tes-chia3), quindi va a a-fine-dati. Nelle modalita' interattive costruisce la maschera (pulsanti custom F7 Nuova chiamata, F6 Contratti) e la griglia accessori.
Accept dei campi (interattivo)¶
Sequenza di paragrafi a-tm-* (data, ora, cliente assistito, s/n, operatore, doc. consegna, tipo fatturazione, rif. chiamata cliente, oggetto, priorita', da-contratto, brand, tipo attivita', cliente fatturazione, destinazione, stato disinfezione, commessa, agente, ubicazione, note, tipo difetto, area tecnica) con relativi x-controlla-tm-*. Ogni campo gestisce F2 (indietro), F3 (conferma → ctrl-modifica → a-fine-dati), F6 (contratti), F8 (lookup), F9 (ricerca avanzata).
Logiche di controllo notevoli:
- Serial number (x-controlla-tm-sn): via ASNS02/ASN030 identifica o crea la matricola; verifica appartenenza al cliente, provvisorieta', destinazione obbligatoria, e la presenza di chiamate gia' aperte per la stessa matricola.
- Cliente assistito (x-controlla-tm-cli-ass): deriva il cliente di fatturazione da ana-padre, propone il brand, cerca il contratto (cerca-contratto-cli-ass).
- Contratto (cerca-contratto-cli-ass/tratta-asncntes): scorre ASNCNTES per cliente di fatturazione; gestisce contratti scaduti/disdetti (TASK-2499, acnt-fl-chiuso = "D" + acn2-data-scadenza) e priorita' da condizione contratto.
- Area tecnica / tipo fatturazione (180326): con doc-per-causale = "S" e tipo-fat-da-areatec-brand = "A", il tipo fatturazione e' derivato dall'area tecnica (arte-tipo-fat).
Griglia accessori (a-grid / a-accept-grid)¶
Elenca gli accessori previsti dal modello (ASNACCES) piu' quelli aggiunti (ASNCHACC tip "M"), con flag di selezione. b-aggiorna riconcilia la griglia con i file (inserisce/modifica/cancella ASNACCES/ASNCHACC).
Conferma e salvataggio (a-fine-dati → a-fine-dati-ok)¶
x-controlla-dati: rilancia tutti i controlli di campo; blocco su errore.- Conferma operatore (salvo INS-AUTO).
- Verifica matricola obbligatoria.
- Numerazione chiamata via COGS25 (
s25-i-cod = 59). - Scrive
ASNCHTES(classe"L", scadenza da ASNS01) eASNCHDET; aggiorna raccordo commessa (COGRIGCM). - In inserimento genera il workflow da
ASNFASICsuASNCHWKF(step obbligatori/facoltativi daacif-fl-ese; primo step marcato"C"). b-aggiornaaccessori.- Se configurato, crea il dossier (CRMS10: SCRIVI + 3 nodi CREA-GRUPPO-DOC).
- Scrive l'intervento (
scrivi-intervento: numerazione datipo-numerazioneo da ultimo id; magazzino intervento se chiusura esterna) eASNINTE2. - Per strumenti muletto interni con matricola magazzino:
carico-da-cliente(INS) ocarico-da-cliente-bis(variazione, con conferma) → COGU30 suTRAN-G43, legameASNINDMGtip"M". - INS-AUTO: ASN530 PREPARA-DEFAULT, poi ritorna
asn510-out-id. - Interattivo: dialogo finale DIALOGS (Esci / F5 Invio muletto ASN515 / F9 Stampa ASN599 / F7 Etichetta ASNP01).
Cancellazione (cancella, F4)¶
Verifica abilitazione e stato (fasi di stima non eseguite, o chiamata senza documenti se canc-chia-chiu = "S"), avverte se collegata a carico muletto, poi ASN120 (interventi + CRM), e cancella ASNCHSTO, ASNCHTES, COGRIGCM, ASNCHDET, ASNCHWKF, ASNCHPRP, COGIMAGE, aggiorna ASNCHRAC.
Messaggi principali¶
| Testo | Contesto |
|---|---|
| "Chiamata errata !!" / "Attenzione: Chiamata NON di laboratorio" | Validazione id chiamata |
| "Cliente obbligatorio " / "Cliente assistito errato " | Validazione cliente |
| "Serial number obbligatorio !!" / "Serial number non esistente; ..." | Validazione s/n (con creazione via ASN030) |
| "Serial Number Non selezionabile: Non del cliente!!" | S/n non appartenente al cliente |
| "Serial number senza destinazione diversa !!" | Destinazione obbligatoria mancante |
| "Serial number / matricola con gia' una chiamata aperta " | Matricola con chiamata "L" aperta |
| "Chiamata senza matricola : Inserire la matricola !!" | Controllo pre-salvataggio |
| "Confermi inserimento/modifica chiamata ?" | Conferma salvataggio |
| "Confermi il carico muletto da cliente ?" | Prima del carico COGU30 |
| "Manca la classe per la creazione entrata da cliente ..." | CLASSE-MOV-ENTRATA-MULETTO vuota (PBUG-691) |
| "Contratto selezionato non valido ..." | F6 contratti: contratto chiuso/rinnovato/disdetto o di altro cliente |
Note implementative¶
- La chiamata creata e' sempre di classe
"L"(acht-classe = "L"), coerente con la funzione di ricezione strumenti di laboratorio. - La numerazione chiamata usa COGS25 (
cod 59, PBUG-667/280520), sostituendo la vecchia lettura del massimo id; anche l'intervento e' numerato da COGS25 o con schemaid-chiamata*100+progsetipo-numerazione = "C". - La modalita'
INS-AUTOe' pervasiva: quasi ognidisplay/accepte' condizionato aasn510-in-ope not = 'INS-AUTO', cosi' il flusso batch riusa la stessa logica di validazione e salvataggio senza GUI. - Il carico muletto da cliente e' disattivato se
CLASSE-MOV-ENTRATA-MULETTOe' vuota (PBUG-691, 260520); il giro di archiviazione ottica COGU06 e' commentato dal 2022. - La logica commesse per ente pubblico (
ok-com-a) e' interamente commentata dal PCASE-1463 (240620): commessa/sottocommessa sono sempre disponibili se il modulo commesse e' attivo. - Il sorgente e' storicamente stratificato e usa massicciamente
GO TOtra paragrafi di accept ePERFORM ... THRU: strutture legacy, da non replicare in nuovo codice.