如何在Workflow中获取对象的WorkItem?

时间:2012-03-23 16:07:04

标签: tridion

在Tridion 2011 SP1,Event System中,我正在尝试获取我知道的对象的WorkItem工作流程,但我不知道它可能在哪个WorkList中。

场景描述:

  • 当给定组件处于工作流程中时,页面必须保持锁定状态
  • 如果组件工作流状态发生更改,则页面状态也应更改

我想做的是在FinishActivityEventArgs上触发的事件,它将:

  1. 检查当前项目是否为“组件”
  2. 获取相应的页面(类型页面的GetUsingItems)
  3. 检查页面是否也在工作流程中
  4. 获取有问题的页面
  5. 获取页面的WorkItem
  6. 完成当前活动并传递相应的活动详细信息
  7. 我准备好了大多数步骤,但对第5步有疑问。到目前为止,我看到的唯一获取WorkItems的方法是使用session.WorkflowManager.GetUserWorkItems(userWorkItemsFilter)但如果页面不在,那么这可能会失败当前用户的工作项,对吧?

    任何提示/指示?

1 个答案:

答案 0 :(得分:4)

我相信你需要使用session.WorkflowManager.GetListProcesses方法来查找所有进程,而不仅仅是当前用户的进程。我想你可能需要冒充管理员才能获得所有项目。