Help

0

Odoo Web Service API - Search Domain Matching ?

Avatar
Joshua Hintze

Hello,


I'm trying to perform a search_read RPC with the following domain matching on employee_id. Typically the return value from employee_id is: 


employee_id: [ 274, 'Doe, John G' ]


I've tried lots of combinations such as:

[ 'employee_id', '=', '274' ]

[ 'employee_id', '=', '[274]' ]

[ 'employee_id', '=', '[274, 'Doe, John G' ]

etc.


What would be the correct domain match string?

Thanks!

1 Comment
Avatar
Discard
Avatar
Joshua Hintze
-

Thank you, When I was trying it earlier it wasn't working , but it might be that I was trying a "get" command instead of a "search_read". It seems to be working now.


Thanks

1 Answer
0
Avatar
Ray Carnes
Best Answer

A domain is a list of criteria, each criterion being a triple (either a list or a tuple) of (field_name, operator, value)


So in your example, like this:

[   ('employee_id', '=', [1])   ]


For example, this code:

#!/usr/bin/env python
# coding: utf-8

import xmlrpclib

dbname = '246626-10-0-928fbd-all'
username = 'admin'
pwd = 'admin'

sock_common = xmlrpclib.ServerProxy('http://246626-10-0-928fbd.runbot8.odoo.com/xmlrpc/common')
sock = xmlrpclib.ServerProxy('http://246626-10-0-928fbd.runbot8.odoo.com/xmlrpc/object')

uid = sock_common.login(dbname, username, pwd)

timesheet_ids = sock.execute(dbname, uid, pwd, 'hr_timesheet_sheet.sheet', 'search_read',
[('employee_id', '=', [1])])

if timesheet_ids:
    print 'employee 1 returned: %s\n\n' % str(timesheet_ids)
else:
    print 'employee 1 not found\n\n'

timesheet_ids = sock.execute(dbname, uid, pwd, 'hr_timesheet_sheet.sheet', 'search_read',
[('employee_id', '=', [987654321])])

if timesheet_ids:
    print 'employee 987654321 returned: %s\n\n' % str(timesheet_ids)
else:
    print 'employee 987654321 not found\n\n'


Prints this:

employee 1 returned: [{'message_follower_ids': [3378], 'timesheet_ids': [35, 32, 31, 39], 
'create_date': '2017-07-18 19:10:52', 'attendance_count': 0,
'message_needaction': False, 'message_channel_ids': [],
'message_partner_ids': [3], 'attendances_ids': [],
'write_uid': [1, 'Administrator'], 'id': 3,
'create_uid': [1, 'Administrator'], 'employee_id': [1, 'Pieter Parker'],
'user_id': [1, 'Administrator'], 'message_is_follower': True,
'__last_update': '2017-07-18 19:11:10', 'date_from': '2017-07-17',
'message_last_post': False, 'company_id': False, 'period_ids': [31, 35],
'message_ids': [6421, 6420, 6419], 'state': 'draft',
'message_unread_counter': 0, 'department_id': [3, 'Management'],
'total_attendance': 0.0, 'account_ids': [35, 40, 31, 41, 37, 39],
'write_date': '2017-07-18 19:11:10', 'date_to': '2017-07-23',
'display_name': 'Week 29', 'total_difference': -22.0,
'name': False, 'total_timesheet': 22.0, 'message_unread': False,
'message_needaction_counter': 0}]


employee 987654321 not found


More at 

https://www.odoo.com/documentation/10.0/reference/orm.html#reference-orm-domains


Avatar
Discard