我设法集成了代码,使我能够从插件中的 Dataverse 表下载文件,并且我可以在此文档上执行自动化任务
private static byte[] DownloadFile(IOrganizationService orgService, string entityName, Guid recordGuid, string fileAttributeName)
{
var initializeFileBlocksDownloadRequest = new InitializeFileBlocksDownloadRequest
{
Target = new EntityReference(entityName, recordGuid), FileAttributeName = fileAttributeName
};
var initializeFileBlocksDownloadResponse = (InitializeFileBlocksDownloadResponse)orgService.Execute(initializeFileBlocksDownloadRequest);
DownloadBlockRequest downloadBlockRequest = new DownloadBlockRequest
{
FileContinuationToken = initializeFileBlocksDownloadResponse.FileContinuationToken
};
var downloadBlockResponse = (DownloadBlockResponse)orgService.Execute(downloadBlockRequest);
return downloadBlockResponse.Data;
}
但是在我完成自动化任务后,我希望将此文件下载到触发插件的人的本地下载目录,据我所知,您可以使用 File.WriteAllBytes(
你不能。插件代码在服务器端运行。服务器无权访问用户的本地存储。如果它可以访问,这将是一个重大的安全问题。
但是,
InitializeFileBlocksDownloadRequest
和DownloadBlockRequest
实际上可以从JavaScript调用。编写一个脚本,使用这些请求来获取数据,并且可以通过功能区按钮调用该脚本。