Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint工作流未更新_Sharepoint_Sharepoint 2010_Sharepoint Designer - Fatal编程技术网

Sharepoint工作流未更新

Sharepoint工作流未更新,sharepoint,sharepoint-2010,sharepoint-designer,Sharepoint,Sharepoint 2010,Sharepoint Designer,我已经为自动填充sharepoint列表中的列编写了一个工作流。当我添加一个新条目时,什么也没有发生。但是,如果我转到另一个列表,然后返回带有工作流的列表,我可以看到它已经工作了。我已将工作流设置为在创建新项目时启动,工作流中是否有其他设置使其立即更新 没有。您应该改用SPItemEventReceiver,并使用ItemUpdate方法。这是即时工作的,工作流需要一些时间来启动,并且它是异步运行的。此外,工作流很繁重,您应该避免将其用于非常简单的操作 事件接收器的示例代码为 public cl

我已经为自动填充sharepoint列表中的列编写了一个工作流。当我添加一个新条目时,什么也没有发生。但是,如果我转到另一个列表,然后返回带有工作流的列表,我可以看到它已经工作了。我已将工作流设置为在创建新项目时启动,工作流中是否有其他设置使其立即更新

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

事件接收器的示例代码为

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;
    }
}

然后将此事件接收器添加到列表中。我希望这对您有所帮助

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

谢谢您的建议。听起来是个不错的选择。但是,我没有visual studio。有没有办法通过sharepoint designer实现这一点?