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.
| 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.