Sharepoint Designer 2007 - 工作流程和辅助工作流程关系
小背景:我为一家公司工作,该公司为具有许多“同时”运行任务的项目生产具有工作流程的产品。对于这个讨论,可以说项目A创建了4个子项目。Sharepoint Designer 2007 - 工作流程和辅助工作流程关系
主项目和4个子项目工作流都将在主任务列表中创建任务。我遇到的主要问题是如何将子项目工作流创建的任务关联回主项目。
例如:
项目A在项目列表中创建。该列表有一个与其关联的工作流程,称为“项目启动”。这个工作流程是一个手动启动工作流程,当它启动后,将在子项目列表中创建四个子项目 - 这些子项目需要同时运行,因此为什么我使用自己的工作流程在次级列表中创建它们。子项目列表有4个与其关联的工作流程来管理4个子项目 - 在子项目列表中创建子项目时,每个子项目都会“自动启动”。
所以无论如何,以节省一些打字我将把子项目为单元1 - 4
创建项目A和手动启动它的工作流程。项目启动工作流程会在子项目列表中创建单元1,单元2,单元3和单元4项目(同时,因为如前所述,这些项目需要同时运行)。每个单位经理工作流程开始并开始在任务列表中创建他们的待办任务。我正在使用“分配待办事项”任务活动,因为我需要知道工作流程通过其步骤完成的工作是否已完成。
一旦完成了所有4单元工作流程,项目开始工作流程现在将开始在完成其他任务项目(经理批准等)之前管理项目的最后部分。
现在我遇到的问题是,我已经设置了任务列表视图中显示该“称号,开始日期,结束日期,完成状态和链接”栏。链接列显示引用回创建列表项的链接。对于本例,单元1管理器工作流程在由项目A创建的单元1项目上运行。因此,对于由单元管理器工作流程创建的“示例任务1”,链接为“单元1”。这并不完全有帮助,因为当有人看着他们的任务列表时,他们可以从多个项目中获得多个“示例任务1”。将UNIT 1显示为参考主项目对用户而言意味着什么。我想要显示的是主项目标题,以便他们可以按项目对他们的任务进行排序。按“Unit x”排序意味着什么。
现在我最初的解决方案是在任务列表上创建一个“项目”列。在本专栏中,我可以创建另一个子工作流程,它将完成查找和引用工作流程和项目标识以查找最初创建的项目,并将此新“项目”变量设置为启动主项目(项目a - for这个例子)。该工作流程正常工作!
但是,这似乎是MOSS 2007中“并不少见”的问题,如果在任务列表上运行此子工作流程可以(并且已经)创建了多个锁定错误,从而显示 - “此项目无法修改为它被已经运行的工作流程锁定“。此错误会将工作流程暂停,并且不是可恢复的错误。我研究了这个错误,这是一个不可避免的错误,没有单一的,易于部署的解决方案。它与后端数据库以及它如何/何时存储更新任务项目变量等有关。一旦工作流锁定,就完成了。
所以,我真正需要的是一个聪明的解决方案,主要项目上与任何及所有子任务相关联。如果任务是由“项目启动”工作流程创建的,那么这是自动完成的,因为“链接”列自动将此任务与创建项目...在本例中是“项目a” - 很容易。但是,由于我需要额外的子项目在单独的列表中,并且有自己的工作流程.....我失去了这个参考。
有没有办法从子项目列表的工作流程,主要项目上创建的任务,而不必调用另一个subworkflow来设置该变量关联。 (即:避免“此项目被正在运行的工作流程锁定”问题的方法)。
我想我想得很难对这个解决方案,不能再只见树木不见森林。
不幸的是我认为你的解决方案是停止使用SharePoint Designer来完成这个工作流程。可以考虑为SP2007购买第三方工作流产品,或者使用Visual Studio在代码中构建工作流功能。
你想要去的位置,其中1点的工作流程可以做你谈论的一切:对项目运行,并建立4个并行分支,每个创建任务你到底如何想(与项目列),而比您从SPD获得的选项非常有限。
坦率地说,没有人会读这个。如果你尽可能地浓缩你的问题,你会得到更好的结果。 – James
尽量尽可能地浓缩它,同时尽可能多地留下相关信息。对于这种特殊的解决方案有一些要求,对于其他类似情况并不“普遍”。因此,这篇文章为何比大多数文章长一些。 –