0

看看其他人是否遇到过这个问题并解决它。

我在不使用任务的列表(不是库)上有一个 Visual Studio 顺序工作流,批准过程是通过列表项上的批准/拒绝 OOTB 按钮完成的。批准是一个两阶段批准,如果第一阶段完成(通过单击批准 OOTB 按钮),我将 ModerationInformation.Status 从 Approved 重置为待处理,然后向第二阶段批准者发送电子邮件。

我的问题是,当我将 ModerationInformation.Status 从 Approved 设置回 Pending,因此永远没有批准的版本时,Creator 失去查看该项目的权限,并且我从 SharePoint 收到“找不到项目”错误的人创建了该项目。1 级和 2 级审批者以及具有审批权限的任何人仍然可以看到该项目。

一些更多的背景信息。我用来更新审核信息的代码是

我从工作流事件中获取属性并挂钩到 listitem

属性.Item.ModerationInformation.Status = SPModerationStatusType.Pending; 属性.Item.Update();

谁能帮忙。

4

1 回答 1

0

尝试使用properties.Item.SystemUpdate();它可以防止 SHarePoint 触发任何附加的 EventReceivers 等。我也发生了同样的事情。恕我直言,这与该项目进入更新模式这一事实有关,然后 SharePoint 基本上已经控制了该项目(因为工作流通常作为系统帐户运行)但仍将您发送回返回 url(即 EditItem列表页)。

由于 SharePoint 可能仍在处理该项目(并且当您使用 item.Update() 时,它会遍历所有事件等)您无法再打开它,因为您不是系统帐户。

当 SharePoint 完成时(在发送电子邮件等之后),用户可以再次访问该项目。

就像我说的,我在长时间运行(即超过 2 到 3 秒)EventReceivers / Workflows 期间发生了同样的事情。

于 2009-11-03T00:27:44.387 回答