Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

OPenerp server六种服务类型



  • 最近查看了服务端的源代码,有一些所得,发贴出来跟大家一起分享

    服务端内部服务基本分成六种类型
    object_proxy(object)
    workflow

    db
    common
    report
    wizard
    前面两种比较经常可以见object_proxy(object)是处理业务逻辑的服务接口
    workflow是工作流模型的服务接口
    db是获取数据库操作的服务接口 包括备份,删除,恢复。
    common是处理登录,登出的服务接口
    report是报表的服务接口
    wizard故明思义是wizard的服务接口。
    client发送的服务请求类型也就以上六个类型

    对于这些服务类型的继承,扩展可以采用如下方法
    这六种类型的服务都是注册在netsvc.SERVICES字典里面,采用以下方法注册
    netsvc.Service.init(self, 'object_proxy', audience='')
    具体代码见web_services.py
    class common(netsvc.Service):
    def init(self,name="common"):
    netsvc.Service.init(self,name)
    self.joinGroup("web-services")
    self.exportMethod(self.ir_get)
    self.exportMethod(self.ir_set)
    self.exportMethod(self.ir_del)
    self.exportMethod(self.about)
    self.exportMethod(self.login)
    self.exportMethod(self.logout)
    self.exportMethod(self.timezone_get)
    self.exportMethod(self.get_available_updates)
    self.exportMethod(self.get_migration_scripts)
    self.exportMethod(self.get_server_environment)
    self.exportMethod(self.login_message)
    self.exportMethod(self.check_connectivity)

    对于这些服务的扩展比较容易.只需要继承netsvc.SERVICES中对应的python类。然后在init方法里面调用一下netsvc.Service.init(self, 'object_proxy', audience='')就可以完成扩展
    objects_proxy = netsvc.SERVICES['object'].class
    具体代码:见:base_module_record模块中的base_module_record.py或者audittrail模块中的audittrail.py
    objects_proxy = netsvc.SERVICES['object'].class

    class recording_objects_proxy(objects_proxy):

    [[i] 本帖最后由 piaosha198 于 2010-4-9 17:41 编辑 [/i]]



  • 最近查看了服务端的源代码,有一些所得,发贴出来跟大家一起分享

    服务端内部服务基本分成六种类型
    object_proxy(object)
    workflow

    db
    common
    report
    wizard
    前面两种比较经常可以见object_proxy(object)是处理业务逻辑的服务接口
    workflow是工作流模型的服务接口
    db是获取数据库操作的服务接口 包括备份,删除,恢复。
    common是处理登录,登出的服务接口
    report是报表的服务接口
    wizard故明思义是wizard的服务接口。
    client发送的服务请求类型也就以上六个类型

    对于这些服务类型的继承,扩展可以采用如下方法
    这六种类型的服务都是注册在netsvc.SERVICES字典里面,采用以下方法注册
    netsvc.Service.init(self, 'object_proxy', audience='')
    具体代码见web_services.py
    class common(netsvc.Service):
    def init(self,name="common"):
    netsvc.Service.init(self,name)
    self.joinGroup("web-services")
    self.exportMethod(self.ir_get)
    self.exportMethod(self.ir_set)
    self.exportMethod(self.ir_del)
    self.exportMethod(self.about)
    self.exportMethod(self.login)
    self.exportMethod(self.logout)
    self.exportMethod(self.timezone_get)
    self.exportMethod(self.get_available_updates)
    self.exportMethod(self.get_migration_scripts)
    self.exportMethod(self.get_server_environment)
    self.exportMethod(self.login_message)
    self.exportMethod(self.check_connectivity)

    对于这些服务的扩展比较容易.只需要继承netsvc.SERVICES中对应的python类。然后在init方法里面调用一下netsvc.Service.init(self, 'object_proxy', audience='')就可以完成扩展
    objects_proxy = netsvc.SERVICES['object'].class
    具体代码:见:base_module_record模块中的base_module_record.py或者audittrail模块中的audittrail.py
    objects_proxy = netsvc.SERVICES['object'].class

    class recording_objects_proxy(objects_proxy):

    [[i] 本帖最后由 piaosha198 于 2010-4-9 17:41 编辑 [/i]]


  • 管理员

    :lol

    我也是现在才知道,顶下LZ



  • 有利于对openerp的程序分析,谢谢楼主!


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待