Vai al contenuto

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.

Posizioni nel menu

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

  1. 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.
  2. Accept conferma (a-richiesta-conferma): se non chiamato come "called", chiede conferma con F3. Se called, salta direttamente all'elaborazione.
  3. Elaborazione (b-elabora):
  4. Apre il file risultato cogd30.txt nella directory temp in output
  5. Inizializza COGMERCI e fa st-cogmerci-notmin per posizionarsi all'inizio
  6. 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
  7. 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:

  1. DTPRG(ma2-data-nuovo) converte la data di inserimento in un progressivo intero
  2. Si somma tm-cfg-giorni-nuovo (es. 90 giorni)
  3. 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.