4

在 Tridion 2011 SP1,事件系统中,我试图获取我知道在工作流中的对象的 WorkItem,但我不知道它可能在谁的 WorkList 中。

场景描述:

  • 当给定组件在工作流中时,页面必须保持锁定
  • 如果组件工作流状态改变,页面状态也应该改变

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

  1. 检查当前项目是否为组件
  2. 获取对应的页面(GetUsingItems 类型的页面)
  3. 检查页面是否也在工作流程中
  4. 获取相关页面
  5. 获取页面的 WorkItem
  6. 完成当前活动并传递相应的活动详情

我已经准备好大多数步骤,但对第 5 步有疑问。到目前为止,我看到的唯一获取 WorkItems 的方法是使用 session.WorkflowManager.GetUserWorkItems(userWorkItemsFilter) 但如果页面不在当前用户的工作中,这可能会失败物品,对吧?

任何提示/方向?

4

1 回答 1

4

我相信您将需要使用该session.WorkflowManager.GetListProcesses方法来查找所有进程,而不仅仅是当前用户的进程。我想您可能需要冒充管理员才能取回所有物品。

于 2012-03-23T16:35:04.697 回答