2

我想构建一个自定义内容类型,它将成为具有多种状态的列表项的基础。各种状态将确定哪个列表将实例化该项目。它将根据用户操作在状态和列表之间移动。

我有几个选择来实现这个:

  1. 在每个列表上创建处理与该列表相关的特定功能的工作流。必要时将项目移动到另一个列表(将项目复制到新列表,删除原始项目),然后启动该工作流程。
  2. 在我们将使用的自定义内容类型上创建一个工作流,并让它在各种列表之间移动项目。不确定内容类型上的工作流是否可以在列表之间移动,更不用说跨网站集了。
  3. 使用自定义内容类型上的事件接收器来管理状态。用户作用于一个项目,改变它的状态,所以事件接收者在另一个列表上创建自己的副本,然后在当前列表上删除自己。我知道这适用于网站集。

哪种方式最好,为什么?有什么绝对行不通的吗?我忽略了什么方法?

4

4 回答 4

3

在我看来,使用事件接收器,因为它们跟随项目而不是列表。您仍然需要为接收列表启用内容类型,但这种方法比根据某些内容类型的存在或不存在更新和删除列表中的工作流要容易得多。

但是,为什么不结合这些方法呢?让内容类型事件接收器处理特定于内容类型的活动,并让列表处理任何特定于列表的活动。事件接收器既便宜又灵活。

.b

于 2009-03-23T16:55:52.727 回答
3

一般来说:在 SharePoint 工作流和事件接收器是相关的(如果您查看带有附加工作流的列表中的事件,您会发现一个事件接收器启动工作流..)

工作流的优点是用户可以检查日志(假设您使用 Log-Activity)

事件接收器的优点是事件数量更多;它们比工作流程更灵活。

根据您的描述,我可能会选择工作流程,因此用户可以检查他们的项目是否被正确处理。

于 2009-03-23T17:23:24.767 回答
1

我使用与每个列表方法相关联的工作流,因为我需要将工作流历史记录作为用户执行操作的审计跟踪。我更喜欢内容类型的工作流的想法,但是回想起来,这将是我所做工作的更清洁的解决方案。

于 2009-03-24T11:13:34.257 回答
0

这是在工作流和事件接收器之间做出决定的完美流程图:

http://msdn.microsoft.com/en-us/library/ff648492.aspx

于 2011-11-22T10:18:44.903 回答