新手请教odoo同步外部数据如何实现?
-
研究了一段时间的odoo,越来越觉得这东西的强大。本以为是套进销存的软件,少带点生产。后来发现还可以定义字段属性工作流。再后来发现所有东西都是对象,整整齐齐的码放在数据库里,想要什么,用视图窗口动作调出来就行。本人技术有限,照猫画虎写几个xml还凑合,action automation 啃起来就很费力了。仿佛再往下走,就要懂点python了。
最近遇到个需求,把考勤机数据倒进来,那边access ms-sqlserver,这边postgresql。我就挖空了脑袋得想办法啊~
1)那边导出csv 转换编码utf8 这边自定义一张表 定义好两边人员ID对应关系 再导入这个csv 然后关联这张自定义表 到hr相关的模块 应该能实现 但 累死
2)找数据库同步软件 sqlserver只支持他们自己的东西 postgresql也是 也有第三方出这么个连接两边的同步软件,但价格不菲。
3)若是写个windows下的值守程序,两边都通过odbc读写,应该也能实现。但我感觉这不是解决问题的正规路子,就像打游戏用外挂。
4)用python读sqlserver应该更靠谱。于是安装python环境,找到了pymssql这么个类库,还有网上一些教程,看来应该能实现。可python能读sqlserver,odoo也是python写的,也有python环境,让odoo去干这事岂不是更好。
5)若是能把pymssql加载进odoo,用odoo的方式让他去执行,想必也是极好的……可,加载到哪里去比较好呢。
然后这几天我有点卡住了,上来发个帖子请教各位大侠。我这写的都是些外行话,出现这个问题,一定是源于我对odoo的了解不够深入。但这个深入又岂是一两天就能解决的。我也是愿意下点功夫研究的人。若哪位大侠给指点个方向,指条明路,感激不尽呢。
后台有个automation,下面有些计划的动作,看起来很可爱。若想创建,问我要对象,方法,参数。他对象在哪?我自定义在数据库里的表,算吗?什么方法?我写在python文件里吗?脚本又放在哪呢?
后台还有个动作,服务器动作,看起来也很可爱,而且还能直接填写python语言呢 可是好像能用的语句有限 而且初始化sqlser数据库 读取数据 转换编码 写入postgre这么多的事,又岂是一个框框能写的下的。
我隐约感觉到,我得写一些py文件,放在某个神秘的角落,然后让odoo启动时,捎带着把我写这些一起import了,然后我才能得到那些对象方法参数啊。也许那时,后台的动作里,我就写几个参数,就能把这事干了……想想也是醉了。
求各位大侠们,尽情的拿板砖砸我吧~ -
我又研究了一下。每多看一些知识,眼界就更宽广一些。
说的未必对哈,各位大侠尽情批评。
odoo总是比我想象的更底层一些,灵活度惊人
模块化。全是对象。不是说说而已
每个模块都在addons目录下有独立的目录,里面都有自己的init,可以写自己的py。导入什么类,启动什么功能,是否动态的写入数据库,都是自己说的算。
那我这读取sqlserver的事 好像从这里就可以开始干
修改网上下载的pymssql,也许可以修改一下,从这里就开始调用,在pythion的层级下就完成自己想要的效果。
如果能实现,那是不是可以更高级一点,这个连接sql的库,就放在模块目录下,用init.py启动它。然后一些动态的配置信息,方式方法写到数据库里,变成动态的。
再然后就有了新对象,odoo里做几个视图 动作 可以改这张数据表。
最后,这东西就变成了一个odoo的sqlserver连接模块。装了这个模块的人 就可以填写数据库地址啊 账号密码啥的 就能连sqlserver了
不知道方向对不对,又或者,我想多了……