This question has been flagged
1 Reply
6811 Views

I'm trying to develop an Android CRM client as a proof of concept. I do know how to make queries but I'm getting stuck when I try to create and modify model objects just like opportunities, leads, phone calls, ....

In order to make "queries" I know that the next json objects and URLS are used in the RPC calls:

  • login URL: '/web/session/authenticate'.
  • search_read URL: '/web/dataset/search_read'.
  • context: JSON object , logged user data.
  • session_id: JSON object, logged user session id.
  • model: JSON object, the model it´s beeing queried, for example 'res.partner'
  • domain: JSON object,  it´s just like a SQL filter query sentence, for example here you can filter partners by it's name, id, ....
  • fields: JSON object, contains a string list with the objects fields you want to retrieve in your queries
  • sort: JSON object, contais sort options just like 'asc', 'desc', 'write_date', ....

 My first question is, does someone know the URLS to point in order to  create and modify model objects? For example if I want to create a new opportuny, do I have to use ' /web/dataset/call_kw' as I can see in the server terminal logs?. And the second question, which are and how do I pass the JSON objects in the RPC calls?. 

I have to mention that I'm using 'android-json-rpc-0.3.4'  library to make my rpc calls:

https://code.google.com/p/android-json-rpc/

Thanks in advance.

 

 

 

Avatar
Discard
Best Answer

Frist try it using python script to get the logic...
try something like: 

import xmlrpclib

server=server_fqdn   #or server_ip
url = 'http://'+server+':8069/xmlrpc'
db='database_name'
usr = 'oe_username'
pwd = 'usr_pass'
sock = xmlrpclib.ServerProxy(url + '/common')
uid = sock.login(db, usr,pwd)
if uid:
    sock = xmlrpclib.ServerProxy(url + '/object')
else:
    print 'Cannot connect'
    #sys.exit

sock = xmlrpclib.ServerProxy(url + '/object')
#now you're connected and you can use standard functions...
partner_vals={'name':'Parner Name',
                                 'city':'Name of City.....}

created_id = sock.execute(db, uid, pwd, 'res.partner','create',partner_vals)
 

Basicly... use: sock.execute(database, user_id, password, 'model.name','method', args_)

Avatar
Discard