因为受到权限的限制,在DataVerse里,即使管理员也不能检索到其他人做的个人view,想要取得的话就需要伪装成view的作成者来发起请求
https://learn.microsoft.com/zh-cn/power-apps/developer/data-platform/impersonate-another-user
通过Powerautomate来实现的话,具体步骤如下:
1,先创建一个数组变量
2,检索user取得user的azureactivedirectoryobjectid。
其中,系统自带的user,环境内无效user,没有security role的user无法取得个人view情报,将其过滤
Filter:(azureactivedirectoryobjectid ne null and isdisabled eq false) and (systemuserroles_association/any(o1:(o1/roleid ne null)))
Expend:systemuserroles_association($select=name)
3,通过HTTP with Azure AD来请求userquery的API,
连接时Base Resource URL和Azure AD Resource URI输入环境URL地址,如:https://XXX.crm7.dynamics.com/
请求URL:https://XXX.crm7.dynamics.com/api/data/v9.2/userqueries?$filter=querytype eq 0&$select=name,fetchxml&$expand=createdby($select=fullname)
我这里主要取得名称,fetchxml,和作成者,取得项目可以变更
Header里追加
CallerObjectId=在2里取得的azureactivedirectoryobjectid
Content-Type = application/json; charset=utf-8
4,去除重复,
union(variables('resultQueries'), outputs('HTTP_要求を呼び出します')?['body']?['value'])
5,追加到数组变量里
6,将数组结果保存到变量里
7,将数据出力到sharepoint文件(可选)
出力后文件里的内容为json形式,可以通过excel导入json文件的方式打开,就可以转换成表格的形式了
整体Flow图: