The search service is currently offline

13/03/2009

Em todos projetos vejo pessoas com dificuldades na hora de configurar a Busca… ou então com problemas com a Busca que um dia já funcionou…

Seguem alguns passos rápidos e fáceis na tentativa de correção deste problema.

 - Reiniciar os seguintes serviços:

  • Indexing Service
  • Office SharePoint Server Search
  • Windows SharePoint Services Search

Realize um “iisreset” no servidor e verifique o funcionamento da busca.

Para os amantes do prompt, segue os comandos para reiniciar todos os serviços para você.

net stop "Indexing Service" && net start "Indexing Service"
net stop "Office SharePoint Server Search" && net start "Office SharePoint Server Search"
net stop "Windows SharePoint Services Search" && net start "Windows SharePoint Services Search"

Caso isso resolva seus problemas, verifique o que ocorreu no Event Viewer.

iisreset \\servername /noforce
iisreset \\servername /status
pause

Abraços,


Verificando todas as pessoas selecionadas

06/03/2009

Quando utilizamos o tipo de coluna “Pessoa ou Grupo”, o SharePoint nativamente classifica a informação inserida como Pessoa ou como Grupo. Mas como podemos obter essa informação por código?

Tendo em vista que o SharePoint guarda as informações deste campo no formato “ID;#Preferred Name/Group“, podemos criar um método que retorna um valor booleano. Segue código abaixo:

//Chamada para o método que verifica se a informação é um usuário ou um grupo
SPFieldUserValue usergroupField = new SPFieldUserValue(oweb, item["AssignedTo"].ToString());
bool isUser = CheckIsUser(site, usergroupField);
private bool CheckIsUser(SPSite site, SPFieldUserValue usergroupField)
{
    bool _IsUser = false;
    try
    {
        _IsUser = SPUtility.IsLoginValid(site, usergroupField.User.LoginName);
    }
    catch (Exception)
    {
        _IsUser = false;
    }
    return _IsUser;
}

Abraços,


SharePoint Object Model – SPFieldUserValue e SPFieldUserValueCollection

06/03/2009

Como todos sabem o tipo de coluna “Pessoa ou Grupo” grava a informação do usuário no formato “ID;#Preferred Name“. Separando o ID do usuário e o nome com “;#.

Quando precisar retornar o valor desta coluna via código para um usuário, utilize o objeto SPFieldUserValue da seguinte forma:

SPFieldUserValue authorUserValue = new SPFieldUserValue(oWeb, item["Author"].ToString());
SPUser authorUser = authorUserValue.User;

Com isso você já pode trabalhar com todas as propriedades do usuário. Mas e se no seu campo foram adicionados mais de um usuário?! O que fazer?!?

No Object Model do SharePoint existe uma coleção chamada SPFieldUserValueCollection, que recebe uma coleção de usuários. Basta assim percorrer a coleção e utilizar os dados de cada usuário conforme a sua necessidade. Se você observar o valor da coluna retorna um emaranhado de IDs, ;#s e Nomes – (ID1;#Usuario1;#ID2;#Usuario2;#ID3;#Usuario3), o que tomaria um certo tempo e vários Splits para separar todos os usuários e buscar os dados no SharePoint.

Com a utilização correta do objeto, tudo isso fica muito mais fácil.

SPFieldUserValueCollection autoresUserValueCollection = new SPFieldUserValueCollection(oWeb, item["Author"].ToString());
foreach (SPFieldUserValue autorUserValue in autoresUserValueCollection)
{
     SPUser autorUser = autorUserValue.User;
}

Bom proveito e Happy coding!


Crawl Log error: “Parameter is incorrect”

29/01/2009

Problema

  Erro na indexação dos itens no site root.

Causa

   Verificou-se que o SharePoint tem um limite de 64KB na lista de controle de acesso (ACL, Access Control List).

Solução

   Caso possua grupos no SharePoint com mais de 1000 usuários (o valor pode mudar), crie os grupos no AD e faça o controle dos usuários pelo mesmo. Assim voltará a funcionar a indexação da busca.

  Esta é uma boa prática recomentada pela Microsoft – Best practices - terceiro item.

Abs,
Dênis Munacata


Novo ano… novas metas… blog novo!

23/12/2008

Ano novo… hora de repensar nas suas metas e virar a página! Este weblog vem com o intuito de compartilhar as diversas experiências vivenciadas durante a arquitetura, desenvolvimento e deploys de aplicações em SharePoint e Asp.Net.

Aguardem…