【问题标题】:Get Annotation Id from in a plugin从插件中获取注释 ID
【发布时间】:2018-12-04 19:39:12
【问题描述】:

我有一个自定义实体 A,其中包含一个注释列(支持上传文件的内置实体)。我希望能够读取触发插件时获得的实体记录的注释 ID。

实体具有除任何形式的注释之外的所有属性,没有引用实体。值得注意的是,注释实体在关系选项卡中列出,但在动态在线的字段视图中没有对注释字段的引用。

如何在自定义插件中查找或获取实体 A 中的注释 ID。

插件触发来自自定义实体 A 的创建消息,因为它具有我想要处理的所有列以及在注释实体中上传的文件。

我查看了示例 sdk 示例,但它没有用,因为我想在检索之前先获取注释 id。

https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg328429(v=crm.8)

感谢任何指针或示例。

【问题讨论】:

  • Annotation (Notes) 类似于 subgrid 以捕获 1:N 记录,但 UI 不同。当然 - 您在实体 A 中看不到查找列(可能是自定义关系??)何时创建记录以及何时上传附件?

标签: plugins dynamics-crm microsoft-dynamics dynamics-crm-online


【解决方案1】:

您的自定义实体与注释实体之间存在一对多关系,因为每个自定义实体记录都可以有许多注释(和附件)。

您的插件应该创建一个新的注释记录,并将该注释记录上的objectidobjecttypecode 字段设置为刚刚创建的当前自定义记录。

这是一个上传简单文本文件并将其与刚刚创建的自定义实体记录相关联的示例:

var newId = <new just-created custom entity record id goes here>;

var sampleFileText = "Hello World";
var sampleFileBytes = Encoding.ASCII.GetBytes(sampleText);
var sampleFileBase64 = System.Convert.ToBase64String(fileBytes);

var annotation = new Entity("annotation");
annotation.Attributes["objectid"] = new EntityReference("new_entity", newId); // <- Your custom entity name and new id here
annotation.Attributes["objecttypecode"] = "new_entity"; // <- Your custom entity name here
annotation.Attributes["subject"] = "Uploaded File";
annotation.Attributes["documentbody"] = sampleFileBase64 ;
annotation.Attributes["mimetype"] = @"text/plain";
annotation.Attributes["notetext"] = "Uploaded File";
annotation.Attributes["filename"] = "UploadedFile.txt";

Service.Create(annotation);

【讨论】:

    猜你喜欢
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2021-12-11
    • 2011-05-20
    相关资源
    最近更新 更多