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

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

CRM 中的注释在底层被称为“注释”。您可以像创建任何其他 CRM 记录类型一样创建注释,然后将该注释与感兴趣的实体记录相关联。我没有尝试从 javascript 中显式检索注释字段(我通常通过插件完成此操作,该插件记录在 SDK 中)。但是,我认为您没有理由无法执行 oData 查询来检索关联实体记录为实体类型 X 的注释。
好的,这里需要两种方法。
@Philip_Rich 指出,现有记录的注释会在它们失去焦点时立即创建,因此可以进行查询。您应该能够很容易地找到现有代码(如果没有,请在此处询问)。
您自己承认,对于新的(未保存的)记录,在保存父记录之前不会保存注释。此时没有支持访问注释字段中的值的方法,但是这段讨厌的代码应该会获得您寻求的值。请注意,由于它不受支持,因此很容易受到表单中 DOM 更改的影响:
var myNotesText = document.getElementById("notescontrol").contentWindow.document.getElementById("NotesTable").children[1].children[4].children[0].innerText;
在 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 文档,则需要更改isdocument和mimetype参数。