0

Here is the situation. I have built two lists for tracking team engagements (requests that come into a set of teams where I work) in my SharePoint 2010 environment. The item ("request") is created initially in what I consider to be the "active" list and when that item has been worked and its status is set to "Request Complete" or "Request Cancelled" it is created in the 2nd list which I consider to be the "archive" and deleted from the original "active" list.

Along the way there are various notifications sent out via workflow to notify the original requestor of status changes, when notes are added by the team working the request, etc. but the problem is once the item is moved to the archive all the embedded links (in the notifications the users received) to that item no longer work. As expected SharePoint throws an error stating that the item has been moved or deleted.

Unfortunately this confuses my users so I am looking for some way to modify the error that SharePoint generates and include a link to the item in the archive so they can 1st) know that the item has been closed and moved and 2nd) get to it in the "archive" list if they still need to review it.

Alternatively if there is a way to route users who click the aforementioned email links directly TO the archive (if the item has been archived) instead of showing an error at all that world work too. I am just at a complete loss as to how to do either and frankly I am open to any and all suggestions.

Thank you!

1

The only way that I can think of is that you set-up the email link to take you to a custom application page with a query string to identify the item.

This custom application page then looks for the item in the first list, if it finds it redirect to the item in first list otherwise it then looks in the second list. If it is there redirects the user otherwise says that the item doesn't exist.

As for implementation, well that is going to depend on your application.

I am presuming that all items live in the same SPWeb/SPSite.

So you'll need to a way to identify the items which you can control. I would suggest using a Guid. You will need to create and set this when the item is created.

You could have an application page that is deployed to https://sharepoint/_layouts/MyApp/ViewItem.aspx

Each item could be referenced by specifying a query string appended to the end of the url. e.g. https://sharepoint/_layouts/MyApp/ViewItem.aspx?Id={guid}

Then in your workflow when you are creating the step which sends the email you create the message and add the url as above into the message.

Of course then you are going to have to implement the custom application page taking that Id and trying to resolve it, but that shouldn't be too hard.

  • Thanks for Replying Simon, That's not a bad idea...do you have any idea how I would go about configuring the query string? I'm afraid I have never done that. – Logan2847 May 28 '15 at 21:02
  • Well you are going to need an identifier for each item. Could be a guid which you create and store against each item. – Simon Doy May 28 '15 at 22:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.