Vai al contenuto

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 COGGEANA e crea la testata COGTESLS se manca).
  • "F": listino fornitore; oltre a COGLISNW aggiorna il codice merce-fornitore in COGMERFO tramite la colonna MFR-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

  1. 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".
  2. a4: reset campi maschera con i default (operazione "I", ordinamento "C", data listino odierna, tipo listino "T", test "S"). Se richiamato con k-export-listini ("E L") forza export e prepara la copia di listini.xls server->client via COPIAF; con k-import-listini ("I L") forza import.
  3. 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); ESTRXLS converte Excel in delimitato.
  4. Dispatch: if tm-ope = "I" perform b-importa else perform c-esporta.
  5. a1-carica-campi (import): apre il file sequenziale, legge la riga di intestazione, spezza le colonne sul delimitatore e mappa ogni ID colonna in tab-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.
  6. b-importa / b-10-loop: apre cogseque, salta le righe di intestazione, per ogni riga b1-carica-delimitato (parsing e validazione campi, AZVALIDA, troncamento MFR-CMF con avviso, marca b1-record-errato); se la riga e' valida chiama b3-aggiorna. Contatori righe lette/valide/inserite/aggiornate; ESC chiede l'interruzione.
  7. b3-aggiorna: risolve la merce (diretta, oppure via COGRACMC/COGRACMT per il codice avanzato, oppure via COGMERFO se configurato). Scarta le merci inesistenti/cancellate. Per tip-lis = "C" valida il cliente su COGGEANA e crea la testata COGTESLS se manca; controlla la fascia. Su COGLISNW decide insert (wr), update (rwr) o delete (del); scrive i record collaterali (COGMERA2/COGMERCL). Ramo F: aggiorna COGMERFO (colonna MFR-CMF). In modalita' test non scrive.
  8. c-esporta / c-10-loop / c1-coglisnw: apre il canale di transito COGTRANS e cogexprt, scrive due righe di testa (tipi campo N/S e ID colonna tab-separati), poi per ogni merce estrae i record COGLISNW filtrati per data/tip-lis/rif (st-coglisnw-notmay-chia4/chia2 + rdprv-coglisnw), scartando i prezzi a zero salvo LNW-FL-ZERO. Al termine GRIDTOXS produce l'Excel.
  9. Log: le righe di errore/warning sono accumulate e scritte su cogrisul (implis.txt), aperto in a-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 da wo-parametro (E L export / I L import). I parametri operativi risiedono nella struttura tab-maschera (tm-ope I/E, tm-ord, tm-lis-tip L/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 comando CANCELLA-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-CMF e' valorizzato e LNW-TIP-LIS = "F" con riferimento fornitore, IMPLIS scrive/aggiorna anche COGMERFO (mfr-cod-for); se MFR-CMF e' vuoto e il legame esiste, lo azzera. In import, se configurato, la merce puo' essere risolta anche da COGMERFO quando il codice avanzato non e' in COGRACMC.
  • Configurazioni RNEWCONF lette (in blocco unico): progcogv06/euta-c073-siz-des, delimitatore-colonne-excel (gruppo cogesys), listvend/listino-unico, PRNTDOCUSC/STAMPA-DAG-MERCE, listvend/implis-leggo-cogmerfo.

Documentazione tecnica -- creata 2026-08-06