WSPBuilder – Explorando o Add-in no Visual Studio
Achei um texto interessante sobre como utilizar o WSPBuilder.
Está bem detalhado e ensina a aproveitar os recursos da ferramenta pra gerar o pacote WSP de forma automatizada...
Vale a pena dar uma lida
Biblioteca de WebParts – dotDEV
Depois de mais uns tempos conturbados eis-me aqui novamente atualizando o blog. E mais uma vez com notícias boas também.
Além de estar preparando um post sobre como usar LINQ para buscar e trabalhar as informações do SharePoint eu estou planejando também uma área onde armazenarei algumas WebParts que já tive situações em que tive que desenvolve-las e outras WP que surgiram na minha cabeça numa ou outra hora qualquer.
Só preciso organizá-las, gerar os pacotes de instalação para disponibiliza-las aqui no site. Ainda dando continuidade à idéia de difundir mais o SharePoint, principalmente detalhes técnicos, estas WebParts ficarão disponíveis para download.
De qualquer forma estou a disposição caso queiram se adiantar antes dessa seção nova. Basta entrar em contato comigo pelo email filipe.cavalcante@dotdev.com.br ou filipe.cavalcante@gmail.com!
Aguardem mais atualizações!
Cancelar Workflow via programação
No último projeto tivemos que dar a possibilidade para o usuário encerrar o andamento do fluxo manualmente. Para isso um método foi criado:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteID))
{
using (SPWeb web = new SPWeb(relativeWeb))
{
SPWorkflowManager manager = site.WorkflowManager;
SPListItem item = web.Lists[listname].GetItemByID(itemID);
foreach(SPWorkflow workflow in manager.GetItemActiveWorkflows(item))
{
SPWorkflowManager.CancelWorkflow(workflow);
}
}
}
});
Detalhe para o "SPSecurity.RunWithElevatedPrivileges()" que faz com que o código possa ser executado por qualquer usuário que esteja logado.
O código que está no nosso projeto não é exatamente este, não coloquei algumas ações específicas do nosso projeto, mas basicamente para encerrar o fluxo, que é o tema deste post é esse!
Até a próxima!
Referencia: http://pointstoshare.spaces.live.com/Blog/cns!AEC42F315B4528B0!3045.entry?sa=648616426
Instalando o MOSS 2007 e SQLServer 2008 em servidor Windows 2008 Server
Primeiro de tudo... feliz ano novo! 2009 já está aí, as festividades já passaram (pelo menos pra mim) e sei que é duro, mas temos de voltar ao ritmo de trabalho normal do dia-a-dia.
Bom, desde a última semana de 2008 eu comecei a montar um ambiente semelhante ao do nosso novo cliente. Trata-se de dois servidores, um de banco com SQLServer 2008 e outro de front-end com o MOSS2k7. Ambos os servidores seriam Windows 2008 Server. Eis que me surgiram os problemas.
Nunca havia instalado o SQLServer 2008, principalmente emcima do Windows 2008 Server e por isso tive algumas dificuldades.
Primeiramente no win2k8 o framework não é habilitado por padrão, e para isso é necessário adicionar essa feature pelo controle de features do windows. Em segundo a instalação do SQL2k8 irá atualizar o .Net Framework 3.5 SP1 e depois verificará se o "Windnows Installer" é a versão 4.5. Bom, tive problemas nesses dois passos. Por algum motivo a instalação simplesmente não conseguia fazer a atualização, no momento que iria calcular o tempo estimado para download e instalação uma mensagem de erro do windows surgia e assim a instalação dava-se por encerrada. O mais curioso é que a mensagem de erro era simples, do tipo "Não foi possível concluir a instalação" e no log de eventos do windows nada de útil era gerado também. Para resolver isso - repito não entendi o motivo ainda - eu baixei o pacote completo do .Net Framework 3.5 sp1 e fiz a instalação offline mesmo, isto é, sem a necessidade de conectar a internet para fazer a instalação via "windows update". Pronto.
Sobre o windows installer, existe hotfix Windows6.0-KB942288-v2-x86 para contornar isso. Basta fazer o download no site da Microsoft aplicá-lo no Windows e o problema também será solucionado.
Depois de feito essas das coisas a instalação ocorreu normalmente.
Agora é a vez de instalar o Moss no Win2k8. Mas há uma incompatibilidade (acreditem) que não permite que o Sharepoint seja instalado. O erro é simples: "Esta versão do Windows não é compatível". Não pesquisei o porque do erro fui direto buscar a solução, já que não tinha muito tempo e encontrei nesse blog http://mindsharpblogs.com/ben/archive/2007/12/16/3837.aspx
Bem simples. O erro na verdade acusa que você deve instalar o Sharepoint com o ultimo Service Pack disponível, que no caso é o SP1.
Segue os passos:
- Copie toda o CD ou DVD do Sharepoint para uma pasta em seu computador. (Aqui no exemplo usaremos c:\sharepoint-install);
- Baixe o WSS 3.0 SP1 e o MOSS 2k7 SP1 (ref.: http://blogs.msdn.com/sharepoint/archive/2007/12/11/announcing-the-release-of-wss-3-0-sp1-and-office-sharepoint-server-2007-sp1.aspx);
- Crie uma pasta para cada um dos arquivos baixados pois será necessário descompactá-los. (Aqui no exemplo usarmos c:\moss2k7sp1 e c:\wss30sp1)
- Vá pelo prompt do DOS no diretório onde os dois arquivos foram baixados e execute o comando
'officeserver2007sp1-kb936984-x64-fullfile-en-us.exe /extract:c:\moss2k7sp1' e
'wssv3sp1-kb936988-x64-fullfile-en-us.exe /extract:c:\wss30sp1'- Copie os arquivos que foram extraídos dentro das pastas c:\moss2k7sp1 e c:\wss30sp1 e cole dentro da pasta updates em c:\sharepoint-install. Atente-se na versão do windows e sharepoint. Se for 32-bits a pasta e os downloads tem de ser x86 ou se for 64-bits a pasta e os downloads tem de ser x64.
- Agora execute novamente a instalação do Sharepoint.
É isso aí.
Agora só instalar normalmente.
Abraços!
Certificações Sharepoint
Bom, já que ainda não tenho preparado nenhum post técnico vou escrever um pouco sobre as certificações do SharePoint.
Desde seu lançamento, a Microsoft já assinou mais de 80 milhões de licenças para usuários em todo mundo. Em razão desses números, a procura por certificações para solução SharePoint tem sido muito grande e, portanto farei um breve resumo da certificação especialista nessa tecnologia.
A certificação para SharePoint está dentro de grupo MCTS ( Microsoft Certified Technology Specialist ) que permite ao profissional demonstrar profundo conhecimento especializado para trabalhar com as mais recentes tecnologias. O objetivo dessa certificação é garantir total capacidade de executar, construir, pesquisar e de eliminar erros de uma tecnologia especifica da Microsoft.
Existem atualmente 19 certificações MCTS e vamos aborda resumidamente apenas 4 que estão relacionado a portais corporativos, a sigla MOSS significará “Microsoft Office SharePoint Server”, a sigla WSS significará ”Windows SharePoint Services” e a sigla BI significará “Business Intelligence”:
Especialista na Tecnologia MOSS 2007 em configuração:
Exame: 70-630;
Descrição: Profissional certificado adquirirá conhecimento e habilidade necessária para configurar e implementar o MOSS 2007, gerenciar o escopo de busca, configurar o gerenciamento de conteúdo, habilitar formulários de negócios, gerenciar os recursos de BI, e assegurar práticas de segurança no portal.
Especialista na Tecnologia MOSS 2007 em Desenvolvimento de aplicação:
Exame: 70-542;
Descrição: Profissional certificado adquirirá conhecimento e habilidade necessária para construção portais, integrações com outros aplicativos existentes, gerenciar conteúdo corporativo, Criar soluções de BI com MOSS 2007 e customizações gerais no portal.
Especialista na Tecnologia WSS 3.0 em configuração:
Exame: 70-631;
Descrição: Profissional certificado adquirirá conhecimento e habilidade necessária para monitoramento, administração, segurança e configuração de toda a infra-estrutura de um portal.
Especialista na Tecnologia WSS 3.0 em Desenvolvimento de aplicação:
Exame: 70-541;
Descrição: Profissional certificado adquirirá conhecimento e habilidade necessária para implementar componentes nativos, criar sites, criar metadados e workflows através de conceitos do .NET framework e de como utilizar as API do produto.
Vale ressaltar que essas descrições estão baseadas em minha visão e não é um conteúdo oficial da Microsoft.
Detalhes Oficiais estão em: http://www.microsoft.com/brasil/certifique/mcp/mcts/webapps/default.aspx
Web Part de enquete!
Após um longo período sem publicar nada volto com uma dica muito bacana.
Já é "conhecido" pelos desenvolvedores SharePoint mas mesmo assim vale a dica novamente.
Precisei fazer no meu projeto atual uma web part de enquete mas o não conseguir configurar o "pesquisa" nativo do sharepoint com o formato de enquete padrão. Foi então que buscando na web eu encontrei o PollingWebPart.
Bom para instalar basta seguir os passos:
- Baixar o "PollingWebPart.wsp" do link acima;
- Para adicionar a web part execute o comando stsadm -o addsolution -filename PolligWebPart.wsp;
- Fazer o deploy que pode ser feito pela Central Administração ou pela linha de comando também. Pela linha de comando execute: stsadm -o deploysolution -name PollingWebPart.wsp -immediate -allcontenturls;
- Basta agora entrar na galeria de web parts, clicar em novo e procurar por "PhilWicklund.com.PollingWebPart.PollingWebPart" e clicar em Preencher Galera (Populate Galery)
Alguns detalhes que acho válido citar. Essa web part funciona tanto em wss 3.0 quando em MOSS 2007 seja em qual idioma for, porém a forma automática de criação da lista não funcionará corretamente se o site criado não estiver com idioma ingles. Mas se for criada manualmente o a web part funcionará perfeitamente.
Outro detalhe que vi no código fonte no site do desenvolvedor é que essa web part é controlada por cookie e o tempo de duração do cookie é de 2dias.
Até a próxima!
Wget – Fazendo backup dos arquivos anexados em Custom List
Um dos últimos desafios que passei foi realizar uma migração dos documentos anexados em registros de uma lista customizada de um portal versão 2003 para a biblioteca de documentos no portal novo (WSS 3.0).
Como fazer isso? Depois de um levantamento dos arquivos que deveriam ser migrados tive uma surpresa: eram 2.860 arquivos totalizando mais de 800MB. Ou seja, fazer manualmente certamente estava fora de questão.
Pesquisando pela internet achei algumas soluções e destaco algumas. Quem já mexeu LINUX vai identificar rapidamente. Um programa chamado WGET. Originalmente criado para linux, com ele é possivel fazer downloads, uploads, acesso à FTP, HTTP, conexão segura, entre outras finalidades. EU não me aprofundei muito no programa, então deixo aqui aberto para quem conhecer melhor e dar mais definições sobre esse WGET.
O que me chamou a atenção foi que além de re-escreverem esse programa para windows é possível fazer download baseado em um arquivo TXT. E foi aí que me foquei. Fiz uma lista com TODOS os arquivos e executei o seguinte comando:
wget -i arquivotxt.txt -o log.txt --http-user=Usuariohttp --http-passwd=Senha
Basicamente esses parametros são para informar o nome da lista (-i), usuário e senha caso necessite fazer a conexão (--http-user e --http-passwd) e criar um log das tentativas/downloads feitos no processo (-o). Esse último é opcional.
Um único detalhe que não achei outra solução foi que, arquivos que contém caracteres especiais, etc não são reconhecidos no servidor, ou seja, se um arquivo chama "baixa de faturamento.xls" na lista dos arquivos deve estar assim: "baixa%20de%20faturamento.xls". Caso não faça as alterações baseadas na codificação UTF-8 a tentativa de download do arquivo vai retornar "404 - Arquivo não encontrado".
Bom é isso. Vi em forums que outras pessoas estavam tendo essa necessidade também e por isso resolvi escrever aqui no blog.
Segue duas referencias que utilizei muito para realizar essa tarefa:
Lista de codificação UTF-8: http://www.natalihr.nl/html/encoding.html
Referencia do programa WGET: http://sunsite.univie.ac.at/textbooks/wget/wget.html
Abraços e até a próxima!
Usando SPAlert
Mais um post com dica de Sharepoint. Esses dias precisei usar a função "Alert me" em umas listas mas precisei implementar via código. A função é muito simples e usei o próprio SPAlert nativo do Sharepoint (Microsoft.Sharepoint.dll).
Para isso, eu criei um método que retorna um valor booleano quando criar ou não (por algum motivo) o alerta.
public bool AlertME(string urlSITE, string TituloAlerta, SPListItem itemAlerta)
{
try
{
using (SPSite site = new SPSite(urlSITE))
{
SPWeb web = site.OpenWeb();
SPUser userLogged = web.SiteUsers.GetByID(SPContext.Current.Web.CurrentUser.ID);
SPAlert _alert = userLogged.Alerts.Add();
_alert.AlertType = SPAlertType.Item;
_alert.AlertFrequency = SPAlertFrequency.Immediate;
_alert.EventType = SPEventType.All;
_alert.AlwaysNotify = true;
_alert.Title = TituloAlerta;
_alert.Item = itemAlerta;
_alert.Update(true);
return true;
}
}
catch
{
return false;
}
}
A função é simples. Quando clicar em um botão que eu criei, esse método será acionado tendo como parametro uma string com o endereço do site onde o alerta será criado, uma string com o título do alerta e um SPListItem que é o item que será "alertado".
O que eu defini para meu alerta:
SPAlertType.Item = significa que o alerta está associado à um item;
SPAlertFrequency.Immediate = significa que o alerta será enviado imediatamente assim que o item da lista for alterado e salvo;
SPEventType.All = o alerta será enviado para qualquer ação que seja feita no item da lista;
Aguardem mais dicas!
EDIT: Segue link de referência Microsoft.Sharepoint.SPAlert Class
Configurando "Relatório de Uso do Site"
Essa semana me deparei com um problema. Não conseguíamos configurar o "relatório de uso do site" no portal intranet do cliente e hoje tive que visitá-lo mais uma vez para tentar fazer funcionar.
Como eu ainda sou novato no mundo Sharepoint eu fui também sem saber como fazer, ou melhor, sabendo o que fazer exatamente, pois fiz alguns testes no ambiente interno da empresa em que trabalho.
Cheguei no cliente e fiz exatamente o que eu tinha "estudado fazer" e mesmo assim não funcionou. Todas as opções estavam ativadas de relatório e até a opção "Analise de uso" também estava configurado. Mas mesmo assim ao entrar nas definições do site do portal e abrir o relatório de uso dava a informação que era necessário habilitar o relatório na administração do Windows Sharepoint Services.
Mas poxa, tudo estava habilitado... porque ainda não funciona?
Foi aí que meu grande amigo Google se lembrou de um site onde a pessoa descrevia o mesmo problema que eu... e lá ainda continha uma referencia "How To" de configuração.
"825541 How to configure Usage Analysis Processing on a Web server"
http://support.microsoft.com/kb/825541
Basicamente eu tinha feito tudo certo, no Central Administração eu habilitei as opções certas, mas como eu estava trabalhando com MOSS 2007 ainda era necessário habilitar o "Relatório de Uso" no "Shared
Services Provider" do farm.
Para ativar faça isso também:
- Na página "Central Administração" (Central Administration), clique em "Administração de Serviços Compartilhados" (Shared Services Administration), e depois clique no "Shared Services Provider" (SSP) default;
- Na página inicial do SSP default, abaixo do grupo "Relatorio de Uso Office Sharepoint" clique em "Relatório de Uso";
- Ative a opção "Habilitar Análise de Processamento de Uso Avançado";
- Depois volte à pagina inicial do SSP e habilite também a opção dentro de "Search Query Logging".
Muito simples. Feito isso, volte até as "Definições do Site" e abra o relatório de uso do site!
Parabimmm... Parabum! Aí estão todos os relatórios que o MOSS 2007 fornece!
Até!