Pegadinha do Sharepoint Malandro, Ráá, Ié, Ié.

 O Cenário

 

Dias atrás precisei fazer uma implementação que devia obter a estrutura de navegação dos sites do Sharepoint e gerar um menu de navegação para o usuário. Essa é uma tarefa aparentemente trivial.

O Sharepoint oferece um funcionalidade de Navigation, você pode criar lógicas e estruturas de navegação para os sites da sua Site Collection, isso é uma mão na roda, pois como comentei você pode acessar via código as estruturas de navegação criadas e manipulá-las da forma que quiser. Você pode acessar as configurações de Navegação nas “Configurações do Site” na sessão “Aparência”

SP_NavigationConfig

 

E o código abaixo demonstra como acessar as estruturas de navegação do Sharepoint via código.

 

O Problema

 

Código feito, tudo aparentemente ok, o problema é que não disso funciona!  Você pode perder horas procurando erros no seu código e não vai achar erros pois o código esta certo, então, ou você entra em contato com ESTA pessoa ou algum colega de trabalho lhe dá a solução, no meu caso, meu colega Fábio me deu a solução.

O “truque” é que para funcionar você precisa acessar as configurações da navegação, mover um site pra cima e pra baixo e salvar.

SP_NavigationConfig2

 

Acredito que ao salvar o Sharepoint gera, valida ou atualiza essa estrutura de navegação internamente e ela passa a ficar acessível (de fato) pelo código.

Note que na linha 19 dó código de exemplo estamos acessando a CurrentNavigationNodes, então você precisa fazer este esquema de subir e descer o site no nó Navegação Atual.

A partir disso vai funcionar.

Quem disse que computação é uma Ciência Exata?