I have a document library with a folder structure.

I have certain documents that get flagged "on hold", I'd use a custom column to do this.

I need to prevent that those flagged documents get moved from their current location to parent or sub folder. Since users are able to use the "open in Explorer" they could do this easily.

Any hints as to what my options are? workflows, solutions, special settings?

  • 2
    Would eDiscovery work for you that will use a hold? "The hold ensures that a copy of the content is preserved, while still allowing users to work with their content. When you have identified the specific items that you will have to deliver, you can export them in an industry-standard format." technet.microsoft.com/en-us/library/fp161516.aspx
    – Benny Skogberg
    Apr 14 '15 at 13:52
  • Is a dev solution an option for you?
    – Evariste
    Apr 14 '15 at 14:21
  • @Benny: thanks, if a I could avoid eDiscovery it would be great but I'll look into it if I can't do it otherwise. Apr 15 '15 at 4:24
  • @Evariste: you mean to create a custom workflow/solution, yes, that would be even my preferred way. Apr 15 '15 at 4:25

If you have SharePoint developper resources, you can create an Event Receiver. That ER would be attached to ItemDeleting and ItemFileMoving events to cancel them in case specific conditions are met.

Go with an ER and not with a workflow: workflows are not immediate, they have a huge cost, they're visible in the UI, they're terrible to debug, their architecture has changed a lot between 2010 and 2013, etc.

The ER will be implemented as a class in a SharePoint Farm solution project. You can register it either from a feature (with a feature event receiver) or from a configuration page (i.e. a custom application page in _layouts you have to develop too ; this page would allow users to choose the library(ies) to attach the ER on).
My advice would be to not use/trust Visual Studio when you choose an Event Receiver Template to add to the project: that would create an XML registration file, that would attach the ER to all doc libs in the site: I prefer registering the ER "by hand" with custom code: this allows the exact precision I usually need.

You'll find a lot of literature on the Web about this process, e.g. Using Event Receivers in SharePoint Foundation 2010 (targets SP2010, but still relevant for SP2013).

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.