在CRM 2011 Javascript中设置并获取Notes字段

时间:2012-05-21 11:00:23

标签: javascript dynamics-crm dynamics-crm-2011 dynamics-crm-online

我需要将Notes字段设置为CRM 2011表单中其他实体中的Notes字段值。所以,我需要知道如何使用Javascript获取和设置Notes字段。而且我无法在该部分中获得Notes字段的名称,如下图所示。

enter image description here

3 个答案:

答案 0 :(得分:2)

CRM中的注释被称为“注释”。您可以像创建任何其他CRM记录类型一样创建注释,然后将该注释与感兴趣的实体记录相关联。我没有尝试明确地从javascript中检索笔记字段(我通常是通过插件来完成的,这在SDK中有记录)。但是,我认为没有理由不能执行oData查询来检索关联实体记录的实体类型为X的注释。

答案 1 :(得分:2)

好的,这里需要两种方法。

@Philip_Rich指出,现有记录的注释一旦失去焦点就会被创建,因此可以被查询。您应该能够很容易地找到现有代码(如果没有,请在此处询问)。

您自己承认,对于新的(未保存的)记录,在保存父记录之前不会保存注释。此时没有受支持的方法来访问notes字段中的值,但是这段令人讨厌的代码应该获得您寻找的值。请注意,由于它不受支持,因此容易受到表单中DOM更改的影响:

var myNotesText = document.getElementById("notescontrol").contentWindow.document.getElementById("NotesTable").children[1].children[4].children[0].innerText;

答案 2 :(得分:1)

在JS中,您不需要分配,只需创建一个注释。

但是你可以先定义一个创建的实体,然后才能附加一个注释。

注释可以是注释和附件两种类型。

以下是如何从JS创建简单(文本)注释(注释)的示例。

function _createAnnotation(entity, subject, text) {
    var orgService = GetOrganizationService();
    var annotation = {};
    annotation.Name = "annotation";
    annotation._properties = [];
    annotation._propertyTypes = [];
    annotation._properties['objectid'] = entity;
    annotation._propertyTypes['objectid'] = 'lookup';
    annotation._properties['subject'] = subject;
    annotation._propertyTypes['subject'] = 'string';
    annotation._properties['notetext'] = text;
    annotation._propertyTypes['notetext'] = 'string';
    annotation._properties['isdocument'] = 'false';
    annotation._propertyTypes['isdocument'] = 'boolean';
    annotation._properties['mimetype'] = 'text/html';
    annotation._propertyTypes['mimetype'] = 'string';
    orgService.Create(annotation);
}

其中:

要附加备注的实体的

实体 - (EntityReference)。

主题 - (字符串)注释的主题。

文字 - (字符串)笔记正文。

如果要附加MS office文档,则需要更改 isdocument mimetype 参数。