在本文中,将探讨如何利用SharePoint和云流(Cloud Flow)来自动化文档存储的过程。这个过程涉及到从Model-Driven App上传文件到SharePoint文档库,并在上传后更新相关记录。将以“Account”表为例,并在其中创建了一个名为“URL”的自定义列来存储文件的URL。
本文不包括配置SharePoint以使用Model-Driven App进行文档存储所需的步骤。如果需要了解集成细节,请访问相关链接。当从Model-Driven App上传文件并创建在SharePoint文档库中时,云流将被触发。
首先,需要创建一个云流,并添加“当文件创建(仅属性)”的触发器。接下来,配置以下属性:
为了上传Dataverse行,需要GUID。虽然GUID不能直接以纯文本形式获取,但可以从触发器的“Folder path”属性中提取它。其值类似于“account/test_67B9406FCBB7EB118236000D3A6A4A8A/”。需要从中提取GUID。以下是使用的完整表达式:
C# replace(last(split(triggerOutputs()?['body/{Path}'],'_')),'/','')
需要解释吗?
split(triggerOutputs()?['body/{Path}'],'_')
将“account/test_67B9406FCBB7EB118236000D3A6A4A8A/”从“_”处分割成两部分。使用last函数将返回“67B9406FCBB7EB118236000D3A6A4A8A/”。使用了replace函数来移除最后的“/”。
在第二步中,得到了GUID,但它不是可以用来获取或更新行的格式。需要将其从“67B9406FCBB7EB118236000D3A6A4A8A”转换为“67B9406F-CBB7-EB11-8236-000D3A6A4A8A”格式。以下是实现这一转换的表达式:
C# concat(substring(variables('StringGUID'), 0, 8),'-', substring(variables('StringGUID'), 8, 4), '-', substring(variables('StringGUID'), 12, 4), '-', substring(variables('StringGUID'), 16, 4), '-', substring(variables('StringGUID'), 20, 12), "")
在本文中,已经解释了这个表达式。
最后一步是使用格式化后的GUID来更新记录。为了演示目的,创建了一个自定义字段“URL”,并在其中填充了文档的URL。