【问题标题】:Access denied when create sale.order on openerp在 openerp 上创建 sale.order 时访问被拒绝
【发布时间】:2018-01-31 11:58:01
【问题描述】:

我想用我在其他数据库中的数据在 openerp 中创建 sale.order。我的数据库查询是正确的,因为我已经尝试过了。而且我试过create sale.order代码是对的(输入数据是手动添加到代码中的)。但是当我收集代码时,它变成了错误Array ( [faultCode] => AccessDenied [faultString] => Access denied )。是不是因为 create sale.order 代码不能在 while 中循环,或者在包含其他数据库(不是 oopenerp 的数据库)的配置文件中不需要。
有人可以给我解决方案吗?谢谢。

<?php
        // Ripcord can be cloned from https://github.com/poef/ripcord
        require_once('ripcord/ripcord.php');

        // Login information
        $url = 'http://localhost:8069';
        $url_auth = $url . '/xmlrp/common';
        $url_exec = $url . '/xmlrpc/object';

        $db = 'openerp';
        $username = 'admin';
        $password = 'admin';

        // Login
        $common = ripcord::client("$url/xmlrpc/common");

        //$common = ripcord::client($url_auth);
        $uid = $common->authenticate($db, $username, $password, array());


        $models = ripcord::client($url_exec);

        include "config.php";
        $sql = "SELECT so.id as id,
                       so.cust_id,
                       so.numb,
                       p.ktr,
                       p.store_id,
                       so.write_date,
                       p.store_name,
                       p.sales_id
                FROM sales_order so
                INNER JOIN store p on p.store_id = so.store_id
               ";

        $exec = pg_query($sql);

        while ($row = pg_fetch_array($exec)){

            $query = pg_query(
                "SELECT sod.product_id, sod.qty_sales, p.name
                               FROM sales_order_line sod
                               INNER JOIN product p on p.id = sod.product_id
                               WHERE sales_order_id = ".$row['id']
            );

            while ($data = pg_fetch_array($query)) {

                $id = $models->execute_kw($db, $uid, $password,
                    'sale.order', 'create',
                    array(array(
                        'partner_id' => $row['store_id'],
                        'sales_id' => $row['sales_id'],
                        'order_line' => [array(
                            0, false, array(
                                'product_id' => $data['product_id'],
                                'name' => $data['name'],
                                'qty' => $data['quantity'])
                        )]
                    )));

                var_dump($id);

            }
        }
    ?>

【问题讨论】:

    标签: php database postgresql openerp


    【解决方案1】:

    这是因为您include config.php 包含其他数据库(不是您的 openerp 使用的数据库)。

    将配置文件写入同一个文件:

    $config = pg_connect("host= 'yourhost' port='yourport' dbname= 'yourdbname' user='yourdbuser' password='yourdbpass' ") or die('Failed');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 2021-02-03
      • 2012-04-26
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 2011-09-27
      相关资源
      最近更新 更多