Durante una chiamtate XMLRPC di tipo action a volte ottengo un bel
cannot marshal <class \'_thread.lock\'> objects\n'>
self.odoo_connect.action(odoo_table_name, 'action_name', [id], {'open_wizard': False})
Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.
Durante una chiamtate XMLRPC di tipo action a volte ottengo un bel
cannot marshal <class \'_thread.lock\'> objects\n'>
self.odoo_connect.action(odoo_table_name, 'action_name', [id], {'open_wizard': False})
La funzione chiamata "action_name" non restituisce alcun dato o restituisce una dato non "Marshalabile" esempio una class. Di conseguenza il client XML_RPC che ha effettuato la chimata non riesce a trasformare il risultato.
Questo problema si risolve creando una seconda funzione che chiama la funzione iniziale e restituisce True.
Es:
lato odoo
def action_do(self):
....
....
.....
def xml_action_do(self):
self.action_do()
return True
Lato XML_RPC client
execute_kw($db, $uid, $password,'xml_action_do', [<ID>]);