I am currently trying to figure out a method to capture only the latest approval signatures in workflow that allows for rework loops. Below is some background on the requirements and current set up.
Approvals are captured for documents (main objects for the signatures) and other objects through Change Notices using approval tasks in the associated Change Activity.
The user's full name at the point in time of the signature has to be captured and applied in the future for any republishing. This would capture the name even if the user's name changed for any various reason. To do this, a customization was placed on the SignatureLink object to record the name in the Comments section using a listener and delimiter for any realy comments.
The previous set up for just documents where the workflow was applied against the object used a Report with a InfoEngine task to capture the necessary information. In this scenario, the workflow was applied directly to the document and users were required to iterate the document on any rework loops so the latest revision-iteration would only have the latest signatures (Approvals) from the SignatureLinks created after the iteration.
I have been able to create a Report query to link the following: document -> change activity -> signature link -> user. Included in the query, I have mapped: change activity -> workflow process -> wfvotingeventaudit (signed, required, and sorted by the trip count). This currently creates a cartesian result. I am looking for additional links or information to make sure I get a 1 to 1 all the way through so I could simply use only the latest trip count information. I have been able to use the createstamp between the signaturelink to the wfvotingevenaudit objets, but I feel this does leave a possiblity for issues (race condition as an example).
Please let me know if you have faced anything similar or have some ideas to link the final stages of my query.