浅谈MSCRM定制的基本方法

MSCRM可以进行几乎无限制的功能扩展,这是它的重要卖点之一。我总结了一下定制MSCRM基本有以下一些方法:

SiteMap.xml
这个是在定制主窗体的左侧导航栏用到的,它的功能看似简单,其实在我们做复杂定制的时候非常有用,有一些高级技巧以后会作介绍。SiteMap和其他Entity一样可以导出/导入。

ISV.Config.Xml
这个文件是用作定制主窗体菜单栏,工具栏和Entity导航栏,工具栏等等。文件位置存放在CRMWeb\_Resources\isv.config.xml, 修改之前记得备份;修改之后不用iisreset,直接生效。我们如果想添加一个按钮在工具栏上实现一些自定义的操作,就可以修改这个文件。

Jscript / JavaScript
MSCRM窗体支持三种事件: Entity的 OnLoad(), OnSave() 和 Field的OnChange(),可以在里面写JScript或者JavaScript的脚本(微软官方的说法是支持JScript,但是MSCRM是基于Internet Explorer的,所以实际上也支持这种更广泛的脚本JavaScript;至于VBScript当然IE是支持的,不过微软对于它和MSCRM的关系令人迷惑:我没有见到过官方文档提及!)这里还包括一些高级用法,比如AJAX,添加浏览器事件,直接用JS读写数据库(Unsupported by Microsoft)。这是最常见的定制方法,很多高级的应用也在这个部分。

Workflow
工作流,由于v4比v3的Workflow改进了不少,我就先不谈v3的特性了。以后会有专题谈v4的Workflow

Callouts / Workflow Assemble
这2个都是基于VS.Net的编程,用于扩展MSCRM来实现特定的商业逻辑。支持C#和VB.Net,不过v3只支持在VS.Net 2003里(.Net Framework 1.1)编写的dll,VS2005不支持(当然也可以提取.Net Framework 1.1到 VS2005然后进行配置,不推荐)。值得一提的是v4不再叫Callouts了,而叫 Plug-Ins ,这种说法更明确一些,而且v4也支持用VS2005编写dll(.Net Framework 2.0)。

Asp.net , Web Services
由于MSCRM是基于Web的CRM软件,所以Asp.net也经常用到,有时也会编写自己的Web Service,甚至是Windows Service来实现特定的商业流程。

SQL Trigger / Store Procedures
这些也是微软不支持的方法,有的时候特别有用。

MSCRM Reports 数据报表
这个需要用到Visual Studio Business Intelligent  Development Tools,安装SQL Server 2005的时候会有这个选项,叫做客户端工具。

微软把定制分成两类,一类是Supported customisation,另一类就是Unsupported customisation。简单的说就是只要MSCRM SDK上没有提到的,都是Unsupported ,比如修改任何的ASPX, JS , HTC, CSS文件,或者对数据库直接进行操作(FilteredView可以)。

我的一些基本建议是:

1, 尽量用 Suppported Customisation,一定要有开发文档;
2, 如果不得已要用到Unsupported 的方法,文档一定要写得很详细,方便以后升级;
3, 所有开发文件,源文件都要放到SourceSafe,或者至少要有不同时期的备份;
4, Web 数据, Database 都要有备份,Server当然也要备份;
5, 不要在production environment 上直接开发,要有development 环境,全面测试。 

Jim Wang
09 Nov 2007, England

posted @ 2007-11-09 17:12 MicrosoftCRM 阅读(...) 评论(...) 编辑 收藏