views:

90

answers:

6

Sharepoint document libraries used for policies and procedures, both administrative and clinical (health care).

version control and approval workflows support legislative requirements and protect against liability issues.

Unfortunately, deleting a document removes all record that it ever existed--all the history goes with it.

I don't have a sandbox right now to verify, but I think it also bypasses the approval workflow.

Legally, for some of these, if we delete it, we still MUST be able to show what the policy was at a particular place/time.

Is there a reasonably simple fix or workaround?

Similarly, if someone changes the filename (which is not hard to do accidentally), both file names need to show the history.

A: 

I heard that M$ had a patch for it but I can't remember where I heard that, and I haven't found it online yet.

Wes Groleau
Oh god, you spelled Microsoft with a dollar sign. That's so clever.
kprobst
+1  A: 

There is no easy place to imagine where you could see all the deleted records (i.e. that would be some specific view of the library itself but MOSS doesn't provide us with one). A simple workaround would be to add a "Deleted" column to the list which is hidden in user forms. Then you would then catch the "ItemDeleting" event in an eventhandler and set the "deleted" to true (but in fact not delete the item). Of course, you have to filter all the views that the user sees so that only deleted=false items are shown.

naivists
A: 

That's the way it works. I don't think it's inadequate insofar as SharePoint is not a version control system, but rather a document management one. From that standpoint, deleting something from the repository means "I don't want to see it again".

From here:

You can choose to delete a single version of a file — for example, if you know that you made a mistake in that version — which removes that version from the version history. However, if you delete the actual file, all of its versions are deleted with it. By default, when you delete a version, the version is sent to the Recycle Bin, where it can be recovered until it is permanently deleted. Your organization may handle deletions differently, however.

My car doesn't float, but then it was never designed to do that. If I wanted something that floats, I would buy a boat. So it goes with technology - if you needed a feature like keeping a deleted object forever then SharePoint is probably not the right product for you or your organization.

kprobst
A: 

The solution I am recommending to management is to make deletion unavailable from the library. A policy/procedure can be "deleted" by creating a new major version that say it is no longer to be used.

I think that will also prevent bypassing approval by deleting and re-inserting.

Not sure whether it solves the renaming problem.

Wes Groleau
A: 

Duh, deleting and inserting won't bypass approval because the insertion would have to be approved.

(But deleting would still sneak by)

Wes Groleau
@Wes Don't add an answer if it is not an answer, this answer would be better as a comment than an answer.
Eric U.
A: 

One solution would be:

  1. Create list Document Audit History
  2. Use EventReceiver on ItemAdded, ItemUpdated, ItemDeleting and others if you wish (ItemFileMoved etc) and then add appropriate records to this list.

Second one would be:

  1. On ItemDeleting event you can also cancel the execution of delete action and just move document somwhere else, if you wish so.
Janis Veinbergs