Clunky workarounds that work: catching field changes in a SPD workflow (with no custom code)

Yes, you can do this with an Event Receiver.  You might be able to do it with a VS workflow, or possibly one of those fancy third-party tools... maybe not.  But if you're a SharePoint admin with nothing but SharePoint Designer and you need to determine if a field changed, here's how.

 

1) Create a new field of the same type as the field you want to track.  We'll use Person or Group, since that's what came up today when somebody asked me how to do this.  If our field is called, say, "AssignedTo", we'll create another one called "AssignedPast".

2) If you haven't already, build a workflow and attach it to your list.  Tell it to fire when something changes.

3) Create a step with the condition "If AssignedTo not equals Current Item: AssignedPast".

4) In the Actions portion of the step, take whatever action you like (I just wrote a message to the History Log, but you can send an email or whatever makes sense).

5) Just before ending this step, set AssignedPast equal to AssignedTo.  This will reset your change indicator for next time.

That's all.  Simple, and not all that elegant, but it gets the job done and you can hide the extra field so your users will be none the wiser.

No Comments