0

我创建了一个逻辑应用程序,我需要检查我的文件名是否包含“ABC”然后我需要复制文件并将其粘贴到 ABC 文件夹 Azure 否则需要检查我的文件名是否包含“ZYX”然后将其粘贴到 ZYX 文件夹在 Azure。

在开关功能中它给了我一个错误。

“模板操作'Switch'的执行失败:'范围'操作表达式'@body('Get_file_content')'的评估结果无效。它的类型为'Object',但预期值为输入‘字符串,整数’。” [图片1]

或者如果我试图在并行分支中使用 2 个条件,它会给我以下错误。

![图片2]

我还尝试了条件,如果文件名包含“ABC”,则复制粘贴到 ABC 文件夹中,如果为 false,那么我尝试在 false 命令中使用另一个条件。

另外,后续问题是如果我有多个带有 ABC 的文件名,那么我可以合并并将其放在一个文件中,然后将其粘贴到 Azure Blob 的 ABC 文件夹中

使用开关功能的图像:

在此处输入图像描述

使用并行分支的图像条件:

![使用并行分支的图像条件] 在此处输入图像描述

附上您的建议的最新屏幕截图。 在此处输入图像描述

我只是尝试使用一个,它给了我错误。 在此处输入图像描述

4

1 回答 1

0

错误原因:您无法通过file contentswitch 连接器中的条件检查。

解决方案:为了获得上述所需的输出,您需要将文件名作为条件检查传递给开关控制。当我们从 SharePoint 连接器以 base64 格式接收文件名时,我们需要将其解码为字符串,**base64ToString(FileName)**以比较容器/blob 中存在的文件夹名称。

这是基于上述要求的逻辑应用的代码视图。 在此处输入图像描述

另外,后续问题是如果我有多个带有 ABC 的文件名,那么我可以合并并将其放在一个文件中,然后将其粘贴到 Azure Blob 的 ABC 文件夹中

使用上述流程,无法合并文件,因为每个文件都保存在不同的扩展名中,但如果您上传或更新同一文件,则会在 blob 中覆盖文件。

有关使用 Logic 应用程序合并文件的更多信息,您可以参考此BLOG

更新的答案

在比较字符串/文件名之前,您可以在“条件”连接器之前使用“撰写”并将字符串转换为小写。

toLower(base64ToString(triggerOutputs()['headers']['x-ms-file-name-encoded']))

在此处输入图像描述

于 2021-09-07T12:21:54.220 回答