Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
5746 Lượt xem

Hi everybody,

I work in different environment where I connect to OpenERP v7 through the XML-RPC protocol, but I have one probleme, In my environment I can't pass a domain for example :

EXECUTE dbname="demo" user=1 pwd="admin" model="res.partner" method="search" args=[(1,'=',1)]

the types here are String (for dbname, pwd, model, method) and Integer (for user) but for args my environment doesn't accept object or array of object or list so I have to pass the string such as

EXECUTE dbname="demo" user=1 pwd="admin" model="res.partner" method="search" args="[(1,'=',1)]"

I want now that I catch this String in the method execute and evaluate the string to domain, but where can I find the source of this method

Thanks in advance

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

The same XMLRPC problem is addressed here for the connection with Talend "Big Data".

You have to overwrite the search (and also write, read, ..) function of the partner somehow like this:

    def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
        if isinstance(args, str):
            args = eval(args)

        return super(res_partner, self).search(cr, uid, args, offset, limit, order, context=context, count=count)

If you want to have this for all objects, then you can also adapt osv.osv.

Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks for the reply, I hope that will work, I want to ask you if you know where the relation bewtween execute and search in this case, OpenERP catch first the execute paramaters, then It fetchs the method argument if equal to search it call search in the orm. I need this point if you know where is the source

The "method" is the python method of the related object ("model"). OpenERP directly calls the "method" and assumes that it has been defined in python.

Tác giả

Ok, Thank you

Bài viết liên quan Trả lời Lượt xem Hoạt động
naked domain set up Đã xử lý
3
thg 7 25
4063
0
thg 5 25
788
2
thg 3 24
2015
1
thg 9 23
1535
0
thg 1 23
1652