SharePoint Tip #8: BeforeProperties e AfterProperties em Event Handlers

Os Event Handlers das listas recebem como parâmetro um objecto SPListEventProperties através do qual podemos aceder ao item da lista, ao ID da lista bem como a outros objectos relevantes para o tratamento do evento. De entre estes objectos estão duas colecções de propriedades, as BeforeProperties e as AfterProperties que, como os seus nomes indicam, correspondem ao conjunto das propriedades do item antes e depois da ocorrência do evento.

Apesar das enormes vantagens que estas colecções de propriedades nos trazem, há alguns cuidados a ter na sua utilização:

  1. Num evento ItemAdding, as BeforeProperties ainda não existem uma vez que o item ainda não foi criado
  2. As BeforeProperties são apenas para leitura
  3. As AfterProperties são apenas para leitura nos eventos assíncronos (eventos –ed) como o ItemAdded ou ItemUpdated
  4. As AfterProperties podem ser alteradas em alguns eventos síncronos (eventos –ing) como o ItemAdding ou o ItemUpdating

Este último ponto é, na minha opinião, a maior vantagem na actualização destas colecções. Isto porque podemos actualizar as propriedades do item antes que este seja criado (no evento ItemAdding) ou mesmo depois de criado (no evento ItemUpdating) sem ser necessário chamar o método Update() e, portanto, sem incrementar a versão do item nem desencadear novos eventos de actualização.