Domanda

sto ricevendo questo errore sul seguente riga

Eccezione chiamando "Crea" con l'argomento "4" (s): "Valore non può essere nullo. Nome del parametro: parentFolder" A x: \ Dev \ PowerShell \ MoveFiles2DocSet.ps1: 29 char: 91 + $ NewDocumentSet = [Microsoft.Office.DocumentManagement.DocumentSets.DocumentSet] :: Create <<<< ($ docLib.RootFo lder, $ DocSet, $ cType.Id, $ docsetProperties) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException

$newDocumentSet = [Microsoft.Office.DocumentManagement.DocumentSets.DocumentSet]::Create($docLib.RootFolder,$DocSet,$cType.Id,$docsetProperties)

$siteURL="http://intranet.colgate.com/sites/blazingWhite"          
$docLib = "NewProduct"
$site=Get-SPSite $siteURL
$web=$site.RootWeb
$collFiles=$web.GetFolder($docLib).Files
$count=$collFiles.Count
while($count -ne 0)
{
$item = $collFiles[$count-1].Item
## Create document set if it does not exists
$DocSet = $item["CounterParty"]
$DocSetURL = $siteURL + "/" + $docLib + "/" + $DocSet
$docLibURL = $siteURL + "/" + $docLib
[Microsoft.SharePoint.SPFolder]$targetFolder = $web.GetFolder($DocSetURL)
[Microsoft.SharePoint.SPFolder]$doclibFolder = $web.GetFolder($docLibURL)
Write-Host ""
Write-Host $DocSet
Write-Host $targetFolder
Write-Host $doclibFolder

  if (-not $targetFolder.Exists)
    {   # Create Doc Set    
        # Get Document Set Content Type from list   
            $cType = $web.ContentTypes["Document Set"]
        # Create Document Set Properties Hashtable          
            [Hashtable]$docsetProperties = @{"Title"=$DocSet}
            $docsetProperties = @{"Description"=$DocSet}
            $docsetProperties = @{"CounterParty"=$DocSet}

            Write-Host $cType.Id   
            Write-Host $docsetProperties
            Write-Host ""
        # Create new Document Set

        $newDocumentSet = [Microsoft.Office.DocumentManagement.DocumentSets.DocumentSet]::Create($doclibFolder,$DocSet,$cType.Id,$docsetProperties)
        Write-Host "Document set created " $newDocumentSet

        if($newDocumentSet.Exists)
        {
            # changing folder type to Document Set type
            $newDocumentSet.Item["ContentTypeId"] = $cType.Id
            $newDocumentSet.Item["HTML File Type"] = "SharePoint.DocumentSet"
            $newDocumentSet.Item.Update()
        }

    } 

# move file(s) to the document set
    Write-Host "$DocSet is the doc set. $collFiles[$count-1].Name is name"
    $collFiles[$count-1].MoveTo($siteURL + "/" + $docLib + "/" + $DocSet + "/"  + $collFiles[$count-1].Name, $true)                       
$count--
}

#dispose:
    $web.Dispose();    
    $site.Dispose();

Modifica:

Il codice di cui sopra sta lavorando ad eccezione sembra documento incastonato come cartella invece che blu set doc icona. Qualcuno può fare luce su questo per favore.

È stato utile?

Soluzione

Solo guardando il vostro codice.

Create($docLib.RootFolder,$DocSet,$cType.Id,$docsetProperties)

e $docLib è stringa?

$docLib = "NewProduct"

forse questo avrebbe funzionato

Create($targetFolder,$DocSet,$cType.Id,$docsetProperties)

dal

[Microsoft.SharePoint.SPFolder]$targetFolder = $web.GetFolder($DocSetURL)

Altri suggerimenti

Sono un po 'in ritardo a questa particolare festa, ma mentre la ricerca il mio problema con il set di documenti che appaiono come cartelle semplici mi sono imbattuto in questo blog ( http://aknauer.blogspot.com/2011/06/document-sets-und-powershell.html ) che conteneva questo preziosa pepita:

"E 'anche importante che si seleziona il tipo di contenuto $ cType dal raccolta della lista e non dalla collezione del web. In caso contrario, piuttosto che solo un set di documenti viene creata una nuova cartella ".

ho acceso il mio incarico tipo di contenuto dalla raccolta web (come aveva fatto Mala) alla collezione lista (come suggerisce Andreas) e il mio problema è stato risolto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top