【问题标题】:How to populate an OpenERP order though an XML-RPC and PHP如何通过 XML-RPC 和 PHP 填充 OpenERP 订单
【发布时间】:2013-04-16 14:18:08
【问题描述】:

我的 PHP 脚本可能如下所示:

function neworder($uid,$pwd,$objname,$methname,$params){
    $client = new xmlrpc_client("/xmlrpc/object", "localhost", 8069);

    $message = new xmlrpcmsg('execute');
    $message->addparam(xmlrpc_encode($uid));
    $message->addparam(xmlrpc_encode($pwd));
    $message->addparam(xmlrpc_encode($objname));
    $message->addparam(xmlrpc_encode($methname));
    $message->addparam(xmlrpc_encode($params));

    $resp = $client->send($message);

    if ($resp->errno!=0)  trigger_error ("sock_execute error ".$resp->errstr);
            return xmlrpc_decode($resp->value());
}

$uid = 1;
$pwd = 'password';

$order = array(
    'name'=> 'order22',
    'shop_id'=> 1,
    'state'=> 'draft',
    'user_id'=> 4,
    'partner_id'=> 7,
    'partner_invoice_id'=> 1,
    'partner_order_id'=> 1
);

$order_id = neworder($uid, $pwd, 'sale.order', 'create', $order);
echo("a new order ".$order_id." is added");

我使用的是 Ubuntu 和 OpenERP 7。运行脚本时出现错误。

【问题讨论】:

  • 或许可以向我们提供有关您遇到的错误的信息

标签: php xml-rpc openerp


【解决方案1】:

这是一个填充销售订单的工作脚本。

function createNewOrder($params,$model_name)
    {
        $client = new xmlrpc_client($this->server . "object");
        $client->return_type = 'phpvals';

        $msg = new xmlrpcmsg('execute');


        $nval = array();
        foreach($params as $k=>$v){
            $nval[$k] = new xmlrpcval( $v, xmlrpc_get_type($v) );
        }




        $msg->addParam(new xmlrpcval($this->database, "string"));  //* database name */
        $msg->addParam(new xmlrpcval($this->uid, "int")); /* useid */
        $msg->addParam(new xmlrpcval($this->password, "string"));
        /** password */
        $msg->addParam(new xmlrpcval($model_name, "string"));
        /** model name where operation will held * */
        $msg->addParam(new xmlrpcval("create", "string"));
        /** method which u like to execute */

        $msg->addParam(new xmlrpcval($nval, "struct"));/** parameters of the methods with values....  */


        /** parameters of the methods with values....  */



        $resp = $client->send($msg);

        if ($resp->errno != 0)
            trigger_error("sock_execute error " . $resp->errstr);

        return xmlrpc_decode($resp->value());
    }

【讨论】:

    【解决方案2】:

    您的请求缺少要在其中创建销售订单的数据库名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多