Búsqueda de sitios web

SharePoint Online: mostrar todas las tareas asignadas a mi grupo


Requisito: En la lista de tareas de SharePoint Online, obtenga todas las tareas asignadas al usuario que inició sesión y a los grupos de usuarios.

Si desea filtrar los elementos de la lista de tareas asignados al usuario actual, simplemente puede configurar el filtro [Yo] en la configuración de vista. Pero si un elemento de tarea está asignado a un grupo y el usuario que inició sesión es miembro de ese grupo, ¿cómo lo mostramos? Bueno, no hay forma de configurar dicho filtro desde la interfaz de usuario web. Entonces, creemos una nueva vista de lista usando PowerShell para filtrar los elementos de la lista de tareas asignados al usuario actual y a los grupos de usuarios actuales en SharePoint Online.

Obtener todas las tareas asignadas al usuario actual y a los grupos de usuarios actuales

Aunque puede editar la consulta con el diseñador de SharePoint, creemos una nueva vista de lista usando PowerShell, que filtra todas las tareas asignadas al usuario actual y a los grupos de usuarios actuales.


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set parameter values
$SiteURL="https://crescent.sharepoint.com/"
$ListName ="Project Tasks"
$ViewName="My Group Tasks"

Try {
    #Setup Credentials to connect
    $Cred= Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials
   
    #Get the List
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $Ctx.Load($List)
    $Ctx.ExecuteQuery()
 
    #Check if the View exists in list already
    $ViewColl=$List.Views
    $Ctx.Load($ViewColl)
    $Ctx.ExecuteQuery()
    $NewView = $ViewColl | where { ($_.Title -eq $ViewName) }
    if($NewView -ne $NULL)  
    {
        Write-host "View '$ViewName' already exists in the List!" -f Yellow
    }
    else
    {
        #Define the CAML Query - Filter Assigned to: Current User or Current User's Group
        $ViewQuery = "@
                    <Where>
                        <Or>
                            <Eq>
                                <FieldRef Name='AssignedTo' />
                                    <Value Type='Integer'>
                                        <UserID />
                                    </Value>
                            </Eq>
                            <Membership Type='CurrentUserGroups'>
                                <FieldRef Name='AssignedTo' />
                            </Membership>
                        </Or>
                    </Where> "

        $ViewCreationInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
        $ViewCreationInfo.Title = $ViewName
        $ViewCreationInfo.Query = $ViewQuery
        $ViewCreationInfo.RowLimit = "100"
        $ViewCreationInfo.ViewFields = @("Title", "Status", "DueDate", "AssignedTo") 
 
        #Add List View
        $NewView =$List.Views.Add($ViewCreationInfo)
        $Ctx.ExecuteQuery()    
             
        Write-host "New View Created in the List Successfully!" -ForegroundColor Green  
    }
}
Catch {
    write-host -f Red "Error Adding View to List!" $_.Exception.Message
}

y la vista de lista muestra las tareas asignadas a mi grupo y a mí

Esta vista le permite ver todas las tareas asignadas a su grupo en un solo lugar.

Artículos relacionados