0

Dynamics 365 アクティビティ タスク レコードに、「テストの説明の値」という値の説明が含まれています。この値をプラグインで取得したいと考えています。

私の主なコードの概要を以下に示します。

public void Execute(IServiceProvider serviceProvider)
{
    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService((typeof(IPluginExecutionContext)));
    IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
    IOrganizationService service = factory.CreateOrganizationService(context.UserId);
    ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

    if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
    {
        Entity task = (Entity)context.InputParameters["Target"];
        if (task.LogicalName == "task")
        {
            ColumnSet cs = new ColumnSet(new string[] { "description", "ownerid" });
            service.Retrieve("task", task.Id, cs);
            foreach (KeyValuePair<String, Object> attribute in task.Attributes)
            {
                tracingService.Trace(attribute.Key + ": " + attribute.Value);
            }
        }
    }
}

foreach ループを繰り返すと、task.Attributesに説明のキーが含まれておらず、 を使用して説明の現在の値を取得できないことがわかりtask["description"]ます。どちらも System.Collections.Generic.KeyNotFoundException を返します。

プラグインのアクティビティ タスク レコードの説明フィールドの現在の値を取得することはできますか? どのように?

4

1 に答える 1