Sharepoint工作流程未更新

时间:2012-02-17 13:10:16

标签: sharepoint sharepoint-2010 sharepoint-designer

我已经为自动填充共享点列表中的列编写了一个工作流程。当我添加新条目时没有任何反应。但是,如果我转到另一个列表,然后返回到工作流程列表,我可以看到它已经有效。我已经设置了工作流程,以便在创建新项目时启动,工作流程中是否有其他设置可以立即更新?

2 个答案:

答案 0 :(得分:0)

不,没有。您应该使用SPItemEventReceiver并使用ItemUpdating方法。这是立即起作用的,工作流程需要一些时间来启动并且它以异步方式运行。此外,工作流程很重,您应该避免将它们用于非常简单的操作。

事件接收器的示例代码是

public class MyEventReceiver :SPItemEventReceiver
{
    public override void ItemUpdating(SPItemEventProperties properties)
    {
        UpdateField(properties);
    }

    public override void ItemAdding(SPItemEventProperties properties)
    {
        UpdateField(properties);
    }

    private void UpdateField(SPItemEventProperties properties)
    {
        EventFiringEnabled = false;

        var item = properties.ListItem;

        // do calculation here

        item.SystemUpdate(false); // this update that is most suitable for automatic updates

        EventFiringEnabled = true;
    }
}

然后将此事件接收器添加到列表中。我希望link帮助

答案 1 :(得分:0)

如果无法使用Visual Studio,也可以尝试将计算列添加到列表中。这种方式最难的是定义一个公式,该公式将从列表项的其他列获取数据并执行计算。 link1link2可以为您提供有关如何在SharePoint中的计算列中编写公式而无需代码的更多信息。