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 campoamtr-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 viaCOGU30e 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-sn → x-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' (viaASNS02,COGU07figlia,COGMATRIk04); in modoInessun controllo di univocita'.tm-creazione-carico(checkS/N): seS, 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: scrivetm-sn-bisinamtr-n-inve termina. - Modo standard con creazione carico (
tm-creazione-carico = "S"): apri-g43crea il transito,ins-g43scrive la riga di movimento (classe da config, merceamtr-merce, s/n inventario, matricolaamtr-mat);lancia-u30chiamaCOGU30 make-doc(doc tipX) per generare il documento di carico sul magazzinow-magaz-sn, clientetm-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
COGU30tramite il file di transitotran-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: seCOGU07non trova la matricola figlia si presume di essere sulla prima e si usa la matricola originale (ricercaCOGMATRIper s/n).