COGO88A - Invio Ordini a Bencarni (Famila / Pasticceria Modenese)¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGO88A |
| Titolo | Invio ordini a Bencarni |
| Modulo | Sistema |
| Posizione menu | Sistema > Utility > Esportazioni > Estrazione Vendite X GDO > Famila > Invio ordini a Bencarni |
Scopo e logica generale¶
COGO88A e' l'interfaccia di scambio documenti tra Pasticceria Modenese e il grossista Bencarni (canale Famila / Brendolan). E' un unico programma multi-operazione pilotato dal parametro di lancio wo-parametro:
wo-parametro (1:1) = "1"-> prepara il file ordini per Bencarni (voce di menu documentata qui: "Invio ordini a Bencarni");= "2"-> acquisisce le conferme d'ordine da Bencarni aggiornandoCOGTESOR(numero/data ordine con prefissoBC/);= "3"-> prepara il file bolle (DDT) per Bencarni.
Il secondo carattere (wo-parametro (2:1)) distingue partenza automatica ("A") o manuale (default "M").
A differenza della famiglia COGD01/93/95/96 (interfacce a caratteri), COGO88A e' un programma GUI (screen section cogo88a-01.scr, framework mmmask.cpy con z-99-init-program). L'operatore indica il cliente padre, la data di consegna/bolla e il file di input/output; l'estrazione produce un file sequenziale a larghezza fissa con record testata "01" e riga "02", strutturati secondo cp-b-rec (ordini) o bb-b-rec (bolle), definiti direttamente nel sorgente. Il trasferimento client/server dei file e' gestito da COPIAF; gli import in formato Excel sono convertiti via ESTRXLS.
La configurazione (cliente padre, cliente padre merci, cliente padre BC, percorso I/O, delimitatore Excel) e' letta da RNEWCONF dai gruppi cogo88/cogesys. Il codice fornitore verso Bencarni e' costante nel sorgente (k-cod-for = "026051").
Flusso principale¶
apri(main):z-99-init-program,ctr-abil,rd-azi,open-files; abilita F1/F3/F5; carica la configurazione (x99-load-config-> RNEWCONF); imposta il titolo maschera in base aw-operazione(1/2/3); costruisce i controlli GUI.a4: inizializza la maschera, legge l'anagrafica del cliente padre (COGGEANA), carica i controlli, attiva F3 e si posiziona sulla data di consegna.a-tm-cliente-padre: accept del codice anagrafico cliente (ricerca viaCOGS65W), con controllo di codifica (x-controlla-tm-cliente-padre).a-tm-data-consegna/a-tm-data-bolla: accept date con calendario (COGS52); a seconda dell'operazione compongono il nome file di default (FTPPAST.txtper op.1,OPMO<data>.txtper op.2,BPAM<data>.txtper op.3) sul path configurato.a-tm-filein: accept del file di input/output, con dialog di selezione (C$OPENSAVEBOX, F5) e controlli su nome/estensione.a-richiesta-conferma: conferma (acc-conf, F3); prepara i nomi file di lavoro e il file di log ($logcogo88a.inext-tmp-dir); apre il log.- Esecuzione (per
w-operazione): - "1" ->
tratta-file+trs-file-locale: scorreCOGTESOR(chiave data-decorrenza per cliente padre) e per ogni ordine scrive testata (scarica-ordine, record "01") e righe (scarica-ordine-righe, record "02" daCOGRIGOR), risolvendo codice articolo cliente (COGMERCL) e descrizione (COGMERCI); poi copia il file sul client. - "2" ->
leggi-ordini: converte/copia il file di input viaCOPIAF, lo legge riga per riga e aggiornaCOGTESORscrivendo la conferma d'ordine Bencarni (BC/<numero>+ data) tramitecerca-ordine-altra-via(che localizza gli ordini viaCOGGEANA/COGCNDCFper il punto vendita,cerca-cod-pv). - "3" ->
crea-bo-da-ord+trs-file-locale: costruisce il file bolle a partire dagli ordini; recupera il numero "bollone" daCOGTESBO, scrive testata (record "01") e righe (record "02" daCOGRIGOR), riportando il numero ordine Bencarni (BC/), calcolando i Kg consegnati (w-maxi-d-kg, con conversione viamer-peso) e le referenze; il metodo alternativocrea-bolle(daCOGMOMAGconCOGU09) e' presente ma disattivato. - Chiusura: rimuove il clock, chiude i file, mostra il riepilogo (record letti/aggiornati, Kg e referenze per op.3, eventuale rimando al file di log in caso di errori).
fine/z-chiudi:z-close-files, chiude la window,z-99-exit-program,exit program.
File e tabelle acceduti¶
| File | Record | Modalita' | Uso |
|---|---|---|---|
| COGTESOR | tor-rec |
I-O (st/rdnxt/rd/rwr) |
Testate ordini: lette per l'export (op.1/3), aggiornate con conferma Bencarni (op.2) |
| COGRIGOR | ror-rec |
Input (st/rdnxt) |
Righe ordine (articoli/quantita') |
| COGTESBO | tes-rec |
Input (st/rdnxt/rd) |
Testate bolle (DDT) per l'export bolle (op.3) |
| COGMOMAG | mag-recz |
Input (st/rdnxt) |
Righe movimento magazzino (nel ramo crea-bolle, disattivato) |
| COGGEANA | ana-rec |
Input (rd/st/rdnxt) |
Anagrafica cliente padre / punti vendita |
| COGMERCI | mer-rec |
Input | Descrizione, unita' di misura, peso merce |
| COGMERCL | mcl-rec |
Input | Codice merce cliente (CMC) per il codice articolo Bencarni |
| COGCNDCF | cnd-rec |
Input | Condizioni cliente/fornitore (DC -> porto/codice destino) |
COGTABEL (feurtab) |
euta-rec/cogfiles.cpy |
I-O | File fisico generalizzato tabelle |
| filseq | seq-rec / cp-b-rec / bb-b-rec |
I/O line-sequential | File di lavoro ordini/bolle (input in op.2, output in op.1/3) |
| filelog | log-record |
Output line-sequential | Log elaborazione ($logcogo88a. in ext-tmp-dir) |
Tracciato prodotto (Bencarni) - definito inline nel sorgente:
- Ordini (
cp-b-rec, lrsz ~111): record "01" testata (cp-t: progressivo, riferimento ns. ordine, numero/data ordine, codice fornitore, codice cliente, divisa, data consegna, tipo fatturazione) e "02" riga (cp-r: progressivo, codice articolo, descrizione, unita' di misura, pezzi, flag vendita). - Bolle (
bb-b-rec, lrsz ~114/119): record "01" testata (bb-t: progressivo, numero/data DDT, numero/data ordine, codice fornitore, codice cliente, divisa, data consegna) e "02" riga (bb-r: progressivo, codice articolo, descrizione, unita' di misura, quantita', pezzi, colli, tipo, lotto).
Copybook principali¶
Screen Designer: cogo88a.select, cogo88a.fd, cogo88a.wrk, cogo88a.decla, cogo88a.prc, cogo88a-01.scr - artefatti generati (maschera GUI, verbi di accesso st-/rdnxt-/rd-/rwr-, controlli e-tm-*).
Strutture dati / FD:
- feurtab.fd + cogfiles.cpy - file fisico generalizzato tabelle.
- cp-b-rec / bb-b-rec - tracciati ordini/bolle definiti nel sorgente.
Working-storage / utilita':
- k-u10.cpy, utilu10.cpy, utilu09.cpy (COGU09/U10), utilw92.cpy, utils52.cpy, utils65.cpy - subroutine di supporto.
- utilestrxls.cpy (ESTRXLS), opensave.def (C$OPENSAVEBOX) - conversione Excel e dialog file.
- l-copiaf.cpy (working), u-copiaf.cpy (linkage) - trasferimento file client/server.
- wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, capazien.cpy - working-storage standard.
- utilncnf.cpy - interfaccia RNEWCONF.
Linkage: wcont.cpy (stringhe), wcont1.cpy.
Routine finali: getdcont.cpy, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw92.cpy, cogo88a.prc, oltre alle chiavi secondarie cogtesor.k02..k05, cogtesbo.k02/.k03, coggeana.k04.
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni (cliente padre, path I/O, delimitatore Excel) dai gruppi cogo88/cogesys |
| COGS65W | Ricerca/accept codice anagrafico cliente (GUI) |
| COGS52 | Accept/verifica data con calendario (via routine z-s52-*) |
| COGU09 | Ricerca riga ordine collegata al movimento (ramo crea-bolle, disattivato) |
| ESTRXLS | Conversione file Excel (.xls) in testo delimitato |
| COPIAF | Trasferimento e conversione nomi file client/server |
| C$OPENSAVEBOX | Dialog nativo di selezione file (F5) |
Note¶
- Multi-operazione: il comportamento (invio ordini / ricezione conferme / invio bolle) e' determinato dal parametro di lancio
wo-parametro; la voce di menu "Invio ordini a Bencarni" corrisponde aw-operazione = "1". Esistono ulteriori voci di menu che richiamano lo stesso programma con parametri "2" e "3". - Il codice fornitore verso Bencarni e' costante nel sorgente (
k-cod-for = "026051"), non configurabile. - Configurazioni RNEWCONF lette: delimitatore-colonne-excel (gruppo
cogesys), e dal gruppocogo88le chiavicliente-padre,cliente-padre-mer,nome-path-io-post,cliente-padre-mer-bc. - Gestisce input in formato Excel (
.xls), convertito automaticamente in testo viaESTRXLScon delimitatore forzato. - In op.2 la conferma d'ordine viene scritta su
COGTESORcon prefissoBC/(numero + data ordine Bencarni); il codice punto vendita e' risolto tramite le condizioni clienteCOGCNDCF(DC-> porto). - Diversamente da COGD01/93/95/96, e' un programma GUI e non usa
COGTABELper la configurazione ne'COGTRANScome tabella temporanea di consolidamento. - Fa parte del flusso Estrazione vendite GDO (ecosistema Famila / Pasticceria Modenese).
Documentazione tecnica -- creata 2026-08-06