COGD59 -- Importazione riordino (Modula)¶
Sorgente: cbl/cogd59.cbl | Tipo: Programma maschera (mmmask) | Program-ID: COGD59
Menu: Magazzino > Modula
Scopo¶
Importa un file di esportazione dal magazzino automatico Modula (formato delimitato da "|", estensione .EXP), aggiorna le scorte minime sulle merci e genera automaticamente le proposte di riordino per gli articoli sotto scorta.
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | File tabelle di sistema (path file) |
| FILSEQ | Input | File sequenziale di import Modula (formato testo delimitato da "|") |
| COGMERCI | I-O | Anagrafica merci; aggiornati: mer-modula ("S"), mer-sco-min |
| COGRIORD | I-O | Tabella riordini; inserimento proposte |
| COGSLMAG | Input | Saldi di magazzino (msal-qta, msal-qta-ordinata, msal-qta-impegnata) |
| COGCNDCF | Input | Condizioni commerciali; chiave secondaria 2, tipo "FP" = fornitore preferenziale |
Copybook principali¶
cogd59.select,cogd59.fd,cogd59.wrk,cogd59.decla,cogd59.prc,cogd59-01.scr-- File screen-generatedcogfiles.cpy-- Record FD di FEURTABk-u10.cpy-- Costanti unita' di misural-copiaf.cpy,u-copiaf.cpy-- COPIAF (copia file client/server)utilncnf.cpy-- Utility configurazione (RNEWCONF)utilw92.cpy,sendw92.cpy-- Utility varieutilestrxls.cpy-- Utility estrazione XLS (ESTRXLS)opensave.def-- Definizioni C$OPENSAVEBOXcogcndcf.k02-- Chiave secondaria 2 di COGCNDCF (condizioni commerciali)
Struttura del programma¶
main section
apri -- Init, open file, carica configurazioni
a4 -- Init maschera, precompila percorso
a-tm-filein -- Accept nome file (F1=config, F5=browse, F3=conferma)
a-richiesta-conferma -- Validazione e avvio elaborazione
fine / z-chiudi -- Chiusura file e uscita
Elaborazione:
tratta-file -- Open COGRIORD, loop lettura FILSEQ
tratta-file-loop -- Parsing riga: unstring campi delimitati da "|"
tratta-file-fine -- Close COGRIORD
ins-riordino -- Calcolo quantita' da riordinare, inserimento in COGRIORD
cerca-for-pref -- Ricerca fornitore preferenziale in COGCNDCF (tipo "FP", chiave secondaria 2)
Configurazioni:
x99-confi -- Legge RNEWCONF: gruppo SISTMGA001, chiave "euta-c077-path-scambio-a" -> w-path
x99-load-config -- Legge RNEWCONF: gruppo "cogesys", chiave "delimitatore-colonne-excel" -> tm-cfg-delimiter
Validazione:
x-controlla-tm-filein -- Verifica estensione .EXP, esistenza file (via COPIAF fileinfo)
x-controlla-tm-filein-bis -- Copia file su server (thin client), eventuale conversione XLS
x-imposta-conferma -- Validazione complessiva prima di elaborare
Logica di elaborazione¶
-
Configurazione: carica il percorso di scambio da RNEWCONF (
SISTMGA001/euta-c077-path-scambio-a) e il delimitatore colonne (default ";"). -
Selezione file: l'utente puo' modificare il percorso, usare F5 per browse, F1 per modificare la configurazione. Il file deve avere estensione .EXP.
-
Validazione: verifica esistenza file tramite COPIAF con operazione "fileinfo". In thin client, copia il file dal client al server. Se il file e' in formato XLS, lo converte tramite ESTRXLS.
-
Elaborazione (
tratta-file): - Apre COGRIORD in output (svuota) poi in I-O con mass-update.
- Per ogni riga del file: parsing con
UNSTRING ... DELIMITED BY "|"nei campi: articolo, descrizione, 2 campi inutilizzati, giacenza, 2 campi inutilizzati, scorta minima, campo residuo. - Decodifica articolo: primi 2 char = gruppo (
dt-gru), char 3-4 = sottogruppo (dt-sot), char 5-9 = codice numerico. Se "00" viene convertito a spaces. - Conversione decimali:
INSPECT ... REPLACING ALL "." BY ","per compatibilita' NUMVAL. - Legge merce da COGMERCI: se non trovata, segnala e salta.
-
Aggiorna merce:
mer-modula = "S",mer-sco-min = dt-scorta-min, rewrite. -
Generazione riordino (
ins-riordino): - Se
dt-giacenza >= dt-scorta-min: nessun riordino necessario. - Altrimenti: legge saldi magazzino (
az-mag-modula) da COGSLMAG. - Calcolo quantita':
- Se
mer-sco-max > 0:rio-qta = mer-sco-max - dt-giacenza - msal-qta-ordinata + msal-qta-impegnata - Altrimenti:
rio-qta = mer-sco-min - dt-giacenza - msal-qta-ordinata + msal-qta-impegnata
- Se
- Se
rio-qta <= 0: nessun riordino. - Cerca fornitore preferenziale in COGCNDCF (tipo "FP", chiave = merce). Se trovato:
rio-for = cnd-cod,rio-ok = "*". -
Write su COGRIORD.
-
Post-elaborazione: chiede se cancellare il file di importazione (
DELETE FILE filseq). -
CALL chain:
RNEWCONF(configurazioni),COPIAF(copia file),ESTRXLS(conversione XLS),COGS52/COGS68/COGS93(utility screen).