我可以使用哪些操作通过Azure Logic App在SharePoint Online中创建文件夹?

时间:2017-12-06 01:56:49

标签: azure sharepoint-online azure-logic-apps

正如问题标题所述,我正在寻找逻辑应用程序中的正确操作来创建文件夹。此操作将执行多次 - 根据业务规则每个目录执行一次。这些文件夹中不会创建任何文件,因为Logic App的目的是为用户的需要准备模板文件夹结构。

在官方文档中,我看到有create filecreate itemlist folder行为。他们建议可能是一个创建文件夹的动作(我找不到)。

如果此类操作不存在,我可能需要使用某些SharePoint Online API,但这将是最后的解决方案。

2 个答案:

答案 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或客户端库。