Sharepoint Designer 2007 - 工作流程和辅助工作流程关系

时间:2011-08-22 19:34:36

标签: sharepoint sharepoint-2007 workflow moss sharepoint-designer

一点背景:我为一家公司工作,该公司生产的产品具有许多“同时”运行的项目的工作流程。对于此讨论,假设项目A创建了4个子项目。

主项目和4个子项目工作流程都将在主任务列表中创建任务。我遇到的主要问题是如何将子项目工作流创建的任务关联回主项目。

例如:

项目A在“项目”列表中创建。此列表具有与之关联的一个工作流程,称为“项目启动”。此工作流程是一个手动启动工作流程,启动时会在子项目列表中创建四个子项目 - 这些子项目需要同时运行,因此我为什么要在具有自己工作流程的辅助列表中创建它们。子项目列表有4个与之关联的工作流来管理4个子项目 - 当子项目在子项目列表中创建时,每个子项目都会“自动启动”。

所以无论如何,要保存一些打字,我会将子项目称为UNITS 1 - 4.

我创建项目A并手动启动它的工作流程。项目启动工作流程在子项目列表中创建单元1,单元2,单元3和单元4项目(同时,因为正如我之前所说,这些项目需要同时运行)。每个单元管理器工作流都开始并开始在任务列表中创建待办任务。我正在使用“分配待办事项”任务活动,因为我需要知道的工作流程是通过它完成的步骤才能完成工作。

完成所有4个单元的工作流程后,项目启动工作流程现在将开始在完成之前使用其他任务项目(经理批准等)管理项目的最后部分。


现在我遇到的问题是我为任务列表设置的视图显示了“标题,开始日期,结束日期,完成状态和链接”列。链接列显示引用回创建列表项的链接。对于此示例,单元1管理器工作流对由项目A创建的UNIT 1项进行操作。因此,对于由单元管理器工作流创建的“示例任务1”,链接为“单元1”。这并不完全有用,因为当有人查看他们的任务列表时,他们可以从多个项目中获得多个“示例任务1”。将UNIT 1显示为引用主项目对用户来说没有任何意义。我想要显示的是Master Project标题,以便他们可以按项目对任务进行排序。按“单位x”排序意味着什么。

现在我的初始解决方案是在任务列表上创建一个“项目”列。在本专栏中,我可以创建另一个子工作流程,通过查找和引用工作流程和项目ID来查找最初创建的项目,并将此新“项目”变量设置为启动主项目(项目a - for这个例子)。那工作流程工作!

然而,这似乎是一个在MOSS 2007中“并不罕见”的问题,在任务列表上运行此子工作流可能(并且已经)创建了多个锁定错误,显示 - “此项目无法修改为被已经运行的工作流程锁定“。此错误将工作流研磨为暂停,并且不是可恢复的错误。我已经研究过这个错误,这是一个不可避免的错误,没有单一且易于部署的解决方案。它与后端数据库以及存储更新任务项变量的方式/时间等有关。一旦工作流程锁定,您就完成了。

所以,我真正需要的是一个聪明的解决方案,将主项目与任何和所有子任务相关联。如果任务是由“项目启动”工作流创建的,那么这是自动完成的,因为“链接”列会自动将此任务与创建项目相关联...在本例中为“项目a” - 足够简单。但是,由于我需要在单独的列表中使用自己的工作流程来增加子项目......我失去了这个参考。

是否有办法将从子项目列表工作流创建的任务与主项目相关联,而无需调用另一个子工作流来设置该变量。 (即:避免“此项目被正在运行的工作流程锁定”的方法)。

我想我对这个解决方案的思考太过分了,再也看不到森林的树木了。

1 个答案:

答案 0 :(得分:0)

不幸的是,我认为您的解决方案是停止使用SharePoint Designer进行此工作流程。要么考虑购买SP2007的第三方工作流产品,要么使用Visual Studio在代码中构建工作流功能。

您希望找到一个工作流程,其中1个工作流程可以完成您正在谈论的所有事情:在项目上运行并创建4个并行分支,每个分支创建任务您想要的(使用项目列)而不是您从SPD获得的选项非常有限。