COGD30 - Passaggio Articoli a "Tradizionale"
Panoramica
Programma batch/interattivo per il passaggio automatico degli articoli dallo stato "Nuovo" (N) allo stato "Tradizionale" (M) nell'anagrafica merci. Scorre l'intera tabella COGMERCI, seleziona gli articoli con mer-val = "N", legge la data di inserimento come nuovo dai dati aggiuntivi (COGMERA2), somma i giorni configurati (RNEWCONF giorni-articolo-nuovo) e, se la data odierna supera la scadenza, aggiorna lo stato. Produce un file di riepilogo con gli articoli modificati. Puo' essere richiamato come "called" da altre procedure batch.
| Menu |
Percorso |
| Magazzino |
Giacenze & Sottoscorta > Riordino > Pass. articoli a "tradizionale" |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| FEURTAB |
Input |
Tabella di sistema |
| COGMERCI |
I-O |
Anagrafica merci (lettura sequenziale, rewrite per aggiornamento stato) |
| COGMERA2 |
Input |
Dati aggiuntivi merci (campo ma2-data-nuovo: data inserimento come nuovo) |
| COGRACMC |
Input |
Raccolta merci commesse (per ottenere il codice articolo avanzato) |
| COGRISUL |
Output |
File risultato (line sequential, path in directory temp) |
Copybook principali
| Copybook |
Descrizione |
| cogd30.select |
SELECT dei file |
| cogd30.fd |
File Description |
| cogd30.wrk |
Working storage generata |
| cogd30.prc |
Procedure generate da Screens |
| cogd30-01.scr |
Screen section |
| cogd30.decla |
Declaratives |
| wgrave.cpy |
Variabili errori gravi |
| wnscr.cpy |
Variabili screen |
| wopenf.cpy |
Variabili apertura file |
| wstato.cpy |
Variabili stato file |
| cogazien.cpy |
Variabili azienda |
| utilopenfile.cpy |
Interfaccia OPENFILE (apertura file esterno) |
| utilncnf.cpy |
Configurazioni RNEWCONF |
| utild30.cpy |
Interfaccia per richiamo come "called" (linkage) |
| cogracmc.k02 |
Chiave secondaria 02 di COGRACMC |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| RNEWCONF |
Lettura configurazioni (giorni articolo nuovo) |
| DTPRG |
Conversione data -> progressivo giornaliero (per calcolo data scadenza) |
| PRGDT |
Conversione progressivo giornaliero -> data |
| OPENFILE |
Apertura file di riepilogo con il programma associato dal sistema operativo |
Logica di elaborazione
Flusso principale
- Inizializzazione (
apri): apre file, carica lingua, legge configurazione RNEWCONF (giorni-articolo-nuovo dal gruppo merci) in tm-cfg-giorni-nuovo. Se richiamato come "called" (d30-called = k-program-id), imposta flag w-dc-called.
- Accept conferma (
a-richiesta-conferma): se non chiamato come "called", chiede conferma con F3. Se called, salta direttamente all'elaborazione.
- Elaborazione (
b-elabora):
- Apre il file risultato
cogd30.txt nella directory temp in output
- Inizializza COGMERCI e fa
st-cogmerci-notmin per posizionarsi all'inizio
- Loop
b-10-loop: per ogni articolo letto (rdnxt-cogmerci):
- Incrementa contatore
tm-letti
- Se
mer-val != "N": salta (non e' un articolo nuovo)
- Incrementa contatore
tm-trovati
- Legge COGMERA2 per ottenere
ma2-data-nuovo (data di inserimento come nuovo)
- Converte la data in progressivo giornaliero tramite
DTPRG
- Somma
tm-cfg-giorni-nuovo al progressivo
- Riconverte in data tramite
PRGDT
- Se
datasis < w-nuova-data: non ancora scaduto, salta
- Aggiorna
mer-val = "M" (Tradizionale), riscrive con rwr-cogmerci
- Incrementa contatore
tm-modificati
- Scrive nel file risultato: "Articolo Modificato: " + codice avanzato (da COGRACMC) + descrizione
- Chiusura: chiude il file risultato. Se non called, propone di aprire il file con OPENFILE. Mostra messaggio "Elaborazione terminata".
Calcolo data scadenza
La data di scadenza del periodo "nuovo" viene calcolata con aritmetica su progressivi giornalieri:
DTPRG(ma2-data-nuovo) converte la data di inserimento in un progressivo intero
- Si somma
tm-cfg-giorni-nuovo (es. 90 giorni)
PRGDT(progressivo) riconverte il risultato in data
Se datasis >= data_calcolata, l'articolo e' idoneo al passaggio.
Configurazioni RNEWCONF
| Gruppo |
Chiave |
Tipo |
Descrizione |
| merci |
giorni-articolo-nuovo |
Numerico |
Numero di giorni dopo i quali un articolo "Nuovo" diventa "Tradizionale" |
Note tecniche
- Il programma scorre l'intera tabella COGMERCI sequenzialmente. Su database di grandi dimensioni l'elaborazione puo' richiedere tempo.
- Il file risultato viene creato come
cogd30.txt nella directory temporanea (ext-tmp-dir). E' un file line sequential con record di 120 caratteri.
- In modalita' "called" (
w-dc-called = "S"): non chiede conferma, non propone l'apertura del file, termina direttamente con exit program.
- Il campo
mer-val ha almeno i seguenti valori: "N" = Nuovo, "M" = Tradizionale (Manuale/standard).
- Per ottenere il codice articolo "leggibile" nel file risultato, viene letto COGRACMC chiave 2 per recuperare
rcm-cod-ava.
- Usa
PERFORM ... THRU in b-elabora thru ex-b.
- Dimensione sorgente: circa 14K, circa 370 righe.