You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用插件将D365实体的Modified By列更新为Owner值?能否修改该列?

Dynamics 365中修改Modified By字段的实现方案

可以修改Modified By字段,但需要通过特定的插件注册方式绕过系统限制,具体实现如下:

  • 核心逻辑:Modified By属于系统托管字段,默认创建记录时会被系统自动设为当前操作用户,但通过Pre-Create阶段的插件,利用克隆上下文的方式可以覆盖这个默认行为。

  • 插件实现步骤:

    1. 注册阶段选择Pre-Create:只有在创建记录前的阶段修改,才能避免后续系统逻辑覆盖字段值。
    2. 克隆插件上下文:在插件中克隆IPluginExecutionContext,修改克隆上下文的ModifiedBy属性为Owner的ID,再通过克隆后的上下文执行创建操作。
    3. 代码示例(C#):
    using Microsoft.Xrm.Sdk;
    using System;
    
    public class SetModifiedByToOwner : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
    
            // 避免循环触发
            if (context.Depth > 1) return;
    
            if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity targetEntity)
            {
                if (targetEntity.Contains("ownerid"))
                {
                    var ownerRef = (EntityReference)targetEntity["ownerid"];
                    // 克隆上下文并修改ModifiedBy
                    var clonedContext = context.Clone();
                    clonedContext.ModifiedBy = ownerRef.Id;
                    clonedContext.InitiatingUserId = ownerRef.Id; // 可选:同步修改InitiatingUserId保持一致性
    
                    // 使用克隆上下文创建服务
                    var clonedService = serviceFactory.CreateOrganizationService(clonedContext.UserId);
                    // 执行创建操作
                    clonedService.Create(targetEntity);
                    // 取消原操作,避免重复创建
                    context.InputParameters["Target"] = null;
                }
            }
        }
    }
    
    1. 注册注意事项:
      • 设置插件的执行顺序为最高优先级,确保在系统默认逻辑前执行。
      • 选择Run As为系统管理员或具有特权的用户,保证有修改系统字段的权限。
      • 添加注册过滤条件(如针对特定实体),避免影响其他实体的创建逻辑。

内容的提问来源于stack exchange,提问作者Shafqat Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 16:22:51