MSCRM 原生共享功能需手動選擇記錄 → 更多操作 → 共享 → 添加用戶/團隊 → 設置權限,無法滿足「業務規則觸發自動共享」場景。本文提供完整的 自定義工作流活動 (Custom Workflow Activity) 解決方案,安裝後在工作流設計器中直接拖拽「Share To User/Team」步驟,配置目標與權限即可實現自動化共享。
ShareToUser、ShareToTeam 兩個 CodeActivity。GrantAccessRequest / ModifyAccessRequest 服務消息。[CrmPluginRegistration("ShareToUser", "Automatic Sharing", "Share To User")]
public class ShareToUser : CodeActivity
{
[Input("Target User")]
[ReferenceTarget("systemuser")]
public InArgument<EntityReference> TargetUser { get; set; }
[Input("Access Rights")]
[AttributeTarget("")]
public InArgument<AccessRights> AccessRights { get; set; } // 位掩碼枚舉
protected override void Execute(CodeActivityContext context)
{
var service = context.GetOrganizationService();
var targetEntity = context.GetTargetEntity(); // 工作流上下文主實體
var userRef = TargetUser.Get(context);
var rights = AccessRights.Get(context);
// 構建 GrantAccessRequest
var grantRequest = new GrantAccessRequest
{
Target = targetEntity.ToEntityReference(),
PrincipalAccess = new PrincipalAccess
{
Principal = userRef,
AccessMask = rights
}
};
service.Execute(grantRequest);
}
}
[Flags]
public enum AccessRights
{
None = 0,
Read = 1,
Write = 2,
Delete = 4,
Append = 16,
AppendTo = 32,
Assign = 0x80,
Share = 0x100
}
Install.bat (調用 PluginRegistrationTool 註冊程序集)。工作流條件分支中判斷業務字段 (如 AccountType = 'VIP') → 是 → 執行「Share To Team: VIP Support Team, Rights: Read/Write」。實現細粒度權限自動化。
Uninstall.bat 移除程序集註冊。BulkOperation 或自定義 SQL 作業,避免工作流超時。附件包含完整源碼 (C#)、簽名強名稱密鑰、安裝/卸載腳本、註冊工具配置 XML。歡迎下載集成到您的 CRM 專案中。