IMPLIS - Import/export di massa listini di vendita¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | IMPLIS |
| Titolo | Importazione/Esportazione listini di vendita |
| Modulo | Sistema |
| Posizione menu | Sistema > Utility > Imp/exp di massa > Magazzino > Listini di vendita |
Scopo e logica generale¶
IMPLIS fa parte del framework IMP* e gestisce l'import ed export massivo dei listini, memorizzati nella tabella COGLISNW (record lnw-, a chiave gruppo/sottogruppo/codice merce + tipo listino + riferimento + fascia + data). Un file Excel/delimitato con intestazione di colonne (ID campo LNW-*) viene letto riga per riga, validato e riversato sulla tabella; in export produce il file inverso.
Il programma opera in due direzioni (campo maschera tm-ope) e per tre tipi di listino (tm-lis-tip / colonna LNW-TIP-LIS):
- "L": listino di vendita.
- "C": listino per cliente (valida il cliente su
COGGEANAe crea la testataCOGTESLSse manca). - "F": listino fornitore; oltre a
COGLISNWaggiorna il codice merce-fornitore inCOGMERFOtramite la colonnaMFR-CMF.
E' un programma GUI standalone (procedure division using stringhe, senza copybook di linkage dedicato). La modalita' di richiamo automatico e' pilotata dal profilo wo-parametro, con valori E L (export listini) e I L (import listini).
Flusso principale¶
apri(main):z-99-init-program,rd-azi,open-files,x99-load-config(RNEWCONF), tasti funzione (F1/F3/F8/F9), divisa conto (COGU10W), bitmap e pulsante custom F7 "Trova file", costruzione maschera "Importazione listini".a4: reset campi maschera con i default (operazione "I", ordinamento "C", data listino odierna, tipo listino "T", test "S"). Se richiamato conk-export-listini("E L") forza export e prepara la copia dilistini.xlsserver->client viaCOPIAF; conk-import-listini("I L") forza import.- Accept parametri (
a-tm-*): operazione (I/E), ordinamento, filtri merce da/a, flag senza prezzo, tab/codice CMA, data listino, tipo listino (L/C/F/T), riferimento listino. F7 apre il file (C$OPENSAVEBOX/OPENFILE);ESTRXLSconverte Excel in delimitato. - Dispatch:
if tm-ope = "I" perform b-importa else perform c-esporta. a1-carica-campi(import): apre il file sequenziale, legge la riga di intestazione, spezza le colonne sul delimitatore e mappa ogni ID colonna intab-campi(tc-id-lnw-gru/sot/cod/tip-lis/rif/fascia/data, piu'mcl-des,mcl-cmc,mfr-cmf). Verifica le colonne obbligatorie:LNW-GRU,LNW-SOT,LNW-COD,LNW-TIP-LIS,LNW-FASCIA,LNW-DATA.b-importa/b-10-loop: aprecogseque, salta le righe di intestazione, per ogni rigab1-carica-delimitato(parsing e validazione campi,AZVALIDA, troncamentoMFR-CMFcon avviso, marcab1-record-errato); se la riga e' valida chiamab3-aggiorna. Contatori righe lette/valide/inserite/aggiornate; ESC chiede l'interruzione.b3-aggiorna: risolve la merce (diretta, oppure viaCOGRACMC/COGRACMTper il codice avanzato, oppure viaCOGMERFOse configurato). Scarta le merci inesistenti/cancellate. Pertip-lis = "C"valida il cliente suCOGGEANAe crea la testataCOGTESLSse manca; controlla la fascia. SuCOGLISNWdecide insert (wr), update (rwr) o delete (del); scrive i record collaterali (COGMERA2/COGMERCL). Ramo F: aggiornaCOGMERFO(colonnaMFR-CMF). In modalita' test non scrive.c-esporta/c-10-loop/c1-coglisnw: apre il canale di transitoCOGTRANSecogexprt, scrive due righe di testa (tipi campo N/S e ID colonna tab-separati), poi per ogni merce estrae i recordCOGLISNWfiltrati per data/tip-lis/rif (st-coglisnw-notmay-chia4/chia2+rdprv-coglisnw), scartando i prezzi a zero salvoLNW-FL-ZERO. Al termineGRIDTOXSproduce l'Excel.- Log: le righe di errore/warning sono accumulate e scritte su
cogrisul(implis.txt), aperto ina-open-cogrisul.
File e tabelle acceduti¶
File sequenziali / di transito: cogseque (input import), cogexprt (output export), cogrisul (log implis.txt), COGTRANS (canale di transito export); piu' feurtab (cogfiles.cpy).
| Tabella | Uso |
|---|---|
| COGLISNW | Listino principale (record lnw-): insert/update/delete in import, scansione in export |
| COGTESLS | Testata listino (creata se mancante, tipo "C") |
| COGMERFO | Codice merce-fornitore (colonna MFR-CMF, ramo "F"): letto/scritto/riscritto |
| COGMERCI | Verifica esistenza merce |
| COGMERA2 / COGMERCL | Record collaterali (statistiche merce, listino cliente) |
| COGGEANA | Validazione riferimento cliente/fornitore |
| COGRACMC / COGRACMT | Raccordo codice merce avanzato -> merce |
| COGMERAP | Raggruppamenti |
| COGTABEL | Tabelle di dominio |
Chiavi secondarie aggiunte a fine procedure: coglisnw.k02, coglisnw.k04, cogracmc.k02, cogracmt.k02, cogmerfo.k03, cogtrans.k01.
Copybook principali¶
Strutture / record: feurtab.fd, cogfiles.cpy, opensave.def.
Utility / servizio: utilestrxls.cpy (ESTRXLS), utilopenfile.cpy (OPENFILE), utilncnf.cpy (RNEWCONF), utilgesstr.cpy (GESSTR), utilcogs0c.cpy, utilcogsaf.cpy (COGSAF), utils52/utils65/utils68, utilu10/utilu16/utilu20, utilw96/utilw74/utilw76 (invio documenti/mail), utilcrms06/utilcrms09 (CRM, solo Artic Seals), l-copiaf.cpy/u-copiaf.cpy (COPIAF).
Working standard / costanti: k-personal.cpy, costanti-clipot.cpy, costanti-stampaggio.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wcont.cpy, wcont1.cpy.
Screen Designer: implis.select, implis.fd, implis.wrk, implis.decla, implis.prc, implis-01.scr.
Routine finali: stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, sendw74.cpy, sendw96.cpy.
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| ESTRXLS | Conversione file Excel in testo delimitato per l'import |
| GRIDTOXS | Apertura del file esportato come foglio Excel |
| COPIAF / C$COPY | Copia file listini.xls server/client |
| C$OPENSAVEBOX | Dialog di scelta file (F7) |
| OPENFILE | Apertura del file/log su richiesta |
| WIN076 | Finestra/dialog di servizio |
| RNEWCONF | Lettura configurazioni |
| COGU10W / COGU10 | Servizi merci/divisa (GetDivisaConto) |
| COGU16W | Navigazione/selezione campi |
| COGS65W | Ricerca/aiuto sui codici merce |
| COGSAF | Servizio di supporto |
| GESSTR | Manipolazione stringhe |
| AZVALIDA | Validazione dati/aziende |
| CRMS06 / CRMS09 | Scheda CRM/GAPI (solo Artic Seals) |
Note¶
- Non esiste un copybook di linkage
util-implis: la modalita' arriva dawo-parametro(E Lexport /I Limport). I parametri operativi risiedono nella strutturatab-maschera(tm-opeI/E,tm-ord,tm-lis-tipL/C/F/T,tm-lis-rif,tm-lis-data,tm-file,tm-test) e nei campi derivati dalla configurazione. - Gli ID campo
LNW-*gestiti includono le chiavi listino (LNW-GRU,LNW-SOT,LNW-COD,LNW-TIP-LIS,LNW-RIF,LNW-FASCIA,LNW-DATA), il prezzo (LNW-PRE), il codice merce avanzato (LNW-CMA),LNW-FL-ZERO,LNW-LIS-DES,LNW-DATA-FINE, piu' campi merce/anagrafica (MER-*), cliente (MCL-DES,MCL-CMC), fornitore (MFR-CMF) e il comandoCANCELLA-RIGA. - Il valore
#@#(k-campo-svuotato) forza l'azzeramento esplicito del campo in import. - La modalita' test (
tm-test= "S") esegue parsing e validazioni senza scrivere sulle tabelle. - Ramo "F": se
MFR-CMFe' valorizzato eLNW-TIP-LIS = "F"con riferimento fornitore, IMPLIS scrive/aggiorna ancheCOGMERFO(mfr-cod-for); seMFR-CMFe' vuoto e il legame esiste, lo azzera. In import, se configurato, la merce puo' essere risolta anche daCOGMERFOquando il codice avanzato non e' inCOGRACMC. - Configurazioni RNEWCONF lette (in blocco unico):
progcogv06/euta-c073-siz-des, delimitatore-colonne-excel (gruppocogesys),listvend/listino-unico,PRNTDOCUSC/STAMPA-DAG-MERCE,listvend/implis-leggo-cogmerfo.
Documentazione tecnica -- creata 2026-08-06