如何快速的进行CRM 模板开发

来源:互联网 发布:mac网页翻译浏览器 编辑:程序博客网 时间:2024/05/16 11:21

微软CRM4.0是一个快速的企业级应用开发平台,可以随着企业业务的发展进行软件的同步的升级,下面就如何开发一个适应需求多变、可配置的CRM模板谈谈自己粗浅的认识,抛砖引玉,欢迎拍砖。

 

 

技术开发方面

         Picklist VS Lookup

         在设计业务状态字段时建议采用Lookup(关系)类型,这样便于用户在企业业务调整的时候能够自行进行设置,而不用系统进行任何调整。

         Javascript VS ISVConfig

         在进行页面按钮控制的时候可以通过JavascriptFromOnLoad事件中进行控制也可以在ISVConfig文件中进行配置,这两者各有特点,但是相对而言在OnLoad中用javascript控制更加灵活,比如可以控制按钮在指定状态指定用户浏览的时候才显示(权限控制,如审核);在OnLoad事件中的Javascript脚本写起来也比在ISVConfig中相对容易而且测试也方便;而且OnLoad还可以设置事件是否生效;两者共同的特点就是方便导入导出,便于移植。

         ISV Web Application VS Plug-in

       有时候在CRM表单上执行一些操作需要激发后台相关操作,在这种情况下可以采用外挂网站的方式(ISV Web Application)或者采用Plug-in的方式。基于CRM模板的方便部署、维护性,建议采用Plug-in方式。(如果是传统方式部署的话建议大家采用外挂网站方式,这样开发调试都相对容易)

         Plug-in VS Workflow

         CRM中的工作流是异步执行的,所以所有触发工作流所做的修改不能立即生效并在界面上看到,而且如果工作流执行过程中如果产生了错误,也不能即时的通知用户,但是Plug-in可以配置为同步的方式执行,避免异步工作流的这个问题。

         同时Workflow的工作流具有很好的可配置性,能够进行用户级的配置,但是Plug-in的逻辑却是编程时既定的,所以综合看来各有各的用武之地,需要根据业务的需要进行灵活的选择。

         Wait/ Timeout Workflow VS Common Workflow

         CRM的工作流提供了很多的选择条件,其中需要提到的就是等待条件和超时条件。基于等待条件可以建立等待工作流,这种工作流可以基于工作流创建的对象/任务进行判断推动工作流的执行,比较典型的例子就是销售漏斗;Timeout工作流实际上也是一种等待工作流,但是这种工作流会超时结束,可以利用这种工作流建立例行计划,如建立每天的电话销售提醒。

         系统中如果存在太多的等待工作流有可能会造成系统资源开销增大从而导致工作流不能正常执行,但是官方并没有对此进行声明,所以本着谨慎的态度,如果系统中需要使用工作流建议采用普通的条件工作流;建议尽量少使用等待工作流,如果必须使用建议配合超时条件一起使用,这样系统的等待资源会保持在一个可控的范围内。

         CRM Database Transaction

         CRM官方说明显示可以通过将Plug-in注册为Child pipeline的方式来支持数据库事物,但是测试发现如果在Plug-in中执行了多个CRM操作,在抛出异常之前执行的操作不会被回滚。如下图:

 

 

         如果位于Child PipelinePlug-in在执行到步骤C的时候发生了异常,将导致位于Parent Pipeline的操作回滚,但是在Child Pipeline中的AB步骤提交的操作将不会被回滚。所以,如果是简单的操作应该是没有问题的,如果是执行有逻辑的长过程操作,建议用户通过程序自行控制事务(通过状态标记实现)。

         上述是本人在CRM开发过程中总结的点滴,希望对您的CRM模板开发有所帮助,以上见解纯属个人观点,可能和您在开发中遇到和解决的问题大相径庭,欢迎讨论指正,谢谢!

——开发者 刘军(著)