Blog de P@blo - Sharepoint Server

Recent Posts

Tags

News



  • Locations of visitors to this page
    En poco incluiré algunos posts sobre workflow con Microsoft Office Sharepoint Server 2007 ó Windows Sharepoint Services v3.
    Ahora le toco el turno a la integración de Exchange Server 2007 con una central IP-PBX, encontré una muy buena que puede ser configurada a nivel de software: http://www.3cx.com/, pruébenla...!!!
    Probando Office Communications Server (OCS) 2007, más allá de probar la mensajería instantánea tradicional, la característica de Web Conference era muy esperada desde la desaparición de su similar con Exchange Conference Server 2000. Más información http://office.microsoft.com/en-us/communicationsserver/default.aspx

Community

Email Notifications

Recursos Técnicos

Herramientas

Blogs destacados

Archives

Modificación del campo "Creado por" de una lista de Sharepoint 2010

Por defecto el campo "Creado por", al igual que algunos otros dentro de una lista de SharePoint 2010, no pueden ser modificados por medio de una interfaz gráfica por defecto de SharePoint o un workflow, sin embargo, por medio de Powershell es posible hacerlo ejecutando algunos comandos.

Comparto con ustedes esta secuencia de comandos que funcionaron para mi en SharePoint 2010 con una lista llamada "Gestión Documental" y un campo secuencial "Código del documento" que sirve como identificador adicional de cada documento.

Las líneas "Read-Host" solicitan al usuario que ejecuta el script que ingrese el código del documento a modificar y el usuario con el cual se va a actualizar.

$Codigo = Read-Host "Ingrese el código del documento"
$Usuario = Read-Host "Ingrese el nombre del propietario"
$Web = Get-SPWeb http://sitiosharepoint
$List = $Web.Lists["Gestión Documental"]
$items = $List.Items

Foreach($item in $items)
{
if($item["Código del documento"] -eq $Codigo)
{
$item["Creado por"]=$usuario
$item["UsuarioCambios"]="dominio\nombre_usuario"
$item.Update()
}
}

El formato del usuario debe ser ingresado como: ID;#nombre_usuario. Para obtener esta información el usuario debe estar registrado en SharePoint. Se puede obtener esta información con la siguiente secuencia de comandos:

$web=Get-SPWeb http://sitiosharepoint
$user=$web.SiteUsers["dominio\nombre_usuario"]
$user.id
42

En el caso de actualizaciones masivas es posible utilizar sentencias o consultas CAML para poder filtrar la cantidad de registros a retornar, por ejemplo (Extraído del sitio http://get-spscripts.com/2010/09/get-all-column-values-from-sharepoint.html):

#Check if the item is a file or list item and run a different query accordingly
    if ($list.BaseType -eq "DocumentLibrary") {
        $queryString = "<Where><Eq><FieldRef Name='FileLeafRef' /><Value Type='File'>" + $ItemName + "</Value></Eq></Where>"
    }
    else
    {
        $queryString = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + $ItemName + "</Value></Eq></Where>"
    }

    #Create the CAML query to find the item
    $query = New-Object Microsoft.SharePoint.SPQuery
    $query.Query = $queryString
    $item = $list.GetItems($query)[0]

Para poder construir las consultas CAML utilizando la herramienta "U2U CAML Query Builder" que se lo puede descargar de http://www.u2u.net/Tools/wincamlquerybuilder/CamlQueryBuilder.aspx

Algunos enlaces adicionales que les pueden servir:

- http://sharepointrelated.com/2012/05/03/addedit-list-items-using-powershell-in-sharepoint-2010/

- http://davidlozzi.com/2012/02/14/playing-with-sharepoint-data-in-powershell/

Leave a Comment

(required) 

(required) 

(optional)
 

(required) 

If you can't read this number refresh your screen
Enter the numbers above: