SharePoint工作流以基于单独文档库

时间:2017-01-24 13:05:30

标签: sharepoint-2013 sharepoint-workflow

我需要一个SharePoint工作流,当文件上传到单独的文档库(Accounts Documents)中的特定文件夹时,它将更新列表(Accounts Tracker)项。该文件夹的名称将对应于列表中要更新的行。

所以,举个例子:

  1. 用户将文档上传到'实体1' “帐户文件”中的文件夹'库。
  2. 工作流程在“帐户跟踪器”中更新了一行代码'标题为'实体1'自动根据'帐户文档中的文件夹名称进行操作。库。
  3. 问题是工作流如何引用库中的文件夹名称来更新列表中的正确行?

1 个答案:

答案 0 :(得分:2)

所以,如果我理解正确的话,目标是获取已添加文档的父文件夹名称,然后使用该名称更新名称为title的列表项。

工作流程中最复杂的部分是获取父文件夹名称。

包含文档的文件夹的名称是变量当前项目:服务器相对URL 的一部分。

您可以在worklow中使用一系列活动从服务器相对URL中提取文件夹名称。

Stage: Find Folder Name
    Step: Set variables
        Set Variable: FilePAth to Current Item:Server Relative URL
        then Set Variable: TrimmedFilePath to Variable: FilePath
        then Set Variable: index to 0
        then Set Variable: LastIndexOf to -1
        then Set Variable: PreviousLastIndexOf to -1
    Loop: until last slash is found
        The content of this loop will run repeatedly while Variable: index is greater than or equal to 0
            Find / in Variable: TrimmedFilePath (Output to Variable: index)
            If Variable: index is greater than or equal to 0
                If Variable: LastIndexOf not Equals -1
                    Set Variable: PreviousLastIndexOf to Variable: LastIndexOf
                then Calculate Variable: LastIndexOf plus 1 (Output to Variable: LastIndexOf)
                then Calculate Variable: LastIndexOf plus Variable: index (Output to Variable: LastIndexOf)
                then Calculate Variable: LastIndexOf plus 1 (Output to Variable: IndexPlus1)
                then Copy from Variable: FilePath, starting at Variable: IndexPlus1 (Output to Variable: TrimmedFilePath)
    Step: Check foldername
        Calculate Variable: PreviousLastIndexOf plus 1 (Output to Variable:PreviousLastIndexOfPlus1)
        then Calculate Variable: LastIndexOf minus PreviousLastIndexOfPlus1 (Output to Variable:FolderNameLength)
        then Copy from Variable: FilePath, starting at Variable: PreviousLastIndexOfPlus1 for Variable: FolderNameLength characters (Output to Variable: ParentFolderName)
        If (Variable: ParentFolderName equals Workflow Context:List Name)
            Set Variable: ParentFolderName to Root Folder

您需要在工作流程中添加更新列表项活动。

查找列表项部分中,使用 ParentFolderName 变量检索目标列表元素。

希望这有帮助!

---回答一些问题

Loop的第一行仅供参考?     是。在工作流中添加循环时,还可以添加注释。所以«直到找到最后一个斜杠»只是一个评论

第二行循环 - 如何“查找/变量”?     在工作流程中,您有一个活动可以在字符串变量中查找字符。它与JavaScript中的indexOf类似。在此工作流程中,我们需要找到斜杠«/»字符。请记住,目标是将父文件夹放在URL中。我们可以通过搜索URL中的最后一个斜杠来找到它。

第9行循环 - 有多少个字符?我的工作流程默认为0。     字符数将自动计算。查找名为IndexPlus1

的变量

第4行检查 - 我在工作流程上下文中没有“列表名称” - 我可以使用“关联名称”吗?     我不知道为什么你不能得到列表名称。也许你可以尝试创建另一个SP 2013工作流程,看看你是否遇到同样的问题?

第5行检查 - 是“根文件夹”硬格式化,即不是查找?     是。根文件夹是硬编码的。