当前位置: 首页>>WEB开发>>正文


每日触发工作流程

webfans WEB开发 , , 去评论

问题描述

SharePoint中是否有简单或OOTB方式来触发每日执行的工作流程?也许通过使用计时器工作?我的目标是不需要使用解决方案或某种类型的托管代码。

UPDATE

我使用日常工作流程的目标主要是根据日期发送电子邮件通知。我的公司有许多列表,其中包含证书和证书的到期日期,个人需要在日期临近和/或已到达时收到通知。我一直在尝试使用列表警报,但它们根本没有我需要的灵活性和选项。

如果没有其他选择,我将使用解决方案,但如果我不需要,我不喜欢添加额外的组件。

最佳解决方法

我认为这篇关于SharePointMag的帖子可能正是您所寻找的。

编辑

文章摘要

这种循环工作流有一个选择,每次迭代时可以在三个选项中进行:

  1. 任务完成了吗?如果是,退出。是的,我们完成了!

  2. 这是我第一次发送提醒吗?如果是,请发送提醒并暂停一天。设置一个标志以指示已发送第一个提醒。

  3. 我第二次或更多次发送提醒吗?如果是,请发送并暂停一天。增加计数器以指示已发送了多少提醒。

(这里的开发者读者可能会想到这些看起来很像状态和/或状态转换。你认为这是正确的。)

Pre-Configuration为了支持这样的设计,我们需要在我们的任务中添加两列:1。FirstEmailReminderSent 2. EmailReminderCount

工作流使用这些字段来维护有关任务的一些信息(例如,发送的电子邮件提醒)以及触发工作流再次运行以用于后续提醒。

将FirstEmailReminderSent的默认值设置为“No”非常重要。 EmailReminderCount只是一个默认值为零的数字。

完成此配置工作后,让我们通过创建工作流程来了解所有这些操作。

启动SharePoint Designer,我们以正常方式创建工作流(即使用任务列表打开网站,创建新的SharePoint内容,创建工作流)。

工作流程命名为“Daily Reminder”,它与名为“Tasks”的列表(即任务列表)相关联,这里是关键:它设置为在创建任务和更改任务时运行。 “每当项目被更改”位非常重要,我们稍后会看到。此设置使我们能够利用SharePoint的无情特性来实现我们的利益。

工作流程的第一步很简单:如果任务已完成,则停止运行:第二步更有趣。此步骤标记为“发送初始电子邮件”,显然会发送第一封电子邮件。但是,它也设置了后续提醒。

请注意,此任务仅在我们的任务列“FirstEmailReminderSent”等于否时运行。由于我们小心地将“no”指定为此列的默认值,因此我们知道此步骤将运行(前提是我们已超过上面的第一步)。

  • 首先,我们发送提醒电子邮件。

  • 然后,我们将FirstEmailReminderSent设置为Yes。这可确保此特定步骤不会再次运行。

  • 接下来,我们暂停一天。

我们的暂停完成后,我们想要开始循环。我们通过改变当前项目的任何字段来完成“poking”任务。当我们这样做时,从SharePoint工作流的角度来看,该项已被更改。由于我们选中了“项目更改时自动启动此工作流程”,因此它会重新启动工作流程。我们可以挑选任何一个领域,但由于我们需要“poke”当前项目,我们也可以同时获得一些商业价值。我们将使用EmailReminderCount字段。通过这种方式,我们可以戳它并知道提醒已被发送多少次,一石二鸟。

  • 首先,我们创建一个工作流变量

  • 使用“Set Workflow Variable”操作将EmailReminderCount的当前值复制到我们的TemporaryCounter变量

  • 使用“Do Calculation”操作将此值递增1。

  • 最后,使用“当前项中的更新字段”操作更新任务的EmailReminderCount。

第三步也是最后一步看起来与之前的步骤非常相似,只有在任务未标记为已完成且第一封电子邮件提醒已被发送时才会运行。

工作流暂停一天,然后将EmailReminderCount增加1。执行此更新会导致工作流重新开始。假设用户从未将任务标记为已完成,则SharePoint工作流将跳过第一步(因为任务未完成)和第二步(因为FirstEmailReminderSent仍然是),在第三步中返回此处。它会发送电子邮件并暂停24小时,自行搜索并永远保持这样的循环,直到任务完成或删除。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2642.html,转载请务必附带本地址声明。