如何通过仅更新列表项中的值(已批准,未批准)来触发SharePoint工作流?

时间:2009-07-24 19:40:35

标签: sharepoint workflow

我是SharePoint新手,但我学得很快。

我想仅在列表项中更新值时触发工作流,但不是每次更改项时都触发。例如,我有一个批准/不批准的列,我希望它是触发器而不是项目中的其他值。因此,如果其他任何内容发生更改,除非“批准”值为。

,否则工作流程将无法启动

感谢所有帮助!

谢谢,

6 个答案:

答案 0 :(得分:7)

您可以在SharePoint Designer中执行此操作。

  • 在SharePoint Designer中打开您的网站
  • 单击“文件新建WorkFlow”
  • 选择您的列表/资料库
  • 添加条件:比较ListName字段(您可以比较您的批准列中字段中的值)

希望它有所帮助。

答案 1 :(得分:3)

如果您希望以编程方式完成此操作......

  1. 创建一个ItemUpdating事件处理程序并将其附加到目标列表。我会创建一个功能和功能接收器来进行附加。

  2. 在ItemUpdating事件处理程序中,您要查看两个值:    properties.ListItem [“Approval”]这将为您提供原始值    properties.AfterProperties [“Approval”]这是更新后的值

  3. 检查两个值是否彼此不相等,以及更新的值是否等于“approve”。如果两者都为真,则以编程方式在列表项上启动工作流 - 这里有一些链接可以帮助您:

    http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx

    快乐的编码!

答案 2 :(得分:1)

您可能需要两个工作流程,一个隐藏字段和一个“启动另一个工作流程活动”(可在CodePlex上找到)

工作流程1是一个帮助程序工作流程,设置为在项目更改时启动: 它检查Status是否等于隐藏字段 如果是出口 如果没有,则启动工作流程2并将隐藏字段设置为状态

的当前值

工作流程2是真正的工作流程,可以在状态发生变化时执行您想要的工作

答案 3 :(得分:1)

  1. 首先创建一个名为“工作流状态”的隐藏数字字段将默认值设置为“0”

  2. 创建一个工作流程,该工作流程将同时启动创建项目和修改

  3. 工作流程的第一步是将字段工作流程状态增加“1”

  4. 第二步是验证值是否为2,表明工作流程第一次被修改。

  5. 只是为了表明状态。

    工作流程状态= 1:已创建项目                   2:项目第一次被修改                   3:项目第二次被修改。

答案 4 :(得分:1)

@Marius:工作流程的第一步应该是比较字段值并提供逻辑分支。如果值等于您想要的值,则运行worlflow。如果没有,请停止工作流程或执行其他操作。如果收到任何修改后的电子邮件,那么您的流程就会出错。

Martin的解决方案非常简单,但您也可以通过使用内容类型进行扩展,以允许执行其他操作的审批流程。

答案 5 :(得分:1)