首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Azure函数查询Dataverse审计日志

从Azure函数查询Dataverse审计日志
EN

Stack Overflow用户
提问于 2021-06-23 15:59:18
回答 1查看 754关注 0票数 0

我对此很陌生,所以请原谅我

我们有一个需求Every X days, query changes made in tables/records in dataverse and send email with these changes

根据我的计算结果,这可以用完成,所以每7天运行一个HTTP触发器,触发一个C#函数,该函数查询审计日志,并发送一封电子邮件,其中包含已更改的内容表。

我在我的测试环境中进行了审计日志记录,它显示了对一个表所做的更改,这只是我不确定的其余部分。

我遇到的主要问题是如何从C# Azure函数应用程序中查询dataverse审计日志?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 22:12:55

使用Azure函数

您可以使用audits实体集名称对Dataverse执行HTTP请求。请求看起来类似于:

代码语言:javascript
复制
GET /api/data/v9.2/audits HTTP/1.1
Host: {organizationUniqueName}.{region}.dynamics.com
Authorization: Bearer eyJ0eXAi...

注意,您需要在请求中提供一个承载身份验证令牌(有关如何这样做的详细信息,请参见在Microsoft中使用OAuth身份验证。有关查询Dataverse的全面指南,请参阅使用Web查询数据

或者,您可以使用下面的NuGet包中的任何一个来使用C#查询Dataverse。

  1. Microsoft.CrmSdk.CoreAssemblies (仅适用于Azure函数运行时1.x)
  2. Microsoft.PowerPlatform.Dataverse.Client (公共预览)与运行时2.x+一起工作)

考虑到您选择使用的包,C#代码看起来大致相同,除了适用于第二个NuGet包的ServiceClient和应用于第一个包的CrmServiceClient之外。

代码语言:javascript
复制
var client = new CrmServiceClient(connectionString);

var auditLogsQuery =
    @"<fetch top='50' >
        <entity name='audit' >
            <filter>
            <condition attribute='operation' operator='eq' value='1' />
            <condition attribute='createdon' operator='last-x-hours' value='1' />
            </filter>
        </entity>
    </fetch>";

EntityCollection auditLogs = client.RetrieveMultiple(new FetchExpression(auditLogsQuery));

使用电源自动化

鉴于您已经提到了使用Power,我建议您考虑使用它来满足您的需求。在Dataverse中查询数据是Power通过内置的Dataverse连接器自动生成的.

假设您有下面的获取XML查询来提取操作为Create (1)并在最后一小时内执行的所有审计日志。

提示:您可以使用XrmToolBox中的XrmToolBox插件来编写这些查询。不支持在高级查找中查询审计日志。

代码语言:javascript
复制
<fetch top="50" >
  <entity name="audit" >
    <filter>
      <condition attribute="operation" operator="eq" value="1" />
      <condition attribute="createdon" operator="last-x-hours" value="1" />
    </filter>
  </entity>
</fetch>

使用Dataverse List rows操作,您可以指定要查询Audits表,并在操作的Fetch Xml Query属性中提供上述Fetch Xml Query查询。关于一个例子,见下文:

这个查询的结果现在可以在Power自动云流中使用。例如,这里我使用Compose操作为返回的审计日志编写OperationRecord TypeRecord IDChanged Field

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68103354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档