
Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn
由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解
本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!
开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号
如果您登录系统碰到问题,请在微信公众号留言:
OPenerp server六种服务类型
-
最近查看了服务端的源代码,有一些所得,发贴出来跟大家一起分享
服务端内部服务基本分成六种类型
object_proxy(object)
workflowdb
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'].classclass recording_objects_proxy(objects_proxy):
[[i] 本帖最后由 piaosha198 于 2010-4-9 17:41 编辑 [/i]]
-
我也是现在才知道,顶下LZ
-
有利于对openerp的程序分析,谢谢楼主!