odoo connector pycon 2015
Post on 16-Jul-2015
145 Views
Preview:
TRANSCRIPT
Cosa è Odoo Connector?● Connette odoo a sistemi esterni.● Permette la gestione e l’interscambio di
dati.
Cosa NON è Odoo Connector?● Un Middleware, Odoo Connector è un
modulo di Odoo● Non è un servizio che rimane in ascolto
di altri sistemi, ma comunica direttamente con altri sistemi
NUOVE Classi:● Backend● Event● Job / Jobs Queue● Worker● Checkpoint● Binding
Cosa ci offre Odoo Connector?
BackendRappresenta il riferimento verso il sistema esterno.Il Backend è definito da un Nome e una Versione.
BackendEs:
magento = Backend('magento')
magento1700 = Backend(parent=magento, version='1.7')
magento2000 = Backend(parent=magento, version='2.0')
EventSono Hook in odoo dove è possibile agganciare delle funzioni.
Gli eventi sono agganciati ad azioni come on_record_create, on_record_write e on_record_unlink.
EventEs.on_record_create = Event()
def fa_qualcosa(session, model_name, a, b): print "Evento Attivato con i seguenti argomenti: %s, %s" % (a, b)
# attivo su tutti i modellion_record_create.subscribe(fa_qualcosa)
Job / Jobs QueueRappresentano i processi di elaborazione dei dati.Sono memorizzati in una coda (Jobs Queue) e vengono controllati dai Worker.
I Jobs sono assegnati ad un Worker da un cron.
Se il Worker muore, i Jobs vengono congelati e possono essere riassegnati ad un altro Worker.
Job / Jobs QueueEs:
@jobdef processa_qualche_cosa(session, model_name, qualche_cosa): # Processo # Esportazione qualche_cosa
processa_qualche_cosa(session, 'a.model', qualche_cosa_da_esportare)# => Chiamata sincrona e normale esecuzione del processo
Job / Jobs QueueEs:
processa_qualche_cosa.delay(session, 'a.model', qualche_cosa_da_esportare)# => Il processo sarà eseguito il prima possibile
processa_qualche_cosa.delay(session, 'a.model', qualche_cosa_da_esportare, priority=30, eta=60*60*5)# => Il processo sarà eseguito con priorità bassa e ritardato di 5 ore da adesso
WorkerRappresenta il processo incaricato all’esecuzione dei jobs.
Ogni Worker ha un ulteriore processo chiamato WorkerWatcher che serve a verificare lo stato del Worker stesso.
E’ possibile eseguire il worker come processo singolo (normalmente avviato allo start di Odoo) ma anche in multiprocessing.
Multiprocessing Worker Per eseguire il Worker in questa modalità è necessario lanciare separatamente l’eseguibile openerp-connector-worker con l’opzione --worker=n dove n indica il numero di processi che si vuole avviare.
Es:
PYTHONPATH=/path/to/server \ connector/openerp-connector-worker --config \ /path/to/configfile --workers=2
ChekpointRappresenta un record del connector.checkpoint legato a un modello e un record.
I Connettori possono utilizzare questa funzionalità, per permettere all'utente di esaminare determinati dati importati che hanno generato determinate eccezioni.
ChekpointEs.
from openerp.addons.connector.checkpoint import checkpoint
def add_checkpoint(session, model_name, record_id, backend_id): return checkpoint.add_checkpoint(session, model_name, record_id,'nome.mio.backend', backend_id)
BindingRappresentano la relazione fra gli ID degli oggetti Odoo e gli ID dei sistemi esterni.
Viene consigliato di utilizzare la relazione _inherits fra il modello Odoo esistente il nuovo modello con in campi necessari per il sistema esterno.
Binding
https://www.odoo.com/documentation/8.0/reference/orm.html#inheritance-and-extension
Documentazione e Riferimenti● Odoo
○ http://www.odoo.com● Documentazione odoo
○ https://www.odoo.com/documentation/8.0/index.html● Documentazione ufficiale Connettore
○ http://odoo-connector.com● Repository Ufficiale
○ https://github.com/OCA/connector● Repository base_import_async
○ https://github.com/OCA/connector-interfaces
Al Lavoro!● Avviamo Odoo● Installare Odoo Connettore● Installare il modulo
base_import_async● Analizzare base_import_async● Avviamo i Worker in
multiprocessing● Importiamo dei CSV di esempio
top related