Event Receiver'ların Geç Çalışması

SharePoint-2010-Logo Birkaç gündür büyük sıkıntıya sebep oldu bu durum. Bir Event Receiver ile ItemAdded ve ItemUpdated olaylarında, belirlenmiş bir alanı bildiğimiz bir değer ile güncellemeye çalışıyorum. Tabi ki güncelleyebiliyorum ancak Event Receiver‘ımız bunu biraz geç yaptığından ilgili alanın dolduğunu görmek için sayfayı yenilemem gerekiyor, ki bu hiç istemediğimiz bir durum. İstenmeyen bu durumdan kurtulmak aslında çok basit(miş). Varsayılan olarak asenkron (asynchronous) çalışan bu receiverlara, senkron (synchronous) çalışması için aşağıdaki gibi bir tanımlama yapmamız yeterli oluyor:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="104">
    <Receiver>
      <Name>SetPeopleERItemUpdated</Name>
      <Type>ItemUpdated</Type>
      <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
      <Class>EventRecivers.SetPeopleER.SetPeopleER</Class>
      <SequenceNumber>1000</SequenceNumber>
      <Synchronization>Synchronous</Synchronization>
    </Receiver>
    <Receiver>
      <Name>SetPeopleERItemAdded</Name>
      <Type>ItemAdded</Type>
      <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
      <Class>EventRecivers.SetPeopleER.SetPeopleER</Class>
      <SequenceNumber>1000</SequenceNumber>
      <Synchronization>Synchronous</Synchronization>
    </Receiver>
  </Receivers>
</Elements>

Artık liste veya kütüphanenize bir öge eklediğinizde ya da güncellediğinizde, ilgili alan da Event Receiver’ımız tarafından derhal güncellenmiş olacak. Detaylar için buraya bakabilirsiniz. Kolay gelsin.

Written on November 28, 2013