Sharepoint 工作流程未更新

发布于 2025-01-06 18:25:17 字数 133 浏览 2 评论 0原文

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

I have written a workflow for that autofills a column in a sharepoint list. When I add a new entry nothing happens. However, if I go to another list and then return to the list with the workflow I can see that it has worked. I have set up the workflow to start when a new item is created, is there some other setting in the workflow to make it update instantly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山田美奈子 2025-01-13 18:25:17

不,没有。您应该改用 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;
    }
}

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

No there is no. You should use SPItemEventReceiver instead and use ItemUpdating method. This is what works instantly and the workflow requires some time to start and it runs asynchronously. Furthermore workflows are heavy and you should avoid using them for very simple actions.

The sample code for an event receiver is

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

And then add this event receiver to a list. I hope this link helps

深海不蓝 2025-01-13 18:25:17

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

You can also try to add a Calculated column to your list if you cannot use Visual Studio. This way the hardest point is to define a formula that will takes data from other columns of the list item and performs a calculation. link1 and link2 can give you more information on how to write a formula in the calculated column in SharePoint with no code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文