如何检索附加到 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")
                        });