Como debugar erros em Page Layouts do Sharepoint

O cenário

Toda vez que o ocorre uma exception em uma aplicação Sharepoint, vemos uma tela bonitinha, mas que não diz nada de útil, como essa:

SharepointError

O que nós queremos é ver a yellow screen of death, e já sabemos como fazer isso, mas vamos revisar.

Abra o web.config da sua aplicação que geralmente estará em  c:\inetpub\wwwroot\wss\virtualdirectories\<Nome e Porta da Sua Aplicação>

Procure o código

e troque para

 

Procure o código

e troque para

 

Procure o código

e troque para

Pronto, agora você já vê a exception, call stack, e os detalhes do erro.

O Problema

Você vai perceber que se o erro for em uma Page Layout você ainda continuará a ver a tela bonitinha que não diz nada, ou a Yellow Screen of Death sem informações relevantes, como essa:

Sharepoint Custom Erro

Isso ocorre porque os Page Layouts ficam no diretório _Layouts que tem seu próprio web.config

A solução

Abra o web.config que esta em C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\Web.config

Procure o código

 

e troque para

 

Agora você deverá ver aquela tela de erro feia, mas que tem alguma informação útil

sharepoint exception handling02

 

eBooks Gratuitos (e bons).

Essa semana o Thiago, um colega aqui do trabalho compartilhou um link contendo vários ebooks, todos gratuitos e de qualidade, compartilho aqui com vocês.

http://blogs.msdn.com/b/mssmallbiz/archive/2013/06/18/huge-collection-of-free-microsoft-ebooks-for-you-including-office-office-365-sharepoint-sql-server-system-center-visual-studio-web-development-windows-windows-azure-and-windows-server.aspx

Note que neste link o autor faz referência à outros posts de autoria dele com ainda mais eBooks.

Error occurred in deployment step Activate Features: Key cannot be null.

O Cenário

Você iniciou o projeto, criou um Content Type fez depoy e deu de cara com este erro.

Error occurred in deployment step Activate Features: Key cannot be null.

Você começa a procurar qual é a Key que vc deixou Null,  e se você não der uma googlada vai ficar o resto da vida procurando.

O Problema

Sei lá o porque, o Visual Studio 2010 cria o XML do Content Type com um fechamento inválido de FieldRef, algo mais ou menos assim:

<FieldRef ID="" Name="lastName" DisplayName="lastName"></FieldRef>

A Solução

Altere o fechamento do FielRef para um simples />  deverá ficar assim:

<FieldRef ID="" Name="lastName" DisplayName="lastName" />;

É básico, mas eu perdi algumas horas procurando a solução.

Debug em tempo real com inteligência artificial integrada.

Já viram essa nova funcionalidade do Visual Studio?

Debug em tempo real com inteligência artificial integrada.

Veja abaixo um print da funcionalidade.

 

Erro Debug

Loko né véi.

 

Chamando funções Javascript a partir do code-behind no Sharepoint 2010

O cenário

Provavelmente, algum dia, você vai querer chamar funções javascript a partir do código de servidor. Os métodos ScriptManager.RegisterStartupScript()  e ScriptManager.RegisterClientScriptBlock()  ofereçem uma maneira fácil de fazer isso e este é o caminho que você deve seguir.

O Problema

Você escreve o código e nada acontece. A função javascript não é chamada.

A Solução

Chamar o método  ScriptManager.RegisterStartupScript()  de forma correta.

Se você esta usando Update Panels

O primeiro parâmetro do método pede um objeto do tipo Control e a documentação do método é bem específica.

RegisterStartupScript Documentation

Desculpa ai o tamanho da imagem, clique pra vê-la maior

A documentação diz que o Control que vc deve passar como parâmetro é “o controle que esta registrando o script“, e neste caso, quem esta registrando o script não é o link ou botão que vc clicou e sim o update panel que envolve o controle que causou o postback. É por isso que o código da imagem acima funciona perfeitamente.

Se você NÃO estiver usando Update Panels

Precisa explicar? O mesmo método tem uma sobrecarga que pede como primeiro parâmetro uma Page, ou seja, quem vai registrar o script não é mais o Update Panel e sim a própria página.

RegisterStartupScript Documentation 2

Desculpa de novo, clica ai que abre em nova janela.

Ok, este assunto é o básico do básico, mas a gente ainda tropeça nestes detalhes. Faz parte.

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

Continue reading

Tagged ,