Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: OpenERP 7.0: che fine ha fatto openerplib ?

OpenERP 7.0: che fine ha fatto openerplib ? 5 Anni 6 Mesi fa #12847

  • Luca404
  • Avatar di Luca404
  • Offline
  • Senior Boarder
  • Messaggi: 41
  • Ringraziamenti ricevuti 1
  • Karma: 0
Quando iniziai a "scriptare" per OpenERP 6.0 e poi 6.1 avevo trovato da qualche parte sulla rete il suggerimento di utilizzare openerplib da web/addons/web/common... era abbastanza comodo, ed il tipico workflow era una cosa del genere:
import openerplib
cnxn = openerplib.get_connection( hostname=server, protocol='xmlrpc', port=8069, database=db_name, login=usr, password=pwd )
model_osv = cnxn.get_model(model_name)
res = model_osv.read(resource_id)

...ora ho fatto piazza pulita e messo OpenERP-7.0, ma non trovo traccia di "openerplib".

Alla fine lo usavo solo per get_connection(), che dovrei poter replicare senza grossi problemi, ma prima di reinventare la ruota volevo chiedervi: vi risultano librerie Python che vengano più o meno incontro a chi si deve interfacciare via XMLRPC ad OpenERP ? Sia distribuite insieme che esterne... da una googlata vedo che c'è parecchia roba in giro su github e simili, resta da capire quali sono utili (e quantomeno funzionanti) e quali no. Voi avete esperienze in merito da riportare?
Luca Lesinigo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

OpenERP 7.0: che fine ha fatto openerplib ? 5 Anni 6 Mesi fa #12848

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
Luca404 ha scritto:
Voi avete esperienze in merito da riportare?
Io ho provato diversi pacchetti, per poi tornare ad usare il metodo standard:
doc.openerp.com/6.1/developer/12_api/#demo-script
Lorenzo Battistini
github.com/eLBati

TAKOBI
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

OpenERP 7.0: che fine ha fatto openerplib ? 5 Anni 6 Mesi fa #12849

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
io invece mi sono affezionato ad erppeek, soprattutto per la comodità della modalità interattiva
Davide Corio
Odoo Solution Architect
email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
web: www.davidecorio.com
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

OpenERP 7.0: che fine ha fatto openerplib ? 5 Anni 6 Mesi fa #12854

  • Luca404
  • Avatar di Luca404
  • Offline
  • Senior Boarder
  • Messaggi: 41
  • Ringraziamenti ricevuti 1
  • Karma: 0
Grazie dei suggerimenti.

Nel frattempo ho ritrovato openerplib, ora con nome leggermente diverso e sotto forma di progetto GitHub con tanto di benedizione ufficiale di OpenERP SA: github.com/OpenERP/openerp-client-lib

erppeek sembra decisamente interessante, l'ho clonato subito così non me lo dimentico per strada... dovrò studiarlo.

Bella la 7, parecchie novità, anche nella localizzazione Italiana (grazie ragazzi...), ora ho un po' da fare per adattare il mio script alle nuove cose, da quel poco che ho visto mi pare già più razionale (es. gli utenti che non hanno più un sacco di info in res.users ma referenziano un res.partner, come è giusto e sensato che sia :)

eLBati ha scritto:
Io ho provato diversi pacchetti, per poi tornare ad usare il metodo standard:
doc.openerp.com/6.1/developer/12_api/#demo-script
Il "metodo standard" è più o meno quel che utilizzo (di openerpclient usavo solo la get_connection, anche se dovrebbe avere qualche altra comodità... per il resto mi ero fatto io qualche funzioncina di comodo)... ma il grosso problema è che fondamentalmente non è documentato o se c'è documentazione è abbastanza imboscata da non essere riuscito a trovarla.

È impossibile lavorarci davvero senza essere abituati a mettere le mani nel codice sorgente di OpenERP... e non parlo di documentare i vari oggetti disponibili ed i loro campi... per quello va benissimo andarsi a vedere il codice (oddio, io vado a sbirciare direttamente nel db con phppgadmin, trovo che si faccia più in fretta almeno per le cose semplici)...

Il vero problema è sapere come fare operazioni appena più complesse del classico CRUD, lavorare con i workflow o wizard o bottoni vari e le finestre di dialogo che questi scatenano... non ero riuscito a trovare documentazione in merito, nemmeno un aiuto su come interpretare il sorgente dei moduli per derivarne queste informazioni.

Esempio #1, installazione di moduli, in alcuni casi scatena finestre nell'interfaccia web che chiedono info all'utente...
module_osv = cnxn.get_model('ir.module.module')
module_id = ... trova l'ID giusto ...
res = module_osv.button_immediate_install([ id ]) # sarà il modo migliore?
# come accidenti si interpreta il contenuto di res ???
# come rispondo alle finestre che compaiono, per esempio, installando il piano dei conti ???

Esempio #2, inserimento di un ordine di acquisto e relativi movimenti, lotti, fattura: non sembra essere fattibile con sole operazioni create / write ma bisogna fare anche altre cose...
# crea un purchase.order e le sue purchase.order.line
data = { ...blah... }
order_id = cnxn.get_model('purchase.order').create(data)
for riga in righe_ordine:
    data = { ...blah... }
    cnxn.get_model('purchase.order.line').create(data)
# crea uno stock.picking con associate delle stock.move
# (trovato studiando il debug log di openerp_server e/o spiando XML-RPC tra client e server)
openerp.workflow('purchase.order', 'purchase_confirm', purchase_id)
# trova il picking e completa alcuni dati mancanti
picking_id = cnxn.blablabla(trova stock.picking con il purchase_id giusto)
data = { ...note, date, eccetera... }
cnxn.get_model('stock.picking').write([picking_id], data)
# pigia il bottone "processa" sul picking (?)
cnxn.get_model('stock.picking').action_process([picking_id])
# crea lotti se non esistono
for riga in righe_ordine:
    data = { ...blah... }
    cnxn.blablabla('stock.production.lot', data)
# assegna lotti alle stock.move (??? come razzo si fa ???)
# forse bisogna cercare anche un stock.partial.picking e processarlo in qualche modo ???
# trova la account.invoice relativa al purchase.order appena creato
# completa info della account.invoice e salvala
# conferma che la fattura è stata pagata (??? come razzo si fa ???)
# \--> forse .confirm_paid() o forse c'è da invocare un wizard
# ... abbiamo finito???


(esempi iper semplificati e sintetizzati, tratti da uno script fatto per OpenERP-6.1, il tutto risalente a minimo 6 mesi fa)
Luca Lesinigo
Ultima modifica: 5 Anni 6 Mesi fa da Luca404.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.134 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam