Alternative to SharePoint Remote Event Receiver - azure

I have been investigating a problem for some time in which a Remote Event Receiver I had written for an Azure hosted app was sporadically not taking effect (less than 1% of the time). I put in some serious logging but couldn't identify the issue, as far as I could tell the remote receiver wasn't being called by some actions that should have triggered it. I eventually escalated the problem to Microsoft and after some time their response was effectively that they can't guarantee the event receiver will trigger with 100% reliability.
So what I'm looking for is any suggestions on ways to improve reliability of a RER or alternatives that can be used to trigger an event each time an item is added or updated to a list in SharePoint.

Whoever first guided you toward using Remote Event Receivers should have indicated that they're not guaranteed to fire, so they're only suited for non-critical notifications and user interface improvements (like refreshing a view when an item is added to a list).
To truly guarantee the execution of some action when items are added or updated in a list, your two best options are workflows and server-side event receivers.
Since it sounds like your environment is cloud-hosted, you are likely restricted to using workflows (event receivers require deployment of custom farm solutions).
For reference on how to create a workflow, see Microsoft's documentation entitled "Creating a workflow by using SharePoint Designer 2013 and the SharePoint 2013 Workflow platform".

Related

What happens with SharePoint Online Remote Event Receivers if the receiver is down?

The documentation for SharePoint Online Remote Event Receivers is not clear on the durability of events. If a provider hosted add-in registers a RER and then subsequently goes down (say, for maintenance), what happens to events that occur while the receiver is unavailable? Are they queued and retried by SharePoint Online until the add-in comes back online, or are they lost? If they are queued, for how long?
Unfortunately I can only tell you something about my experience with it - I don't have anything official for this...
As far as I know the events won't be queued nor are they retried after the add-in comes back online.
The events are just pointing to nowhere.
As I said, this is not an official statement or something - just my experience.
Any information input is welcome.

Default Queues for Disabled users in CRM 2011 - can they be deleted with confidence?

On-Premise CRM 2011 installation with a number of disabled users. Has anyone deleted the default queue for these users? What risks or adverse behavior can I expect? Primary interest is in cleaning up the list of queues -- Inactivating queues does not accomplish this. My own smoke testing has uncovered no negative side effects.
I've never seen any undesirable or odd side effects of deleting default queues of users or Teams, but of course if you have an entity which is ticked to say "add to default queue when record is reassigned" then this would fail for any user or team without one (I'm not sure iif this would also means the assign action fails/rolls back).
Deleting them for deactivated users would of course not have this issue since they can't have records assigned to them.
You probably want to do an Advanced Find of Queue Items first to check there are none still in any Queue owned by an inactive user.

Workflow status shows - Due to heavy load, the latest workflow operation has been queued

I recently migrated my MOSS 2007 custom approval workflow to SharePoint 2010, I initiated multiple workflows in quick succession. I get this very often. But it disappears after few minutes and workflow proceeds normally. i did not have any problem in my MOSS 2007 application.
Note: Due to heavy load, the latest workflow operation has been queued. It will attempt to resume at a later time.
I disabled the workflow auto clean up timer job as we had a data retention policy.
Is there any configuration change required at central admin level?
During our upgrade from 07 to 10, we had a few bumps with workflows - mainly that they wouldn't behave as they used to. Since these we pretty vanilla OOB workflows, I'd just recreate them and delete the MOSS workflows.
Few things to keep in mind: If multiple workflows are being initiated on the same site within a small amount of time, the workflow may "clock" in the browser as well as queue up on the back-end, which is what you're experiencing. Initiating too many workflows in a short amount of time may cause a delay in the sending of the first email notifications to participants.
Additionally in my experience, with multiple workflow-events happening at the same time, it is possible that workflow participants may not get all the workflow-events.

Developing a replacement for Sharepoint “Alert Me”-function

I'm pretty new to sharepoint-development, so I thought I'd check real quick with the gurus in here.
I've been given the task of building a replacement for the built-in Alert Me feature. The main reason for this is to allow for alerting members of a role with a forms authenticated sharepoint.
This is where you guys come in. I know you can build an immediate Alert Me function by creating list item event receivers.
However, if I wanted to create the summary-feature (daily/weekly notifications) - what would be the best way to go about this?
With very limited knowledge, all I could think of was to create a Windows Service, which checks daily for changes to the lists, and sends notifications accordingly, in one summarized email.
Would I be wrong to assume that this is, if not the best/only way to do it, at least one way of doing it?
And could I use the SPChangeCollection to accumulate the changes?
thanks in advance :)
Don't create windows service: you have SharePoint job for scheduled tasks.
However, I would reconsider the need. SharePoint alerts already offer immediate/daily/weekly alerts. thos member of the role (group?) can perfectly choose the "Alert me" individually. i personnaly would consider otherwise as spam (how do you unsubscribe, then?)

Dated reminders in sharepoint calendars

I have a departmental maintenance that needs to be done roughly every 3 months. The maintenance itself can't be automated (it involves physically swapping a primary and spare piece of networking hardware to verify the spare is still working correctly).
I could put this as a recurring event in Outlook and give it a two week reminder window, but I don't want it to be tied to an individual's account (if I or one of my coworkers leaves the company, I still want the reminder to go to the department).
We're working on implementing Sharepoint and my group has a maintenance calendar, which seems like a lovely place to put this. However, there don't seem to be dated notifications for the events. You can set up notifications if the event changes, and you can subscribe to the calendar and set up a notification via Outlook, but that notification is still a per-user notification.
At this point I'm probably just going to write a cronjob on a linux server that emails a reminder, but I thought I'd ask if there's a way to do it using all these expensive collab tools we're putting in place.
So, any idea how to get notifications of a dated event that is not tied to individual users? I also welcome being told that my entire take on the problem is false as long as it involves some good alternatives. Thanks!
Expanding on Andy's answer (http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx) if you just put code to send an email in the Execute method of the timer job this doesn't give you anything more than cron.
What you could do is to write code to iterate through the Calendar (actually an Event List) finding any events due soon and sending email to whomever is in the Assigned To field. This could then be called from the Timer Jobs Execute method or using a normal scheduled task. This will be easier to administer changes than cron and could be used for other types of tasks.
A link to get you started - Iterate through Items in a List
Another option would be to use Workflow to send out emails from the calendar
EDIT - Since SharePoint SP2 this no longer works as is as workflows can no longer start themselves (loop) - explanation and workaround
This CodeProject article shows how to develop a feature to send scheduled reminders
Yet another option would be to use one of the 3rd party tools that do this (disclaimer - I work for the first company)
Pentalogic - SharePoint Reminder
Bamboo - Alert Plus
BoostSolutions - Alert Reminder Boost
Finally - whichever method you choose (custom code/workflow/3rd party) you will likely run into trouble with recurring events as SharePoint doesn't provide a way to get an 'expanded' list of all occurrences.
The best way to do this would be using a Timer Job - see Andrew Connell's blog here: http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx

Resources