ASN570 - Chiusura chiamata di laboratorio (controllo strumenti Endonova)¶
Sorgente: cbl/asn570.cbl (1.834 righe) | Tipo: Programma interattivo di aggiornamento con file di transito e movimentazione di magazzino
Menu: Assist 2.0 > Operativo > Riparazioni > Chiusura
Scopo¶
ASN570 gestisce la chiusura (o riapertura) di una chiamata di laboratorio (classe "L", tipo controllo strumenti Endonova) e, in base all'esito del controllo dello strumento acquistato, esegue le movimentazioni di magazzino conseguenti:
- Chiusura/riapertura chiamata: aggiorna
ASNCHTES(acht-situazione = "C"/"A", data/ora chiusura, stato assegnato) e lo step di workflow "Chiusura" (k-step-c-chiusura, "CH") suASNCHWKF. - Registrazione esito:
acht-esito-verifica(F/M/R/C/N) e note di chiusura suASNINDAG. - Trattamento merce dello strumento acquistato (solo per chiamate collegate a un carico "in riparazione", non per la modalita' chiusura "Esterna"):
- esito
"M"(Muletto): sposta la contropartita del movimento sul conto muletti; - esito
"R"(Ricambio): sposta la contropartita sul conto ricambi e trasforma le parti in ricambio (COGMA5); - esito
"C"(Cespite): scarica la merce a cespite; - inoltre, con esito
"M"e merce di trasferimento indicata, esegue il trasferimento dello strumento su un'altra merce (muletto).
Le movimentazioni (trasferimento/scarico) sono realizzate tramite il generatore di movimenti COGS26 alimentato dai file di transito TRAN-S26/TRAN-S26B.
Interfaccia chiamato (linkage)¶
Procedura chiamata con using stringhe util-asn570.
util-asn570 (utilasn570.cpy):
| Campo | Tipo | Uso |
|---|---|---|
asn570-caller / asn570-called |
x(08) | Identificativi chiamante/chiamato |
asn570-id-chiamata |
9(12) | Id chiamata da elaborare (input in modalita' called) |
Modalita' called: se asn570-called = "ASN570" e asn570-caller valorizzato, imposta w-dc-called = "S" e usa asn570-id-chiamata come chiave, saltando la digitazione dell'id.
File acceduti¶
Input/lettura¶
| File | Copybook | Uso |
|---|---|---|
| ASNCHTES | acht-rec |
Testata chiamata: filtro classe "L", dati cliente/oggetto/data, situazione, esito verifica |
| ASNCHDET | achd-rec |
Righe chiamata: matricola collegata (achd-id-matricola), difetto |
| ASNINTES | acit-rec |
Interventi collegati alla chiamata (chiave k02 acit-id-chiamata) |
| ASNINDET | acid-rec |
Righe intervento (materiali scaricati, acid-tip = "M") |
| ASNCHPRP | achp-rec |
Materiali previsti/proposti sulla chiamata (per verifica materiali obbligatori) |
| ASNINDMG | acim-rec |
Legami intervento → documento magazzino (chiave k03); tipo "C" = carico |
| ASNCHWKF | achw-rec |
Workflow chiamata (chiave k02); step "CH" chiusura, "IC" |
| ASNFASIC | acif-rec |
Anagrafica fasi/step (per carica-tab, controllo step precedenti) |
| ASNMATRI | amtr-rec |
Matricola assistenza: serial number, tipo, marca, modello, merce, matricola magazzino (amtr-mat) |
| ASNMODEL | amod-rec |
Modello matricola (descrizione) |
| COGGEANA | ana-rec |
Cliente assistito (denominazione) |
| COGMERCI | mer-rec |
Merci: classe "M" (materiale), descrizioni |
| COGMATRI | mtr-rec |
Matricole magazzino: entrata (mtr-ent), merce, magazzino entrata |
| COGMOMAG | mag-recz |
Righe movimento magazzino (contropartita mag-coge, prezzo, valuta) |
| COGTESBO | tes-rec |
Testata documento (causale, per riconoscere carico "in riparazione") |
| PRNTOPER | Profilo operatore |
Output/scrittura¶
| File | Copybook | Scrittura |
|---|---|---|
| ASNCHTES | acht-rec |
rwr: situazione, data/ora chiusura, stato assegnato, esito verifica |
| ASNCHWKF | achw-rec |
rwr: step "CH" a stato "C" con date/ore/operatore |
| ASNINDAG | aitd-rec |
wr/rwr: note di chiusura (aitd-tipo = "F" intervento, "U" chiusura esterna) |
| ASNINTE2 | acit2-rec |
wr/rwr: estensione intervento (paragrafo x-aggiorna-asninte2) |
| ASNINDMG | acim-rec |
wr: nuovo legame intervento → documento generato (acim-tip = "L") |
| ASNMATRI | amtr-rec |
rwr: aggancio nuova matricola dopo trasferimento su merce; flag valore "C" |
| COGMOMAG | mag-recz |
rwr: modifica contropartita del movimento (muletti/ricambi) |
Transito¶
| File | Copybook | Scopo |
|---|---|---|
| TRAN-S26 (external) | trs-s26-rec |
Righe merce/quantita'/segno da passare a COGS26 |
| TRAN-S26B | trs-s26b-rec |
Righe matricola/merce/segno da passare a COGS26 (dettaglio matricole) |
I file di transito sono nominati con il codice operatore (#$COGS26.<oper>, #TR-S26B.<oper>) nella cartella ext-tmp-dir.
Chiavi secondarie¶
asnchwkf.k02,asnindmg.k03,asnintes.k02,cogmatri.k03tran-s26.k01,tran-s26b.k01
Programmi chiamati¶
| Programma | Operazione | Scopo |
|---|---|---|
| ASN210 | ASN210-CALLED |
F9 su Id chiamata: ricerca chiamata (ritorna asn210-id) |
| COGS26 | Inserimento |
Generazione movimenti di magazzino (trasferimento/scarico) da TRAN-S26/TRAN-S26B |
| COGU07 | crea-link |
Collega la matricola vecchia (padre) alla nuova matricola (figlia) dopo il trasferimento |
| COGMA5 | Trasformazione parti in ricambio (esito "R"); riceve matricola e costo d'acquisto |
|
| COGU10W | Cambio |
Conversione di valuta del prezzo movimento se diverso dal conto (per COGMA5) |
| RNEWCONF | Lettura/modifica configurazioni |
Configurazioni RNEWCONF (x99-confi)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ass-strum |
contropartita-acq-muletti |
tm-cfg-contr-acq-muletti |
Conto contropartita per esito Muletto |
| 02 | ass-strum |
contropartita-acq-ricambi |
tm-cfg-contr-acq-ricambi |
Conto contropartita per esito Ricambio |
| 03 | ass-strum |
importanza-obbligatoria |
tm-cfg-importanza-obb |
Importanza che rende un materiale "obbligatorio" nel controllo pre-chiusura |
| 04 | ENTRATE |
CAU-RIPARAZIONE-ASSIST |
tm-cfg-cau-rip |
Causale del carico "entrata in riparazione" |
| 05 | ASSIST |
codice-stato-assegnazione |
tm-cfg-stato-asseg |
Stato chiamata da assegnare alla chiusura |
| 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": esegue solo chiusura/riapertura chiamata, senza movimentazioni merce; note su aitd-tipo = "U" |
Logica di elaborazione¶
Ingresso e caricamento dati (apri / a4 / x-controlla-tm-cht-id)¶
- In modalita' called usa
asn570-id-chiamata. x-controlla-tm-cht-id: leggeASNCHTES; scarta chiamate non di classe"L"(m-asn570-32-1). Carica cliente, oggetto, data, matricola (viaASNCHDET→ASNMATRI→ASNMODEL), note di chiusura precedenti, id intervento collegato.- Determina se la chiamata e' un controllo di strumento acquistato (
flag-strumento-acq): esiste un legameASNINDMGtipo"C"verso un documento (COGTESBO) la cui causale NON e' quella di riparazione/permuta (29/2/16). In tal caso salva il DDT (tm-ddt), il progressivo riga e l'esito verifica pregresso.
Accept dei campi¶
tm-conferma-chiusura(radio: chiudi/riapri),tm-data-chiusura,tm-esito-controllo(combo F/M/R/C/N),tm-note,tm-merce-trasf(merce su cui trasferire).x-controlla-tm-esito-controllo: ammette soloF,M,R,C,N(m-asn570-33-1).x-controlla-tm-merce-trasf: valida la merce di trasferimento inCOGMERCI(m-asn570-34-1).
Conferma (a-richiesta-conferma)¶
- Se esito
"M"e nessuna merce di trasferimento indicata, chiede conferma (m-asn570-2/3/4-1). - Conferma finale (
m-asn570-5-1). - Verifica materiali obbligatori (solo se
tm-cfg-modo-chiusura != "E", paragrafoverifica-materiali-obbligatori): confronta i materiali previsti (ASNCHPRP, classe"M", importanza =tm-cfg-importanza-obb) con quelli scaricati (ASNINDETtipo"M"); se un materiale obbligatorio ha quantita' scaricata inferiore a quella prevista, box di avviso (m-asn570-16/17/18/6-1) e blocco chiusura.
Aggiornamenti (chiusura)¶
- Workflow (
ASNCHWKF, step "CH"): stato"C", date/ore/operatore prima e ultima. - Testata chiamata (
ASNCHTES): contm-conferma-chiusura = "C"→acht-situazione = "C", data/ora chiusura, stato assegnato (tm-cfg-stato-asseg); con" "→ riapre (acht-situazione = "A", azzera chiusura). Salvaacht-esito-verifica. - Note (
ASNINDAG): in modo chiusura esterna scrive suaitd-tipo = "U"(chiave chiamata); altrimenti suaitd-tipo = "F"(chiave intervento).
Movimentazioni merce (solo flag-strumento-acq e tm-cfg-modo-chiusura != "E")¶
modifica-contr:rwrsuCOGMOMAGper cambiare la contropartita (mag-coge) del movimento del carico secondo l'esito (muletti/ricambi).trasf-su-merce(esito"M"+ merce di trasferimento): due chiamate a COGS26 - una uscita (strumento originario dal magazzino di entrata matricola) e una entrata (merce di trasferimento nel magazzino muletti"M"), tramite i transiti; poi collega vecchia/nuova matricola (COGU07) e aggiornaASNMATRIcon la nuova matricola/merce.trasforma-parti-ric(esito"R"): dopomodifica-contr, chiama COGMA5 per la trasformazione parti in ricambio (con conversione valuta via COGU10W se necessario); su esito positivo marcaamtr-val = "C".scarico-della-merce(esito"C"): trasferimento dello strumento a cespite via COGS26 (uscita dal magazzino di entrata matricola).
Aggiornamento interventi collegati¶
Al termine, scorre gli interventi della chiamata (ASNINTES k02) ed esegue x-aggiorna-asninte2 su ciascuno (ASNINTE2).
Messaggi principali¶
| ID | Contesto |
|---|---|
m-asn570-2-1 … 4-1 |
Conferma esito Muletto senza merce di trasferimento |
m-asn570-5-1 |
Conferma finale chiusura |
m-asn570-6-1 / 16-1 / 17-1 / 18-1 |
Materiale obbligatorio non scaricato (merce, qta obbligatoria, qta scaricata) |
m-asn570-7-1 / 8-1 |
Chiamata chiusa / riaperta |
m-asn570-9-1 … 15-1 |
Errori apertura file di transito TRAN-S26/S26B |
m-asn570-19-1/2 |
Riga chiamata mancante |
m-asn570-20-1 … 30-1 |
Esiti operazioni COGS26 / transiti (numero documento generato, errori) |
m-asn570-31-1 |
Chiamata inesistente |
m-asn570-32-1 |
Chiamata non di laboratorio |
m-asn570-33-1 |
Esito controllo non valido |
m-asn570-34-1 |
Merce di trasferimento inesistente |
m-asn570-35-1/2/3 |
Matricola magazzino non trovata |
Note implementative¶
- La distinzione tra "chiusura standard" e "chiusura esterna" (
tm-cfg-modo-chiusura = "E", PCASE-3912/PCASE-3953) e' pervasiva: in modalita' esterna il programma esegue solo chiusura/riapertura della chiamata e registrazione note (suaitd-tipo = "U"), senza toccare magazzino/contropartite. - Il carico e' considerato "strumento acquistato" solo se la causale del DDT collegato e' diversa dalle causali di riparazione/permuta (
cau-rip,cau-rip-permuta-fat,cau-rip-permuta-nofat). - I file di transito
TRAN-S26/TRAN-S26Bvengono aperti inoutpute riaperti ini-oad ogni movimentazione per garantire l'azzeramento; la mancata apertura genera box di errore e uscita (fine). TRAN-S26e' dichiarataexternal(condivisa con COGS26);TRAN-S26Be' locale.- Il codice conserva ancora
PERFORM ... THRUeGO TOversofineall'interno dei paragrafi di movimentazione: sono strutture del legacy, da non replicare in nuovo codice.