1方法一:调用CRM3.0标准的方式:

 1public static void share(string contactid,string teamid)
 2        {
 3            CrmService service = new CrmService();
 4            System.Net.NetworkCredential credential = new System.Net.NetworkCredential();
 5            // Create the SecurityPrincipal object.
 6            SecurityPrincipal principal = new SecurityPrincipal();
 7            principal.Type = SecurityPrincipalType.Team;
 8            //团队华南代销团队
 9            principal.PrincipalId = new Guid(teamid);
10            PrincipalAccess principalAccess = new PrincipalAccess();
11            principalAccess.Principal = principal;
12
13            //principalAccess.AccessMask = AccessRights.DeleteAccess;
14            //principalAccess.AccessMask = AccessRights.ReadAccess;        
15            principalAccess.AccessMask = AccessRights.WriteAccess;
16            //principalAccess.AccessMask = AccessRights.DeleteAccess;
17            //principalAccess.AccessMask = AccessRights.AssignAccess;
18            //principalAccess.AccessMask = AccessRights.AppendAccess;
19            //principalAccess.AccessMask = AccessRights.AppendToAccess;
20
21            TargetOwnedContact target = new TargetOwnedContact();
22            
23            // EntityId is the GUID of the account to which access 
24            // is being granted.
25            //把联系人共享
26            target.EntityId = new Guid(contactid);
27            GrantAccessRequest grant = new GrantAccessRequest();
28
29            grant.PrincipalAccess = principalAccess;
30            grant.Target = target;
31
32            GrantAccessResponse granted = (GrantAccessResponse)service.Execute(grant);
33        }

方法二:写一个公共的存储过程做共享,在CALLOUT 中调用
 1-- =============================================
 2-- Create date: 2008.05.22
 3-- Description:    客户、联系人共享
 4-- =============================================
 5ALTER PROCEDURE [dbo].[prc_shareAccountContact]
 6    (@uid uniqueidentifier,
 7     @unit uniqueidentifier,
 8     @type int)    --type 1:客户;2:联系人
 9AS
10BEGIN
11    SET NOCOUNT ON;
12    --联系人  渠道总部_华南区        共享给华南代销团队
13    --联系人  渠道总部_华北区        共享给华北代销团队
14    --联系人  渠道总部_华东区        共享给华东代销团队
15    --联系人  机构理财部_华东区    共享给华东直销团队
16    --客户    机构理财部_华东区    共享给华东直销团队
17
18    if not exists(select * from fundcrm_MSCRM.dbo.BusinessUnitBase where businessunitid = @unit and name in('渠道总部_华南区','渠道总部_华北区','渠道总部_华东区','机构理财部_华东区'))
19    begin
20        return
21    end
22    
23    if @type=1 --客户
24    begin
25        INSERT INTO fundcrm_MSCRM.dbo.PrincipalObjectAccess
26           (PrincipalId, ObjectId, ObjectTypeCode, PrincipalTypeCode,
27             AccessRightsMask, ChangedOn, InheritedAccessRightsMask, PrincipalObjectAccessId,FLAG)
28        select top 1 (select top 1 teamid from fundcrm_MSCRM.dbo.TeamBase where [Name]='华东直销团队'),
29            @uid,1,9,786455,getdate(),0,newId(),5
30          from sys.databases
31         where exists (select 1 
32                         from dbo.BusinessUnitBase 
33                        where BusinessUnitId = @unit 
34                          and name='机构理财部_华东区')
35           and not exists(select 1 
36                            from fundcrm_MSCRM.dbo.PrincipalObjectAccess
37                           where principalid=(select top 1 TeamId 
38                                                  from fundcrm_MSCRM.dbo.TeamBase 
39                                                 where [Name]='华东直销团队')
40                             and objectid=@uid
41                           )
42    end
43    else if @type=2 --联系人
44    begin
45        declare @uname nvarchar(100)
46        select @uname=name from dbo.BusinessUnitBase where BusinessUnitId = @unit 
47
48        INSERT INTO fundcrm_MSCRM.dbo.PrincipalObjectAccess
49           (PrincipalId, ObjectId, ObjectTypeCode, PrincipalTypeCode,
50             AccessRightsMask, ChangedOn, InheritedAccessRightsMask, PrincipalObjectAccessId,FLAG)
51        select top 1 (select top 1 TeamId 
52                      from fundcrm_MSCRM.dbo.TeamBase 
53                     where [Name]= case when @uname='机构理财部_华东区' then '华东直销团队' 
54                                        when @uname='渠道总部_华南区' then '华南代销团队' 
55                                        when @uname='渠道总部_华北区' then '华北代销团队' 
56                                        when @uname='渠道总部_华东区' then '华东代销团队' 
57                                   end),
58            @uid,2,9,786455,getdate(),0,newId(),7
59          from sys.databases
60         where not exists(select 1 
61                            from fundcrm_MSCRM.dbo.PrincipalObjectAccess
62                           where principalid=(select top 1 TeamId 
63                                                from fundcrm_MSCRM.dbo.TeamBase 
64                                               where [Name]= case when @uname='机构理财部_华东区' then '华东直销团队' 
65                                                                  when @uname='渠道总部_华南区' then '华南代销团队' 
66                                                                  when @uname='渠道总部_华北区' then '华北代销团队' 
67                                                                  when @uname='渠道总部_华东区' then '华东代销团队' 
68                                                              end
69                                              )
70                             and objectid=@uid
71                          )
72    end
73END
74
75
76
77
78
posted on 2008-05-29 16:46  小羔羊  阅读(290)  评论(0编辑  收藏  举报