venerdì 5 febbraio 2010

Custom Webpart con SecurityTrimmed su SPGridView in Microsoft Office SharePoint Server 2007

Il progetto mostra come utilizzare le Permission Level di Microsoft Office SharePoint Server 2007 per creare livelli di autorizzazione custom, quindi applicare gli stessi a strutture dati ed oggetti di Moss2007. Il documento e il codice allegato mostrano come gestire le permissions su una SPGridView attraverso l'utilizzo del controllo SPSecurityTrimmed

N.b. Documentazione e sorgenti scaricabili dall'area Download

Vai alla pagina del progetto

Invalid List Item. The List Item provided is not compatible with a Scheduled Item.


Exception restituita da SharePoint: An unhandled exception was thrown: System.ArgumentException: Value does not fall within the expected range. at Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at Microsoft.SharePoint.SPWeb.GetMetadataForUrl(String relUrl, Int32 mondoProcHint, Guid& listId, Int32& itemId, Int32& typeOfObject, Object& fileOrFolder) at Microsoft.SharePoint.SPWeb.GetFileOrFolderObject(String strUrl) at Microsoft.SharePoint.Publishing.CommonUtilit...
07/09/2008 10:35:00.52* w3wp.exe (0x0B74) 0x17E4 CMS Publishing 7oc4 Unexpected ...ies.GetFileFromUrl(String url, SPWeb web) at Microsoft.SharePoint.Publishing.PublishingPage.get_Layout() at Microsoft.SharePoint.Publishing.WebServices.PublishingService.AlterPageLayoutConnection(String pageUrl, Boolean disconnect)


Errore in Event Viewer: Invalid List Item. The List Item provided is not compatible with a Scheduled Item.

La Causa:
Al momento della pubblicazione di una pagina, il metodo PublishingPage.ListItem.File.Publish() richiama "GetIsSchedulingEnabledOnList(sourceListItem.ParentList));" per controllare è abilitato lo Scheduling sulla lista. Se non c'è la richiesta di approvazione dei contenuto per gli oggetti della lista può verificarsi questo errore.

La Soluzione:
Abilitare il flusso di approvazione, disabilitare lo scheduling degli items per la lista e disattivare nuovamente il flusso di approvazione.
  • Nella pagina della Lista cliccare su Setting, quindi List Settings
  • Nella finestra di List Setting cliccare su Versioning Setting quindi selezionare il radio button Yes alla voce "Require content approval for submitted items"
  • Cliccare su Manage item scheduling quindi disabilitare il checkbox "Enable scheduling of items in this list"
  • Cliccare su Versioning Setting quindi selezionare il radio button NO alla voce "Require content approval for submitted items"