ASN250 - Situazione muletti (consultazione)¶
Sorgente: cbl/asn250.cbl (1.605 righe) | Tipo: Programma interattivo con griglia paginata e file di transito; puo' essere invocato anche come "called" (selettore)
Menu: Assist 2.0 > Operativo > Visualizzazioni > Situazione muletti
Scopo¶
Consulta la situazione dei "muletti", cioe' le matricole di assistenza (ASNMATRI) intestate al cliente interno dell'azienda (az-cli-int), che rappresentano gli strumenti sostitutivi/di comodato in giro presso i clienti. Per ogni matricola mostra tipo, produttore, marca, modello, serial number, cliente/destinazione e soprattutto la sua ubicazione attuale: presso quale cliente/fornitore si trova (ricavata dai movimenti di uscita) oppure "In magazzino"/"In riparazione".
L'estrazione popola un file di transito cogtrans e la griglia risultante e' paginata. Dalla riga si accede alla scheda serial (F8) e alla gestione della matricola (F3).
Nota etichetta/funzione. Il titolo di maschera impostato dal programma e' "Consultazione muletti" (nel commento e' "Situazione muletti"); coincide sostanzialmente con la voce di menu "Situazione muletti". Nessuna discrepanza rilevante.
Interfaccia chiamato (linkage)¶
Il programma riceve la copybook utilv89.cpy nella linkage (usata per le chiamate a COGV89) ma non una copybook di interfaccia propria: utilasn250.cpy e' commentata nel sorgente. La modalita' "called" (w-dc-called) e' predisposta nel codice (INVIO ritorna e go to fine) ma w-dati-called non viene valorizzato da linkage: di fatto il programma si comporta come standalone da menu.
File acceduti¶
Input/lettura¶
| File | Copybook | Uso |
|---|---|---|
| ASNMATRI | amtr-rec |
Matricole di assistenza: file guida. Estrazione via chiave k04 (cliente = az-cli-int). Chiavi alternative k02/k05/k06/k07/k08 disponibili |
| ASNMTRTP | amtp-rec |
Tipo matricola (descrizione) |
| ASNPRODU | aprd-rec |
Produttore |
| ASNMARCH | amrc-rec |
Marca |
| ASNMODEL | amod-rec |
Modello (k02 per nome) |
| ASNCHDET | achd-rec |
Dettaglio matricole delle chiamate (k02 per matricola): verifica se la matricola ha una chiamata aperta → "In riparazione" |
| ASNCHTES | acht-rec |
Testata chiamata (situazione della chiamata) |
| COGGEANA | ana-rec |
Cliente / fornitore (nome per l'ubicazione attuale) |
| COGRACMC | rcm-rec |
Raccordo merce (k02): codice avanzamento per la chiave di ordinamento del transito |
| COGMERAP | map-rec |
Merci aggiuntive: raggruppamento merce (filtro raggr-merce-strumenti) |
| COGMTUSC | mtu-rec |
Matricole uscite: ultimo movimento di uscita (cliente/fornitore, bolla) → ubicazione attuale |
| COGTESBO | tes-rec |
Testata bolla: cliente destinatario (figlio/padre) del DDT di uscita |
Transito¶
| File | Scopo |
|---|---|
cogtrans (#$trsasn250_<oper>, aperto with mass-update) |
Buffer muletti (record trs): trs-id (id matricola), trs-ubicazione, trs-persona, trs-telefono, trs-ubicazione-att, trs-in-riparazione, trs-merce. Chiave 2 = codice avanzamento merce (rcm-cod-ava) per l'ordinamento |
Chiavi secondarie¶
cogtrans.k01,.k02asnmatri.k02/.k04/.k05/.k06/.k07/.k08;asnmodel.k02;asnchdet.k02;cogracmc.k02
Programmi chiamati¶
| Programma | Operazione | Scopo |
|---|---|---|
| RNEWCONF | Lettura configurazione iniziale e modifica con F1 | |
COGU07 (util-u07) |
cerca-matricola |
Risolve la matricola figlia (opzione V) a partire dalla matricola padre di assistenza per trovare il movimento di uscita |
COGV89 (util-v89) |
Serial (call-v89-storia) |
F8 scheda/storia del serial number |
| ASN011/ASN012/ASN013 | (lookup) | F8 produttore / marca / modello |
| ASN030 | F3 gestione matricola di assistenza | |
| COGS65W/COGS52 | Lookup e gestione campi standard | |
COGW92 (send-w92) |
Risoluzione destinazione diversa del cliente | |
| GRIDADMN | Personalizzazione griglia |
Configurazioni RNEWCONF (x99-conf, 1 chiave)¶
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ass-strum |
raggr-merce-strumenti | tm-cfg-raggr-merce-strum |
Se valorizzato, in scrivi-cogtrans si considerano solo le matricole la cui merce ha map-ragr-1 uguale al valore configurato (limita l'estrazione al raggruppamento merce degli strumenti) |
Logica di estrazione (carica-file)¶
L'estrazione principale e' tratta-chia4: posiziona ASNMATRI sulla chiave k04 con amtr-cli-tip = "C" e amtr-cli-cod = az-cli-int, poi scorre tutte le matricole intestate al cliente interno (le altre strategie tratta-chia1/2/5/6/7 per filtro su produttore/marca/modello/sn sono presenti ma commentate: oggi l'estrazione parte sempre dal cliente interno e i filtri di maschera vengono applicati in tratta-asnmatri).
tratta-asnmatri / scrivi-cogtrans¶
Per ogni matricola con amtr-mat > 0 che rispetta i filtri di maschera (produttore, marca, modello risolto in w-amod-id, intervallo serial number), scrive il transito. In scrivi-cogtrans:
- Chiave di ordinamento da
COGRACMC(rcm-cod-ava). - Se
raggr-merce-strumenticonfigurato, verifica il raggruppamento merce (COGMERAP) e scarta le matricole di altri raggruppamenti. - Risolve la matricola figlia via
COGU07(cerca-matricola, opzioneV) per trovare la matricola realmente movimentata. - Legge
COGMTUSC(matricole uscite): se trovata, ricava dove si trova la matricola: - cliente (
mtu-ana-tip = "C"): usa l'eventuale destinatario del DDT (COGTESBO, figlio o padre) → "Cliente"; - fornitore (
mtu-ana-tip = "F"): "Fornitore". - Se non e' uscita → "In magazzino"; inoltre scorre
ASNCHDET/ASNCHTESper la matricola: se esiste una chiamata aperta (situazioneoA) marca "In riparazione".
I dati di ubicazione/persona/telefono di partenza sono presi dalla matricola stessa (amtr-ubicazione, amtr-persona, amtr-telefono).
Funzioni sulla griglia (paragrafo a-grid)¶
| Tasto | Azione |
|---|---|
| F8 | Scheda/storia serial number (COGV89, Serial); il case del s/n segue ext-case-sn |
| F3 | Gestione matricola di assistenza (ASN030, modalita' M) |
| INVIO | In modalita' called: ritorna ed esce |
| S-F4 | Personalizza griglia |
| S-F5 | Esporta Excel |
Note implementative¶
- La griglia e' paginata su
cogtransviadtab/fscrol2/utilpggr. - Il transito e' aperto
with mass-updateper velocizzare il caricamento iniziale. - La descrizione mostrata in griglia (
grd-descdaamtr-des) viene ripulita degli a-capo (k-newline). - Nel record di griglia i dati anagrafici (tipo, produttore, marca, modello, cliente, destinazione) vengono ricalcolati in
x-riempi-grid-recordrileggendo la matricola per ogni riga visualizzata.
Casistica problemi noti¶
Muletti duplicati per collegamento matricola assist -> matricola Area errato (2026-07-31)¶
- Sintomo: alcuni clienti comparivano due volte nella consultazione muletti, come se avessero due muletti; entrando nel dettaglio (F8) il secondo non risultava del cliente (nome cliente "trascinato" su una riga che dovrebbe risultare in magazzino).
- Causa: problema di codifica dei dati, non del programma. Due matricole di assistenza con serial number diversi risultavano collegate alla stessa matricola Area (es. Area
2025/150collegata sia alla matricola assist 2616 sia alla 2617), mentre la seconda avrebbe dovuto puntare a un'altra matricola Area (2025/151). Poiche'ASN250espone i muletti in base al collegamento matricola assist -> matricola Area, il legame errato faceva ereditare alla seconda matricola lo stesso cliente della prima. - Correzione: verificato in debug che si tratta di un errore nella codifica dei collegamenti (matricola assist agganciata alla matricola Area sbagliata) e non di un difetto di
ASN250; ricodificati correttamente i legami, la duplicazione visiva non si presenta piu'. - Riferimento: dettaglio bug | ClickUp 869ebuuxc