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

C# 知道哪些字段已更改的工作流,c#,sharepoint,workflow,C#,Sharepoint,Workflow,我正在编写一个工作流,它需要执行特定的操作,这取决于当有人编辑某个项目时哪些字段被更改。例如,如果用户进入并从项目工作人员中删除角色作业,则我需要工作流来了解角色字段已更改,推断已删除或可能添加的角色,然后通知经理该角色并执行任何其他必要任务。另一个例子是,如果项目中的地址字段发生更改,则需要将更改通知相应的人力资源部门 为此,我将在工作流启动时尝试一个代码块,该代码块将比较前两个历史记录条目,任何不同的字段都将标记为已更改,并且我将根据每个字段采取相应的操作 任何人都可以告诉我有什么其他的选择

我正在编写一个工作流,它需要执行特定的操作,这取决于当有人编辑某个项目时哪些字段被更改。例如,如果用户进入并从项目工作人员中删除角色作业,则我需要工作流来了解角色字段已更改,推断已删除或可能添加的角色,然后通知经理该角色并执行任何其他必要任务。另一个例子是,如果项目中的地址字段发生更改,则需要将更改通知相应的人力资源部门

为此,我将在工作流启动时尝试一个代码块,该代码块将比较前两个历史记录条目,任何不同的字段都将标记为已更改,并且我将根据每个字段采取相应的操作


任何人都可以告诉我有什么其他的选择来获得这个功能,因为我想知道是否有更好的方法。感谢使用SPD工作流,根据角色的数量,这并不难

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


丑陋且冗长,但如果您无法在服务器上实现工作流代码,多谢公司的支持,那么这是一个选项。

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

SPListItem currentItem = workflowProperties.Item;
SPListItemVersion previousItemVersion = currentItem.Versions[1];
//Compare the fields in currentItem and previousItemVersion
但如果我正确理解了你的问题,那就是你要做的