【问题标题】:Sharepoint workflow not updatingSharepoint 工作流程未更新
【发布时间】:2012-02-17 13:10:15
【问题描述】:

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

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-designer


    【解决方案1】:

    没有,没有。您应该改用 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 有帮助

    【讨论】:

    • 感谢您的建议。听起来是个不错的方法。但是,我没有视觉工作室。有没有办法通过共享点设计器来完成这个?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 2016-11-04
      • 2010-12-27
      • 1970-01-01
      相关资源
      最近更新 更多