为什么不能把DMM和CRM 4.0 application server安装到同一台机器上?

DMM = Microsoft Dynamics CRM 4.0 Data Migration Manager 数据迁移管理器,是4.0里用来整合不同的数据源把数据倒入到CRM数据库中的组件。DMM的一些使用技巧可以在下面链接找到: Data Migration Manager Tips and Tricks   我们在CRM 4.0的安装文档中指出不要把DMM安装在CRM 服务器上(当然如果你要安装 DMM并没有警告信息弹出),这背后的一个技术原因是:   DMM 依赖的某个别DLL的名字是和CRM server程序一样的,这些DLl DMM组件是发布到.NET 的GAC中去的;但是CRM Server程序的这些DLL是发布到自身的目录下 (c:\program files\Microsoft Dynamics CRM). 如果你在同一机器上同时安装了DMM和服务器,那么服务器程序就会从.NET 的GAC目录读取那些DLL而不是从自己本地目录。如下图所示,CRM的补丁是分DMM和 Server的,如果你没有意识到这点,可能会碰到打的Server的补丁没有生效 (因为它实际去读取了DMM发布到GAC里的DLL).     Thanks Clifford


CRM 4.0 字段级别的安全控制 (Field-level Security,简称FLS)

之前很多朋友问到字段级别的安全控制实现(Field-level security,FLS)。 4.0产品中没有提供该feature, 不过微软E2部门发布了一篇白皮书讲述了可能的技术实现方法方法,应该考虑到的安全漏洞和限制: Field-level Security in Microsoft Dynamics CRM: Options and Constraints   如果自己实现个人认为工作量还是很大的。 作为市场上成功实现案例参考,C360公司有产品实现了Field-level security c360 Field Level Security for Microsoft Dynamics CRM 4.0 C360的实现我个人的理解是在展示层(presentation layer)而不是在平台层(platform layer), 所以根据我们的白皮书应该还有很多改进的地方。   另外一家是 GaleForce IndustryCRM Add-ons for Microsoft Dynamics CRM,个人没有研究过。   已经有很多客户提出对FLS的需求,产品组的确在5.0里认真考虑客户的反馈,但5.0最终发布的时候是否会包含FLS功能,要等到明年拿到Beta的时候才能看到产品组官方的决策。:)   另外有朋友问到5.0的信息,我们的官方渠道是在下面这个地方下载(需要注册partner的帐号): Statement of Direction for Microsoft Dynamics CRM 该文档列数了CRM未来的方向 (关键词 Microsoft Dynamics CRM…


CRM 4.0 报表FAQ (1)

FAQ1. CRM Report Connector有什么作用?访问报表我一定需要安装Report Connector吗? 解答: 不一定。通常你可以用下面的表格根据你客户的需求来决定是否需要安装Report Connector,毕竟安装的组件越多维护成本越高。 4.0里增加了Report Connector主要是为了解决3.0当中不能从internet上看报表的问题,同时绕过3.0里繁复的配置kerberos认证工作。 How it Works: SQL Server Reporting Services and Dynamics CRM Capability SQL Server Reporting Services Data Connector Kerberos Authentication                           注释 Works with Internet Facing Deployments Yes No 在IFD模式下我们使用ASP.NET Form认证 Schedule reports using the Report Scheduling wizard in CRM Yes No 在CRM中建立的计划报表(schedule reports)是使用CRM认证方式 Uses NT…


CRM 4.0 用户 (users)和Active Directory的集成绑定

  FAQ1: 我们使用了Active Directory的ADMT工具做了跨域用户的迁移,从此以后那些被迁移过的用户无法登录到CRM系统中,什么原因呢? 解答: 这个 要从CRM 4.0中和AD的绑定说起。正常情况下登录的时候,用户会被IIS那里验证,传出一个WIndows AuthInfo信息,CRM平台拿到这个信息后会比对SystemUserAuthentication这个库表,对应找到UserId,通过SystemUserOrganization库表找到该user所属的Organization和在那个Organization里面的CrmUserId. 有了这个信息后读取特定的OrganizationDB的SystemUserBase库表,找到ActiveDirectoryGuid,DomainName信息, CRM然后访问Active Directory来验证自己库表里存储的信息是否和AD中的保持一致,如果不一致本次验证失败。如下图表所示黄色部分的信息都是CRM在安装配置过程中从Active Directory里面读取的数据。 如果Active Directory使用工具ADMT迁移跨域用户后,用户的ActiveDirectoryGuid不会改变,但是AuthInfo和DomainName都会变掉,导致CRM数据库里的信息和AD的信息不一致。   解决办法是: 如果你的域关系是单向信任的 (one-way trust),你需要安装Update Rollup 7. 然后使用CRM 的Deployment Manager来重新映射用户 (修改用户对应的alias,比如testDomain\name),CRM 平台会自动去Active Directory系统获取更新最新的相关信息。     FAQ2. 我们公司的AD域被重新建过了,我们备份了CRM数据库,在新的域里面安装了CRM软件和SQL server后我们把CRM数据库恢复上线。所有的用户的Alias和域名都没有更改过。但是CRM系统无法访问? 解答: 原因参见FAQ1的解释,重新建的AD域AuthInfo和ActiveDirectoryGuid都会变掉了。解决办法是使用Import Organization工具做重新部署。 具体过程参看 952934    How to move the Microsoft Dynamics CRM 4.0 deployment   如果你的CRM数据库很大并且要映射的用户很多,需要安装如下的hotfix来提高性能 The Import Organization wizard takes a…

1

CRM 4.0中的Active Directory安全组 (Security Groups)

CRM 4.0 的安全控制除了使用自身系统内部的Role-based机制外,还需要和SQL Server 和Reporting Service系统打交道。为了统一安全控制,使用5个安全组来协调 (前面三个对库控制)。 注:  这5个安全组也可以在安装CRM 4.0的时候通过手动创建后使用配置文件指定,其命名可以自己指定,参看:         946677    How to install Microsoft Dynamics CRM 4.0 with the minimum required permissions    1. PrivReportingGroup 该安全组用来控制对CRM数据库(config 和orgdb)的读访问权限(CRMReaderRole), 不能做写库操作。这个主要是CRM Data Connector用的,需要对ConfigDB有读的权限。 2. SQLAccessGroup 这个控制谁有权利直接连接访问SQL数据库,该安全组对CRM库有db_owner级别的权限-可读可写; 可以发布更改删除报表 (publisher). 这个是CRMAppPool帐户需要属于的组。 3. ReportingGroup 该安全组用来控制对CRM的OrgDB数据库 读访问权限(具体主要是那些FilteredViews视表),对ConfigDB没有任何访问权限。可以浏览执行SQL报表(Browser Role)。这个组用来做报表访问功能的。   上面3个安全组直接控制了谁可以登录SQL数据库(SQL Logins),登录后能访问哪个数据库(DB Roles)。尽管CRM平台用来和SQL连接的connection string里指定了Windows集成验证,但是终端用户不会允许用来向CRM库写数据,CRM的设计让所有的写库操作一定需要通过Impersonation使用服务器进程运行的帐号进行. 比如:         Provider=SQLOLEDB;Data Source=MyCRMSQLMachine;Initial Catalog=CRMOrgDB;Integrated Security=SSPI 情景1:…


数据重复检测(Duplication Detection)

FAQ 1: 我已经设置了数据重复检测功能,为什么数据录入有时候没法捕捉到重复数据呢? 原因: CRM 4.0中的Duplication Detection功能部分要依赖Async Service在后台异步执行, 本质上不完全是实时执行的。下面是个大致的原理: 步骤1. 当你从CRM界面的Rule Editor上(Settings –> Data Management –> Duplicate Detection Rules)编辑建立并发布一个rule以后,后台SQL数据库里发生如下动作: 1)    插入rule/conditions的定义到两张表DuplicateRuleBase, DuplicateRuleConditionBase; 2)    在AsyncOperationBase中插入一个循环的工作job (GenerateMatchCode Job),用来根据定义的Duplication Rule对相应的entity的每条记录定期扫描生成对应的matchcode (默认下扫描周期为每5分钟). 3)   生成用来存储matchcode的SQL表格供步骤2使用,名字类似MatchCodeXXX. 该SQL表格也会被DuplicateRuleBase表格引用。 步骤2:GenerateMatchCode Job开始在后台循环运行,默认下每5分钟运转一次. 该Job的主要目的是扫描对应的实体记录,生成MatchCode放到MatchCodeXXXXX表格中供后续的数据重复检测用:   步骤3: 用户在数据录入时候要求检测数据重复性。这个是通过DuplicatePlugin来做的,你可以通过下面的界面来决定是否在数据录入时候挂接该Plugin:   DuplicatePlugin依赖查询比较MatchCode表来判断是否有数据重复,使用类似如下的查询语句: SELECT M.ObjectId FROM dbo.MatchCode328d3b54e64541dbb2946f5895e3aa76 As M WHERE M.MatchCode = test@microsoft.com ‘ AND M.MatchCode IS NOT NULL….


MSCRM菜单行为异常问题

最近有用户碰到MSCRM菜单行为异常的问题: 点击工具栏, 菜单能正常弹出, 但之后一旦移动鼠标, 菜单就消失了, 无法选择到菜单项.   该问题在IE6, IE7, 和IE8上均有发生.  出问题的客户端共同的特征是都曾经安装了一些第三方的IE插件.  但即使卸载了这些第三方插件, 问题仍然存在.  这时大家可以尝试重新注册IE相关的动态链接库来修复问题 –   首先是jscript和msxml: regsvr32 jscript.dll regsvr32 msxml.dll   如果问题仍然存在, 可以尝试注册如下dll: regsvr32 urlmon.dll regsvr32 mshtml.dll regsvr32 browseui.dll regsvr32 vbscript.dll regsvr32 scrrun.dll regsvr32 actxprxy.dll regsvr32 softpub.dll regsvr32 wintrust.dll regsvr32 dssenh.dll regsvr32 rsaenh.dll regsvr32 gpkcsp.dll regsvr32 sccbase.dll regsvr32 slbcsp.dll regsvr32 cryptdlg.dll regsvr32 oleaut32.dll regsvr32…


2009/11CRM合作伙伴见面圆桌会2

由于文件大小限制,技术资料在本贴发布 关于服务流程信息,请在上贴”2009/11CRM合作伙伴见面圆桌会1″ (http://blogs.technet.com/crmchina/archive/2009/11/13/2009-11crm.aspx) 里面下载。 thanks Clifford PerfTune and Best Practice.pdf


2009/11CRM合作伙伴见面圆桌会1

  2009年11月10日上海徐家汇美罗大厦23楼我们首次尝试举办了微软CRM合作伙伴和售后服务部门的座谈会。与会的合作伙伴有10家左右,我们邀请到了微软亚太区主管MBS服务的总监 Jose Garcia和亚太区主管Dynamics CRM服务的经理 Roger Waaijer和大家亲自见面畅谈微软的服务以及承诺。Eric和Emily 介绍了微软内部的相关的Dynamics组织结构,以及作为微软注册/金牌合作伙伴可以具体享受到的额外服务及操作流程。午后的技术座谈会有售后技术服务部门的Clifford Zhang (张立岩) 和 Vivien Zhou (周维) 介绍了CRM 4.0性能优化和最佳部署实践方面的知识。 最后要感谢与会的合作伙伴代表在百忙中抽出时间来参加这个技术活动会,如果大家反馈好我们期待争取预算把此种会议办成定期的,同时也期望能有更多的合作伙伴能加入!另外要感谢在微软MBS市场销售部Emily Wang穿针引线,和MBS售后服务部服务专案经理Eric Wang (王晨)的大力张罗组织!  本次活动的资料可以在附件中下载。  thanks Clifford CRM服务部门及流程介绍.zip


MSCRM用什么身份来执行工作流中的操作

MSCRM中的所有操作都需要有身份验证, 工作流中的所有操作也不例外.  本文介绍了这方面的规则.   当工作流是自动运行, 即被创建、修改、分派等动作触发的, 则运行其工作流步骤使用的身份是该工作流的创建者。   当工作流是手动通过使用“运行工作流”菜单触发的, 则运行其工作流步骤使用的身份是手动触发工作流的用户。   前一种情况, 需要保证工作流的创建者有足够的权限运行工作流的所有步骤; 后一种情况, 则手动触发工作流的用户不但要有触发工作流的权限, 还要有执行工作流中所有步骤的权限.  如不符合以上条件, 工作流会失败.   以上的规则保证了CRM的安全规则的严密性, 需要大家在设计工作流时考虑到.   Thanks,Chris