其实关于用友对ERP用户带来的影响,几个月前就想说一说了,但是一则篇幅很容易拉大,二则也缺少适合聊这一话题的对象和环境。我一直关注的领域是Oracle和SAP,对于国内的一线产品确实缺乏足够的关注,但是随着时间的流逝和国内产商(尤其是用友)经验和实力的增长,你已经无法忽视这一支曾经还只是口头上的“生力军”。现在的中国,如果你靠产品吃饭,那么你可以不必理会,但如果你同时对整个ERP行业保持兴趣,那就不得不把视线分一部分在用友上面。 曾几何时,当人们谈论某某公司准备实施ERP,但是软件选型为用友的时候,往往便有会心一笑的人。一直以来,用友给人的印象就是小,小到只有小企业才能使用。事实上,三年前的用友ERP确实如此,但是当U8第10版本推出的时候,这个局面将会被有利扭转。尤其当你同时发现用友的NC和U9两个产品线已经开始蚕食原本属于两大国际一线ERP厂商的阵地时,这个趋势已经更加明朗了。 对用友的印象通常是在U8上面,而对U8的印象则主要集中在以下几个方面: 1,账套。这个词几乎可以代表了U8的出身,也正是这个词导致其与Oracle/SAP等保持了足够让人移出视线范围的距离。对于重度U8用户,这个概念的个性化理解让任何ERP实施人员感到头疼。在很多场所,我发现一些人把账套当作了一堵墙,一个可以随意隔离的孤岛。 2,非常低的技术门槛和系统维护成本。老实说,如果你愿意,可以让任何人在任何场所使用U8,不需要一个专职的DBA,甚至可以不需要专职的系统管理员,如果愿意,一个账套主管可以搞定所有User和Administrator级别的问题。对于用户而言,唯一的操作就是处理各类单据,不需要考虑事务、并发、归档等问题。 3,廉价的客户支持。在接触到U8后,我才知道原来业务部门的使用者可以直接给用友支持提Ticket,甚至可以直接安排工程师上门服务,甚至,据说有的企业直接将数据库文件打包发给用户,让对方处理好数据后再发回来。这些情况,在任何使用Oracle或SAP的企业都是难以想象的。我的第一反应不是赞叹用友的支持效率之高,而是惊叹其服务成本之低。 4,归档。用友U8在第10版本之前都有一种非常有趣的方式来处理历史数据,那就是“年结”。U8的年结是任何其他产品所无法类比的,也是我所见过的最麻烦的年结。U8的一个账套对应于一个SQL Server中的Database,年结时需要将新数据复制到新创建的Database中。想想Outerbay等商业ILM解决方案吧,完全不在一个量级。我在这里不把Database翻译成数据库,因为每次我建议采用这个翻译的时候,总会有一些人出来教我数据库是什么,这或许也是SQL Server世界和Oracle世界的一个隔阂所在吧~ 正如开端所言,关于用友可以说很多东西,但是在亲身感触过一段时间后,却发现没必要每样都说出来,对于很多东西,已经淡然了。比如数据集成、二次开发等,这些在U8的第9版本之前都非常糟糕。 我经常挂在口头的一句话是:如果一个企业未经历过大型信息系统的实施,那么这个企业的用户成熟度就非常低。大型信息系统指的是ERP系统,如果用友开始重视实施——而不仅仅是卖出产品——那么它也就真正培养起来了自己的用户,它自身也走向了成熟。ERP的趋势将是技术管理简单化,这一点SAP做的非常出色,Oracle则非常差劲,如果你读过《SAP德国造》,那么对这两个产品的差异就非常清楚了。 也许有一天,中国的ERP市场将成为用友和SAP的逐鹿之地,有可能吗?
Archives for Uncategorized
关于Table API
在Oracle ERP二次开发领域,有一个非常重要的开发规范就是关于Table表数据操作的。一般而言,技术团队都会规定避免将数据操作sql直接写到逻辑层代码中,至少将具体的底表操作语句独立放到一个package里。EBS的开发规范中称之为Table Handler,就是在需要直接操作数据表的地方调用该Table Hander来执行DML动作。不管项目有多大,都应该遵循这个规范。 此次SQL Developer升级到3.0后,也增加了一个名为Table API的自动生成功能。 自动生成RECORD和Insert/Update/Delete Procedure: PACKAGE test_tapi IS TYPE test_tapi_rec IS RECORD( content test.content%TYPE, id test.id%TYPE, upload_time test.upload_time%TYPE); TYPE test_tapi_tab IS TABLE OF test_tapi_rec; — insert PROCEDURE ins(p_content IN test.content%TYPE DEFAULT NULL, p_id IN test.id%TYPE, p_upload_time IN test.upload_time%TYPE DEFAULT NULL); — update PROCEDURE upd(p_content IN test.content%TYPE DEFAULT NULL, p_id IN test.id%TYPE, [...]
迎接变化
最近工作和生活都发生了些变化,参加新的团队,实施新的项目,也可能要投入新的ERP阵营。在企业信息化的工作经历中,我乐意了解并接触不同的产品。就像博客,保持独立性是重要的,不要把人生绑在一张船票上,也不要把企业绑在一个软件厂商上。 由于目前还处于ERP系统选型阶段,所以一切未知,一切也不便多说,但是一些通用的,依旧存在于那里。在工作变换的简短假期中有所憧憬,也有所忧虑,对之前走过的路和将来要走的路都有一些不算深入的思考。一些经验和体会零零碎碎的,整理出了下面几点: 对待变化不忧虑,迎接它。 面对现实,不逃避。 预估风险,面对风险,承担风险。 质量往往和时间成正比。 关键部分坦然面对。 不捣浆糊,有帐迟早要还的。 学好一门语言,其他的,可以在用到时再学——你不是程序员。 了解一些技术,有助于深入吃透功能本身。 愿意花一部分工作时间在其他需要你的地方,尽管它不属于本职工作。 多读官方文档。 沉得下去,浮得上来。 纯属个人体会和感触,不具有任何其他意义。一旦选型结束,将重新投入到实施和技术分享中来,自然会忙,会觉得辛苦,但值得。 面对变化,迎接变化。
为什么Oracle 11g R2最低内存要求是1G?
Oracle公司最近采取了一些措施来保证只有真正的专家才能使用Oracle,这些措施包括: Oracle 11g R2 的所需内存至少1G 磁盘空间至少要达到10G 一些额外的特性,比如ASM和Oracle Restart需要额外的1G内存 很多名不副实的所谓Oracle专家,他们的知识可能仅仅来源于个人电脑上的单用户的Oracle系统,很多人甚至没有接触过真正的上规模的企业环境。Oracle将会继续贯彻这种政策来减少越来越多的半吊子和没有资格认证的外行人士,以避免行业陷于低水平境地。 我的看法是,今后所有企业版所需内存至少2G,ASM之类则需要额外的1G内存,这样效果会更好一些。 Joke (注:本消息可信度自行判断 )
寒碜的会议
昨日赴上海Oracle公司参加了一次所谓的“Oracle商务智能应用推广体验活动”,主题是亲身试用Oracle BI产品。我参加过多次Oracle主办的各类会议,比如OOW,但是这次的体验真当是首次。 会议9:15分开始,我从杭州出发,坐了最早一班的动车,大概9:30左右到达会议地点。这种时间安排本身,就带着一点点的莫名其妙,因为这貌似不欢迎上海以外的客户。然后有了如下一些体验: 会议室很小,或者说人数太多,竟然没有足够的位子。 于是去外面找椅子,是自己动身去找了并推过来的。 坐下来后,发现主持人没用话筒,声音很轻。 体验时,网速超慢,打开首页要4、5分钟。 所谓的午餐,就是盒饭,没有位子的人需要自己找地方,不过地方不够。 因为体验不佳,所以我直接走人。 印象中,所有Oracle相关会议都是在五星级饭店举行的,即便不是如此,至少也有足够的位子;如果要体验,至少有足够的网速;如果要吃饭,至少不用手捧着盒饭吃。这次的组织者,显然没有上心。不过这是不是也说明,其他的会议都是交给专门的公司安排的,这是专业性的体现啊。 当然,最主要的问题还是在于自己,没事瞎凑热闹。