When you enable the
Require Check Out option for a document library in Microsoft Windows SharePoint Services 3.0, the
ItemUpdated event or the
ItemUpdating event occurs two times. This occurs when the document library is updated.
Back to the top
By design, Windows SharePoint Services 3.0 works in this manner. When you check out a document in a document library, a local copy of that document is created. Changes that you make to that document are saved to the local copy. When you check in the document, the operation occurs in two separate steps. The local copy is first saved to the server. This save operation occurs even if you do not make any changes to the document. Then, a separate request is performed to check in the document. Therefore, the
ItemUpdating event or the
ItemUpdated event occurs two times.
Back to the top
To work around this behavior, examine the
vti_sourcecontrolcheckedoutby property inside an event receiver. If the
vti_sourcecontrolcheckedoutby property exits in the
BeforeProperties property but not in the
AfterProperties property, the event was caused by checking in a document.
The following sample code shows you how to do this.
if (properties.AfterProperties["vti_sourcecontrolcheckedoutby"] == null && properties.BeforeProperties["vti_sourcecontrolcheckedoutby"] != null)
{
//This is when the update event is triggered by check-in.
}
else
{
//This is triggered by events other than check-in action.
}
Back to the top