DBF004 - Sincronizzazione articoli

Navigation:  »No topics above this level«

DBF004 - Sincronizzazione articoli

Return to chapter overview

Posizione nel menu

Programma non a menu

 

Linkage section

 

UTILDBFPRG - Linkage comune

 

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

sincro-attiva

 

dbfront

email-segnalazioni

 

dbfront

db-tipo

 

dbfront

db-conn-string

 

dbfront

db-log-level

 

listvend

classe-raggr-sconti


merci

classe-categoria


merci

classe-gruppo


merci

forzo-classe-m-su-grupposconto


merci

forzo-classe-s-su-grupposconto


merci

classe-fascia


merci

classe-collezione


merci

classe-brand


 

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

Vedi 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