Vai al contenuto

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, .k02
  • asnmatri.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:

  1. Chiave di ordinamento da COGRACMC (rcm-cod-ava).
  2. Se raggr-merce-strumenti configurato, verifica il raggruppamento merce (COGMERAP) e scarta le matricole di altri raggruppamenti.
  3. Risolve la matricola figlia via COGU07 (cerca-matricola, opzione V) per trovare la matricola realmente movimentata.
  4. Legge COGMTUSC (matricole uscite): se trovata, ricava dove si trova la matricola:
  5. cliente (mtu-ana-tip = "C"): usa l'eventuale destinatario del DDT (COGTESBO, figlio o padre) → "Cliente ";
  6. fornitore (mtu-ana-tip = "F"): "Fornitore ".
  7. Se non e' uscita → "In magazzino"; inoltre scorre ASNCHDET/ASNCHTES per la matricola: se esiste una chiamata aperta (situazione o A) 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 cogtrans via dtab/fscrol2/utilpggr.
  • Il transito e' aperto with mass-update per velocizzare il caricamento iniziale.
  • La descrizione mostrata in griglia (grd-desc da amtr-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-record rileggendo 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/150 collegata sia alla matricola assist 2616 sia alla 2617), mentre la seconda avrebbe dovuto puntare a un'altra matricola Area (2025/151). Poiche' ASN250 espone 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