如何检索附加到 CRM 2016 服务器端表单的 Javascript 事件的名称
How to retrieve name of Javascript events attached to form in CRM 2016 server side
我正在尝试从服务器端检索附加到特定实体表单的所有 Javascript events/libraries。
我能够使用查询表达式检索该特定实体的所有形式
QueryExpression q = new QueryExpression("systemform");
q.ColumnSet = new ColumnSet() { AllColumns = true };
q.Criteria.AddCondition(new ConditionExpression("objecttypecode", ConditionOperator.Equal, "account"));
EntityCollection ec = serviceProxy.RetrieveMultiple(q);
我只需要知道附加到 CRM 表单中的 OnLoad 或 OnSave 事件的 Javascript 库。
仅供参考。 systemform 对象不包含实体表单。它包含仪表板 - https://msdn.microsoft.com/en-us/library/gg334669.aspx
要获得所需内容,您必须获得包含表单的实体元数据。表单的描述是一个 Xml,其中包含您需要的内容。
查询表单上的 formxml 属性将为您提供所需的信息。例如获取联系表上的所有属性、事件和函数名称:
var attributeEventsDetails =
XDocument.Parse(xrmServiceContext.SystemFormSet.FirstOrDefault(form => form.Name == "contact").FormXml)
.Descendants("event")
.Select(descendants =>
new
{
AttributeName = descendants.Attribute("attribute"),
EventName = descendants.Attribute("name"),
FunctionName =
descendants.Descendants()
.FirstOrDefault(childDesc => childDesc.Name == "Handler")
.Attribute("functionName")
});
我正在尝试从服务器端检索附加到特定实体表单的所有 Javascript events/libraries。
我能够使用查询表达式检索该特定实体的所有形式
QueryExpression q = new QueryExpression("systemform");
q.ColumnSet = new ColumnSet() { AllColumns = true };
q.Criteria.AddCondition(new ConditionExpression("objecttypecode", ConditionOperator.Equal, "account"));
EntityCollection ec = serviceProxy.RetrieveMultiple(q);
我只需要知道附加到 CRM 表单中的 OnLoad 或 OnSave 事件的 Javascript 库。
仅供参考。 systemform 对象不包含实体表单。它包含仪表板 - https://msdn.microsoft.com/en-us/library/gg334669.aspx
要获得所需内容,您必须获得包含表单的实体元数据。表单的描述是一个 Xml,其中包含您需要的内容。
查询表单上的 formxml 属性将为您提供所需的信息。例如获取联系表上的所有属性、事件和函数名称:
var attributeEventsDetails =
XDocument.Parse(xrmServiceContext.SystemFormSet.FirstOrDefault(form => form.Name == "contact").FormXml)
.Descendants("event")
.Select(descendants =>
new
{
AttributeName = descendants.Attribute("attribute"),
EventName = descendants.Attribute("name"),
FunctionName =
descendants.Descendants()
.FirstOrDefault(childDesc => childDesc.Name == "Handler")
.Attribute("functionName")
});