I am having an issue when creating a WebProvisioned eventreceiver that activates a feature. However I am getting the "Save conflict - Your changes conflict with those made concurrently by another user. If you want your changes to be applied, click Back in your Web browser, refresh the page, and resubmit your changes." error.
The idea is that I have a custom site template and a feature that hides some fields from new and edit form on a generic list we created. I want the feature to be activated after the every subsite is created, so that it can modify an existing list on the template.
Here is my WebProvisioned method:
public override void WebProvisioned(SPWebEventProperties properties)
{
base.WebProvisioned(properties);
SPWeb web = properties.Web;
// Activate feature
web.Features.Add(new Guid("1d128122-c13a-4a6a-9e09-9388535f51bb"));
}
And here is the FeatureActivated method:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb web = properties.Feature.Parent as SPWeb;
SPList lst = web.Lists.TryGetList("Statusbeskrivelse");
if (lst != null)
{
//lst.EventReceivers.Add(SPEventReceiverType.ItemAdding, Assembly.GetExecutingAssembly().FullName, typeof(ListEventReceiver).FullName);
// Hide KPI fields
SPField customerField = lst.Fields.GetFieldByInternalName("KPI_x0020_Kunde");
customerField.ShowInNewForm = false;
customerField.ShowInEditForm = false;
customerField.Update();
SPField periodField = lst.Fields.GetFieldByInternalName("KPI_x0020_Periode");
periodField.ShowInNewForm = false;
periodField.ShowInEditForm = false;
periodField.Update();
SPField projectField = lst.Fields.GetFieldByInternalName("KPI_x0020_Projekt");
projectField.ShowInNewForm = false;
projectField.ShowInEditForm = false;
projectField.Update();
}
}
I am getting the error on the first SPField.Update();
Can anyone help me with what is wrong? I tried reading this blog where he mentions that the method is asynchronous as standard and changing it to synchronous can help with save conflicts errors. I am however not creating several sites simultaneously, only one at the time...
Thanks for reading.
Anders