Vai al contenuto

ASN146 - Assegnazione n. inventario

Sorgente: cbl/asn146.cbl (1.130 righe) | Tipo: Programma interattivo di data-entry a singola matricola; utilizzabile anche come "called"

Menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Assegnazione n. inventario


Scopo

Assegna il "numero di inventario" (nuovo serial number definitivo) a una matricola di assistenza (ASNMATRI) individuata tramite il serial number di acquisto. E' il passaggio con cui uno strumento entrato in azienda (identificato dal s/n dichiarato dal cliente/fornitore) viene registrato con la sua matricola/serial number di inventario definitivo e, opzionalmente, caricato a magazzino.

Il programma ha due comportamenti a seconda della configurazione vendita-modo-ass-inventario:

  • modo I: il dato digitato diventa semplicemente il campo amtr-n-inv ("N. Inventario") della matricola di assistenza, senza altri controlli ne' movimenti;
  • modo standard (diverso da I): il dato e' un vero serial number di inventario, sottoposto a controlli di univocita' (ASNS02, COGU07, COGMATRI); se richiesta la "creazione carico" viene generato un documento di carico a magazzino via COGU30 e aggiornate le matricole di magazzino (COGMATRI) e di assistenza (ASNMATRI).

Interfaccia chiamato (linkage)

util-asn146 (copybook utilasn146.cpy):

Campo Tipo Uso
asn146-called x(08) Se = ASN146 e caller valorizzato → modalita' called
asn146-caller x(08) Programma chiamante
asn146-id-mtr-origine 9(12) Id matricola di assistenza di partenza (se != 0 ne legge il s/n e va diretto)
asn146-sn-origine x(30) Serial number di partenza (alternativo all'id)

In modalita' called i dati di partenza sono presi dal linkage e il programma salta all'elaborazione (a-fine-chiave); alla chiusura fa exit program verso il chiamante.

File acceduti

Input/lettura

File Copybook Uso
ASNMATRI amtr-rec Matricola di assistenza da aggiornare (lettura, rwr finale con nuovo s/n / n. inventario / matricola magazzino)
ASNMTRTP amtp-rec Tipo matricola (descrizione)
ASNMODEL amod-rec Modello (k02 per nome; ricerca modello per marca)
ASNCHDET achd-rec Dettaglio matricole chiamate (k02): verifica se la matricola ha gia' una chiamata → blocco
ASNCHTES acht-rec Testata chiamata (esistenza chiamata collegata)
COGGEANA ana-rec Cliente della matricola
COGMATRI mtr-rec Matricola di magazzino (k04 per s/n): controllo univocita' s/n inventario e aggiornamento finale
COGMAGAZ magz-rec Ricerca del magazzino di tipo M (matricole) collegato al cliente (magz-fl-tip = "C", magz-rap-ant = amtr-cli-cod)

Output/scrittura

File Copybook Scrittura
ASNMATRI amtr-rec rwr: nuovo amtr-sn + amtr-mat (modo standard) oppure amtr-n-inv (modo I)
COGMATRI mtr-rec rwr del s/n definitivo sulla matricola di magazzino creata dal carico

Transito

File Scopo
tran-g43 (#$COGG43.<oper>, copybook tran-g43.cpy) Riga di movimento passata a COGU30 per generare il documento di carico. Contiene classe movimento, merce, s/n, quantita' 1, matricola

Chiavi secondarie

  • cogmatri.k04 (serial number); asnmodel.k02; asnchdet.k02; tran-g43.k01

Programmi chiamati

Programma Operazione Scopo
RNEWCONF Lettura configurazioni iniziali e modifica con F1
ASNS02 (util-asns02) Risoluzione s/n → id matricola: verifica esistenza s/n acquisto e non-esistenza del s/n inventario
ASN200 ASN200-CALLED F9 ricerca avanzata matricola per serial number
COGU07 (util-u07) cerca-sn-link / aggiorna-cogsnagg Risoluzione della catena matricola padre/figlia; verifica che la matricola di magazzino risulti uscita (fl-eu/fl-eu-figlia); aggiornamento serial number aggiuntivi
COGU30 (util-u30) make-doc (doc tip X) Generazione del documento di carico a magazzino a partire da tran-g43
COGS52 (utils52) Gestione campi standard

Configurazioni RNEWCONF (x99-confi, 2 chiavi)

Idx Gruppo Chiave Variabile Effetto
01 ASS-STRUM classe-mov-ent-cli-inventario tm-cfg-classe-mov-ent-cli-inventario Classe movimento di entrata usata nella riga tran-g43 per il carico
02 ass-mtr vendita-modo-ass-inventario tm-cfg-vendita-modo-ass-inventario I = il dato e' solo il campo "N. Inventario" della matricola di assistenza (nessun carico); altrimenti flusso completo con creazione carico

Logica di elaborazione

Fase 1: identificazione matricola (a-tm-amtr-snx-controlla-tm-amtr-sn)

L'operatore digita il serial number di acquisto. Controlli: 1. ASNS02 deve risolvere il s/n in una matricola di assistenza esistente (tm-amtr-id). 2. La matricola non deve avere gia' una chiamata collegata (scan ASNCHDET/ASNCHTES), altrimenti blocco. 3. COGU07 (cerca-sn-link) deve risolvere la matricola di magazzino padre/figlia e questa deve risultare uscita (fl-eu/fl-eu-figlia = "E"), altrimenti blocco. 4. Ricerca del magazzino matricole (COGMAGAZ tipo M) collegato al cliente della matricola → w-magaz-sn.

Recuperati e mostrati tipo, tipo-descrizione, modello (risolto per marca), cliente.

Fase 2: dati inventario (a-tm-sn-bis / a-tm-creazione-carico)

  • tm-sn-bis = numero/serial number di inventario (obbligatorio). In modo standard si verifica che non esista gia' (via ASNS02, COGU07 figlia, COGMATRI k04); in modo I nessun controllo di univocita'.
  • tm-creazione-carico (check S/N): se S, oltre all'aggiornamento verra' creato il documento di carico.

Il case del serial number segue sempre ext-case-sn (I invariato, U maiuscolo, altro minuscolo).

Fase 3: conferma e aggiornamenti (a-fine-dati)

Verifica abilitazioni (w-abi-ins/w-abi-agg) e poi:

  • Modo I: scrive tm-sn-bis in amtr-n-inv e termina.
  • Modo standard con creazione carico (tm-creazione-carico = "S"):
  • apri-g43 crea il transito, ins-g43 scrive la riga di movimento (classe da config, merce amtr-merce, s/n inventario, matricola amtr-mat);
  • lancia-u30 chiama COGU30 make-doc (doc tip X) per generare il documento di carico sul magazzino w-magaz-sn, cliente tm-amtr-cli-cod;
  • aggiornamenti-finali: risolve la matricola di magazzino creata (COGU07/COGMATRI), le assegna il s/n definitivo (rwr-cogmatri), aggiorna i s/n aggiuntivi (COGU07 aggiorna-cogsnagg), mostra gli estremi del documento di carico creato e aggiorna la matricola di assistenza (amtr-sn = tm-sn-bis, amtr-mat = mtr-mat).
  • Modo standard senza creazione carico: solo aggiornamenti-finali.

Funzioni

Tasto Azione
F1 Modifica configurazioni (RNEWCONF in modo Modifica)
F9 Ricerca avanzata matricola (ASN200)
F3 Conferma / avanzamento tra le fasi
F2 Ritorno al campo precedente

Note implementative

  • Il programma opera su una singola matricola per esecuzione (data-entry), non su griglia.
  • La creazione del documento di carico e' interamente delegata a COGU30 tramite il file di transito tran-g43, che viene creato e cancellato nell'arco della singola operazione.
  • I controlli di univocita' del serial number usano tre fonti (ASNS02, COGU07, COGMATRI) per coprire sia le matricole di assistenza sia quelle di magazzino sia i serial number collegati.
  • L'assunzione in aggiornamenti-finali: se COGU07 non trova la matricola figlia si presume di essere sulla prima e si usa la matricola originale (ricerca COGMATRI per s/n).