I have a process that needs to be run across every element of a list, doing specific things (mostly sending emails) based on several different fields of that item. This operation will always be done on all items in the list simultaneously. Code is not an issue because that kind of element has already been implemented elsewhere in the system, where one-per-item is not feasible.
I'm stuck at the decision of how many workflows to use for the system. I can either setup a workflow on a single "index" item that iterates across all of the items in the list, or I could setup multiple workflows that run on every single list item, each indepedently handling their own item.
Are there significant upsides or downsides to one of the approaches versus the other? Is one or the other more flexible? Are there strain issues I should be worried about? Or does it mostly boil down to how many things I want to be monitoring for errors?
I'm aware that under normal circumstances, a timer job would be a wise move for a periodic email system. I'm under the impression, however, that timer jobs cannot be easily or readily configured by users in the UI, and this needs to be flexible in both what is done and how often it triggers. In some of the site collections, this will be entirely manual in operation - so I'd much prefer an option that allows me the freedom to trigger it at will.
If I'm mistaken in my understanding that timer jobs cannot accomplish the above needs of flexibility and easy on-demand override, then please let me know. Otherwise, I'd prefer an understanding about whether there's any significant differences between one-on-all versus one-on-each, or if it really doesn't matter in that choice.