I've done something similar.


Basically, you are looking to update the approval record (reject it with comments that time had expired) and let the normal workflow handle the rejection just like it would if the user initially rejected.


Mine was an approval reminder setup that queried the approvals for catalog items and gave approval reminders twice a few days apart with the last one a warning to act or it would automatically be rejected.



If you can create a filter on the approval table to find those approvals that have been created more than 14 days ago, you can then use that query in your scheduled job and just set those to rejected with some comment and the workflow will handle the rest.