Note that it's not necessary in PHP to specify the type of all arguments given to XML-RPC calls if you use php_xmlrpc_encode() function. In fact, we had something similar to what you did which avoids passing $uid and parameter types in each call:
$server = new OpenErpConnection($user, $password, $database, $url); $server->login(); $domain = array(array('ref','=',$code),array('password','=',$_POST['password'])); $ids = $server->search('res.partner', $domain); $server->read('res.partner', $ids, array('id','name','code') ); We didn't need create, write, unlink or action, but is the code that implements login, search and read, in case it's useful to anyone: class OpenErpConnection { public $user; public $userId; public $password; public $database; public $url; public $connection; function __construct($user, $password, $database, $url) { $this->user = $user; $this->password = $password; $this->database = $database; $this->url = $url; } function login() { $msg = new xmlrpcmsg('login'); $msg->addParam(new xmlrpcval($this->database, "string")); $msg->addParam(new xmlrpcval($this->user, "string")); $msg->addParam(new xmlrpcval($this->password, "string")); $connection = new xmlrpc_client($this->url.'common'); $resp = $connection->send($msg); $val = $resp->value(); $this->userId = $val->scalarVal(); return $this->userId; } function search($relation,$domain) { $msg = new xmlrpcmsg('execute'); $msg->addParam(new xmlrpcval($this->database, "string")); $msg->addParam(new xmlrpcval($this->userId, "int")); $msg->addParam(new xmlrpcval($this->password, "string")); $msg->addParam(new xmlrpcval($relation, "string")); $msg->addParam(new xmlrpcval("search", "string")); $msg->addParam(php_xmlrpc_encode($domain)); $connection = new xmlrpc_client($this->url.'object'); $resp = $connection->send($msg); //echo "FAULT: " . $resp->faultString(); $val = $resp->value(); return php_xmlrpc_decode($val); } function read($relation,$ids,$fields=array(),$context=array()) { $msg = new xmlrpcmsg('execute'); $msg->addParam(new xmlrpcval($this->database, "string")); $msg->addParam(new xmlrpcval($this->userId, "int")); $msg->addParam(new xmlrpcval($this->password, "string")); $msg->addParam(new xmlrpcval($relation, "string")); $msg->addParam(new xmlrpcval("read", "string")); $msg->addParam(php_xmlrpc_encode($ids)); $msg->addParam(php_xmlrpc_encode($fields)); $connection = new xmlrpc_client($this->url.'object'); $resp = $connection->send($msg); $val = $resp->value(); return php_xmlrpc_decode($val); } } ------------------------ Albert Cervera i Areny http://www.NaN-tic.com OpenERP Partners http://twitter.com/albertnan -------------------- m2f -------------------- -- http://www.openobject.com/forum/viewtopic.php?p=62878#62878 -------------------- m2f -------------------- _______________________________________________ Tinyerp-users mailing list http://tiny.be/mailman2/listinfo/tinyerp-users