栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Odoo的XMLRPC调用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Odoo的XMLRPC调用

Odoo的XMLRPC调用 使用场景
  • 需要运行脚本调用odoo的模型方法,对数据库进行修改
  • 企业内部有多个系统服务,系统间互相调用模型方法
基本调用过程
  1. 服务端定义好模型和方法
    • 服务端odoo orm方法能被调用
    • 加了@api.model装饰器的函数能被调用
    • 为了让不同语言调用,一般返回值要序列化,json或xml都行
class xmlrpc_galaxy(models.Model):
    _name = 'xmlrpc_galaxy.xmlrpc_galaxy'
    _description = 'xmlrpc_galaxy.xmlrpc_galaxy'

    
    @api.model
    def get_res_partners(self, operation, raise_exception=True):
        # 不要_get_res_partners
        _logger.info(f"-- get_res_partners:")
        records = self.env['res.users'].sudo().search([])
        internal_users = records.filtered(lambda pav: pav.share == False)
        user_dict = {str(r.id): str(r.login) for r in internal_users} 
        _logger.info(f"-- user_dict: {user_dict}")
        return json.dumps(user_dict)
    
    @api.model
    def get_permission_check(self):
        _logger.info(f"--- in get_permission_check:")
        return 'haha'
  1. 创建用户
    • 根据实际业务需求创建internal或者public用户,xmlrpc的权限等同于用户权限
    • 也可用API key代替明文密码,提高安全性
  2. 客户端调用
    • 正常调用,按照官网实例,获取用户id,每次调用时将用户名密码数据库,方法传递即可。
XMLRPC性能测试
  1. 经jmeter性能测试,当worker = 4时,如果没超出硬件限制,大概能支撑住1000+个并发请求,空载时吞吐量为500/sec. 且worker数越多,对并发的支持就越好。
类似方法
  1. odoorpc
  2. jsonrpc
    调用方法可参考:https://blog.csdn.net/lm_is_dc/article/details/115523781
其他
  1. 无
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号