@@ -53,7 +53,7 @@ public OdooCommand(Session session) {
5353 * @return Response that need to be parsed from the calling method to check
5454 * if successful and then adapt the result as an array.
5555 */
56- public Response searchObject (String objectName , Object [] filter ) {
56+ public Response searchObject (String objectName , Object [] filter ) throws XmlRpcException {
5757 return (Response ) searchObject (objectName , filter , -1 , -1 , null , false );
5858 }
5959
@@ -72,11 +72,14 @@ public Response searchObject(String objectName, Object[] filter) {
7272 * returned and could be parsed as Object[] of IDs if response is
7373 * successfull
7474 */
75- public Response searchObject (String objectName , Object [] filter , int offset , int limit , String order , boolean count ) {
75+ public Response searchObject (String objectName , Object [] filter , int offset , int limit , String order , boolean count ) throws XmlRpcException {
7676 Object offsetParam = offset < 0 ? false : offset ;
7777 Object limitParam = limit < 0 ? false : limit ;
7878 Object orderParam = order == null || order .length () == 0 ? false : order ;
79- Object [] params = new Object []{filter , offsetParam , limitParam , orderParam , count };
79+ // Before Odoo 10 there's a 'context' parameter between order and count
80+ Object [] params = (this .session .getServerVersion ().getMajor () < 10 )
81+ ? new Object []{filter , offsetParam , limitParam , orderParam , false , count }
82+ : new Object []{filter , offsetParam , limitParam , orderParam , count };
8083
8184 try {
8285 Response response = new Response (session .executeCommand (objectName , "search" , params ));
@@ -97,7 +100,7 @@ public Response searchObject(String objectName, Object[] filter, int offset, int
97100 @ SuppressWarnings ("unchecked" )
98101 public Map <String , Object > getFields (String objectName , String [] filterFields ) throws XmlRpcException {
99102 Map <String , Object > fieldsArray ;
100- if (this .session .getServerVersion ().getMajor () >= 10 ) {
103+ if (this .session .getServerVersion ().getMajor () >= 8 ) {
101104 fieldsArray = (Map <String , Object >) session .executeCommand (objectName , "fields_get" ,
102105 new Object []{filterFields });
103106 } else {
@@ -120,7 +123,7 @@ public Map<String, Object> getFields(String objectName, String[] filterFields) t
120123 */
121124 public Object [] readObject (String objectName , Object [] ids , String [] fields ) throws XmlRpcException {
122125 Object [] readResult ;
123- if (this .session .getServerVersion ().getMajor () >= 10 ) {
126+ if (this .session .getServerVersion ().getMajor () >= 8 ) {
124127 readResult = (Object []) session .executeCommand (objectName , "read" , new Object []{ids , fields });
125128 } else {
126129 readResult = (Object []) session .executeCommand (objectName , "read" , new Object []{ids , fields , session .getContext ()});
@@ -200,7 +203,7 @@ public boolean unlinkObject(String objectName, Object[] ids) throws XmlRpcExcept
200203 */
201204 public Object createObject (String objectName , Map <String , Object > values ) throws XmlRpcException {
202205 Object readResult ;
203- if (this .session .getServerVersion ().getMajor () >= 10 ) {
206+ if (this .session .getServerVersion ().getMajor () >= 8 ) {
204207 readResult = (Object ) session .executeCommand (objectName , "create" , new Object []{values });
205208 } else {
206209 readResult = (Object ) session .executeCommand (objectName , "create" , new Object []{values , session .getContext ()});
0 commit comments