我需要将 Notes 字段设置为 CRM 2011 表单中其他实体中的 Notes 字段值。所以,我需要知道如何使用 Javascript 获取和设置 Notes 字段。而且我无法在该部分中获取 Notes 字段的名称,如下图所示。
3 回答
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参数。