如何使用switch函数检查文件名是否包含ABC
How to use switch functions to check if the file name conatins ABC
我创建了一个逻辑应用程序,我需要检查我的文件名是否包含“ABC”然后我需要复制文件并将其粘贴到 ABC 文件夹中 Azure 否则需要检查我的文件名是否包含“ZYX”然后将其粘贴到 Azure 中的 ZYX 文件夹中。
在 switch 函数中它给我一个错误。
"The execution of template action 'Switch' failed: The result of the evaluation of 'scope' action expression '@body('Get_file_content')' is not valid. It is of type 'Object' but is expected to be a value of type 'String, Integer'." [Image1]
或者如果我试图在并行分支中使用 2 个条件,它会给我以下错误。
![图2]
我也尝试了条件,如果文件名包含“ABC”,则复制粘贴到 ABC 文件夹中,如果为 false,则我尝试在 false 命令中使用其他条件。
此外,后续问题是,如果我有多个文件名与 ABC,那么我可以合并并将其放在一个文件中,然后将其粘贴到 Azure Blob 的 ABC 文件夹中
图片使用切换功能:
使用并行分支的图像条件:
![使用并行分支的图像条件]
附上您的建议的最新截图。
enter image description here
我刚试过使用一个,但它给了我错误。
enter image description here
错误原因:您无法通过file content
作为开关连接器中的条件检查。
解决方案:为了获得上述所需的输出,您需要将文件名作为条件检查传递给开关控制。当我们从 SharePoint 连接器收到文件名作为 base64 格式时,我们需要使用 **base64ToString(FileName)**
将其解码为字符串,以比较 containers/blob.
中存在的文件夹名称
这是基于上述要求的逻辑应用的代码视图。
Also, follow up question would be if I have multiple file name with
ABC then can I merge and place it in one file and paste that in ABC
folder in Azure Blob
使用上述流程,无法合并文件,因为每个文件都以不同的扩展名保存,但如果您上传或更新同一文件,则会在 blob 中覆盖文件。
有关使用 Logic 应用程序合并文件的更多信息,您可以参考此 BLOG。
更新的答案
在比较字符串/文件名之前,您可以在 'Condition' 连接器之前使用 'Compose' 并将字符串转换为小写。
toLower(base64ToString(triggerOutputs()['headers']['x-ms-file-name-encoded']))
我创建了一个逻辑应用程序,我需要检查我的文件名是否包含“ABC”然后我需要复制文件并将其粘贴到 ABC 文件夹中 Azure 否则需要检查我的文件名是否包含“ZYX”然后将其粘贴到 Azure 中的 ZYX 文件夹中。
在 switch 函数中它给我一个错误。
"The execution of template action 'Switch' failed: The result of the evaluation of 'scope' action expression '@body('Get_file_content')' is not valid. It is of type 'Object' but is expected to be a value of type 'String, Integer'." [Image1]
或者如果我试图在并行分支中使用 2 个条件,它会给我以下错误。
![图2]
我也尝试了条件,如果文件名包含“ABC”,则复制粘贴到 ABC 文件夹中,如果为 false,则我尝试在 false 命令中使用其他条件。
此外,后续问题是,如果我有多个文件名与 ABC,那么我可以合并并将其放在一个文件中,然后将其粘贴到 Azure Blob 的 ABC 文件夹中
图片使用切换功能:
使用并行分支的图像条件:
![使用并行分支的图像条件]
附上您的建议的最新截图。 enter image description here
我刚试过使用一个,但它给了我错误。 enter image description here
错误原因:您无法通过file content
作为开关连接器中的条件检查。
解决方案:为了获得上述所需的输出,您需要将文件名作为条件检查传递给开关控制。当我们从 SharePoint 连接器收到文件名作为 base64 格式时,我们需要使用 **base64ToString(FileName)**
将其解码为字符串,以比较 containers/blob.
这是基于上述要求的逻辑应用的代码视图。
Also, follow up question would be if I have multiple file name with ABC then can I merge and place it in one file and paste that in ABC folder in Azure Blob
使用上述流程,无法合并文件,因为每个文件都以不同的扩展名保存,但如果您上传或更新同一文件,则会在 blob 中覆盖文件。
有关使用 Logic 应用程序合并文件的更多信息,您可以参考此 BLOG。
更新的答案
在比较字符串/文件名之前,您可以在 'Condition' 连接器之前使用 'Compose' 并将字符串转换为小写。
toLower(base64ToString(triggerOutputs()['headers']['x-ms-file-name-encoded']))