Need a birthday workflow send email wish to users on any day of the week.
Timerjob is great when using On Premise but what if we are using Office 365….?
I’d look at using a Powershell script on a scheduled task within windows to:
Query the User Profile Service to get the current days birthday peeps (you might need to add a custom property to the user profiles as I’m not sure that birthday Date is included in the user profile by default, might only be month).
Your could then send an email from the within the powershell script or populate a list with the users and have a web part display a message if the current logging in user is in the birthday list.Â
I think a timer job is a suitable option, but it will have a higher overhead than a powershell script. In terms of supportability timerjobs are very hidden away and have a very firm hold on the farm. If not built correctly they can end up running on every machine in the farm for every web application which takes us resources etc.
Why not use Workflow itself? SharePoint Designer Workflow?
You could use a webpart as an interface on a page, but like Ajeet said, you need a trigger, and for that a timer job is best suited.
You could use the timer job to update a list everyday with the latest birthdays (perhaps upcoming birthdays for the next 4/5 days), reading it from User Profile or DB. Your webpart can then read this list and render a nice-looking “Happy Birthday” message.
In my view web part is nothing but a piece on a page contains some functionality.
We need to automatic trigger the DOB and that can achieved by Scheduler either window scheduler or by timer job. And Timer job is better because it runs within SharePoint.