Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dynamics CRM-工作流中新创建实体的访问属性_C#_Workflow_Dynamics Crm_Dynamics Crm 4 - Fatal编程技术网

C# Dynamics CRM-工作流中新创建实体的访问属性

C# Dynamics CRM-工作流中新创建实体的访问属性,c#,workflow,dynamics-crm,dynamics-crm-4,C#,Workflow,Dynamics Crm,Dynamics Crm 4,我正在创建一个Dynamics CRM工作流程序集,当在任何类型的其他记录上创建新便笺时将执行该程序集。我需要能够访问新创建的Note实体上的属性Prop1以完成其他任务 以前我只访问从字段或用户输入的值,但从未访问新创建实体的属性。任何指导都将不胜感激 更新: 这是关于CRM 4.0的 等待时的更多信息: 最终,此工作流程序集将创建一封电子邮件,其中包含指向新创建的注释记录的父实体的链接。我需要获取的属性是注释ID。创建注释记录后,我将根据新创建注释的注释ID检索ObjectId和Object

我正在创建一个Dynamics CRM工作流程序集,当在任何类型的其他记录上创建新便笺时将执行该程序集。我需要能够访问新创建的Note实体上的属性Prop1以完成其他任务

以前我只访问从字段或用户输入的值,但从未访问新创建实体的属性。任何指导都将不胜感激

更新: 这是关于CRM 4.0的

等待时的更多信息: 最终,此工作流程序集将创建一封电子邮件,其中包含指向新创建的注释记录的父实体的链接。我需要获取的属性是注释ID。创建注释记录后,我将根据新创建注释的注释ID检索ObjectId和ObjectTypeCode。
(如果您好奇的话)

好的,那么如果您使用的是4.0自定义工作流而不是3.0标注,您应该添加工作流程序集,并使用上下文服务和工作流的执行上下文从新注释中提取值

请参阅下面的示例,了解如何使用上下文服务和当前执行上下文的ID访问记录(这应该是您的注意事项)


好的,如果您使用的是4.0自定义工作流而不是3.0详图索引,则应添加工作流程序集,并使用工作流的上下文服务和执行上下文从新注释中提取值

请参阅下面的示例,了解如何使用上下文服务和当前执行上下文的ID访问记录(这应该是您的注意事项)


您能否指定您使用的CRM版本?在这方面,3.0和4.0之间存在差异。嘿,你有没有检查过附加的GetNotes代码?这对你有用吗?很抱歉耽搁了,我不得不在别处灭火,然后才回到这个项目。是的,这给了我一个很好的机会去完成我想做的事情。非常感谢你的帮助!您能否指定您使用的CRM版本?在这方面,3.0和4.0之间存在差异。嘿,你有没有检查过附加的GetNotes代码?这对你有用吗?很抱歉耽搁了,我不得不在别处灭火,然后才回到这个项目。是的,这给了我一个很好的机会去完成我想做的事情。非常感谢你的帮助!我想感谢您提供的这个代码示例,我非常感谢。我还有一个问题。我不知道如何对notes等业务实体进行查询。我以前从未写过这样的工作流。你能给我一个关于GetNotes()内部的提示吗?再次感谢。好的,我编辑了代码以显示GetNotes()函数,希望对您有所帮助。工作流程序集是我最喜欢的MSCRM sdk功能之一。我想感谢您提供的这个代码示例,我非常感谢。我还有一个问题。我不知道如何对notes等业务实体进行查询。我以前从未写过这样的工作流。你能给我一个关于GetNotes()内部的提示吗?再次感谢。好的,我编辑了代码以显示GetNotes()函数,希望对您有所帮助。工作流程序集是我最喜欢的MSCRM sdk功能之一。
    /// <summary>
    /// The Execute method is called by the workflow runtime to execute an activity.
    /// </summary>
    /// <param name="executionContext"> The context for the activity</param>
    /// <returns></returns>
    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
    {

        // Get the context service.
        IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
        IWorkflowContext context = contextService.Context;

        // Use the context service to create an instance of CrmService.
        ICrmService crmService = context.CreateCrmService(true);
        BusinessEntity newNote = GetNote(crmService, context.PrimaryEntityId);

        string noteAttrib;

         noteAttrib = newNote.Properties.Contains("AnnotationId") ? ((Lookup)newNote.Properties["annotationid"]).name.ToString() : null;

        return ActivityExecutionStatus.Closed;
    }
private BusinessEntity getNote(ICrmService service, guid noteid)
{
  // Create the column set object that indicates the fields to be retrieved.
  ColumnSet cols = new ColumnSet();

  // Set the columns to retrieve, you can use allColumns but its good practice to specify:
  cols.Attributes = new string [] {"name"};

  // Create the target object for the request.
  TargetRetrieveAnnotation target = new TargetRetrieveAnnotation();

  // Set the properties of the target object.
  // EntityId is the GUID of the record being retrieved.
  target.EntityId = noteid;

  // Create the request object.
  RetrieveRequest retrieve = new RetrieveRequest();

  // Set the properties of the request object.
  retrieve.Target = target;
  retrieve.ColumnSet = cols;

  // Execute the request.
  RetrieveResponse retrieved = (RetrieveResponse)service.Execute(retrieve);
  return RetrieveResponse;
}