ЖизниЛЕНТА

Copyright © 2007 Шапель Павел

Актуальность данных в объектной модели SharePoint

with one comment

Эх не всё все так ладно порой как хотелось бы в объектной модели SharePoint-а  с актуальностью данных.

История:

Руками создаём site collection и пытаемся активировать некую фичу (далее Ф1), которая в свою очередь зависима от другой фичи Ф2 (она содержит  определение workflowtemplate). И вот собственно, на активацию Ф1 вешаем FeatureReceiver, который поднимает из RootWeb WorkflowTemplate (определение которого определен в фиче Ф2) и далее осуществляет с ним некие магические действия.

Т.е. примерно так:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{

  Microsoft.SharePoint.SPSite spSite = (Microsoft.SharePoint.SPSite)properties.Feature.Parent;

  Microsoft.SharePoint.SPWeb spWeb = spSite.RootWeb;

  SPWorkflowTemplate spWorkflowTemplate =
    spWeb.WorkflowTemplates[new Guid("{FB3EBAFA-5B08-402c-B4F2-4CC1A66C21FA}")];

  ...

}

И вся история в том что spWeb не содержит  WorkflowTemplate, который определён в Ф2 (хотя Ф2 активируется, т.е. WorkflowTemplate добавляется)

Если  же сделать как-нибудь так:

using (SPWeb spWeb2 = spSite.OpenWeb(spWeb.ID))

{
  SPWorkflowTemplate spWorkflowTemplate =
    spWeb2.WorkflowTemplates[new Guid("{FB3EBAFA-5B08-402c-B4F2-4CC1A66C21FA}")];

}

то  всё отлично. Но надо быть осторожным, ибо коли наделать каких-либо изменений объекте spWeb то в дальнейшем при обращении к spSite.RootWeb он скорее всего свалится с ошибкой, что объект был изменён.

Written by Pash

Июль 15th, 2008 at 5:00 пп

Posted in Разработка

Tagged with

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Leave a Reply