C# Dynamics 365:如何获取表单元数据?

C# Dynamics 365:如何获取表单元数据?,c#,dynamics-crm,microsoft-dynamics,C#,Dynamics Crm,Microsoft Dynamics,如何通过C获取表单元数据?我需要获得关于特定表单元素的所有OnChange事件处理程序的信息,通过在C上编写的控制台应用程序查看底部的屏幕。我知道如何获取实体元数据,但我在中没有看到关于其表单的任何信息 这些事件并没有存储在数据库中以便随时访问,因为它们存储在formXML中,并且不确定我们是否可以轻松地访问这些事件 您仍然可以查询formXML/formJson的实体表单元数据,并对其进行解析以供自己使用 https://crmorg.crm.dynamics.com/api/data/v9.

如何通过C获取表单元数据?我需要获得关于特定表单元素的所有OnChange事件处理程序的信息,通过在C上编写的控制台应用程序查看底部的屏幕。我知道如何获取实体元数据,但我在中没有看到关于其表单的任何信息


这些事件并没有存储在数据库中以便随时访问,因为它们存储在formXML中,并且不确定我们是否可以轻松地访问这些事件

您仍然可以查询formXML/formJson的实体表单元数据,并对其进行解析以供自己使用

https://crmorg.crm.dynamics.com/api/data/v9.1/systemforms?$select=formjson,formxml&$filter=name%20eq%20%27Account%27
那个博客有一个sql查询,从on prem数据库中提取formXML

WITH x AS 
(
       SELECT FormId, e.Name, CAST(FormXml AS Xml) FormXml 
       FROM SystemForm sf
       JOIN Entity e ON sf.ObjectTypeCode = e.ObjectTypeCode AND e.OverwriteTime = '1900-01-01 00:00:00.000'
       WHERE e.Name = 'Account'
)
, y AS 
(
       SELECT 
              x.FormId,
              x.Name Entity, 
              x.FormXml, -- Uncomment to see the full form xml
              t.c.value('@name', 'varchar(max)') HandlerName,
              t.c.value('@attribute', 'varchar(max)') AttributeName,
              a.b.value('@libraryName', 'varchar(max)') Library,
              a.b.value('@functionName', 'varchar(max)') FunctionName,
              a.b.value('@enabled', 'varchar(16)') [Enabled],
              t.c.query('.') [t.c.query], 
              a.b.query('.') [a.b.query]
       FROM  x
       CROSS APPLY x.FormXml.nodes('/form/events/event') T(c)
       OUTER APPLY t.c.nodes('Handlers/Handler') a(b)
       WHERE t.c.value('count(Handlers/Handler)', 'int') > 0
)

SELECT 
       *
FROM y 
-- WHERE Enabled = 'true' -- This will exclude non-attribute related rows
ORDER BY y.Entity, y.HandlerName, y.Library, y.FunctionName

我使用的是v8.2,出现了一个错误:在类型“Microsoft.Dynamics.CRM.systemform”上找不到名为“formjson”的属性。是否可以对v8.2而不是v9.1执行同样的操作?如果我将您的web请求用于我的端点,我会收到此错误。@AndreyBushman然后使用此pls:crmorg.crm.dynamics.com/api/data/v8.2/systemforms?$select=formxml&$filter=name%20eq%20%27Account%27I在这种情况下得到空数组:{@odata.context:https://crmdev.softline.com/api/data/v8.2/$metadatasystemformsformxml,value:[]}我发现了这种行为的原因:我要使用本地化名称,即使用öППзззззззззззззз!