我可以使用哪些操作通过 Azure Logic App 在 SharePoint Online 中创建文件夹?
Posted
技术标签:
【中文标题】我可以使用哪些操作通过 Azure Logic App 在 SharePoint Online 中创建文件夹?【英文标题】:Which action(s) can I use to create a folder in SharePoint Online via Azure Logic App? 【发布时间】:2017-12-06 01:56:49 【问题描述】:正如问题标题所述,我正在逻辑应用程序中寻找适当的操作来创建文件夹。此操作将执行多次——根据业务规则,每个目录执行一次。在这些文件夹中不会创建任何文件,因为逻辑应用的目的是为用户的需要准备一个模板文件夹结构。
在官方文档中,我看到有create file、create item 和list folder 操作。他们建议可能也有创建文件夹的操作(我找不到)。
如果不存在这样的操作,我可能需要使用一些 SharePoint Online API,但这将是最后的解决方案。
【问题讨论】:
【参考方案1】:我能够通过SharePoint - CreateFile 操作创建一个目录。通过文件创建操作的副作用创建目录绝对是一种肮脏的黑客攻击(顺便说一句,受a comment on MS suggestion site 启发)。此错误/功能未记录在案,因此在生产环境中依赖它可能不是一个好主意。
此外,如果我的问题需要在 SharePoint 中创建一个没有任何文件的目录,则需要使用 App Logic 中的一个额外步骤。确保使用Create File
操作提供的Id
删除文件。
如果您尝试在 preexisting TestTarget
文档库下创建一个名为 folderCreatedAsSideEffect
的目录,您的 JSON 可能如下所示。
"actions":
"Create_file":
"inputs":
"body": "@triggerBody()?['Name']",
"host": "connection": "name": "@parameters('$connections')['sharepointonline']['connectionId']" ,
"method": "post",
"path": "/datasets/@encodeURIComponent(encodeURIComponent('https://MY.sharepoint.com/LogicApps/'))/files",
"queries":
"folderPath": "/TestTarget/folderCreatedAsSideEffect",
"name": "placeholder"
,
"runAfter": ,
"type": "ApiConnection"
,
"Delete_file":
"inputs":
"host": "connection": "name": "@parameters('$connections')['sharepointonline']['connectionId']" ,
"method": "delete",
"path": "/datasets/@encodeURIComponent(encodeURIComponent('https://MY.sharepoint/LogicApps/'))/files/@encodeURIComponent(body('Create_file')?['Id'])"
,
"runAfter":
"Create_file": [
"Succeeded"
]
,
"type": "ApiConnection"
,
【讨论】:
这描述了我可以使用的 REST API。 docs.microsoft.com/en-us/sharepoint/dev/apis/rest/…【参考方案2】:正确,目前 SharePoint 连接器不支持文件夹管理任务。
因此,您目前的最佳选择是在 API 或函数应用程序中使用 SharePoint API 或客户端库。
【讨论】:
是否可以使用CreateFile
操作以不存在的文件夹为目标来创建文件夹作为副作用?还是会因为缺少目标文件夹而导致此类操作失败?我知道它既便宜又脏,但仍然比我认为的处理 API 更简单。
如果您有兴趣,我发布了一个基于肮脏黑客的解决方案。这使用了 SharePoint 本机连接器的错误操作。在我的项目所处的阶段(原型设计阶段),这是我可以负担得起的足够且简单的解决方案。不过对于生产来说不是很好。
我不愿接受我的老套回答。如果您有基于 SharePoint API 的解决方案的示例,那将是一大优势,并且肯定会让您的答案“更正确”。以上是关于我可以使用哪些操作通过 Azure Logic App 在 SharePoint Online 中创建文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
Azure 架构师学习笔记-Azure Logic Apps- 自定义Logic Apps 调度
Azure 架构师学习笔记-Azure Logic Apps- Logic Apps调用ADF
使用变量值在 Azure Logic App 中设置 SQL 存储过程路径
Azure 架构师学习笔记-Azure Logic Apps-简介