知道哪些字段已更改的工作流程

时间:2009-04-17 10:26:05

标签: c# sharepoint workflow

我正在编写一个工作流,需要执行某些操作,具体取决于当有人编辑某个项目时哪些字段被更改。例如,如果用户进入并从项目(工作人员)中删除角色(作业),那么我需要工作流程以实现角色字段已更改,推断删除(或可能添加)的角色,然后通知该角色的经理,并做任何其他必要的任务。另一个例子是,如果项目中的地址字段发生变化,那么需要向合适的人力资源部门通知变更。

要做到这一点,我将在启动工作流程时尝试代码块,比较前两个历史记录条目,不同的任何字段将被标记为已更改,我将根据每个字段采取相应的操作。

任何人都可以告诉我获取此功能的其他选项是什么,因为我想知道是否有更好的方法。感谢

2 个答案:

答案 0 :(得分:0)

使用SPD工作流程并不困难,具体取决于角色数量。

创建一个列,然后进入内容类型并隐藏它。创建一个在新的或更改时执行的SPD工作流。比较隐藏列和用户输入的列,如果更改,则将值与角色名称进行比较,并执行需要执行的操作。完成后,将用户输入的列复制到隐藏列中。

丑陋且冗长,但如果您不具备在服务器上实现工作流代码的能力,那么感谢企业IT,那么这是一个选择。

答案 1 :(得分:0)

我会在列表上启用版本控制,然后使用:

SPListItem currentItem = workflowProperties.Item;
SPListItemVersion previousItemVersion = currentItem.Versions[1];
//Compare the fields in currentItem and previousItemVersion

但如果我理解你的问题,那就是你要做的事情。