0

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

在此处输入图像描述

4

3 回答 3

2

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

于 2012-05-21T12:08:37.563 回答
2

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

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

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

var myNotesText = document.getElementById("notescontrol").contentWindow.document.getElementById("NotesTable").children[1].children[4].children[0].innerText;
于 2012-05-29T12:58:04.950 回答
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);
}

在哪里:

entity - 您要附加注释的实体的 (EntityReference)。

主题- (字符串)笔记的主题。

text - (字符串)注释的正文。

如果要附加 MS Office 文档,则需要更改isdocumentmimetype参数。

于 2012-05-22T05:16:58.077 回答