As I understand WF are triggered with events (or event). I have an expiration column and I need to send notifications 45 and 30 days prior to the expiration data. What are my options?
Have a look at my answer over on StackOverflow.com - Dated Reminders in SharePoint ...
It's basically the same problem. That poster is looking to remind people of upcoming calendar events but this is no different to your use case of emails before expiry dates.
The post talks about a few different ways to do this
- Timer Jobs
- Open source solutions
- Commercial Solutions
You can trigger the workflow when the item is created, then pause it until you reach the expiration date minus 30 (or 45) days. This can easily be done with SharePoint Designer.
This could become tricky if the expiration date is modified later. If it is the case you'll need to rely on more advanced solutions (e.g. recurring workflows that poll the item at regular intervals).
The best solution is to use Alerts. If I'm not wrong in ItemAdded event of List item receiver you can create Alert, set AlertTime to needed time, set AlertFrequency to Immediate.
Create views with the specified criteria, then subscribe alerts to the views.
Thanks to Ryan's poking and my desire to prove myself, I did discover this isn't as straight forward as I thought. You need to create a view with no date filtering, but you need some kind of filtering, like Title does not contain [blank]. Then subscribe to that view, then change the filter to your desired date filter. This works for me. I'm curious to see if it does for you.