xmlrpcwsc-dotnet icon indicating copy to clipboard operation
xmlrpcwsc-dotnet copied to clipboard

sample of write please

Open vitucris opened this issue 3 years ago • 3 comments

Hi I have following lines of code

var dict = XmlRpcParameter.EmptyStruct();                            
dict = XmlRpcParameter.AsStruct(XmlRpcParameter.AsMember("state", "done"));
var parameters = XmlRpcParameter.AsArray(dict);
                            
client.Rpc.Path = "xmlrpc/2/object";
XmlRpcRequest request = new XmlRpcRequest("execute_kw");
var objToUpdate = XmlRpcParameter.AsArray(XmlRpcParameter.AsArray(id),parameters);
request.AddParams(client.DbName, client.UserId, client.DbPwd, "stock.picking", "write", objToUpdate);
response = client.Rpc.Execute(request);

The error is:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/base/controllers/rpc.py", line 69, in xmlrpc_2
    response = self._xmlrpc(service)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/controllers/rpc.py", line 49, in _xmlrpc
    result = dispatch_rpc(service, method, params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 139, in dispatch_rpc
    result = dispatch(method, params)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 41, in dispatch
    res = fn(db, uid, *params)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 174, in execute_kw
    return execute(db, uid, obj, method, *args, **kw or {})
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 181, in execute
    res = execute_cr(cr, uid, obj, method, *args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 165, in execute_cr
    result = odoo.api.call_kw(recs, method, args, kw)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 387, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 374, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/stock/models/stock_picking.py", line 594, in write
    if vals.get('picking_type_id') and self.state != 'draft':
AttributeError: 'list' object has no attribute 'get'

vitucris avatar May 21 '21 18:05 vitucris

@fjarboleda-lm any thoughts on this?

sauljabin avatar Aug 03 '22 14:08 sauljabin

I think you are set an empty stock pickinc into done. Maybe you should add lines and quantities to the draft before mover to done. Anyway It is openErp logic. Tryp do It into the app.

fjarboleda avatar Oct 15 '22 15:10 fjarboleda

An adición, entre of stock and stock línes shoud filled location_id and location_dest_id. It means the source and destination of warehouse.

fjarboleda avatar Oct 21 '22 09:10 fjarboleda