当我只有跟踪程序以测试执行时,D365 v9 Online上的插件失败

时间:2018-12-10 19:41:48

标签: c# dynamics-crm workflow dynamics-crm-365-v9

我在VS 2017中为自定义wf程序集进行了构建。

以下是我的代码。没有红色的花花公子,并且注册没有错误:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;
using Microsoft.Xrm.Sdk.Query;

namespace CustomerAsset
{
    public partial class CustomerAsset : CodeActivity
    {

        //public InArgument<EntityReference> CustomerAsset { get; set; }
        protected override void Execute(CodeActivityContext executionContext)
        {

            //Create the tracing service
            ITracingService tracer= executionContext.GetExtension<ITracingService>();
            tracer.Trace("Begin Plugin Execution");
            //Create the context
            IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            try
            {
                //DO WORK HERE
                Entity entity = (Entity)context.InputParameters["Target"];

                var targetCustAssOpHrsId = entity.Id;
                tracer.Trace(entity.LogicalName);
                tracer.Trace(targetCustAssOpHrsId.ToString());

                QueryExpression qe = new QueryExpression();
            }
            catch(Exception ex)
            {
                throw new InvalidPluginExecutionException("error in CustomerAsset custom workflow assembly");
                //throw new InvalidPluginExecutionException(ex);
            }
        }
    }
}

以下是我已经尝试过的内容:

  • 重新编译为.NET 4.5.2
  • 确保将核心组件定位为在线正确纠正d365 v9版本

还有其他陷阱吗?我使用的是开发指南,而不是以前的SDK,因此对我来说有点新。

从代码中可以看到。我只是在追踪。实例化跟踪器后,我进行了跟踪写,甚至没有实现。

还请注意,即时消息按需运行以测试执行情况。

1 个答案:

答案 0 :(得分:1)

您可能要检查“插件跟踪”设置是否设置为“全部”。

(“设置”>“管理”>“系统设置”>“自定义”

screenshot

您还可以尝试在代码中引发异常,以查看该异常是否注册。

在D365中更新插件程序集后,检查解决方案以确保ModifiedOn已更改。