ASN500 - Stato chiamata (cruscotto riparazioni strumenti)¶
Sorgente: cbl/asn500.cbl (2.749 righe) | Tipo: Programma interattivo con griglia workflow, menu a tendina, orchestratore di sottoprogrammi per step
Menu: Assist 2.0 > Operativo > Riparazioni > Stato chiamata
Scopo¶
Cruscotto centrale del flusso di riparazione strumenti (procedura "Assist strumenti", classe chiamata L). Data una chiamata (identificata per id o serial number), ne mostra il workflow di lavorazione — l'elenco degli step previsti (ASNCHWKF) con stato, date e operatore — e per ciascuno step, all'INVIO, innesca il sottoprogramma dedicato che gestisce quella fase (ricezione, stima, analisi, preventivo, ordine fornitore, pickup, chiusura, stampa, DDT, ecc.).
Consente inoltre di modificare le date di prima/ultima esecuzione degli step, gestire il dossier documentale collegato, la galleria immagini, i costi/ricavi, la filiera del documento e le non conformita' (menu a tendina).
Interfaccia chiamato (linkage)¶
util-asn500:
| Campo | Tipo | Uso |
|---|---|---|
asn500-caller / asn500-called |
x(08) | Identificativi chiamante/chiamato |
asn500-in-modalita |
x(01) | Modalita' di ingresso |
asn500-in-id |
9(13) | Id chiamata in ingresso: se valorizzato, il programma la carica direttamente e va al workflow (a-avanti) |
asn500-out-id |
9(13) | Output (predisposto) |
Se asn500-called = k-program-id e caller valorizzato, si attiva w-dc-called-bis. Se invocato come called da altro programma con asn500-in-id valorizzato, salta l'accept dell'id. In ESC, il comportamento dipende da w-dc-called-bis (torna al chiamante o resta).
File acceduti¶
Input/lettura¶
| File | Copybook | Uso |
|---|---|---|
| ASNCHWKF | achw-rec |
Workflow chiamata: elenco step (achw-step), progressivo, stato (C/E), date prima/ultima, operatori, flag obbligatorio |
| ASNFASIC | acif-rec |
Anagrafica fasi/step: descrizione attivita' (acif-des) |
| ASNCHTES | acht-rec |
Testata chiamata: classe (L), data/ora, oggetto, cliente assistito, dossier, situazione, flag fine stima |
| ASNCHDET | achd-rec |
Dettaglio chiamata: matricola (prog. 1) |
| ASNINTES | acit-rec |
Interventi della chiamata (chia2): id intervento, tecnico, data assegnazione. Update pickup |
| ASNINTE2 | acit2-rec |
Creato/aggiornato "a vuoto" a corredo di ogni intervento (x-aggiorna-asninte2) |
| ASNINDMG | acim-rec |
Movimenti magazzino dell'intervento: aggancio documento (acim-tes-chia3) per repair/permuta |
| ASNMATRI | amtr-rec |
Matricola: serial number, marca, id modello |
| ASNMODEL | amod-rec |
Modello: nome, descrizione, scheda (chiave k02 su nome) |
| ASNCHRAC | achr-rec |
Raccordo chiamata lab ↔ chiamata esterna (chia4): id esterna |
| COGTESBO | tes-rec |
Testata documento magazzino: causale (per repair/permuta) |
| COGGEANA | ana-rec |
Cliente assistito (ragione sociale) |
| PRNTOPER | ptop-rec |
Profilo/descrizione operatore (validazione, profilo tecnici) |
| COGANATN | atn-rec |
Raccordo operatore → tecnico (chia3): abbinamento operatore/tecnico per pickup |
| COGRIFER | rif-rec |
Verifica esistenza tecnico |
| MASKOPER | mop-rec |
Password operatore (file MASKOPER.ARC) per accesso tecnici |
Output/aggiornamento¶
| File | Copybook | Scrittura |
|---|---|---|
| ASNCHWKF | achw-rec |
Update date prima/ultima step; in pickup: stato C, ore/operatori, date |
| ASNINTES | acit-rec |
In pickup: acit-tecnico(1), acit-ass-data; sync data assegnazione con data ultima step pickup |
| ASNINTE2 | acit2-rec |
Inserimento/aggiornamento a corredo |
| ASNCHTES | acht-rec |
In pickup: acht-situazione = 'A' |
Chiavi secondarie¶
asnchwkf.k02(chiamata+step)coganatn.k03(operatore)asnintes.k02(chiamata)asnmodel.k02(nome)maskoper.k01asnchrac.k04(chiamata lab)
Step del workflow e sottoprogrammi innescati (a-grid, INVIO)¶
Le costanti degli step sono in costanti-assist.cpy. All'INVIO su una riga, secondo tm-r-step:
| Step (valore) | Descrizione | Programma innescato |
|---|---|---|
RS (k-step-c-ricezione) |
Ricezione strumento | ASN510 |
SRP (k-step-c-stima-prob) |
Stima - rilevazione problemi | ASN520 (AC, pag S) |
SPP (k-step-c-stima-prest) |
Stima - prestazioni previste | ASN530 |
AN (k-step-c-analisi) |
Analisi | ASN540 |
BF (k-step-c-bdp-forn) |
Buono di prelievo fornitore | ASN544 |
PF (k-step-c-prev-forn) |
Preventivo a fornitore | ASN541 |
OF (k-step-c-ord-forn) |
Ordine di riparazione a fornitore | ASN543 |
RR (k-step-c-rientro) |
Rientro strumento riparato | ASN542 |
PR (k-step-c-preventivo) |
Preventivazione | ASN545 |
AU (k-step-c-autorizza) |
Autorizzazione | ASN550 |
PK (k-step-c-pickup) |
Pick up | ASN555 |
IG (k-step-c-assegna-int) |
Assegnazione intervento | ASN120 (ASN120-CALLED) |
IC (k-step-c-chiusura-int) |
Chiusura intervento | c-chiusura-int → ASN230/ASN140 |
SM (k-step-c-materiali) |
Scarico materiali | ASN560 |
RM (k-step-c-mat-resi) |
Materiali resi | ASN560 (param E) |
LE (k-step-c-lavorazioni) |
Lavorazioni eseguite | ASN565 |
VF (k-step-c-verifica) |
Verifica finale | ASN520 (AC, pag C) |
VA (k-step-c-verifica-app) |
Verifica approfondita | ASN520 (AC, pag V) |
CH (k-step-c-chiusura) |
Chiusura | ASN570 |
NS (k-step-c-note-stima) |
Note stima | ASN551 |
CTL (k-step-c-chiu-tecnica) |
Chiusura tecnica lavoro | ASN552 |
DR (k-step-c-stampa-doc) |
Stampa documento | x-archivia-e-stampa (dossier) o x-stampa → ASN599 |
IDC (k-step-c-crea-ddt) |
Inserimento documento di consegna | ASN575 |
Dopo l'esecuzione di uno step si esegue modifica-step per rileggere ASNCHWKF e aggiornare stato/date/attivita' sulla riga di griglia. L'INVIO e' bloccato (ctrl-eseguito) se esiste uno step precedente obbligatorio (fl-obb='Si') non ancora completato.
Chiusura intervento "esterno" (c-chiusura-int, 270723)¶
Conta gli interventi della chiamata: se piu' di uno, innesca ASN230 per scegliere quale; poi innesca ASN140 (ASN140-CALLED) per la chiusura dell'intervento selezionato.
Altri sottoprogrammi chiamati¶
| Programma | Contesto | Scopo |
|---|---|---|
ASN210 (ASN210-CALLED) |
F9 / id alfanumerico | Ricerca chiamata per serial number |
| ASN510 | F7 su id / step ricezione | Creazione/gestione ricezione (con creazione carico se Endonova) |
| COGT20 | F8 su operatore | Lookup operatore |
| ASN073 | F1 galleria | Galleria immagini chiamata (se az-arc-ott=S) |
| CRMK10 | F7 dossier | Gestione dossier collegato (se genera-dossier S/D) |
| ASNDCR | F11 | Consultazione dettaglio costi/ricavi (ESAMINA) |
COGMA3 (COGMA3-CALLED) |
S-F2 | Filiera del documento (classe A) |
COGNA0 (COGNA0-CALLED) |
Menu | Inserimento nuova non conformita' (CREAZIONE, tipo doc chiamata) |
COGNA1 (COGNA1-CALLED) |
Menu | Consultazione non conformita' esistenti |
| ASN599 | Stampa | Stampa/archiviazione rapporto (modulo D) |
| ENCRYPT | Password | Cifratura password operatore per confronto |
| GRIDADMN | Griglia | Prepara/personalizzazione, S-F4 |
| W$MENU | Menu | Costruzione menu a tendina (File / Non conformita' / ?) |
| RNEWCONF | x99-confi |
Lettura/modifica configurazioni |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ASS-STRUM |
GENERAZIONE-DOSSIER |
tm-cfg-genera-dossier |
S/D = gestione dossier documentale; in step stampa S → archivia + stampa |
| 02 | ASS-STRUM |
ricerca-sn-su-chiamata |
tm-cfg-ricerca-sn-su-chiamata |
S = consente ricerca per serial number sul campo id |
| 03 | ASS-STRUM |
stato-chiamata-accept-ope |
tm-cfg-stato-chiamata-accept-ope |
S = richiede operatore/password (accesso tecnici) |
| 04 | ASS-STRUM |
profilo-tecnici |
tm-cfg-profilo-tecnici |
Profilo operatore che identifica i tecnici (skip password) |
| 05 | entrate |
cau-rip-permuta-fat |
tm-cfg-cau-rip-permuta-fat |
Causale documento repair/permuta fatturato |
| 06 | entrate |
cau-rip-permuta-nofat |
tm-cfg-cau-rip-permuta-nofat |
Causale documento repair/permuta non fatturato |
Logica di caricamento (a-richiesta-conferma → a30)¶
- Validazione id chiamata (
x-controlla-tm-id): l'id puo' essere numerico o alfanumerico (serial number, se configurato → ASN210). La chiamata deve esistere ed essere di classeL. Carica oggetto, cliente, serial number, modello, id esterna (da ASNCHRAC), repair/permuta (da ASNINDMG+COGTESBO). - Se richiesto (
stato-chiamata-accept-ope=Se operatore non gia' del profilo tecnici), accept di operatore e password: la password e' cifrata (ENCRYPT) e confrontata conMASKOPER. Alla conferma password, se lo step pickup non e' eseguito e l'operatore e' un tecnico, il pickup viene completato automaticamente (aggiorna ASNCHWKF, ASNINTES, ASNCHTES). - Caricamento griglia workflow (
a30): scorreASNCHWKFper la chiamata, per ogni step legge la descrizione fase (ASNFASIC), stato, date, operatori, flag obbligatorio. Applica personalizzazioni cliente-specifiche (Endonova/EI: mascheramento attivita' non consentite per certi operatori; note stima "completata" seacht-fl-fine-stima=S).
Salvataggio (a1-aggiorna → b-aggiorna)¶
F3 in modalita' aggiornamento. Scorre le righe della griglia e aggiorna su ASNCHWKF le date di prima/ultima esecuzione degli step (con controllo anti-azzeramento accidentale, per un problema riscontrato su Endonova). Per lo step pickup sincronizza acit-ass-data. A seguire aggiorna ASNINTE2 per tutti gli interventi della chiamata. Le date degli step sono validate per coerenza cronologica tra step (controlla-r-data-prima/-ultima).
Menu a tendina (x-crea-menu, 280222)¶
Costruito con W$MENU:
- File: Esci
- Non conformita': Inserimento nuova NC (→ COGNA0) / Consultazione NC esistenti (→ COGNA1). Abilitate solo se id chiamata valorizzato.
- ?: Aiuto
Messaggi principali¶
| ID | Contesto |
|---|---|
m-titolo |
Titolo maschera |
m-asn500-2-1 |
Nessuno step nel workflow |
m-asn500-3-1/4-1 |
Inserimento/aggiornamento non abilitato |
m-asn500-7-1 |
Operatore senza tecnico abbinato |
m-asn500-8-1..8-3 |
Errore apertura MASKOPER.ARC |
m-asn500-9-1 |
Step precedente obbligatorio non eseguito |
m-asn500-10-1 |
Data step azzerata (protezione Endonova) |
m-asn500-11-1..16-1 |
Validazione id chiamata (vuoto, alfanumerico, non trovata, classe non L) |
m-asn500-17-1..20-1 |
Validazione date prima/ultima esecuzione |
m-asn500-21-1/22-1 |
Operatore non valido / obbligatorio |
m-asn500-23-1/24-1 |
Password errata / operatore senza password |
m-asn500-25-1..30-1 |
Incoerenze cronologiche date tra step |
m-asn500-31-1..36-1 |
Etichette pulsanti custom |
m-completato/m-eseguito |
Etichette stato step |
Storico modifiche significative (dal sorgente)¶
- 091018: PCASE-158, disabilitato pulsante elenco documenti (F5)
- 280222: menu a tendina (File / Non conformita' / ?) con COGNA0/COGNA1; costanti tipi documento
- 151123: aggancio documento repair/permuta (ASNINDMG + COGTESBO) e id esterna; causali
cau-rip-permuta-fat/nofat - 211123: chiusura intervento con scelta ASN230 se multipli
- 270723: step "Assegnazione intervento" (ASN120) e "Chiusura intervento" (ASN140/ASN230)
- 120624: step "Note stima" (ASN551) e "Chiusura tecnica" (ASN552)
- 090524: step "Verifica approfondita" (ASN520 pag
V); reset stato step seN/spaces - 031024: nota "(completata)" sulla note-stima da
acht-fl-fine-stima(era da RNEWCONFinfo-analisi-ps-completata, poi disattivata) - 220219: dossier attivo anche con valore
D
Note implementative¶
- ASN500 e' essenzialmente un orchestratore: la logica operativa di ogni fase e' delegata al relativo sottoprogramma ASN5xx; ASN500 mantiene lo stato di avanzamento sul workflow
ASNCHWKFe coordina la sequenza. - Gli step obbligatori (
fl-obb) impongono un ordine: non si puo' avviare uno step se un precedente obbligatorio non e' completato (ctrl-eseguito). - Il pickup ha una gestione speciale: puo' essere "auto-completato" alla convalida della password quando l'operatore e' un tecnico abbinato, impostando anche il tecnico e la data assegnazione sull'intervento.
MASKOPERe' un file esterno (MASKOPER.ARCnella dir operatori) con le password cifrate degli operatori; la password digitata viene cifrata con ENCRYPT prima del confronto.- La classe chiamata gestita e' esclusivamente
L(laboratorio/strumenti); chiamate di altra classe vengono rifiutate.