期望的行为
- 使用 Microsoft Forms 上传文件
- 获取文件内容
- 在新位置创建新文件
- 删除原始文件
实际行为
我在第 2 步遇到错误:
"body": {
"status": 404,
"message": "File not found\r\nclientRequestId: yadda-yadda\r\nserviceRequestId: yadda-yadda"
}
我试过的
在 Power Automate 流程中,触发器是:
接下来的动作是:
最后Raw Outputs
一个动作的本质是:
"body": {
"responder": "me@domain.com",
"submitDate": "7/5/2021 3:17:56 AM",
"my-text-field-01": "text string here",
"my-file-upload-field-01": [{.....}],
"my-file-upload-field-02": [{.....}],
"my-text-field-02": "text string here"
}
文件上传字段具有以下架构:
{
"name": "My File Name_Uploader Name.docx",
"link": "https://my-tenant.sharepoint.com/sites/my-team-site/_layouts/15/Doc.aspx?sourcedoc=%7B0F1C3107-32C9-4CEF-B4BA-87E57C9DC514%7D&file=My%20File%20Name_Uploader%20Name.docx&action=default&mobileredirect=true",
"id": "01NSAULIQHGEOA7SJS55GLJOUH4V6J3RIU",
"type": null,
"size": 20400,
"referenceId": "01NSAULISZJG7M56NSV5AIDUQFHG3BOBCH",
"driveId": "letters-and-numbers-here",
"status": 1,
"uploadSessionUrl": null
}
奇怪的是,此对象中的id
或值与在 SharePoint 文档库中查看文档属性时显示referenceId
的 不对应:Document ID
无论如何,我可以在流程中使用这些表达式来定位上传的文件属性:
json(body('Get_response_details')?['random-letters-and-numbers'])[0]['name']
json(body('Get_response_details')?['random-letters-and-numbers'])[0]['driveId']
json(body('Get_response_details')?['random-letters-and-numbers'])[0]['id']
我要采取的下一步行动是Get file content
。
看来这可以通过以下操作来完成:
SharePoint 连接器
获取
文件内容 使用路径获取文件内容
OneDrive for Business Connectors
获取
文件内容 使用路径获取文件内容
我想使用Get file content
(因为它似乎比必须通过硬编码路径更具动态性)。
有几篇文章建议我传递给此操作的值,因为File ID
应该是 and 的串联driveId
,id
即:
driveId
.id
来源:
移动、重命名在 Microsoft 表单中提交的
文件 使用表单“文件上传”问题类型中的文件
但是,当我尝试以下操作时:
我得到错误:
"body": {
"status": 404,
"message": "File not found\r\nclientRequestId: yadda-yadda\r\nserviceRequestId: yadda-yadda"
}
问题
我应该传递什么Get file content
作为File Identifier
?
编辑 1
看完这篇,或许File Identifier
实际上指的是一个“文件路径”,即:
/Shared Documents/Apps/Microsoft Forms/My Form Name/Question/My File Name.docx
呃,我尝试了上面的路径File Identifier
(通过使用 UI 手动选择文件)并且它有效 - 不确定如何动态创建它,因为传入动态文件名不起作用:
/Shared Documents/Apps/Microsoft Forms/My Form Name/Question/@{variables('file_upload_wor_document_name')}
编辑 2
最后一个代码片段的工作方式与File Identifier
使用 SharePoint 的使用路径连接器获取文件内容时一样。
仍然id
希望对 SharePoint/Power Automate/MS Graph 等中提到的所有不同类型以及原因进行任何澄清driveId
。id
被建议作为在某些地方使用的值。
我发现id
在不同时间无法访问相关文件是有问题的,例如,删除文件操作需要File Identifier
删除上传到 Microsoft Forms 的文件 - 而我无法从获取响应详细信息响应中访问该文件。