I would like replicate this case:
For module contracts, I need that, 10 days before end date, the system send an email to the assigned user.
I tried using workflow, run only in scheduler, on all records and repeated run unchecked.
This works only once time (cause repeated run unchecked) but I need that, if end date changed and my workflow condition verified, the system send the mail but this doesn’t work.
If I check repeated run, every one minute, system send an email.
Sostantially, I need that my workflow runs once time every day and not every minute.
Probably I must create a scheduler that runs my workflow.
Someone can help me?
I think you could achieve that with a custom field “processed” that you use (as a condition) to avoid the repeated runs (instead of the default repeated runs mechanism). Then you can reset that field with a separate workflow when something relevant happens.
Note that this might be worse in terms of performance since all the workflows would be running anyway, although they would be stopped by the condition. If you have many records and it runs too often, this could be a problem.
Another option (without these performance issues) would be to keep using the repeated runs mechanism but use a logic hook to reset that when appropriate. But this needs to be done in PHP code, a Workfow can’t do it.
Thank you very much, your solution works great