Posizione nel menu
Programma non a menu
Linkage section
Nome processo: CONTATTI
Tabella: DFMERCIPREST - Merci e prestazioni
Logica generale
Sincronizzazione dell'anagrafica merci/prestazioni tra AREA e il DB frontiera.
Per il momento funziona solo in IMPORT
Configurazioni possibili
Gruppo |
Parametro |
Note |
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
listvend |
||
merci |
||
merci |
||
merci |
||
merci |
||
merci |
||
merci |
||
merci |
Elaborazione
Operazioni:
Operazione |
Descrizione |
" " |
Elaborazione standard: 1.Importa i record aggiornati dal db host. |
"SETTIMANALE" |
Cancellazione logica articoli non presenti su db host Dopo il punto 1 dell'elaborazione standard, scorre l'anagrafica articoli su AREA, per ciascun articolo senza record corrispondente sul DBF esegue la cancellazione logica |
Tipi di segnalazione:
Vedi Tipi di segnalazione
A - Controllo di esecuzione
B - Apertura
B.1 Apertura tabelle
Tentare l'apertura della tabella da sincronizzare: DFMERCIPREST. Se fallita inviare una Segnalazione grave e chiudere.
Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita inviare una Segnalazione grave e chiudere.
B.2 Blocco semaforo
Lettura del record DFSEMAFORO:
Nome campo |
Note |
DF-SMF-TABELLA |
DFMERCIPREST |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF-SMF-USO-HOST = 1) Informazione sul log e chiudere.
Dopodichè aggiornare il semaforo impostando:
Nome campo |
Note |
DF-SMF-USO-AREA |
1 |
DF-SMF-VERSIONE |
Versione attuale: 1 |
B.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"I" |
DBFST-ATT-DATA |
Data sistema |
DBFST-ATT-ORA |
Ora sistema |
DBFST-SCHED-DATA |
Sommare il tempo di attesa a data/ora sistema |
DBFST-SCHED-ORA |
|
DBFST-ERRORI |
0 |
DBFST-MSG-ERRORE |
" " |
DBFST-LOG-PROCEDURA |
" " |
C - Sincronizzazione (Importazione)
C.1 Selezione record da importare
Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST:
SELECT * FROM DFMERCIPREST WHERE DF-MPR-AGG-HOST = 1
C.2 Controllo record
Per ciascun record letto, verificare la correttezza delle informazioni contenute:
Controllo DF-MPR-KEY-HOST
Questa informazione deve essere significativa, altrimenti segnalare Errore .
Controllo DF-MPR-VAL
Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-IND-VAL contiene un valore errato: DF-MPR-VAL"
Se il record risulta cancellato, skippare i controlli restanti ed eseguire la modifica dell'articolo, variando solo il flag di validità della merce.
Controllo DF-MPR-AREA-COD/DF-MPR-AREA-CMA
DF-MPR-AREA-COD corrisponde al codice merce interno. Se:
•Vuoto: l'articolo non è ancora collegato, quindi il codice HOST non dovrebbe esistere: effettuare quindi una ricerca su COGRACMC, verificando se DF-MPR-KEY-HOST è presente come RCM-COD-AVA. Se:
oEsiste: segnalare Informazione e proseguire: "DF-MPR-KEY-HOST non collegato ma trovato come CMA sulla merce: RCM-MERCE, verrà collegato.
oNon esiste: siamo in fase di Inserimento
•Non vuoto: significa che l'articolo è già codificato; quindi controllare l'esistenza su COGMERCI usando DF-MPR-AREA-COD, che dovrà corrispondere MER-CHIA. Se:
oNon esiste, segnalare Errore e skippare: "DF-MPR-KEY-HOST creata ma non trovata: DF-MPR-AREA-COD/DF-MPR-AREA-CMA".
oEsiste: siamo in fase di Variazione
Controllo DF-MPR-DES
Questo campo dovrà essere significativo, altrimenti segnalare Errore e skippare.
Controllo DF-MPR-EAN
Non obbligatorio. Se presente, controllare che sia un codice EAN valido usando COGS05 (vedi COGV06NO); se non valido segnalare Errore e skippare "DF-MPR-KEY-HOST con DF-MPR-EAN errato".
Se presente, il programma di importazione dovrà controllare che il codice presente non sia già collegato ad una merce diversa. In questo caso il programma dara' priorità al codice in elaborazione (diamo per scontato che quello precedente sia "obsoleto", quindi su quest'ultimo il codice EAN sarà ricalcolato in modo da permettere al nuovo codice di ospitare il codice EAN trovato.
Controllo DF-MPR-CLASSE
Questo campo dovrà contenere "M" o "S", altrimenti segnalare Errore e skippare: "DF-MPR-KEY-HOST con DF-MPR-CLASSE errata".
Controllo DF-MPR-UM
Questo campo è obbligatorio e dovrà contenere una UM codificata nella apposita tabella COGTABUM.
Se il valore non è presente o non codificato segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-VAL contiene un valore errato: DF-MPR-VAL"
Controllo DF-MPR-IVA-VENDITA
Questo campo è obbligatorio e dovrà essere trovato sulla tabella di raccordo Aliquote IVA (vedi COGEA1 - Aliquote IVA)
Se il valore non è presente o non codificato segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-IVA-VENDITA non è presente nella tabella raccordo: DF-MPR-IVA-VENDITA"
Controllo DF-MPR-IVA-ACQUISTO
Stessi controlli del campo precedente, ma non è obbligatorio.
Controllo DF-MPR-FL-SN
Questo campo potrà valere un valore da 0 a 3; altrimenti segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-FL-SN contiene un valore errato: DF-MPR-FL-SN"
Controllo DF-MPR-FAM-SCONTI
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-raggr-sconti.
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-FAM-SCONTI |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-FAM-SCONTI non trovata: DF-MPR-FAM-SCONTI"
Se vuoto, potrà essere utilizzato un codice raggruppamento collegato nelle due configurazioni: forzo-classe-m-su-grupposconto, forzo-classe-s-su-grupposconto, a seconda della classe merce.
Controllo DF-MPR-FORN-ABITUALE
Informazione non obbligatoria. Se presente, dovrà contenere un codice fornitore HOST raccordato con un fornitore su AREA.
Ricerca su COGANAPP.AAP2-CHIA2, impostando
Nome campo |
Contenuto |
AAP2-RACCORDO |
DF-MPR-FORN-ABITUALE |
AAP2-ANA-TIP |
"F" |
Se il raccordo:
➢Esiste: il codice fornitore collegato sarà usato in fase di aggiornamento.
➢Non esiste: Il fornitore a cui è collegata non è stato ancora acquisito: Errore e skippare: "DF-MPR-KEY-HOST; il fornitore abituale DF-MPR-FORN-ABITUALE non è stato ancora acquisito"
Controllo DF-MPR-CATEGORIA
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-categoria.
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-CATEGORIA |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-CATEGORIA non trovata: DF-MPR-CATEGORIA"
Controllo DF-MPR-GRUPPO
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-gruppo.
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-GRUPPO |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-GRUPPO non trovata: DF-MPR-GRUPPO"
Controllo DF-MPR-FASCIA
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-fascia
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-FASCIA |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-FASCIA non trovata: DF-MPR-FASCIA"
Controllo DF-MPR-COLLEZIONE
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-collezione
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-COLLEZIONE |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-COLLEZIONE non trovata: DF-MPR-COLLEZIONE"
Controllo DF-MPR-BRAND
Questo campo, non obbligatorio, potrà contenere un valore presente sulla famiglia di raggruppamenti gerarchici configurati in classe-brand
Se significativo effettuare quindi una lettura su COGANRAG, impostando:
Nome campo |
Contenuto |
ARAG-CLASSE |
La classe configurata |
ARAG-TIP |
"R" |
ARAG-ID |
DF-MPR-BRAND |
Se il record non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-BRAND non trovato: DF-MPR-BRAND"
Controllo DF-MPR-STAMPA-LISTINO
Questo campo potrà valere un valore da 0 a 1; altrimenti segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-STAMPA-LISTINO contiene un valore errato: DF-MPR-STAMPA-LISTINO"
Controllo DF-MPR-QUALITA
Se significativo, cercare se raccordato ad un codice "qualità" presente sulla tabella in AREA; scorrere quindi la tabella Qualità articoli (tipo FV, e verificare se esiste un record con EUTA-QLA-CODICE-HOST = DF-MPR-QUALITA; se non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST con codice qualità non raccordata: DF-MPR-QUALITA"
Controllo DF-MPR-EVIDENZA
Se significativo, cercare se raccordato ad un codice "evidenza" presente sulla tabella in AREA; scorrere quindi la tabella Evidenza commerciale articoli (tipo FW e verificare se esiste un record con EUTA-EVC-CODICE-HOST = DF-MPR-EVIDENZA; se non esiste segnalare Errore e skippare: "DF-MPR-KEY-HOST con codice evidenza non raccordata: DF-MPR-EVIDENZA"
Controllo DF-MPR-FL-MODULA
Se questo campo vale 1, allora sull'azienda dovrà essere attiva la gestione di Modula (AZ-MAG-MODULA <> " "). In caso contrario, segnalare Errore e skippare: "DF-MPR-KEY-HOST; DF-MPR-FL-MODULA attivo ma la gestione non è configurata"
Controllo DF-MPR-MERCE-LISTINO-HOST
Questo dato deve corrispondere al codice merce avanzato di una merce esistente.
Se vuoto si prosegue senza nessun controllo.
Se presente, quindi cercare su COGRACMC: Se esiste, il codice merce collegato dovrà essere memorizzato successivamente come Codice merce listino, altrimenti segnalare Errore e skippare: "DF-MPR-KEY-HOST contiene una merce listino non esistente: DF-MPR-MERCE-LISTINO-HOST".
C.3 Importazione record
Se tutti i controlli sono superati, proseguire con l'inserimento/variazione del contatto; quindi se DF-MPR-AREA-COD è:
➢Presente: Variazione
➢Non presente: Inserimento con attribuzione di un nuovo codice progressivo.
Per quanto riguarda la parte di aggiornamento, fare riferimento a quanto viene già fatto su COGV06NO, per i soli campi previsti in DFMERCIPREST.
In riferimento ai nuovi campi aggiunti a partire dal 18/09/2019
Nome campo |
Esportato su |
DF-MPR-BRAND |
COGANRAG (vedi DF-MPR-CATEGORIA) |
DF-MPR-FASCIA |
COGANRAG (vedi DF-MPR-CATEGORIA) |
DF-MPR-COLLEZIONE |
COGANRAG (vedi DF-MPR-CATEGORIA) |
DF-MPR-QTA-INNER |
COGMERA3.MA3-QTA-IMB-INNER |
DF-MPR-QTA-PALLET |
COGMERA3.MA3-QTA-IMB-PALLET |
DF-MPR-DES-WEB |
Memorizzazione su COGDESCR con la chiave: •CDE-TIP = "M1" •CDE-COD = codice merce •CDE-PRO = 0 NB: corrisponde ad una delle descrizioni web gestite sotto personalizzazione da Yashi |
DF-MPR-MULTIPLO-VENDITA |
COGMERA3.MA3-QTA-MULT-VENDITA |
DF-MPR-DATA-ARRIVO |
COGMERA3.MA3-DATA-ARRIVO |
DF-MPR-LEAD-TIME |
COGMERCI.MER-TEMPO-APP |
DF-MPR-PESO-NETTO |
COGMERCI.MER-PESO |
C.3.1 Articolo su Modula
Se l'articolo è nuovo, o se è stato appena attivato, è necessario eseguire l'attivazione (da implementare quando la procedura di attivazione manuale è completa).
C.3.2 Casi particolari per Pieri (AZ-PERSONAL = k-personal-pieri)
Caso |
Descrizione |
Operazione |
DF-MPR-STATO-RAGGR = 7 |
Merce in esaurimento -> Forziamo uno stato merce specifico su MER-VAL |
MER-VAL = "E" |
C.3.3 Memorizzazione merce listino
Se il dato DF-MPR-MERCE-LISTINO-HOST corrisponde ad una merce esistente, registrare il collegamento su COGMERLK:
Nome campo |
Contenuto |
MLK-TIP |
"ML" |
MLK-MERCE1 |
Merce in elaborazione |
MLK-MERCE2 |
Codice merce listino |
MLK-PRO |
0 |
C.3.4 Memorizzazione dati COGMERLF
Se il dato DF-MPR-VALORE-CONAI è significativo, creare o aggiornare un record su COGMERLF:
Nome campo |
Contenuto |
MLF-MERCE |
Merce in elaborazione |
MLF-FOR |
Inizializzato |
MLF-CURRENCY |
W-CURRENCY-CONTO |
MLF-CONAI-CURRENCY |
W-CURRENCY-CONTO |
MLF-CONAI-UNI |
DF-MPR-VALORE-CONAI |
C.4 Aggiornamento stato record
Aggiornare il record DFMERCIPREST impostando:
Nome campo |
Contenuto |
DF-MPR-AGG-HOST |
0 |
DF-MPR-AGG-AREA |
0 |
In caso di inserimento dobbiamo anche raccordare il nuovo articolo a questo record, quindi aggiorneremo:
Nome campo |
Contenuto |
DF-MPR-AREA-COD |
MER-CHIA |
DF-MPR-AREA-CMA |
RCM-COD-AVA |
DF-MPR-AGG-AREA |
1 |
F - Cancellazione logica record non presenti (Operazione "SETTIMANALE")
F.1 Blocco semaforo
Lettura del record DFSEMAFORO:
Nome campo |
Note |
DF-SMF-TABELLA |
MASSIVO |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF-SMF-USO-HOST = 1) segnalare sul log e chiudere.
Dopodichè aggiornare il semaforo impostando:
Nome campo |
Note |
DF-SMF-USO-AREA |
1 |
DF-SMF-VERSIONE |
Versione attuale: 1 |
F.2 Elaborazione
Scorrere COGMERCI. Per ciascun articolo non ancora "cancellato" fare una ricerca su DFMERCIPREST, usando la chiave DF-MPR-CHIA2:
Nome campo |
Contenuto |
DF-MPR-KEY-HOST |
RCM-COD-AVA |
Se il record non viene trovato, marcare la merce come cancellata:
Nome campo |
Contenuto |
MER-VAL |
"C" |
MER-DATA-AGG |
data odierna |
F.3 Rilascio semaforo
Lettura del record DFSEMAFORO:
Nome campo |
Note |
DF-SMF-TABELLA |
MASSIVO |
Dopodichè aggiornare il semaforo impostando:
Nome campo |
Note |
DF-SMF-USO-AREA |
0 |
D - Sincronizzazione (esportazione)
Fase non prevista in questo programma
E - Chiusura
E.1 Rilascio semaforo
Aggiornare il record semaforo relativo a DFMERCIPREST, impostando
Nome campo |
Note |
DF-SMF-USO-AREA |
0 |
E.2 Chiusura tabelle
Chiudere le tabella DFMERCIPREST e DFSEMAFORO
E.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"A" |
DBFST-ERRORI |
Numero di errori rilevati |
DBFST-MSG-ERRORE |
Ultimo errore rilevato |
DBFST-LOG-PROCEDURA |
Codice procedura di gestione log |