OpenERP v6.1 新特性解读(一)整体易用性、界面、移动性(二)模块(三)技术
- 
就在OpenERP v6.1 来临之际。我们一起来看看V6.1 的Release-Notes。 
 来自: [检测到链接无效,已移除]
 [size=18pt][color=red]更容易使用,更少配置[/color][/size]
 这个无疑是降低了OpenERP对于初学者的门槛,以前的版本已安装好了模块就会自动跳出很多的wizard配置窗口,用户需要一层层地配置。对于第一次安装的人来说,这就是很大的障碍,天啊,谁知道怎么配置呢?
 新版本的配置向导大大减少了,基本上都是默认配置好了,特殊需要按需配置。不会再在创建新帐套的时候见到那些烦人的、无穷无尽的窗口。
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]新的many2one字段界面[/color][/size]
 可以直接在下拉列表里创建新对象,让弹窗尽量远离我们
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]更强大的Demo数据[/color][/size]
 例如当你安装了hr_evaluation 模块,他的demo数据已经自带多份评估表格,直接就可以打印出来
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]第三方的数据导入[/color][/size]
 SugerCRM
 您原来使用SugerCRM现在想转到OpenERP?没关系我们有现成的模块 import_sugarcrm 可以帮你轻松导入数据
 [img [检测到链接无效,已移除] /img]
 Excel etc.
 “我原来的数据存在excel中,怎么办?”
 “没关系”我们现在有更清晰的导入数据界面,更直观的导入界面可以,直接看到要导入的数据,在界面上调整各个导入列映射到的字段,新的导出方法可以令你将系统数据导出后修改后导入,系统会识别到你的修改或者增加新数据。
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]其他[/color][/size]
 订单进度条
 通过这个,新用户也可以很直观地知道自己正在走什么流程。
 [img [检测到链接无效,已移除] /img]
 清爽的模块安装界面
 [img [检测到链接无效,已移除] /img]
 控制台
 可以直接在控制台上点击新建,而且新版本的Falsh图示,支持中文。
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]给外部人员查看资料[/color][/size]
 给与会人员看会议日历
 给客户随时查看在你这里的项目的进展
 [img [检测到链接无效,已移除] /img]
 [size=18pt][color=red]邮件系统整合更为完善[/color][/size]
 在OpenERP6.0,多个模块提供邮件功能这个使到用户感到困惑,不过在新的版本里现在统一使用,不在杂乱,不在麻烦。还可以通过thunderbird或者OUtlook来把收件箱的邮件信息推入系统。
 [img [检测到链接无效,已移除] /img]
 现在只要的模块当中已经包含了默认的邮件样式,令初学者更容易上手
 & EDI:发票,销售订单和采购订单的的B2B/B2C交流,电子数据交换
 [size=18pt][color=red]通过移动设备随时随地处理我们的业务[/color][/size]
 在OpenERP6.1中我们可以通过 [检测到链接无效,已移除] 来访问移动设备界面
 [img [检测到链接无效,已移除] /img]
 最后如果大家又补充或者发现上面有误,请不吝补充,谢谢大家
- 
[检测到链接无效,已移除] 
 [size=18pt][color=red]point_of_sale[/color][/size]
 新的轻触式POS模块:
 是一个基于web浏览器的模块
 支持离线工作
 适用于任何平板器材上使用(ipod,ipad)
 新功能:
 可以通过条码阅读器、在屏幕上点选分类项或者直接点入名字搜索来选取产品
 支持同时多单
 支持多种支付模式
 [img [检测到链接无效,已移除] /img]
 [color=red][size=18pt]payroll[/size][/color]
 新的薪金管理模块包括一个通用的薪金管理引擎。
 你可以很轻松地定制各种薪金的规则:如免税额,扣除额,净,税收,等计算数据。
 薪酬结构:定义了一套规则通常适用于一类雇员。
 合同通过合同来定义一些列的有关薪金的计算方式,
 薪金计算:可以通工作天数和合同定制,以及各种保险公积金等计算出工资单,并可以批量打印
 如此对于不同国家也可以灵活定制出自己需要的薪金模型。
 [img [检测到链接无效,已移除] /img]
 [color=red][size=18pt]Asset[/size][/color]
 OpenERP V6.1包括一个完整的资产管理模块。其特点是:
 支持多种折旧方法:线性的,渐进的......
 代折旧图或网格板
 定期的会计分录自动生成
 [img [检测到链接无效,已移除] /img]
 [color=red][size=18pt]Portal[/size][/color]
 现在的门户模块只需点击几下就可以轻松把所需要展示的页面共享出来,而且有多种的共享模式
 [img [检测到链接无效,已移除] /img]
 详细报告,敬请期待
- 
[list][size=18pt]内核优化 
 [/size]
 原来的osv_memory(现在名为TransientModel)做了很大改进,现在已经是一个特殊的普通osv(现在名为Model),这意味着它确实存在数据库里面,但是它会在使用过后自动删除(例如某个统计计算完毕或者某些记录已经创建了)。这个改进有以下好处:
 [list][li]底层代码只有一个,更容易维护。[/li]
 [li]具有相同的模型,这意味着约束(例如外键)都是可执行的[/li]
 [li]更好的性能,数据库几乎完全是无状态(仍然有一些缓存)[/li][/list]
 支持WSGI,可以在一个兼容WSGI的服务器上运行OpenERP server,再加上OpenERP几乎无态的特性。这意味着你可以在WSGI服务器上运行多个服务器进程:你终于可以用尽你的多核CPU!例如用 Gunicorn ,一切的维护都变得简单了,Gunicorn 将监控者进程。例如萨斯一个已经挂起的进程,防止内存泄露影响系统。
 还有几件缩短创建帐套时间的改进:能高效率使用框架加载翻译并写入。另一个改进就是(转存和恢复)的帐套时候的缓存。这些都在OpenERP online上实际使用过。
 在销售订单上做过性能测试:
 [list]
 [li]安装一个新的英文帐套[/li]
 [li]安装一个新的带有语言包的帐套[/li]
 [li]再创建另外一个新帐套[/li]
 [li]从web客户端读取一个合作伙伴[/li]
 [li]一次读1000个订单[/li]
 [li]读100x10个销售订单[/li]
 [li]计划任务的多线程处理[/li]
 [/list]
 现在每一个计划任务在后台都是生成一个线程,这样就不会因为一个计划任务在执行,就阻碍了另外一个计划任务的执行。实现了在负载均衡的情况下多个服务器执行多个进程,每个任务每次只会执行一次
 [size=18pt]Unaccent[/size]
 消除法语那些上面的声调,启动server的时候使用 --unaccent(对于国内用户可能不怎么需要这个 :D)
 [size=18pt]给开发人员[/size]
 6.1的对象自动实例化了,不再需要显式调用
 [b]6.0.x[/b]
 [/list]class res_groups(osv.osv):<br />_name = 'res.groups'<br />_columns = {<br />'name': fields.char('Name'),<br />}<br />res_groups()<br /><br />class res_users(osv.osv):<br />_name = 'res.users'<br />_columns = {<br />'name': fields.char('Name'),<br />'group_ids': fields.many2many('Groups', 'res.groups'),<br />}<br />res_users()<br /><br />class res_groups2(osv.osv):<br />_inherit= 'res.groups'<br />_columns = {<br />'user_ids': fields.many2many('Users', 'res.users'),<br />}<br />res_groups2()
 
 [b]6.1[/b]class res_groups(osv.osv):<br />_name = 'res.groups'<br />_columns = {<br />'name': fields.char('Name'),<br />'user_ids': fields.many2many('Users', 'res.users'),<br />}<br />class res_users(osv.osv):<br />_name = 'res.users'<br />_columns = {<br />'name': fields.char('Name'),<br />'group_ids': fields.many2many('Groups', 'res.groups'),<br />}
 

