Microsoft Project Server (EPM) Online Disponível no Brasil

Olá Pessoal,

Essa é uma ótima notícia para quem estava esperando uma oferta de um software completo de  PPM flexível e de baixo custo, para implantar em qualquer tipo e tamanho de empresa, de forma rápida de simplificada.

O Microsoft Project Server Management 2013 (EPM) Online, com modos de contratação por mensalidade, sem necessidade de infraestrutura própria, já esta disponível para contratação no mercado brasileiro.

Na página da Microsoft, já é possível tirar todas as dúvidas sobre o produto e contratar em um dos modelos de assinatura:

http://office.microsoft.com/pt-br/software-de-gerenciamento-de-projetos-project-FX103472268.aspx

Caso queira saber mais sobre o Project Server 2013, a página é essa: http://office.microsoft.com/pt-br/project/project-server-2013-gerenciamento-de-portfolio-de-projetos-FX103802061.aspx

 

Agora basta verificar a sua necessidade e responder as questões abaixo:

  • Esta com dúvidas sobre qual versão contratar? 
  • Quer implantar o EPM no melhor modelo de implantação, com o auxilio de um gestor de projetos PMP e especialista na ferramenta?
  • Esta com problemas em seu projeto atual de implantação?

Ligue para mim. 🙂

Grande abraço.
Marcelo Leite, PMP
(11) 9.6399-8243

Erro na instalação do FAST Search

SharePointers,

no último ano, tivemos as primeiras implementações de FAST Search em clientes e pudemos colher diversas experiências.

Um dos casos mais complexos que passamos foi a da instalação de um ambiente FAST em um hardware Six-core, onde tivemos que abrir um chamado Microsoft, que sem solução, tivemos nosso time todo alocado na resolução do problema.

O link abaixo descreve com exatidão todos os passos que seguimos até a solução:
http://www.thesharepointblog.net/Lists/Posts/Post.aspx?ID=48

No fim das contas, utilizando nossa parceria Microsoft, consegui com que o time de engenheiros do produto produzissem um KB informativo deste “Bug” do produto, com a solução que encontramos:
http://support.microsoft.com/kb/2449600/

Além do prémio de Search Partner of the Year Microsoft deste ano, a Softcorp investe no estudo e na especialização desta tecnologia dentro no time de SharePoint.

Hoje temos um dos times mais capacitados para implantações desta tecnologia no Brasil.

Espero ter auxiliado os iniciantes na tecnologia.

Abraço.

 

 

Equipe de IW Softcorp fatura prêmio em evento mundial Microsoft.

O time de Information Worker da SOFTCORP se posiciona cada vez mais como líderes no mercado de soluções para Portais, Colaboração e Search, utilizando Microsoft SharePoint 2010, Project Server 2010 e FAST Search for SharePoint.

Em Julho deste ano faturamos o prêmio de Search Partner of The Year, no evento mundial de parceiros Microsoft, o Worldwide Partner Conference em Los Angeles, na California, com um case utilizando o SharePoint Server e o FAST Search.

Parabéns time!

Segue trecho de artigo disponível em nosso portal:

A SOFTCORP elaborou a solução baseada em Microsoft Fast Search e Microsoft Office Sharepoint Server.

Depois que a solução foi implantada reduzimos drasticamente a duplicidade de documentos e padronizamos o conteúdo. Além de ganhar agilidade com a nova estrutura, foi possível reduzir os custos com armazenamento em disco em aproximadamente 30%.

Esta solução foi desenvolvida e customizada para atender a demanda de segurança e auditoria de documentos da área jurídica do cliente

Porém, como foi desenvolvida com foco na solução da dor do cliente, poderá atender outras demandas em diversos setores da indústria.

Esta solução é única no mercado por conseguir fazer uma análise completa no documento, verificando qualquer irregularidade baseada nas normas da empresa e em caso de documentos irregulares os mesmos são separados para análise, sendo colocados em uma área de quarentena, e apenas depois de adequados são alocados e disponibilizados novamente para acesso interno.

Fonte: http://www.softcorp.com.br/cases/dnp/Paginas/default.aspx

404 quando clico em algum usuário depois de desabilitar o MySites

Boa Noite SharePointers,

 Todos nós que mexemos com SharePoint sabemos que ele é um tanto quanto temperamental, isto é, um ambiente que está tudo ok, quando você configura alguma coisa, outra que não tem nada a ver com a primeira, para de funcionar.

É o caso da configuração do My Sites.

Desde o SharePoint 2007 e perdurando no 2010, o SharePoint tem uma limitação que o cenário é o seguinte:

Temos um ambiente com a sincronização do AD feita e o recurso de MySites habilitado.

Porem, por algum motivo, você deve desabilitar o recurso de Mysites no ambiente.

Teoricamente era para o SharePoint adotar a página UserDisp.aspx, que tem as informações básicas do profile, como padrão para chamar quando algum usuário clicar sobre o nome de um usuário.

Porem, como o SharePoint nem sempre é teórico e a lógica não funciona bem, temos um problema em alguns usuários, que foram indexados antes e depois de desabilitarmos o recurso de mysites.

Quando clicamos em um destes usuários com problema, o sharepoint retorna erro 404, pois a página que ele tenta chamar é a do mySites e não do UserDisp.aspx.

Como resolver este problema?

Entre na pasta do SharePoint (se for 2007 entre na pasta 12, se for 2010 na pasta 14 como abaixo):
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\template\layouts

Ache o arquivo userdisp.aspx e abra ele no bloco de notas (não abra no SharePoint Designer, por incrivel que pareça ele pode danificar o arquivo).

Salve um backup do arquivo antes (sempre bom para voltar se algo der errado).

Altere o parametro Scope da linha abaixo:

<SharePoint:DelegateControl runat=”server” id=”DelctlProfileRedirection” ControlId=”ProfileRedirection” Scope=”Farm” />

ele está apontando o ProfileRedirection para o contexto de Farm, troque para Web:

<SharePoint:DelegateControl runat=”server” id=”DelctlProfileRedirection” ControlId=”ProfileRedirection” Scope=”Web” /> 

Entre no prompt de comando (cmd) e execute um iisreset para reiniciar todo o seus app pools e atualizar o SharePoint com este novo arquivo alterado.

Pronto!

Agora todos seus usuários apontam para esta página sem problemas.

Espero ter ajudado.

Abs e até a próxima.

Cloud Computing, BPOS e SharePoint Online

Boa Noite SharePointers,

 

Uma das grandes apostas do mercado de TI em geral, e uma tendência natural, é o Cloud Computing (ou Nuvem como é chamado por aqui), isto é, os serviços mais importantes da nossa infra-estrutura como E-mail, Comunicação unificada, portais corporativos, Banco de Dados, etc, tudo fora da nossa responsabilidade de administração, hospedados em gigantes datacentes espalhados pelo mundo.

Existem diversas soluções e diferenças entre as versões da núvem, porém como este é um blog I LOVE MICROSOFT/SHAREPOINT eu vou explicar a proposta da Microsoft para a Núvem e como o SharePoint se encaixa neste meio.

  

 

A proposta da Microsoft para Cloud Computing é o BPOS (Business Productivity Online Suite), onde ela disponibiliza por meio de licenciamento por usuários, os recursos de email (Exchange Online), comunicação (Office Communication Online e Microsoft Live Meeting) e “portais” (SharePoint Online).

HTTP://www.microsoftonline.com

 

As aspas colocadas no SharePoint definem a limitação grande que você tem sobre esta plataforma, vou comentar mais abaixo.

 

Hoje participei de um treinamento na Microsoft chamado Entregando BPOS com qualidade, ministrado pelo Ricardo Siqueira da própria Microsoft, onde foi abordado os recursos a fundo e processos de migração de Exchange.

 

A algumas semanas estive no Microsoft Tech Ed Brasil onde o assunto foi também bastante abordado e, entre as palestras que eu acompanhei, a mais profunda neste assunto foi da do Alex Schulz sobre Desenvolvendo para SharePoint Online. Esta palestra mostrou basicamente o que poderemos fazer com a próxima versão do BPOS, com a suíte de aplicativos 2010 (entre elas o SharePoint 2010).

 

A grande verdade é que de fato o BPOS hoje tem limitações fortes no que se diz respeito a SharePoint Online:

·         A versão do SharePoint Online é basicamente o WSS 3.0, pois apesar de ter estrutura de SharePoint Server Std ele não tem todos os recursos, isto é esquece BDC, BI, entre outras funcionalidades de MOSS.

·         Não é possível o uso de STSADM/Power Shell, pois você não tem acesso a consoles do servidor. A Microsoft garante que o servidor está no AR e será administrado, porem por este motivo não é possível utilizar comandos STSADM/Power Shell.

·         Não é possível fazer deploy de WSP, pacotes de customizações de novas Features como WebParts, Workflows em WWF(Windows Workflow Foundation), TimerJobs, Event receivers, etc.

·         Não existe ferramenta da migração desenvolvida pela Microsoft, isto é, ou contratamos uma ferramenta de terceiros (já existem várias no mercado) ou utilizamos o SharePoint Designer para nos ajudar, subindo bibliotecas uma a uma.

·         Temos acesso via SharePoint Designer, o que nos facilita a customização de layout e criação de workflows simples, entre os outros recursos que a ferramenta SPD 2007 nos oferece.

·         Todos os usuários são obrigados a instalar a aplicação de Sign in para ter os portais funcionando sem problemas.

o    Isto foi até um chamado que eu abri no Suporte da Microsoft Online para verificar a obrigatoriedade e se existiria algum tipo de “Work Around” de configuração para não utilizar.

o    O problema é que alguns documentos das document libraries não abriam ou requeriam novamente o certificado de autenticação do BPOS, etc.

o    Tudo está envolvido com o certificado, o BPOS roda em HTTPS, então ele usa o certificado do seu usuário cadastrado no BPOS para executar os serviços.

o    Quando a ferramenta de Sign In não está instalada no computador do usuário, mesmo ele colocando o Usuário e Senha na caixa do Internet Explorer para logar no portal, quando o portal precisar de uma autenticação automática não vai conseguir.

o    Para sanar os problemas com certificação, acesso, etc, instale o Sign In Application em todas as estações (pode ser feito por GPO).

·         Não existe autenticação anônima (promessa para a próxima versão 2010), isto é, impossível utilizar para um website.

·         Tente utilizar os serviços em conjunto, não utilizar o Exchange Local, OWA(Outlook web Access) local, porem os portais no SharePoint Online. Este ambiente apesar de “ser suportado” pode causar muitos problemas e dificuldades aos usuários.

Para o próximo teremos a nova versão do BPOS, com o SharePoint 2010 dentro dela. A promessa da Microsoft é tentar trazer o mais completo possível a experiência que temos com o SharePoint 2010 on-premise (instalado no nosso Server), utilizando na Nuvem.

Algumas das melhorias que estão por vir:

·         Customizações poderão ser feitas utilizando sempre “Partial Trust”.

·         Estas customizações deverão ser SandBoxes Solutions, recuso novo do SharePoint 2010 on premise que também estará disponível para a Nuvem. Limita as customizações ao nível de Site Collection (não é possível executar ações do tipo SPSecurity, SPFarm, etc, apenas de Site Collection para baixo).

·         No caso do deploy, deve ser feito através de wsp diretamente pelo portal. Porem se precisar de algum tipo de alteração de Trust deverá ser solicitado o deploy via Service Request (Nada mais é do que você solicitar ao Suporte da Microsoft Online este deploy no ambiente).

·         Levar em consideração sempre as limitações de desenvolvimento quanto ao licenciamento, se o BPOS Standard não é possível grandes alterações no servidor, porem se o seu licenciamento for de um BPOS Dedicated ( o próprio nome já diz, ele é seu) você terá mais liberdade para desenvolvimento de features.

·         A autenticação poderá ser anônima, isto é, teremos um licenciamento como é feito hoje com nosso SharePoint on-premise, para externá-lo para a Web.

Entre outras, sabendo de mais alguma novidade vou postando aqui.

Estou participando de bastante webcasts, treinamentos e palestras sobre este assunto, e já tenho alguns projetos em andamento aqui dentro da minha empresa. Se alguém precisar de material ou alguma ajuda dessa nova tecnologia pode contar comigo.

Abs e até a próxima.

Comparando ambientes WSS, MOSS e BPOS

Boa Tarde SharePointers,
 
segue uma lista comprativa das versões básicas do SharePoint (lembrando que o MOSS ainda é dividido em Standard e Enterprise), porem é bastante útil ter esta comparação entre os ambientes WSS, MOSS e BPOS, para sabermos ao certo onde podemos chegar com nossos projetos.
 
Esta lista básica foi criada pela Thais Genua, analista de sistemas da minha equipe na Softcorp, ainda estamos aumentando ela, em breve eu posto uma mais completa.
 

 

WSS

(Windows SharePoint Services)

MOSS

(Microsoft Office SharePoint Server)

BPOS

(Nuvem)

Intranet

 

Sim

 

Sim

Sim

GED

 

Sim

Sim

Sim

Blogs

 

Sim

Sim

Sim

Fóruns

 

Sim

Sim

Sim

Wiki

Sim

Sim

Sim

Versionamento de conteúdo

Sim

Sim

Sim

Controle de Alteração

Sim

Sim

Sim

Workflow Nativo de Três Estados

 

Sim

Sim

Sim

Workflow Nativo de Aprovação

 

Não

Sim

Não

Workflow Nativo de Aprovação de Disposição

 

Não

Sim

Não

Workflow Nativo Coletar Assinaturas

Não

Sim

Não

Workflow Nativo Coletar Comentários

Não

Sim

Não

Workflow customizado (SharePoint Designer)

 

Sim

Sim

Sim

Workflow customizado (Visual Studio)

 

Sim

Sim

Não

Autenticação customizada (Banco de Dados/ Web Services, etc)

Sim

Sim

Não

Customização de WebParts

Sim

Sim

Não

Suporte a acesso anônimo

Sim

Sim

Não

Customização de Layout

Sim

Sim

Sim

Controle de Servidor

Sim

Sim

Não

Instalação de pacotes de Soluções prontas

Sim

Sim

Não

Backups diários

Sim

Sim

Não

Suporte a Domínio personalizado

Sim

Sim

Não

Criação de contas de usuários ilimitados sem taxa adicional

Sim

Sim

Não

BI

Não

Sim

Não

EPM

Sim

Sim

Não

InfoPath Forms Services

Não

Sim

Não

 

Abs e até a próxima.

Buscar Informações do AD para Web Parts, sem utilizar SSP

Boa Tarde SharePointers,
 
Neste post vou demonstrar como podemos nos conectar em um Active Directory e buscar todos os usuários e suas propriedades.
Recurso muito usado para montar web parts com estas informações em desenvolvimentos SharePoint com instalação WSS, pois com a versão MOSS você tem disponível as configurações de propriedades mapeadas por usuários no SSP(Shared Services Provider).
 
Abaixo demonstro uma classe que busca os usuários do domínio "administrativo":
 

        public List<Usuario> GetUsers()
        {
            List<Usuario> lUsuarios = new List<Usuario>();

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                //Nome do grupo de usuários que estamos procurando no AD, geralmente devemos buscar um grupo específico
                //então já deixei este parâmetro aqui para facilitar
                string GroupName = "windowsSharepoint";

                //Nome do domínio a ser procurado
                string domain = "administrativo";

                //Propriedade de Indexação, default para todos os ADs
                string[] properties = new string[] { "fullname" };

                //Forma de conexão, via LDAP
                DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domain, null, null, AuthenticationTypes.Secure);
                DirectorySearcher searcher = new DirectorySearcher(adRoot);
                searcher.SearchScope = SearchScope.Subtree;
                searcher.ReferralChasing = ReferralChasingOption.All;
                searcher.PropertiesToLoad.AddRange(properties);

                //Filtro utilizando o grupo definido acima, se não for necessário utilizar um filtro é só comentar esta linha
                searcher.Filter = "(&(objectClass=group)(cn=" + GroupName + "))";
                SearchResult result = searcher.FindOne();

                if (result != null)
                {
                    DirectoryEntry deGroup = new DirectoryEntry(result.Path, null, null, AuthenticationTypes.Secure);
                   
                    //Criando a sua property collection, com todas as propriedades retornadas
                    System.DirectoryServices.PropertyCollection pcoll = deGroup.Properties;
                    int n = pcoll["member"].Count;

                    //Se existir usuários encontrados na busca, executamos um laço que irá adicionalos em uma nova lista.
                    for (int l = 0; l < n; l++)
                    {
                        //Criando o link de acesso para um usuário específico do AD, para buscar as propriedades específicas
                        DirectoryEntry deUser = new DirectoryEntry("LDAP://" + domain + "/" + pcoll["member"][l].ToString(), null, null, AuthenticationTypes.Secure);

                        //Validação para verificar se o usuário está desabilitado
                        //Pode variar de AD para AD, porem este é o padrão
                        if (deUser.Properties["userAccountControl"][0].ToString() != "514")
                        {
                            //Objeto Usuário criado para armazenar as propriedades
                            Usuario oUsuario = new Usuario();

                            //Utiliza-se o try e catch pois as propriedades podem não estar acessiveis ou não serem encontradas em determinado AD
                            //Com isto buscamos apenas as propriedades que forem encontradas e que estejam preenchidas
                            try
                            {
                                if (deUser.Properties["displayName"] != null && deUser.Properties["displayName"][0] != null)
                                    oUsuario.Nome = deUser.Properties["displayName"][0].ToString();
                            }
                            catch { }
                            try
                            {
                                if (deUser.Properties["mail"] != null && deUser.Properties["mail"][0] != null)
                                    oUsuario.Email = deUser.Properties["mail"][0].ToString();
                            }
                            catch { }
                            try
                            {
                                if (deUser.Properties["telephoneNumber"] != null && deUser.Properties["telephoneNumber"][0] != null)
                                    oUsuario.Ramal = deUser.Properties["telephoneNumber"][0].ToString();
                            }
                            catch { }
                            try
                            {
                                if (deUser.Properties["department"] != null && deUser.Properties["department"][0] != null)
                                    oUsuario.Departamento = deUser.Properties["department"][0].ToString();
                            }
                            catch { }

                            //Adicionando o usuário com as propriedades preenchidas na nossa listagem
                            lUsuarios.Add(oUsuario);
                        }
                        //Fechando o objeto de entrada no diretório do usuário
                        deUser.Close();
                    }
                    //Fechando o objeto de entrada no diretório dos grupos
                    deGroup.Close();
                }
            });

            //Retornando a Lista Preenchida
            return lUsuarios;
        }

 

Para que este código funcione você terá que criar o objeto Usuário, segue a estrutura da classe abaixo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Demonstracao.Intranet.WebParts
{
    public class Usuario
    {
        #region Variaveis
        private string _Nome;
        private string _Ramal;
        private string _Departamento;
        private string _Email;
        #endregion
        #region Propriedades
        public string Nome
        {
            get { return _Nome; }
            set { _Nome = value; }
        }

        public string Ramal
        {
            get { return _Ramal; }
            set { _Ramal = value; }
        }

        public string Departamento
        {
            get { return _Departamento; }
            set { _Departamento = value; }
        }

        public string Email
        {
            get { return _Email; }
            set { _Email = value; }
        }
        #endregion
    }
}

Pronto, com isto temos a nossa busca no Active Directory sendo executada e uma lista dos usuários(com algumas propriedades mais utilizadas) de um grupo específico em uma List, podendo ser trabalhada da melhor forma.

Segue uma lista completa dos atributos de um Active Directory, mas sempre é bom verificar com o administrador de rede qual as propriedades que contem as informações que você precisa para sua solução:

http://msdn.microsoft.com/en-us/library/ms675090(v=VS.85).aspx

 

Abs e até a próxima.

Páginas Administrativas SharePoint

Boa Noite SharePointers,
 
uma colega de trabalho me passou esta lista de URLs administrativas dos portais SharePoint e eu uso bastante.
 
Estou compartilhando com vocês, ajuda bastante quando temos erros no portal e temos que entrar nas definições.
 

Página

URL
People and Groups _layouts/people.aspx
Site Collection Admins _layouts/mngsiteadmin.aspx
Advanced Permissions _layouts/user.aspx
Master Pages _Layouts/ChangeSiteMasterPage.aspx
Title, Desc, and Icon _layouts/prjsetng.aspx
Navigation _layouts/AreaNavigationSettings.aspx
Page Layout and Ste Templates _Layouts/AreaTemplateSettings.aspx
Welcome Page _Layouts/AreaWelcomePage.aspx
Tree View _layouts/navoptions.aspx
Top Nav Bar _layouts/topnav.aspx
Site Theme _layouts/themeweb.aspx
Reset to Site Definition _layouts/reghost.aspx
Searchable Columns _Layouts/NoCrawlSettings.aspx
Site Content Types _layouts/mngctype.aspx
Site Columns _layouts/mngfield.aspx
Site Templates _catalogs/wt/Forms/Common.aspx
List Templates _catalogs/lt/Forms/AllItems.aspx
Web Parts _catalogs/wp/Forms/AllItems.aspx
Workflows _layouts/wrkmng.aspx
Master Pages and Page Layouts _catalogs/masterpage/Forms/AllItems.aspx
Regoinal Settings _layouts/regionalsetng.aspx
Site Libraries and Lists _layouts/mcontent.aspx
Site Usage Report _layouts/usageDetails.aspx
User Alerts _layouts/sitesubs.aspx
RSS _layouts/siterss.aspx
Search Visability _layouts/srchvis.aspx
Sites and Workspaces _layouts/mngsubwebs.aspx
Site Features _layouts/ManageFeatures.aspx
Delete This Site _layouts/deleteweb.aspx
Site Output Cache _Layouts/areacachesettings.aspx
Content and Structure _Layouts/sitemanager.aspx
Content and Structure Logs _Layouts/SiteManager.aspx?lro=all
Search Settings _layouts/enhancedSearch.aspx
Search Scopes _layouts/viewscopes.aspx?mode=site
Search Keywords _layouts/listkeywords.aspx
Recycle Bin _layouts/AdminRecycleBin.aspx
Site Collection Features _layouts/ManageFeatures.aspx?Scope=Site
Site Hierachy _layouts/vsubwebs.aspx
Portal Site Connection _layouts/portal.aspx
Site Collection Audit Settings _layouts/AuditSettings.aspx
Site Collection Policies _layouts/Policylist.aspx
Site Collection Cache Profiles Cache%20Profiles/AllItems.aspx
Site Collection Output Cache _Layouts/sitecachesettings.aspx
Site Collection Object Cache _Layouts/objectcachesettings.aspx
Variations _Layouts/VariationSettings.aspx
Variation Labels _Layouts/VariationLabels.aspx
Translatable Columns _Layouts/TranslatableSettings.aspx
Variation Logs _Layouts/VariationLogs.aspx
Site Settings _layouts/settings.aspx
Salvar Site como modelo /_layouts/savetmpl.aspx
Galeria de modelos de site /_catalogs/wt/Forms/Common.aspx
 
 
Uma última dia é:
 
Quando estamos com erros em uma web part na página e não conseguimos acessa-la por este motivo, basta colocar a seguinte querystring no endereço:
&contents=1
 
Com isto, entramos em uma página de manutenção das webparts da página, podendo ocultá-la ou excluí-la.
 
Espero ter ajudado.
 
Abs e até a próxima.
 

Removendo usuários desabilitados do AD dos resultados do peoplepicker

Boa tarde SharePointers,

 

Mais um dica bem legal é utilizar o stsadm para criar filtros customizados para o peoplepicker, isto é, você cria filtros utilizando os campos do AD e setando valores de condições, como um if.

 

Acabei de utilizar em um projeto aqui e funciona perfeitamente.

O exemplo abaixo é para que os usuários que não estejam habilitados no AD (geralmente que estão desligados da empresa) não apareçam nas buscas de peoplepicker do sharepoint.

Segue a sintax:

 

stsadm -o setproperty -url http://NOMEDOSERVIDOR:PORTA -pn peoplepicker-searchadcustomfilt

er -pv "(|(ACCOUNTDISABLE!=1))"

 

Neste link abaixo existem outros tipos de filtros:

http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=5

 

Referência que eu utilizei foi :

http://technet.microsoft.com/en-us/library/cc263452.aspx

 

Obs.: O filtro deve vir entre aspas, como você pode ver os exemplos não estão com aspas nos sites mas tem até um comentário de erro encontrado no site do technet.

 

Espero que ajude.

 

Abs e até a próxima.