正如问题标题所述,我正在寻找逻辑应用程序中的正确操作来创建文件夹。此操作将执行多次 - 根据业务规则每个目录执行一次。这些文件夹中不会创建任何文件,因为Logic App的目的是为用户的需要准备模板文件夹结构。
在官方文档中,我看到有create file,create item和list folder行为。他们建议可能是一个创建文件夹的动作(我找不到)。
如果此类操作不存在,我可能需要使用某些SharePoint Online API,但这将是最后的解决方案。
答案 0 :(得分:2)
我能够通过SharePoint - CreateFile操作创建目录。通过文件创建操作的副作用创建目录绝对是一个肮脏的黑客(顺便说一句,灵感来自a comment on MS suggestion site)。此错误/功能未记录,因此在生产环境中依赖它可能不是一个好主意。
更多的是,如果我的问题需要在SharePoint中创建一个目录而不包含任何文件,则需要在App Logic中使用额外的步骤。请务必使用Id
操作提供的Create File
删除该文件。
如果您尝试在预先存在的 folderCreatedAsSideEffect
文档库下创建名为TestTarget
的目录,那么这就是您的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"
}
},
答案 1 :(得分:1)
正确,到目前为止,SharePoint Connector不支持文件夹管理任务。
因此,您目前最好的选择是在API或功能应用程序中使用SharePoint API或客户端库。