我是SharePoint新手,但我学得很快。如何通过仅更新列表项中的值(已批准,未批准)来触发SharePoint工作流?
我想仅在列表项中更新值时触发工作流,但不是每次更改项时都会触发工作流。例如,我有一个批准/不批准的列,我希望这是触发器而不是项目中的其他值。因此,如果有其他更改,工作流程将不会启动,除非“批准”值为。
所有帮助表示赞赏!
谢谢,
我是SharePoint新手,但我学得很快。如何通过仅更新列表项中的值(已批准,未批准)来触发SharePoint工作流?
我想仅在列表项中更新值时触发工作流,但不是每次更改项时都会触发工作流。例如,我有一个批准/不批准的列,我希望这是触发器而不是项目中的其他值。因此,如果有其他更改,工作流程将不会启动,除非“批准”值为。
所有帮助表示赞赏!
谢谢,
如果你想以编程方式做到这一点...
创建ItemUpdating事件处理程序,并将其连接到你的目标名单。我会创建一个功能和功能接收器来完成附件。
在ItemUpdating事件处理程序中,有两个值,你想看看: properties.ListItem [“审批”]这会给你原来值 properties.AfterProperties [“审批”]这是更新值
检查,如果两个值不相等,如果更新值等于“批准”。如果两个都是真的,在列表项目启动工作流programmatically-这里有一些链接,帮你:
http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx
编码愉快!
您可以在SharePoint Designer中执行此操作。
希望它有帮助。
你可能需要两个工作流,一个隐藏字段和“启动另一个工作流活动”(可在CodePlex找到)
工作流程1是被设定,当一个项目发生变化,开始一个辅助的工作流程: 它检查是否status等于隐藏字段 如果是出口 如果没有,那么启动工作2和隐藏字段设置为状态的当前值
工作流程2是那么真正的工作流程这是你想要的时候状态是什么改变了
首先创建一个名为“工作流状态”隐藏的数字字段设置为默认值设置为“0”
创建工作流程,将启动双方的创造和项目,并在修改
工作流程的第一步是将字段“工作流程状态”增加“1”
第二步是验证值是2,它应该表明工作流程第一次被修改d。
只是表示状态。
工作流程状态= 1:项目已创建 2:项目已经第一次修改 3:项目已被第二次修改。
@Marius:工作流中的第一步应该是比较字段值并提供逻辑分支。如果这个值等于你想要的值,那么运行worlflow。如果没有,请停止工作流程或执行其他操作。如果收到的电子邮件有任何修改,那么你的流量就会出错。
Martin的解决方案非常简单,但您也可以通过使用内容类型进行扩展,以允许执行其他操作的审批流程。
阿里, 谢谢,但是这是我已经成立。问题在于,在更新值之后,每当项目发生更改(其他列触发工作流程的那一列)时,工作流程就会重新执行,并且在我的情况下会重新发送一封电子邮件(它已设置为操作:发送电子邮件)。其他建议? 谢谢, – Marius 2009-07-25 01:13:47