Sharepoint 2010 – Excepción (String was not recognized as a valid DateTime) al agregar una nueva versión en un DocumentSet

Si estas trabajando sobre Sharepoint 2010 y obtienes un bonito error (String was not recognized as a valid DateTime) al intentar, programaticamente, agregar una nueva versión con un código parecido a este:

DocumentSet.VersionCollection.Add(true, "");

Entonces es que has sido víctima de una actualización de DLL (Microsoft.Office.documentmanagement.dll) de Microsoft, concretamente a partir de la CU de Agosto 2012 el multi-idioma ya no funciona y no se pueden crear versiones de los DocumentSet.

Sigue leyendo

El contexto expiró y ya no se puede usar. (Excepción de HRESULT: 0x80090317)

Recientemente me he encontrado en mi día a día que tenia que desarrollar un proyecto de datos muy costoso y largo. En principio Sharepoint 2010 lo trataba bien, iba lento pero funcionaba de manera estable. El problema después de 1 día de procesamiento de datos que apareció en el log el evento que aparece en el título de este post «El contexto expiró y ya no se puede usar. (Excepción de HRESULT: 0x80090317)». ¿Que hacer? ¿no podría realizar correctamente mi proceso? ¿tendria que abandonar para siempre la programación en Sharepont? jeje, claro que no.

Sigue leyendo

Como cambiar o borrar una columna marcada como «sealed» en sharepoint

Si tienes en tu Sharepoint una columna marcada como «sealed» veras que no puedes ni borrarla ni cambiarla (ni por código ni en modo visual).

Para lograr nuestro objetivo recurriremos a PowerShell. Por que en nuestra consola de «Windows PowerShell ISE» vamos a escribir los siguientes comandos:

if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) {
    Add-PSSnapin Microsoft.SharePoint.Powershell
}

function RemoveSealedFlag([string]$siteUrl, [string]$columnGuid) {
$site = Get-SPSite $siteUrl
$web = $site.RootWeb
$wfield = $web.Fields[[System.Guid]$columnGuid]
$wfield.Sealed = $false
$wfield.Update()
$web.Update()
}

Ahora bastara con llamar al método RemoveSealedFlag para desmarcar la propiedad y de esta forma ya poder borrarlo o editarlo.