POSible

Popolamento delle tabelle di Vibecode

INDICE


Dopo aver installato Vibecode si può procedere con il popolamento delle sue tabelle, uno dei metodi utilizzabili è l’importazione dei file core object, file di dati scaricati precedentemente da un altro Vibecode (ad es. per popolare le tabelle di dati come Nazioni/Province/Comuni, ecc.).

Dopo aver importo tutti i dati si passa al popolamento delle tabelle delle classi sincronizzate, utilizzate dalle APP mobile (POSible/RA/CDC) per lo scambio dati con Vibecode.

I core object possono essere utilizzati anche quando Vibecode è completamente operativo, per popolare nuove tabelle o aggiornare le tabelle delle classi sincronizzate.

Dopo ogni modifica alla tabelle delle classi sincronizzate e necessario procedere alla rigenerazione dei pacchetti trasmessi alle APP client, come descritto nel paragrafo: Preparazione dati per la sincronizzazione.



Popolamento tramite core object

E' possibile utilizzare i core object per popolare la maggior parte delle tabelle Vibecode. I core object consentono l’import/export dei dati delle tabelle Vibecode mediante un file script di comandi vibs di Vibecode.

Dall’albero del Vibecode origine dei dati selezionare la voce:

Amministratore > Class Repository > Classi di Vibecode

inserire il nome della tabella da cui scaricare i dati, fare una ricerca e selezionare la riga interessata. Per accedere alla sezione per la creazione del file di export è necessario cliccare sul bottone [Export Data].

image-20211015-083208.png

Nella sezione GenObjectScript l’utente può inserire un filtro (vedi doc: Filtri ) per selezionare/limitare il numero di record della tabella da esportare nel file oppure può elencare i campi della tabella che vuole esportare, valorizzando il campo PropsToExport; cliccando sul bottone Genera viene creato il file di script con i dati esportati.

Il campo Keys invece viene utilizzato, ad esempio, per l’export della tabella kOfflineClasses, inserendo il valore “Alias”, per eliminare il campo ID dai record esportati.

image-20211015-083733.png

Il file di export viene creato con il nome: nomeTabella.txt, contiene i dati della tabella e può essere poi importato nel Vibecode di destinazione, accedendo alla voce di menu:

Amministratore > Files da importare > Importazione files di core

image-20240102-112248.png


Popolamento tabelle sincronizzate

Le tabelle OFFLINE e le SUBSCRIPTION contengono le informazioni per la gestione della sincronizzazione e lo scambio dati tra l’APP client (es. POSible, CDC, ecc.) e Vibecode:

  • elenco dei DataSource;

  • elenco delle APP che utilizzeranno i dati di Vibecode;

  • setup dei servizi REST di alcune tabelle non sincronizzate;

  • elenco di tutte le tabelle sincronizzate utilizzate dalle APP client.

image-20211015-091632.png
kOfflineRESTSetup: setup dei servizi REST delle tabelle popolate a partire dalla kOfflineRest

Anche in questo caso l’utente può utilizzate i core object, seguendo le indicazioni descritte nel paragrafo Popolamento tramite core object per la creazione dei file di export.

E' necessario importare nella giusta sequenza i dati scaricati, altrimenti la procedura va in errore, ed eseguire le istruzioni di configurazione della coda e della schedulazione, queste due operazioni vanno fatte solo la prima volta.

Sequenza di import dei dati e istruzioni:

  1. kApplication.txt

  2. kSubscriptionExport.txt (data source)

  3. creazione di una queue, con nome “offline”, accedendo alla voce di menu Vibecode:

Amministratore > Coda > Configurazione > Configurazione Coda

image-20211015-154158.png

Infine devono essere importati i seguenti file:

  1. kOffLineClasses.txt (tabelle sincronizzate)**

  2. kOfflineRESTGenericSetup.txt

  3. kOfflineRESTSetup.txt

**Nota bene:

Per creare correttamente il file di export dei dati della tabella kOffLineClasses è necessario impostare i seguenti parametri:

PropsToExport - inserendo i seguenti valori Class,Alias,Active,DataSource,Mode,Fields,Priority,InheritsPublicationFrom,InheritsRefPath,DifferentAppPublication,Subscription.Application

Keys - inserendo il valore Alias per eliminare il campo ID dai record esportati

image-20211015-153415.png
Esempio di creazione file di export per la tabella kOffLineClasses

In alternativa l’utente può anche usare un comando per eseguire una chiamata al servizio GenObjectsScript dal browser:

http://servername:port/execservice.vcmd?commands=GenObjectsScript%20classname(kOfflineClasses)%20filter()%20propsfilterlist(Class,Alias,Active,DataSource,Mode,Fields,Priority,InheritsPublicationFrom,InheritsRefPath,DifferentAppPublication,Subscription.Application)%20addsecurity(true)app(core)

impostando i parametri per i campi Filtro, PropsToExport e Alias. La chiamata crea un file di export che viene poi scaricato in automatico nella cartella Download del PC.

 

Preparazione dei dati per la sincronizzazione

Conclusa la fase di importazione dei dati è necessario eseguire una serie di comandi, presenti sia nell’albero di Vibecode che nella vista “Classi Sincronizzate”, per preparare i pacchetti per la sincronizzazione dati con il client:

Sottoscrizioni > Sincronizzazione offline > Sincronizzazione offline > Classi sincronizzate

image-20211015-145550.png
image-20211018-083220.png

Refresh Offline Cache - ripulisce la cache dell’Offline; da utilizzare quando è necessario ricreare le query per la creazione dei pacchetti perché sono stati modificati i filtri nella kOfflineClasses.

Total CleanUp - cancella tutti i vecchi package delle classi sincronizzate;

Publication - determina quali record devono essere inviati al client (es. POSible, RA app, ecc.) e notifica la cancellazione di un record o la rimozione di un record dalla pubblicazione;

Generate Packages - genera o rigenera i nuovi package di dati che verranno inviati al client.

Gli ultimi due comandi creano, ognuno, un processo nelle code offline ma tale processo viene eseguito una sola volta. Deve quindi essere creata una schedulazione per fare in modo che questi processi vengano eseguiti periodicamente. L’utente deve editare il processo per impostare i parametri della schedulazione per l’esecuzione del task (ad es. ogni 5 minuti, tutti i giorni, per la Generate Packages) accedendo alla voce di menu:

Amministratore > Activity Monitor > Code > Manage Process Queues

come descritto nel documento “Schedulazione processi in Vibecode“.

image-20211015-152322.png

Nel paragrafo che segue sono elencate alcune tabelle sincronizzate utilizzate da POSible.


Classi sincronizzate

La sincronizzazione delle tabelle consente lo scambio dati tra Vibecode e il client (es. POSible, Customer Data Capture, ecc.) e viceversa.

L’utente può accedere all’elenco delle tabelle sincronizzate dall’albero di Vibecode:

Sottoscrizioni > Sincronizzazione offline > Sincronizzazione offline > Classi sincronizzate

image-20211015-130309.png
Figura 1
image-20211015-125604.png
Figura 2
image-20211015-125712.png
Figura 3

Nella parte dei dati principali (Figura 1) l’utente deve impostare i seguenti parametri:

  • Classe: nome della classe Vibecode

  • Attivo: se impostato a No i pacchetti di dati non vengono generati per questa classe (Sì\No)

  • Alias: identificativo condiviso tra Vibecode e i dispositivi che identifica la classe esportata

 

Nel box Export Data (Figura 2) l’utente deve impostare i seguenti parametri:

  • Priorità: nel caso di tabelle dipendenti indica quale sincronizzare prima;

  • DataSource: contiene il nome della sorgente dati sottoscrizioni (kSubscriptionExport);

  • Campi: contiene l’elenco dei campi della tabella da esportare e inviare al client (es. POSible/RA app);

  • Mode: indica la modalità di sincronizzazione della tabella (“OneWay”, “TwoWay”, “OneWayToServer”).

 

Nel box Export Filter (Figura 2) l’utente può impostare i seguenti parametri:

  • Global Filter: specifica un filtro generale sui record da esportare;

  • Copy Publication Filter From offlineclass: consente di derivare la configurazione di questa sezione da un altra classe (ad es. la classe ProductImage prende la configurazione da Product);

  • Different app publication: se impostato a No la sincronizzazione passa lo stesso set di dati a tutti i client, altrimenti per ogni client viene passato un set di dati differente, come definito nel box Sottoscrizioni (kOfflineClasses_Subscription).

 

L’utente può modificare i valori dei parametri della tabella sincronizzata, ad es. l’elenco dei campi che vengono trasmessi al client, ma la modifica avrà effetto solo dopo aver eseguito, nella corretta sequenza, i seguenti comandi:

  1. Refresh Offline Cache

  2. Total CleanUp (opzionale)

  3. Offline Publication All

  4. Generate Packages All

image-20211015-145550.png

Modalità di sincronizzazione delle tabelle tra client e Vibecode

OneWay = monodirezionale da Server a Client (valore del parametro: 1).

OneWayToServer = monodirezionale da Client a Server (valore del parametro: 2), i record inviati dal Client sono presenti nell'array "rows".

TwoWay = bidirezionale, i record inviati dal client sono presenti nell'array "rows" (valore del parametro: 0 [zero]).

 

*Mode = modalità di sincronizzazione

Class

DataSource

Mode*

Global Filter

Company (kCompany) 

OfflineCompany

OneWay


Country (kCountry) 


OneWay


Coupon Type (kCouponType) 


OneWay


Currency (kCurrency) 


OneWay


Gender (kGender) 


OneWay


Gift Card Group (kGiftCardGroup) 


OneWay


Generic Sale Reason Code (kGenericSaleReasonCode)


OneWay


GiftCard Transaction Reason Code (kGiftCardTransactionReasonCode)


OneWay


Municipality (kMunicipality) 


OneWay


Municipality ZipCodes (kMunicipality_ZipCodes) 


OneWay


OFFLINE REST (kOfflineREST) 


OneWayToServer


Payment Term (kPaymentTerm) 


OneWay


POS Department (kPOSDepartment) 


OneWay


POS Tiles Setup (kPOSTileSetup)

OffLineTileSetup

OneWay

field(POSTileSetup@kStore.Id) eq('#value#')

Price Calendar (kPriceCalendar) 


OneWay


Price Calendar Type (kPriceCalendarType) 


OneWay


Product Attribute  (kProductAttribute_values) 


OneWay


Product Attribute (kProductAttribute) 

OfflineProductAttribute

OneWay


Product Attributes Set (kProductAttributeSet) 

OfflineProductAttributeSet

OneWay


Product Barcode (kProductBarcode) 


OneWay


Product Brand (kBrand) 


OneWay


Product Catalog (kProductCatalog) 


OneWay


Product Category (kProductCategory) 

OfflineProductCategory

OneWay


Product Class (kProductClass) 


OneWay


Product Department (kProductDepartment) 


OneWay


Product Department Explosion (kPOSDepartmentProducts) 


OneWay


Product Description (kProductStyleDescription) 


OneWay


Product Fiscal Group (kProductFiscalGroup) 


OneWay


Product Group (kProductGroup) 


OneWay


Product Kit (kProductKit)

ProductKit

OneWay

field(1) eq(1) and(field(startdate) nu('') or(field(startdate) le(to('date',getdate())))) and(field(enddate) nu('') or(field(enddate) ge(to('date',getdate()))))

Product Kit Lines (kProductKit)

ProductKitLine

OneWay

field(1) eq(1) and(field(parentid.startdate) nu('') or(field(parentid.startdate) le(to('date',getdate())))) and(field(parentid.enddate) nu('') or(field(parentid.enddate) ge(to('date',getdate()))))

Product Kit Line Group (kProductKit)

KitGroups

OneWay


Product Relation (kProductRelation) 


OneWay


Product Relation Type (kProductRelationType) 


OneWay


Product Serial (KProductSerial) 


OneWay


Product Status (kProductStatus) 


OneWay


Products (kProduct) 

OffLineProduct

OneWay


Products Images (kProduct_Images) 

Offline Product Image

OneWay


Products Taxes Relations (kProductTaxRelationExplosion) 


OneWay


Receipt Message (kReceiptMessage) 


OneWay


Receipt Suspended (kReceiptSuspended) 


TwoWay


Return Reason Code (kReturnReasonCode) 


OneWay


Sales Discount Reason Code (kSalesDiscountReasonCode) 


OneWay


Sales Price (kSalesPrice) 


OneWay


Sales Price Discounts (kSalesPrice_Discounts)


OneWay

field(1) eq(1) and(field(parentid.enddate) nu('') or(field(parentid.enddate) gt(to('date',getdate()))))

Sales Price Group (kSalesPriceGroup) 


OneWay


Sales Price Type (kSalesPriceType) 


OneWay


Season (kSeason) 


OneWay


State Province (kStateProvince) 


OneWay


Stock Area (kStockArea) 


OneWay


Store (kStore) 

OfflineStore

OneWay


Store Effective Prices (kStore_EffectivePrices) 


OneWay


Store Official Prices (kStore_OfficialPrices) 


OneWay


Store Till Discount ( kPOSStoreTillDiscount ) 


OneWay

field(store.code) eq('01')

Style Relation (kStyleRelation) 


OneWay


Supplier (kSupplier) 

OfflineSupplier

OneWay


Tax (kTax) 


OneWay


Tile (kPOSTile)


OneWay


Tile Products (kPOSTileProducts)


OneWay


Till Discount (kTillDiscount) 


OneWay


Tipping Rule (kPOSTippingRule) 


OneWay


Tipping Rule Tipping Options (kPOSTippingRule_Options) 


OneWay


Unit of Measure (kUnitOfMeasure) 


OneWay


VAT (kVATCode) 


OneWay


VAT Exemption Reason (kVATExemptionReason) 


OneWay


Void Reason Code (kVoidReasonCode) 


OneWay