簡體   English   中英

SharePoint 2013中的導出/導入術語集

[英]Export/Import Term Set in SharePoint 2013

出於導航目的,我們使用術語集。

我需要創建一個PowerShell,以獲取帶有特定術語組中URL的術語集。 這是我的劇本

 Set-ExecutionPolicy -Scope CurrentUser Unrestricted #Specify admin user and SharePoint site URL ##update login $User = "corporate\\spuser" ##update siteUrl $Site = "http://sp13" #Adding references to SharePoint client assemblies Add-Type -Path "c:\\Program Files\\Common Files\\microsoft shared\\Web Server Extensions\\15\\ISAPI\\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\\Program Files\\Common Files\\microsoft shared\\Web Server Extensions\\15\\ISAPI\\Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path "c:\\Program Files\\Common Files\\microsoft shared\\Web Server Extensions\\15\\ISAPI\\Microsoft.SharePoint.Client.Taxonomy.dll" $Pwd = "xvcx23423" $GroupName = "India" $TermSetName ="India_Global" #Recursive function to get terms function GetTerms([Microsoft.SharePoint.Client.Taxonomy.Term] $Term,[String]$ParentTerm,[int] $Level) { $Terms = $Term.Terms; $Context.Load($Terms) $Context.ExecuteQuery(); if($ParentTerm) { $ParentTerm = $ParentTerm + "," + $Term.Name; } else { $ParentTerm = $Term.Name; } Foreach ($SubTerm in $Terms) { $Level = $Level + 1; #up to 7 terms levels are written $NumofCommas = 7 - $Level; $commas =""; For ($i=0; $i -lt $NumofCommas; $i++) { $commas = $commas + ","; } $file.Writeline("," + "," + "," + "," + $Term.Description + "," + $ParentTerm + "," + $SubTerm.Name + $commas ); GetTerms -Term $SubTerm -ParentTerm $ParentTerm -Level $Level; } } $Context = New-Object Microsoft.SharePoint.Client.ClientContext($Site) $Credentials = New-Object System.Net.NetworkCredential($User,$Pwd); $Context.Credentials = $Credentials $MMS = [Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Context) $Context.Load($MMS) $Context.ExecuteQuery() #Get Term Stores $TermStores = $MMS.TermStores $Context.Load($TermStores) $Context.ExecuteQuery() $TermStore = $TermStores[0] $Context.Load($TermStore) $Context.ExecuteQuery() #Get Groups $Group = $TermStore.Groups.GetByName($GroupName) $Context.Load($Group) $Context.ExecuteQuery() #Bind to Term Set $TermSet = $Group.TermSets.GetByName($TermSetName) $Context.Load($TermSet) $Context.ExecuteQuery() #Create the file and add headings $OutputFile = "Output File Path1.csv" $file = New-Object System.IO.StreamWriter($OutputFile) $file.Writeline("Term Set Name,Term Set Description,LCID,Available for Tagging,Term Description,Level 1 Term,Level 2 Term,Level 3 Term,Level 4 Term,Level 5 Term,Level 6 Term,Level 7 Term"); $Terms = $TermSet.Terms $Context.Load($Terms); $Context.ExecuteQuery(); $lineNum = 1; Foreach ($Term in $Terms) { if($lineNum -eq 1) { ##output term properties on first line only $file.Writeline($TermSet.Name + "," + $TermSet.Description + "," + $TermStore.DefaultLanguage + "," + $TermSet.IsAvailableForTagging + "," + $Term.Description + "," + $Term.Name + "," + "," + "," + "," + "," + "," ); } else { $file.Writeline("," + "," + "," + "," + $Term.Description + "," + $Term.Name + "," + "," + "," + "," + "," + "," ); } $lineNum = $lineNum + 1; $TermTreeLevel = 1; GetTerms -Term $Term -Level $TermTreeLevel -ParentTerm ""; } $file.Flush(); $file.Close(); 

任何想法如何獲取術語集的URL。

是否有更好的方法來導出特定組的進出口術語集。

您可以使用TaxonomySession獲得術語“設置友好的URL”:

SPSite site = SPSite.Current.Site;
TaxonomySession servis = new TaxonomySession(site);
siteNavigationStore = servis.DefaultSiteCollectionTermStore;
siteNavigationGroup = sitenavigationstore.GetSiteCollectionGroup(site);
siteNavigationSet = sitenavigationgrup.TermSets["Term Set Name"];
NavigationTerm navigatedTerm = NavigationTerm.GetAsResolvedByWeb(navigationterm, site.RootWeb, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);
navigatedTerm.GetWebRelativeFriendlyUrl();

GetWebRelativeFriendlyUrl返回您的友好網址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM