我是SharePoint新手,但我学得很快。
我想仅在列表项中更新值时触发工作流,但不是每次更改项时都触发。例如,我有一个批准/不批准的列,我希望它是触发器而不是项目中的其他值。因此,如果其他任何内容发生更改,除非“批准”值为。
,否则工作流程将无法启动感谢所有帮助!
谢谢,
答案 0 :(得分:7)
您可以在SharePoint Designer中执行此操作。
希望它有所帮助。
答案 1 :(得分:3)
如果您希望以编程方式完成此操作......
创建一个ItemUpdating事件处理程序并将其附加到目标列表。我会创建一个功能和功能接收器来进行附加。
在ItemUpdating事件处理程序中,您要查看两个值: properties.ListItem [“Approval”]这将为您提供原始值 properties.AfterProperties [“Approval”]这是更新后的值
检查两个值是否彼此不相等,以及更新的值是否等于“approve”。如果两者都为真,则以编程方式在列表项上启动工作流 - 这里有一些链接可以帮助您:
http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx
快乐的编码!
答案 2 :(得分:1)
您可能需要两个工作流程,一个隐藏字段和一个“启动另一个工作流程活动”(可在CodePlex上找到)
工作流程1是一个帮助程序工作流程,设置为在项目更改时启动: 它检查Status是否等于隐藏字段 如果是出口 如果没有,则启动工作流程2并将隐藏字段设置为状态
的当前值工作流程2是真正的工作流程,可以在状态发生变化时执行您想要的工作
答案 3 :(得分:1)
首先创建一个名为“工作流状态”的隐藏数字字段将默认值设置为“0”
创建一个工作流程,该工作流程将同时启动创建项目和修改
工作流程的第一步是将字段工作流程状态增加“1”
第二步是验证值是否为2,表明工作流程第一次被修改。
只是为了表明状态。
工作流程状态= 1:已创建项目 2:项目第一次被修改 3:项目第二次被修改。
答案 4 :(得分:1)
@Marius:工作流程的第一步应该是比较字段值并提供逻辑分支。如果值等于您想要的值,则运行worlflow。如果没有,请停止工作流程或执行其他操作。如果收到任何修改后的电子邮件,那么您的流程就会出错。
Martin的解决方案非常简单,但您也可以通过使用内容类型进行扩展,以允许执行其他操作的审批流程。
答案 5 :(得分:1)