Vai al contenuto

COGT98 -- Clonazione DDT da data precedente

Sorgente: cbl/cogt98.cbl | Tipo: Programma con interfaccia grafica | Program-ID: COGT98

Menu: Magazzino > Uscite > Bolle Accompagnatorie > Utility > Clonazione DDT da data precedente


Scopo

Duplica tutti i DDT di uscita generati da ordini clienti con una determinata data di decorrenza, creandone copie con una nuova data. Scorre la tabella ordini clienti, filtra per data di decorrenza e, per ciascun ordine corrispondente, invoca COGMA1 per generare il DDT.


Interfaccia utente

Maschera di filtro (tab-maschera)

Campo Tipo Descrizione
tm-da-data 9(08) Data ordini da duplicare (AAAAMMGG) -- data di decorrenza su COGTESOR
tm-a-data 9(08) Nuova data DDT duplicati (AAAAMMGG) -- deve essere > tm-da-data
tm-log-procedura x(80) Nome procedura per il log

Tasti funzione

Tasto Funzione
F3 Conferma e avvia duplicazione
F8 Calendario per selezione data
ESC Uscita

File e Tabelle

File/Tabella Copybook Uso
COGTESOR cogt98.fd (via select) Testata ordini clienti -- scansione per tipo + anno
FEURTAB feurtab.fd / cogfiles.cpy File tabelle Euro

Programmi chiamati

Programma Scopo
COGMA1 Creazione DDT da ordine (chiamata con cogma1-ope = "Crea-doc", cogma1-batch = "S", cogma1-duplica-ddt = "S")

Copybook principali

  • cogt98.select, cogt98.fd, cogt98.wrk, cogt98.prc, cogt98.decla, cogt98-01.scr -- Definizioni generate da Screens
  • k-personal.cpy -- Costanti personalizzazione
  • cogazien.cpy -- Dati azienda
  • utilcogma1.cpy -- Interfaccia linkage per COGMA1
  • utildlg.cpy -- Interfaccia dialoghi
  • utils52.cpy -- Interfaccia calendario (COGS52)
  • utilncnf.cpy -- Interfaccia configurazioni
  • utilgesdebug.cpy -- Gestione log/debug

Logica di Elaborazione

Validazione input

  • tm-a-data deve essere strettamente maggiore di tm-da-data. Se non lo e', viene mostrato un messaggio di errore.

Flusso principale

  1. Apre il log di debug (gesdebug-apri-principale forzato con w-tm-cfg-debug = "S")
  2. Registra nel log i parametri di lancio
  3. Posiziona su COGTESOR con tor-tipo = "C" (ordine cliente) e tor-anno = tm-da-aa
  4. Scorre tutti gli ordini dell'anno:
  5. Se tor-datdecorr <> tm-da-data, salta il record
  6. Per ogni ordine con data di decorrenza corrispondente:
    • Registra nel log l'ordine in elaborazione
    • Chiama COGMA1 con:
    • cogma1-ope = "Crea-doc"
    • cogma1-ord = tor-chia (chiave ordine)
    • cogma1-dataop = tm-a-data (nuova data)
    • cogma1-batch = "S" (modalita' batch)
    • cogma1-duplica-ddt = "S" (flag duplicazione)
    • Registra nel log l'esito (DDT inserito con riferimenti, oppure inserimento non eseguito)
  7. Alla fine chiude il log e mostra "Fine Elaborazione"

Rottura chiave

L'elaborazione termina quando: - Si raggiunge la fine del file (w-fine-file) - tor-tipo <> "C" o tor-anno <> tm-da-aa (uscita dall'ambito tipo/anno)


Note tecniche

  • Il programma utilizza il sistema di debug/log (gesdebug) per tracciare ogni operazione. Il log viene forzato attivo indipendentemente dalla configurazione.
  • COGMA1 viene invocato con cancel dopo ogni chiamata per rilasciare la memoria.
  • La scansione avviene solo sull'anno della data ordini (tm-da-aa), non su piu' anni.

Documentazione tecnica -- 2026-04-16