MSCRM3.0中用编码方式自动共享联系人

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

 1 public   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 --  =============================================
 5 ALTER   PROCEDURE   [ dbo ] . [ prc_shareAccountContact ]
 6     ( @uid   uniqueidentifier ,
 7       @unit   uniqueidentifier ,
 8       @type   int )     -- type 1:客户;2:联系人
 9 AS
10 BEGIN
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
73 END
74
75
76
77
78

转载于:https://www.cnblogs.com/yanggao86/archive/2008/05/29/1210105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值