Exemplo de Suplemento do SharePoint de operações de taxonomia
O exemplo de console Core.MMS mostra como interagir com o serviço de metadados de gerenciamento do SharePoint para criar e recuperar termos, conjuntos de termos e grupos. Este exemplo também é executado em um suplemento hospedado pelo provedor, como um aplicativo web do ASP.NET MVC.
Use esta solução se você deseja migrar termos entre os farms do SharePoint ou exibir os termos no suplemento personalizado.
Antes de começar
Para começar, faça o download do suplemento de exemplo Core.MMS no projeto Padrões e Práticas do Desenvolvedor do Office 365 no GitHub.
Observação
The code in this article is provided as-is, without warranty of any kind, either express or implied, including any implied warranties of fitness for a particular purpose, merchantability, or non-infringement.
Antes de executar esse suplemento, você precisará:
- Da URL do seu site do SharePoint.
- Da permissão para acessar o armazenamento de termos no serviço de metadados gerenciados.
A figura a seguir mostra o Centro de administração do Office 365 onde são atribuídas as permissões.
Atribuir permissões de repositório de termos:
No Centro de administração do Office 365, escolha repositório de termos.
No repositório de taxonomia, escolha a definição de termo que você deseja atribuir a um administrador.
Em Administrador do Repositório de Termos, insira a conta organizacional que exige permissões de administrador do repositório de termos.
Usando o suplemento de exemplo Core.MMS
Quando você iniciar o suplemento, você verá um aplicativo do console semelhante ao da figura a seguir. Você será solicitado a inserir a URL do seu site do SharePoint ou do SharePoint Online e suas credenciais.
Depois que você fornecer suas credenciais e a URL do SharePoint, ocorrerá a autenticação do usuário.
O código a seguir executa a autenticação do usuário no SharePoint Online.
ClientContext cc = new ClientContext(siteUrl);
cc.AuthenticationMode = ClientAuthenticationMode.Default;
// For SharePoint Online.
cc.Credentials = new SharePointOnlineCredentials(userName, pwd);
O código a seguir executa a autenticação do usuário no SharePoint Online dedicado ou em um farm do SharePoint local.
ClientContext cc = new ClientContext(siteUrl);
cc.AuthenticationMode = ClientAuthenticationMode.Default;
// For SharePoint Online Dedicated or on-premises .
cc.Credentials = new NetworkCredential(userName, pwd);
O método CreateNecessaryMMSTermsToCloud cria um grupo, conjunto de termos e vários termos no serviço de metadados gerenciados. O código primeiro obtém uma referência ao objeto TaxonomySession e, em seguida, ao objeto TermStore , antes de criar o TermGroup personalizado, TermSet e novos termos.
private static void CreateNecessaryMMSTermsToCloud(ClientContext cc)
{
// Get access to taxonomy CSOM.
TaxonomySession taxonomySession = TaxonomySession.GetTaxonomySession(cc);
cc.Load(taxonomySession);
cc.ExecuteQuery();
if (taxonomySession != null)
{
TermStore termStore = taxonomySession.GetDefaultSiteCollectionTermStore();
if (termStore != null)
{
//
// Create group, termset, and terms.
//
TermGroup myGroup = termStore.CreateGroup("Custom", Guid.NewGuid());
TermSet myTermSet = myGroup.CreateTermSet("Colors", Guid.NewGuid(), 1033);
myTermSet.CreateTerm("Red", 1033, Guid.NewGuid());
myTermSet.CreateTerm("Orange", 1033, Guid.NewGuid());
myTermSet.CreateTerm("Yellow", 1033, Guid.NewGuid());
myTermSet.CreateTerm("Green", 1033, Guid.NewGuid());
myTermSet.CreateTerm("Blue", 1033, Guid.NewGuid());
myTermSet.CreateTerm("Purple", 1033, Guid.NewGuid());
cc.ExecuteQuery();
}
}
}
Depois de criar novos termos, o métodoGetMMSTermsFromCloud() recupera todos os grupos de termos, conjuntos de termos e condições do serviço de metadados gerenciados. Semelhante ao método CreateNecessaryMMSTermsToCloud(), o código obtém primeiramente uma referência para o objeto TaxonomySessione, em seguida para o objeto TermStore, antes de recuperar e exibir as informações de termos.
private static void GetMMSTermsFromCloud(ClientContext cc)
{
//
// Load up the taxonomy item names.
//
TaxonomySession taxonomySession = TaxonomySession.GetTaxonomySession(cc);
TermStore termStore = taxonomySession.GetDefaultSiteCollectionTermStore();
cc.Load(termStore,
store => store.Name,
store => store.Groups.Include(
group => group.Name,
group => group.TermSets.Include(
termSet => termSet.Name,
termSet => termSet.Terms.Include(
term => term.Name)
)
)
);
cc.ExecuteQuery();
//
// Writes the taxonomy item names.
//
if (taxonomySession != null)
{
if (termStore != null)
{
foreach (TermGroup group in termStore.Groups)
{
Console.WriteLine("Group " + group.Name);
foreach (TermSet termSet in group.TermSets)
{
Console.WriteLine("TermSet " + termSet.Name);
foreach (Term term in termSet.Terms)
{
// Writes root-level terms only.
Console.WriteLine("Term " + term.Name);
}
}
}
}
}
}
Você verá seus dados de termos de serviço de metadados gerenciados exibidos no aplicativo do console, conforme mostrado na figura a seguir, e no repositório de termos no serviço de metadados gerenciados, conforme mostrado na segunda figura.