Vai al contenuto

SWA035 - Sincronizzazione merci/prestazioni

Logica generale Import/export delle anagrafiche materiali/prestazioni tra gestionale e database KPN Nel programma introdurre il concetto del log procedura in cui memorizzare sempre i contatori principali dell'elaborazione: * Merci lette * Merci valide (che superano i controlli) * ARPMERCI inseriti o aggiornati * ARPMESER inseriti o aggiornati * Esportazione promozioni su ARPGRUPPISCONTO/ARPSCONTI NO OBSOLETA !! Configurazioni possibili

Gruppo Parametro Note
areaapp giorni-esportazione-merci
sistmerava tab-cma-aziende-gruppo
sistmerava tab-cma-brand
sistmerava tab-cma-cli-fat
ecommerce shop-attivo
merci classe-categoria

Elaborazione Se l'operazione è: * "SINCRO": Esecuzione di * A - Importazione aggiornamenti da APP * C - Esportazione articoli * "ESPORTA-MERCE": Esecuzione di: * C - Esportazione articoli A - Importazione aggiornamenti da APP Tramite una query estrazione di tutte le merci aggiornate da APP (RMER-AGG-APP = "A") NB: per ora è possibile solo effettuare aggiornamenti ad articoli esistenti. Per ciascun articolo aggiornato i campi che attualmente è possibile modificare lato web sono: * RMER-NOTE-TECNICHE * RMER-UM * RMER-SOGLIA-MIN-VENDITA * RMER-MAGG-MIN-VENDITA * RMER-CONFEZIONE * RMER-EVIDENZA * RMER-DESC-AGGIUNTIVE Al termine dell'aggiornamento di ciascun record impostare RMER-AGG-APP = ' ' A.1 - Modifica COGMERCI

Dato Contenuto
MER-UM RMER-UM
MER-CONFEZIONE RMER-CONFEZIONE

A.2 - Modifica COGMERA3

Dato Contenuto
MA3-SOGLIA-MIN-VENDITA RMER-SOGLIA-MIN-VENDITA
MA3-MAGG-MIN-VENDITA RMER-MAGG-MIN-VENDITA
MA3-EVIDENZA RMER-EVIDENZA

A.3 - Modifica COGMERNT Inserire o aggiornare il record di COGMERNT avente:

Nome campo Contenuto
MNT-MERCE Codice merce
MNT-TIP "TC"
MNT-PROG 1

A.4 - Modifica COGDESAG Aggiornare COGDESAG per la merce partendo da RMER-DESC-AGGIUNTIVA, come viene fatto in COGS02 A.5 - Modifica COGDESCR Inserire o aggiornare il record di COGDESCR avente:

Nome campo Contenuto
CDE-TIP "M1"
CDE-COD MER-CHIA
CDE-PRO 0

Impostare:

Nome campo Contenuto
CDE-DES RMER-DES-WEB (*)

(*) Eseguire il parsing con GESSTR C - Esportazione articoli C.1 - Pulizia merci cancellate Si cancellano da ARPMERCI le merci che risultano cancellate, attraverso la lettura dell'evento specifico su COGEVLOG: * Scansione di COGEVLOG per tutti gli eventi di tipo K-EVL-CANC-MERCI non ancora visti (EVL-VISTO = "N"); per ciascuna merce: * Si esegue la cancellazione logica del record ARPMERCI * RMER-STATO = "C" * Si aggiorna il record evento impostando EVL-VISTO = "S" C.2 - Esportazione articoli Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPMERCI"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPMERCI"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO Prelevare il numero ultimo aggiornamento merci dall'apposita tabella usando COGS25:

S25-O-NUM conterrà il valore richiesto
NB: questa operazione verrà fatta solo in fase di inserimento, dopodichè diventerà obsoleta

Qui otterremo la data aggiornamento dell'ultima anagrafica merce esportata. Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPMESER"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPMESER"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO Prelevare il numero ultimo aggiornamento merci dall'apposita tabella usando COGS25:

S25-O-NUM conterrà il valore richiesto
NB: questa operazione verrà fatta solo in fase di inserimento, dopodichè diventerà obsoleta

C.2.1 - Pulizia iniziale Non eseguire se SWA035-OPE = 'ESPORTA-MERCE'. Se è configurata l'esportazione di tutte le merci (configurazione giorni-esportazione-merci = 9999). Cancellazione di tutti i record di * ARPMERCI * ARPMERRAG * ARPLOCAZIONI * ARPBARCO per l'azienda attiva usando un comando SQL C.2.2 - Esportazione aggiornamenti Scansione di COGMERCI. Se SWA035-OPE = 'ESPORTA-MERCE', eseguire la start direttamente su SWA035-MERCE e fermarsi immediatamente dopo l'elaborazione della merce richiesta. C.2.2.1 - Controlli Per ciascun record, saranno effettuati i seguenti controlli: * Se siamo in ambiente CAP e il numero di giorni configurato è 9999 * L'articolo deve essere in almeno un movimento magazzino * Se siamo in ambiente CAP e l'articolo fa parte del gruppo merce "Ricambi" sarà scartato Arrivati a questo punto, se non è configurata l'esportazione di tutte le merci (configurazione giorni-esportazione-merci = 9999), scartare la merce se ha MER-DATA-AGG < A_SYN_DA_GES_DATA. Filtri aggiuntivi Per ciascuna merce/servizio di cui si dovrà effettuare l'elaborazione, si dovrà dovrà effettuare una verifica di esportazione tramite SWAFME - Filtro esportazione merci (programma che verifica se la merce deve essere esportata, in funzione di alcuni filtri specifici per ciascun cliente, quando previsto). Se viene restituito SWAFME-DA-ESPORTARE = "N", allora: - Se l'articolo è già presente sulla tabella di destinazione, si esporterà come "cancellato" (come se avesse MER-VAL = "C") - Se l'articolo non è presente, si salta. Note sull'esportazione di merci/servizi cancellati Quando si esporta un articolo su ARPMERCI/ARPMESER, il cui stato è "C", l'esportazione delle tabelle collegate dovrà marcare lo stato di cancellato "C" anche su di esse, quando è previsto il dato. Quindi se la merce ha MER-CLASSE: * "S": C.2.2.1.1 - Esportazione servizio * "M": C.2.2.1.2 - Esportazione articolo C.2.2.1.1 - Esportazione servizio Inserimento/aggiornamento ARPMESER

Dato Contenuto
RMERS-AZI Azienda attiva
RMERS_GRU Merce in elaborazione
RMERS_SOT
RMERS_COD
RMERS-CMA RCM-COD-AVA
RMERS-DES Per ora qui viene esportato il contenuto di MER-DESCR
RMERS-EAN MER-EAN
RMERS-FL-SN MER-FL-SN
RMERS-DATA-AGG
RMERS-STATO MER-VAL
RMERS-ID-SINCRO Ultimo id sincro "ARPMERCI"
RMERS-COD-IVA MER-CODIVA
RMERS_UM MER-UM
RMERS_SERV Dati specifici CAP
RMERS_FAMIG
RMERS_SGR
RMERS_TOX_NEW
RMERS-ART62 MA2-COD-PAG-A62
RMERS-CM Merce in elaborazione (codice interno in un campo unico)
RMERS-PESO MER-PESO
RMERS-RTM-CLI-FAT Cercato su COGRACMT, usando la tabella configurata in tab-cma-cli-fat
RMERS-RTM-BRAND Cercato su COGRACMT, usando la tabella configurata in tab-cma-brand
RMERS-RTM-GRP-AZ Cercato su COGRACMT, usando la tabella configurata in tab-cma-aziende-gruppo

Controllo esistenza su ARPMERCI Se lo stesso articolo appena esportato su ARPMESER esiste anche su ARPMERCI significa che è stata cambiata la classe. In questo caso effettuare la cancellazione logica su ARPMERCI (RMER-STATO = "C") aggiornando anche l'id sincro, aggiungendo sul log di procedura una registrazione di questo evento: "Servizio codice_merce cancellato da tabella merci". C.2.2.1.2 - Esportazione articolo Se gestione consorzi: * Esportazione listini CAP Inserimento/aggiornamento ARPMERCI

Dato Contenuto
RMER-AZI Azienda attiva
RMER_CODICE Merce in elaborazione
RMER-CMA RCM-COD-AVA
RMER-DES Per ora qui viene esportato il contenuto di MER-DESCR
RMER-EAN MER-EAN
RMER-FL-SN MER-FL-SN
RMER-STATO MER-VAL
RMER-ID-SINCRO Ultimo id sincro "ARPMERCI"
RMER-COD-IVA MER-CODIVA
RMER_UM MER-UM
RMER_SERV Dati specifici CAP
RMER_FAMIG
RMER_SGR
RMER_TOX_NEW
RMER-ART62 MA2-COD-PAG-A62
RMER-CM Merce in elaborazione (codice interno in un campo unico)
RMER-PESO MER-PESO
RMER-DATA-INS-HOST MA3-DATA-INS-HOST
RMER-PEZZI-X-UM MA3-PEZZI-X-UM
RMER-SOGLIA-MIN-VENDITA MA3-SOGLIA-MIN-VENDITA
RMER-MAGG-MIN-VENDITA MA3-MAGG-MIN-VENDITA
RMER-QUALITA MA3-QUALITA
RMER-EVIDENZA MA3-EVIDENZA
RMER_NOTE_TECNICHE Note tecniche commerciali recuperate da COGMERNT impostando:
Nome campo Contenuto
MNT-MERCE Codice merce
MNT-TIP "TC"
MNT-PROG

1 | | | --- |

Campi da COGRACMT Per ciascuno dei campi da prelevare da COGRACMT, ricerca usando RTM-CHIA2, impostando: * RTM-MERCE = merce in elaborazione * RTM-TAB-TIP = tabella configurata La ricerca va effettuata solo se la configurazione è significativa. Altrimenti il valore risultante deve essere vuoto. Controllo esistenza su ARPMESER Se lo stesso articolo appena esportato su ARPMERCI esiste anche su ARPMESER significa che è stata cambiata la classe. In questo caso effettuare la cancellazione logica su ARPMESER(RMERS-STATO = "C") aggiornando anche l'id sincro, aggiungendo sul log di procedura una registrazione di questo evento: "Merce codice_merce cancellata da tabella servizi". C.2.2.1.2.1 - Casi particolari per Pieri (AZ-PERSONAL = k-personal-pieri)

Caso Descrizione Operazione
RMER-STATO-OPERATIVO = "0005" o "0006" Merce fuori catalogo -> Forziamo "Catalogo = "N" RMER-CATALOGO = "N"

Esportazione locazioni Tramite una query eseguire una pulizia dei record su ARPLOCAZIONI collegati alla merce: DELETE * FROM arplocazioni WHERE a_lgm_azi = azienda AND a_lgm_merce = merce Dopodichè scorrere COGLGMER per tutti i record della merce ed esportarli su ARPLOCAZIONI:

Dato Contenuto
A-LGM-AZI Id azienda
A-LGM-MERCE LGM-MERCE
A-LGM-PROG LGM-PROG
A-LGM-BOX LGM-BOX
A-LGM-CORSIA LGM-CORSIA
A-LGM-COLONNA LGM-COLONNA
A-LGM-PIANO LGM-PIANO

C.2.2.3 - Esportazione raggruppamenti gerarchici Tramite una query eseguire una pulizia dei record su ARPMERRAG collegati alla merce: Se lo shop è attivo deve essere esclusa la categoria merceologica usata sullo shop, identificata dalla configurazione classe-categoria; quindi: C.2.2.3.1 - Cancellazione Se shop-attivo vale: * "N": "DELETE * FROM arpmerrag WHERE a_mrag_azi = azienda AND a_mrag_merce = merce" * "S": "DELETE * FROM arpmerrag WHERE a_mrag_azi = azienda AND a_mrag_merce = merce AND a_mrag_classe <> classe-categoria_"_ C.2.2.3.2 - Esportazione Dopodichè scorrere COGANRAG usando ARAG-CHIA3 per tutti i record della merce

Dato Contenuto
ARAG-TIP "M"
ARAG-ID merce in elaborazione

ed esportarli su ARPMERRAG:

Dato Contenuto
A_MRAG_AZIENDA Id azienda
A_MRAG_MERCE Merce in elaborazione
A_MRAG_CLASSE ARAG-CLASSE
A_MRAG_ID ARAG-ID-PADRE
A_MRAG_AGG_APP " "
A_MRAG_FL_CANC " "

Se la configurazione shop-attivo vale "S" escludere anche ora i record con arag_classe = classe-categoria C.2.2.4 - Esportazione barcode aggiuntivi Tramite una query eseguire una pulizia dei record su ARPBARCO collegati alla merce: DELETE * FROM arpbarco WHERE a_bco_azi = azienda AND a_bco_merce = merce Dopodichè scorrere COGBARCO per tutti i record della merce (BCO-CHIA1) ed esportarli su ARPBARCO:

Dato Contenuto
A_BCO_AZIENDA Id azienda
A_BCO_MERCE LGM-MERCE
A_BCO_ID_DISPOSITIVO 0
A_BCO_IDD_PROG Numero progressivo all'interno della merce
A_BCO_BARCODE BCO-EAN
A_BCO_AGG_APP " "
A_BCO_FL_CANC " "

C.2.2.5 - Esportazione promozione NO OBSOLETA !! La promozione attualmente è gestita direttamente su COGMERAP, in alcuni campi dedicati; quindi, se MAP-PRE-IMP o MAP-SCO : * sono significativi: la promozione esiste * non sono significativi: la promozione non esiste Leggere quindi il record promozione su ARPGRUPPISCONTO:

A_GST_AZIENDA Codice azienda
A_GST_TIPO "P"
A_GST_GRUPPO Il codice merce

Leggere anche il record corrispondente ARPSCONTI:

A_SCC_AZIENDA x(06) Codice azienda
A_SCC_TIPO_GRUPPO x(02) "P"
A_SCC_GRUPPO x(10) Il codice merce
A_SCC_TIPO_DETTAGLIO x(01) "M"
A_SCC_CLASSE_RAGGR x(02) " "
A_SCC_DETTAGLIO x(30) Il codice merce

C.2.2.5.1 - La promozione esiste Creare o aggiornare ARPGRUPPISCONTO impostando

A_GST_DES "Promozione su merce"
A_GST_DATA_DA MAP-DATA-INI
A_GST_DATA_A MAP-DATA-FIN
A_GST_ID_SINCRO Id di sincronizzazione
A_GST_FL_CANC " "

Creare o aggiornare ARPSCONTI impostando

A_SCC_PREZZO num(12+6) MAP-PRE-IMP
A_SCC_SCONTO1 num(3+2) signed MAP-SCO

C.2.2.5.2 - La promozione non esiste Se ARPGRUPPISCONTO esiste, aggiornarlo impostando

A_GST_FL_CANC "C"

Altrimenti , se non esiste, non fare nulla C.2.4 - Aggiornamento APSTATOSYN Leggere il record relativo alla tabella/oggetto da sincronizzare "ARPMERCI" e aggiornare:

Dato Contenuto
A_SYN_DA_GES_DATA Data di elaborazione
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO Ultimo id sincro memorizzato su ARPMERCI

Leggere il record relativo alla tabella/oggetto da sincronizzare "ARPMESER" e aggiornare:

Dato Contenuto
A_SYN_DA_GES_DATA Data di elaborazione
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO

Ultimo id sincro memorizzato su ARPMESER.


Estratto da documentazione interna ClickUp