巧用浏览器功能,实现OpenERP中不同实例、不同用户间切换。

OpenERP6.1的Web客户端是用浏览器来访问的(废话)。为了方便用户,浏览器会记录用户的会话。也就是说你打开浏览器,登录到一个数据库A,关掉浏览器。再次打开输入erp的访问地址,会自动进入A数据库并用之前的用户继续使用OpenERP。到这里,世界还是完美的。而且,还挺方便。

然后,你再打开一个浏览器窗口(或标签页),登录到同一域名的不同端口(比如http://demo.osbzr.com:8069/),输入用户名密码(选择demo数据库,你懂的)。然后你回到之前的浏览器窗口,输入一条数据,保存。注销。再登录进来,查找这条记录……它不见了!它在在线的A数据库里!!@#¥%……&*&……%¥#@#¥%

问题是,OpenERP在浏览器里的session不区分同一域名下不同的端口号和数据库,在相同浏览器内,后一次登录的信息会覆盖前一次的登录信息,即使你前一个登录页面还没有关闭,session已经变了。数据库、用户都变了!你在前一个页面里的操作都会用后一个页面的session(数据库和用户),而你全然不知。

解决办法就是,如果你要在相同的电脑上,同时操作两个OpenERP数据库,或者在一个数据库中使用两个用户登录,必须使用两个浏览器(而且不能是IE,这个你也懂的)。否则,你切换来切换去就会酿成大错。

真的要这么傻么?

嗯,一般来说,技术问题都不是问题,只要保证浏览器的每个OpenERP窗口都用独立的session就可以了。Chrome和Firefox这样的浏览器都支持独立session的窗口,firefox叫隐私浏览,Chrome叫隐身窗口。

IE呢,我不用IE,就算它有这功能,他不支持HTML5,OpenERP还是用不了。

chrome

COOL