Vai al contenuto

PSTDB001 - Scaricamento Ordini su DB Esterno

Panoramica

Programma per l'esportazione degli ordini clienti su database esterno (PostgreSQL o file indicizzati). Specifico per la personalizzazione Pasticceria Modenese (k-personal-pasticceria-mo). Supporta tre operazioni: aggiornamento (update), cancellazione (delete), chiusura (chiudi). Puo' funzionare sia in modalita' interattiva che richiamato (called) da altri programmi per aggiornamento singolo ordine.

Posizione nel menu

Menu Percorso
Ordini Clienti

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
DBETESOR I-O Testata ordini su DB esterno (XFD)
DBERIGOR I-O Righe ordini su DB esterno (XFD)
COGTESOR Input Testata ordini gestionale
COGRIGOR Input Righe ordini gestionale
COGCONOR Input Consegne ordini (chiave 4: data+merce+chia1)
COGGEANA Input Anagrafica clienti/fornitori
COGGRDAY Input Giri giornalieri operatori

Copybook principali

Copybook Descrizione
pstdb001.select SELECT dei file
pstdb001.fd File Description
pstdb001.wrk Working storage generata
pstdb001.decla Declaratives
pstdb001-01.scr Screen section
dbetesor.fd / dbetesor.cpy FD e record testata DB esterno
dberigor.fd / dberigor.cpy FD e record righe DB esterno
sql-decla-ws.cpy Dichiarazioni SQL working storage
dbetesor-sql-ws.cpy SQL working storage testata
dberigor-sql-ws.cpy SQL working storage righe
utilpstdb001.cpy Interfaccia chiamante (linkage)
k-personal.cpy Personalizzazioni aziendali
utilncnf.cpy Configurazioni RNEWCONF
utils52.cpy Interfaccia COGS52 (date)
utils46w.cpy Interfaccia COGS46W
cogazien.cpy Dati azienda
filesys.def Definizioni file system

Chiamate a sottoprogrammi (CALL)

Programma Scopo
RNEWCONF Lettura configurazioni
COGS54 Gestione stampante/anteprima

Variabili chiave

Variabile Tipo Descrizione
tab-maschera 01 Filtri: tipo-ric (D=data/C=codice), date da/a, ordini da/a, tipo-ope (A/C/U), contatori
tab-config 01 Configurazione DB: tipo (D=DBmaker/P=PostgreSQL/altro), path, connection string (x3), log-level. Separata per DBE e BIN
w-dati-called 01 Dati passaggio chiamata: fl-called, operazione, caller, chiave ordine+riga
tm-ror-chia gruppo Chiave ordine corrente: tipo+anno+numero+progressivo + merce + riga-pro

Configurazione DB (tab-config)

La connessione al DB esterno e' configurata tramite RNEWCONF:

  • tm-cfg-dbe-tipo: tipo connessione (D=DBmaker, P=PostgreSQL, altro=file idx)
  • tm-cfg-dbe-path: path file per modalita' file indicizzati
  • tm-cfg-dbe-conn-string: stringhe di connessione (fino a 3)

Flusso operativo

1. Inizializzazione (apri)

  • Verifica personalizzazione: solo k-personal-pasticceria-mo
  • Inizializza connessione DB (init-dbe-sub-tm-cfg-dbe-tipo)
  • Se richiamato (called): esegue direttamente l'operazione richiesta

2. Accept filtri (a4 -> a-tm-tipo-ric, a-tm-da-data, a-tm-a-data, a-tm-da-ord-, a-tm-a-ord-, a-tm-tipo-ope)

  • Tipo ricerca: D=per data consegna, C=per codice ordine
  • Tipo operazione: A=aggiornamento, C=cancellazione, U=chiusura

3. Elaborazione (a-elabora -> esegui-ope)

Due modalita' di scansione:

  • Per data (D): scansiona COGCONOR chiave 4 nell'intervallo date, per ogni ordine trovato esegue l'operazione
  • Per codice (C): cicla sull'intervallo numeri ordine, per ciascuno esegue l'operazione

4. Operazioni disponibili (esegui-ope)

Operazione Funzione Descrizione
delete-ordine delete-ordine Cancella testata e righe dal DB esterno
update-ordine update-ordine Legge COGTESOR, scrive su DBETESOR; cancella e riscrive righe
chiudi-ordine chiudi-ordine (non implementato)
delete-riga-ordine delete-riga-ordine Cancella una singola riga
update-riga-ordine update-riga-ordine Aggiorna una singola riga
chiudi-riga-ordine chiudi-riga-ordine (non implementato)

5. update-ordine (dettaglio)

  • Legge testata ordine da COGTESOR
  • Se ordine non trovato: esegue delete-ordine e esce
  • Legge anagrafica cliente (COGGEANA) per nome e zona
  • Cerca giro giornaliero operatore (COGGRDAY) per sequenza
  • Popola DBETESOR con tutti i campi della testata
  • Cancella righe esistenti (cancella-righe-ordine), poi riscrive le nuove

6. Modalita' SQL (PostgreSQL)

Quando tm-cfg-dbe-tipo = "P":

  • Le operazioni di cancellazione usano sql-prepare/sql-execparams
  • Le righe vengono cancellate con DELETE WHERE parametrizzato
  • La scrittura usa i metodi standard sql-*

7. Chiusura (fine)

  • Chiude connessione DB (close-dbe-sub-tm-cfg-dbe-tipo)
  • Esce dal programma

Interfaccia chiamante (linkage)

Il programma puo' essere richiamato con i seguenti parametri in utilpstdb001.cpy:

  • w-dc-called: nome programma chiamato (deve corrispondere a "pstdb001")
  • w-dc-caller: nome programma chiamante
  • w-dc-ope: operazione da eseguire
  • w-dc-tor-chia: chiave testata ordine
  • w-dc-ror-merce: codice merce
  • w-dc-ror-rig-pro: progressivo riga

Note tecniche

  • Le direttive $xfd file=dbetesor e $xfd file=dberigor generano i file XFD per l'accesso ai database esterni.
  • I blocchi *--> sql-start / *--> sql-end delimitano il codice specifico per la versione SQL.
  • In modalita' called, il flusso salta direttamente ad a-elabora senza mostrare la maschera.