SharePoint ett synkroniseringsjobb för aktivitetslistan Project publiceras
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Symptom
Ett SharePoint-synkroniseringsjobb för aktivitetslistan misslyckas i Project när det publiceras från Project Professional eller från Project Web App (PWA).
Orsak
Det här problemet inträffar om en användare som har lagts till i ett objekt i fältet "Tilldelat" i en aktivitetslista har tagits bort från webbplatssamlingen.
Lösning
PowerShell-skriptet nedan kan användas för att hitta listobjekten i en uppgiftslista som fortfarande innehåller användarkonton i fältet "AssignedTo" som saknas i webbplatssamlingen:
asnp *share*
$site = get-spsite http://Server/PWA
function new-row
{
$Fields = ('SiteUrl', 'WebUrl', 'ListUrl', 'ItemID','ItemName', 'MissingUser' )
$Row = new-object PSCustomObject
foreach ( $field in $Fields)
{
$row | Add-Member -NotePropertyName $Field -NotePropertyValue $null
}
return $Row
}
$result = New-Object System.Collections.arraylist
foreach ( $web in $site.AllWebs )
{
Write-host "Processing Web : $($web.Url).." -NoNewline
$list = $null
$list = $web.Lists['Tasks']
if ( $list -ne $null )
{
foreach ( $item in $list.Items)
{
$assignedTo = $item['AssignedTo']
if ( $assignedTo -ne $null -and $assignedTo.user -eq $null)
{
$Row = new-row
$row.SiteUrl = $web.site.Url
$row.WebUrl = $web.Url
$row.ListUrl = $web.site.MakeFullUrl($list.DefaultViewUrl)
$row.ItemID = $item.ID
$row.ItemName = $item.Name
$row.MissingUser = $assignedTo.lookupvalue
$result.add($row) | Out-Null
}
}
}
Write-host "Done" -ForegroundColor Green
}
$result | Out-GridView
$result | Export-Csv -Encoding UTF8 -NoTypeInformation -Path C:\Logs\Report1.csv
Anteckning
Ändra namnet PWA URL och uppgiftslistan innan du kör PowerShell.
När listobjekten hittas:
- Gå till Webbplats Inställningar och sedan Innehåll och struktur.
- Öppna uppgiftslistan för den arbetsyta som är kopplad till Project.
- Ta bort användaren från uppgiften i uppgiftslistan.
De alternativa lösningsalternativen är bland annat följande:
- Inaktivera synkroniseringen av uppgiftslistan genom att köra följande kommando:
Disable-SPProjectEnterpriseProjectTaskSync –Url http://servername/PWA/NameOfProject
- Ta bort och återskapa uppgiftslistan.
Mer information
Uls-loggarna som visar felet när du uppdaterar fältet "Tilldelat" i uppgiftslistan ser ut ungefär så här:
PWA:https://Server/PWA, ServiceApp:PWA_APP_SVC, User:i:0#.w|mydomain\krishnp, PSI: [QUEUE] SynchronizeTaskListInManagedModeMessage failed on project e7e90257-d10e-e911-89a6-ace2d39a7fa8. Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Office.Project.Server.BusinessLayer.ProjectModeManaged.UpdateAssignedToField(SPWeb workspaceWeb, DataSet taskDS, Guid taskUID, SPListItem listItem)
at Microsoft.Office.Project.Server.BusinessLayer.ProjectModeManaged.SynchronizeTask(SPList list, DataSet taskDS, Dictionary`2 taskMapping, DataRow row, DataView secondaryView, Dictionary`2 redoEntries)
at Microsoft.Office.Project.Server.BusinessLayer.ProjectModeManaged.<>c__DisplayClass1.<SynchronizeTaskListInManagedMode>b__0(SPWeb workspaceWeb)
at Microsoft.Office.Project.Server.BusinessLayer.Project.<>c__DisplayClass58.<TryRunActionWithProjectWorkspaceWebInternal>b__57()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)