删除角色:系统定制员产生的问题和解决方法

MSCRM3.0系统定制员角色问题修复
本文提供了解决MSCRM3.0系统中删除系统定制员角色后导致无法客户化的问题方法。包括两种解决途径:一是重新创建相同角色;二是通过SQL脚本重建角色权限。

MSCRM3.0系统自带角色中,MS允许删除系统定制员角色,但是删除该角色后出现无法
客户化情况,因为创建实体的时候系统会自动为系统定制员角色赋予权限。系统定制员角色不存在所以就导致无法客户化。
解决方法一:
一、备份数据库
二、创建一个角色 角色名称:系统定制员 业务部门 选择 顶级部门
三、打开查询分析器 运行以下代码

2010080416295567.jpg

注:以上方法请不要用于产品环境,不确保不会出现其他问题。

解决方法二:
一、备份数据库
二、打开查询分析器 运行以下代码

 1None.gifcreate function dbo.GetPrivilegeDepthMask(@isbasic bit@islocal bit@isdeep bit@isglobal bit@parentRoleId uniqueidentifier)returns int as
  2None.gif
  3None.gifbegin 
  4None.gif
  5None.gifdeclare @mask int 
  6None.gif
  7None.gifselect @mask = 0 
  8None.gif
  9None.gif 
 10None.gif
 11None.gifif (@isbasic <> 0
 12None.gif
 13None.gifbegin 
 14None.gif
 15None.gifif (@parentRoleId is null
 16None.gif
 17None.gifbegin 
 18None.gif
 19None.gifselect @mask = 1 
 20None.gif
 21None.gifend 
 22None.gif
 23None.gifif (@parentRoleId is not null
 24None.gif
 25None.gifbegin 
 26None.gif
 27None.gifselect @mask = 0x00000010 
 28None.gif
 29None.gifend 
 30None.gif
 31None.gifend 
 32None.gif
 33None.gifif (@islocal <> 0
 34None.gif
 35None.gifbegin 
 36None.gif
 37None.gifif (@parentRoleId is null)
 38None.gif
 39None.gifbegin 
 40None.gif
 41None.gifselect @mask = 2 
 42None.gif
 43None.gifend 
 44None.gif
 45None.gifif (@parentRoleId is not null
 46None.gif
 47None.gifbegin 
 48None.gif
 49None.gifselect @mask = 0x00000020 
 50None.gif
 51None.gifend 
 52None.gif
 53None.gifend 
 54None.gif
 55None.gifif (@isdeep <> 0
 56None.gif
 57None.gifbegin 
 58None.gif
 59None.gifif (@parentRoleId is null
 60None.gif
 61None.gifbegin 
 62None.gif
 63None.gifselect @mask = 4 
 64None.gif
 65None.gifend 
 66None.gif
 67None.gifif (@parentRoleId is not null
 68None.gif
 69None.gifbegin 
 70None.gif
 71None.gifselect @mask = 0x00000040 
 72None.gif
 73None.gifend 
 74None.gif
 75None.gifend 
 76None.gif
 77None.gifif (@isglobal <> 0
 78None.gif
 79None.gifbegin 
 80None.gif
 81None.gifif (@parentRoleId is null
 82None.gif
 83None.gifbegin 
 84None.gif
 85None.gifselect @mask = 8 
 86None.gif
 87None.gifend 
 88None.gif
 89None.gifif (@parentRoleId is not null
 90None.gif
 91None.gifbegin 
 92None.gif
 93None.gifselect @mask = 0x00000080 
 94None.gif
 95None.gifend 
 96None.gif
 97None.gifend 
 98None.gif
 99None.gif 
100None.gif
101None.gifreturn @mask 
102None.gif
103None.gifend 
104None.gif
105None.gifgo 
106None.gif
107None.gif 
108None.gif
109None.gifdeclare @rootBiz uniqueidentifier 
110None.gif
111None.gifdeclare @rootId uniqueidentifier 
112None.gif
113None.gifdeclare @organizationid uniqueidentifier 
114None.gif
115None.gif 
116None.gif
117None.gifdeclare @roleTemplateId uniqueidentifier 
118None.gif
119None.gifselect @roleTemplateId = '119F245C-3CC8-4B62-B31C-D1A046CED15D' 
120None.gif
121None.gifdeclare @roleTemplateName nvarchar(256
122None.gif
123None.gifselect @roleTemplateName = Name from RoleTemplateBase where RoleTemplateId = @roleTemplateId 
124None.gif
125None.gif 
126None.gif
127None.gifdeclare @parentRoleId uniqueidentifier 
128None.gif
129None.gifselect @parentRoleId = null 
130None.gif
131None.gif 
132None.gif
133None.gifdeclare @roleid uniqueidentifier 
134None.gif
135None.gifselect @roleid = null 
136None.gif
137None.gif 
138None.gif
139None.gifselect @rootBiz = BusinessUnitId from BusinessUnitBase where ParentBusinessUnitId is null 
140None.gif
141None.gifdeclare c cursor FORWARD_ONLY READ_ONLY for select businessunitid from dbo.GetSubsidiaryBusinesses(@rootBizorder by depth 
142None.gif
143None.gifopen c 
144None.gif
145None.giffetch next from c into @rootId 
146None.gif
147None.gifwhile (@@fetch_status = 0
148None.gif
149None.gifbegin 
150None.gif
151None.gif-- Get ParentRoleId 
152None.gif
153None.gifselect @parentRoleId = RoleId from RoleBase where BusinessUnitId = (select ParentBusinessUnitId from BusinessUnitBase where BusinessUnitId = @rootIdand RoleTemplateId = @roleTemplateId select @roleid = RoleId from RoleBase where BusinessUnitId = @rootId and RoleTemplateId = @roleTemplateId 
154None.gif
155None.gifif (@roleid is null
156None.gif
157None.gifbegin 
158None.gif
159None.gifselect @roleid = newid() 
160None.gif
161None.gifinsert into RoleBase(RoleId, RoleTemplateId, OrganizationId, DeletionStateCode, Name, BusinessUnitId, CreatedOn, ModifiedOn, CreatedBy, ModifiedBy, ParentRoleId) values(@roleid@roleTemplateId@organizationid0@roleTemplateName@rootId, getutcdate(), getutcdate(), nullnull@parentRoleId
162None.gif
163None.gifend 
164None.gif
165None.gifdelete from RolePrivileges where RoleId = @roleid 
166None.gif
167None.gifinsert into RolePrivileges(RoleId, PrivilegeId, PrivilegeDepthMask) 
168None.gif
169None.gifselect @roleid, rtp.PrivilegeId, dbo.GetPrivilegeDepthMask(rtp.IsBasic, rtp.IsLocal, rtp.IsDeep, rtp.IsGlobal, @parentRoleIdfrom RoleTemplatePrivileges rtp where rtp.RoleTemplateId = @roleTemplateId 
170None.gif
171None.giffetch next from c into @rootId 
172None.gif
173None.gifselect @roleid = null 
174None.gif
175None.gifend 
176None.gif
177None.gifclose c 
178None.gif
179None.gifdeallocate c

 

      Techsun(天正计算机服务限公司 techsun.com)致力微软商务解决方案及电子商务的研究与开发。Techsun作为微软CRM金牌认证合作伙伴,并且拥有中国区域2位微软CRM MVP(微软最有价值专家),代表了我们在微软CRM技术应用的深度及对客户提供方案实施能力的承诺。

     业务咨询或服务建议,请拔打全国免费服务热线:800-830-9740。

 

转载于:https://www.cnblogs.com/techsun/archive/2010/08/04/1792341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值