Galera, sejam bem-vindos ao SharePoint Help. Como podem perceber, há algo diferente: o site virou, de fato, um blog, focando nos problemas que os Desenvolvedores / IT Pros de SharePoint enfrentam nesta jornada de aprendizado, além de notícias sobre a plataforma da Microsoft. Pra que querer inventar e construir um portal enorme, cheio de seções, se não há braço pra cuidar de tudo, não é mesmo?
Todos os erros/problemas/soluções e artigos que constavam no site antigo estão aqui. Perderam a data de publicação, mas isto é um detalhe. O SharePoint Help está no ar desde 2010 visando lhe apoiar, e não servir de base para comprovação de nada. Estamos aqui para ajudar.
O SP Help terá algumas novidades neste ano, bem importantes. Mas isto nós vamos abordar depois.
Prometo agora, com o Blogger (que me traz uma experiência bem melhor nas postagens que o site que eu mesmo tinha construído), postar com uma frequência bem maior.
E vocês já sabem: dúvidas, elogios ou críticas, é via diego@sharepointhelp.com.br ou por aqui, via comentários. Estou aqui para ajudar. ;)
// por Diego von Söhsten, MCT-MCPD-MCITP-MCTS em SharePoint. diego@sharepointhelp.com.br
segunda-feira, 25 de junho de 2012
"SharePoint 15", codenome da próxima versão, deve ser anunciado oficialmente na SharePoint Conference 2012
(Notícia originalmente publicada em 15/11/2011 15:01 em nosso antigo blog).
A próxima versão do SharePoint, codenome "SharePoint 15"/"SharePoint vNext", poderá ser anunciada na versão 2012 do SharePoint Conference, evento oficial da Microsoft sobre a plataforma.
Durante os dias 12, 13, 14 e 15 de novembro de 2012, em Las Vegas (Estados Unidos), o evento deve trazer telas e os primeiros detalhes da próxima versão da plataforma. Comenta-se que haverá aprimoramentos nos recursos de BI e busca.
A próxima versão do SharePoint, codenome "SharePoint 15"/"SharePoint vNext", poderá ser anunciada na versão 2012 do SharePoint Conference, evento oficial da Microsoft sobre a plataforma.
Durante os dias 12, 13, 14 e 15 de novembro de 2012, em Las Vegas (Estados Unidos), o evento deve trazer telas e os primeiros detalhes da próxima versão da plataforma. Comenta-se que haverá aprimoramentos nos recursos de BI e busca.
MIC Day neste sábado, em Olinda - PE. Estaremos lá!
(Notícia originalmente publicada em 27/05/2010 23:30 em nosso antigo blog.)
O mercado de TI em Pernambuco não foi mais o mesmo após a criação do Microsoft Innovation Center Pernambuco. O Centro balançou as estruturas do mercado, descobrindo talentos e os inserindo no mercado.
É com orgulho que participo, neste sábado, 28/05, do MIC Day, evento promovido pelo MIC em parceria com a minha empresa, a NGS - Novelty Green Solutions. Farei uma palestra de SharePoint 2010 logo no início do evento, que começa às 09h00 da manhã. Garanto que a apresentação vai fugir do comum...
O MIC Day será realizado na Faculdade AESO - Barros Melo, em Olinda - Pernambuco, durante todo o dia. As inscrições já se encerraram, mas vou trazer o que aconteceu de melhor no evento para o Help em breve. Se você não se inscreveu, entre na fila de espera para um possível novo MIC Day no site do MIC Pernambuco. Caso tenha se inscrito, nos vemos por lá!
O mercado de TI em Pernambuco não foi mais o mesmo após a criação do Microsoft Innovation Center Pernambuco. O Centro balançou as estruturas do mercado, descobrindo talentos e os inserindo no mercado.
É com orgulho que participo, neste sábado, 28/05, do MIC Day, evento promovido pelo MIC em parceria com a minha empresa, a NGS - Novelty Green Solutions. Farei uma palestra de SharePoint 2010 logo no início do evento, que começa às 09h00 da manhã. Garanto que a apresentação vai fugir do comum...
O MIC Day será realizado na Faculdade AESO - Barros Melo, em Olinda - Pernambuco, durante todo o dia. As inscrições já se encerraram, mas vou trazer o que aconteceu de melhor no evento para o Help em breve. Se você não se inscreveu, entre na fila de espera para um possível novo MIC Day no site do MIC Pernambuco. Caso tenha se inscrito, nos vemos por lá!
Comentários sobre o exame 70-668 (PRO): SharePoint 2010, Administration
(Notícia publicada originalmente em 14/02/2011 13:29 em nosso antigo blog.)
Cansativo.
Não há termo melhor pra definir o exame 70-668, que, junto com o 70-667, garante à pessoa o título de MCITP no SPS 2010. Cinquenta questões, sendo mais da metade verdadeiras "redações".
Cada uma destas questões "cansativas", digamos assim, traz um caso real de uma empresa: sua política de segurança, requisitos para ajustes e novas soluções e também especificações do ambiente já existente. Parte dessas questões referenciam apenas trechos deste caso real - ou seja, se você leu tudo antes de ver o enunciado propriamente dito, perdeu tempo (experiência própria!). Mesmo assim, a prova é exaustiva.
Assuntos abordados? Upgrade (muito!) do MOSS 2007 para o SPS 2010, serviços (principalmente o Managed Metadata Services), BI, configuração de zonas, soluções sandbox... É o que eu lembro agora. Uma prova relativamente difícil, pois aborda alguns casos reais não muito comuns. Fui aprovado e considero esta a prova de configuração mais detalhista e difícil do SharePoint 2010 e 2007.
Conselho meu: deixe para fazer esta prova depois de tirar as outras três certificações do SPS 2010.
Cansativo.
Não há termo melhor pra definir o exame 70-668, que, junto com o 70-667, garante à pessoa o título de MCITP no SPS 2010. Cinquenta questões, sendo mais da metade verdadeiras "redações".
Cada uma destas questões "cansativas", digamos assim, traz um caso real de uma empresa: sua política de segurança, requisitos para ajustes e novas soluções e também especificações do ambiente já existente. Parte dessas questões referenciam apenas trechos deste caso real - ou seja, se você leu tudo antes de ver o enunciado propriamente dito, perdeu tempo (experiência própria!). Mesmo assim, a prova é exaustiva.
Assuntos abordados? Upgrade (muito!) do MOSS 2007 para o SPS 2010, serviços (principalmente o Managed Metadata Services), BI, configuração de zonas, soluções sandbox... É o que eu lembro agora. Uma prova relativamente difícil, pois aborda alguns casos reais não muito comuns. Fui aprovado e considero esta a prova de configuração mais detalhista e difícil do SharePoint 2010 e 2007.
Conselho meu: deixe para fazer esta prova depois de tirar as outras três certificações do SPS 2010.
Comentários sobre o exame 70-573: SharePoint 2010, Application Development
(Notícia originalmente publicada em 06/12/2010 23:59 em nosso antigo blog)
Mais um dia de prova! Hoje, fiz o exame 70-573 (SharePoint 2010, Aplication Development). E... passei.
Antes de qualquer coisa: NOTA 10 PRA MICROSOFT! Prova muito bem elaborada, assuntos bem distribuídos, questões de código que não são cansativas. E o mais importante: um exame que realmente avalia seu conhecimento, e não a sua capacidade de prestar atenção em detalhes. Durante a prova, lembrei de diversas situações que encontrei no meu dia-a-dia "sharepointer".
Customização de ribbon, event receivers, REST, client object model (questões bem fáceis), debugging, páginas personalizadas, site definitions... Nota 10 pra Microsoft.
Com a carreira do WSS 3/MOSS 2007 completa, agora vou correr pra completar a do SPS 2010. Em relação ao nível de dificuldade, considero ela mais difícil que a 70-541 (WSS 3 App Dev), só que mais fácil que a 70-542 (MOSS 2007 App Dev). Tem experiência com SharePoint? Só revise alguns assuntos e você é um forte candidato a passar. ;)
Mais um dia de prova! Hoje, fiz o exame 70-573 (SharePoint 2010, Aplication Development). E... passei.
Antes de qualquer coisa: NOTA 10 PRA MICROSOFT! Prova muito bem elaborada, assuntos bem distribuídos, questões de código que não são cansativas. E o mais importante: um exame que realmente avalia seu conhecimento, e não a sua capacidade de prestar atenção em detalhes. Durante a prova, lembrei de diversas situações que encontrei no meu dia-a-dia "sharepointer".
Customização de ribbon, event receivers, REST, client object model (questões bem fáceis), debugging, páginas personalizadas, site definitions... Nota 10 pra Microsoft.
Com a carreira do WSS 3/MOSS 2007 completa, agora vou correr pra completar a do SPS 2010. Em relação ao nível de dificuldade, considero ela mais difícil que a 70-541 (WSS 3 App Dev), só que mais fácil que a 70-542 (MOSS 2007 App Dev). Tem experiência com SharePoint? Só revise alguns assuntos e você é um forte candidato a passar. ;)
Comentários sobre o exame 70-541: Windows SharePoint Services 3.0, Application Development
(Notícia originalmente publicada em 11/11/2010 07:25 em nosso antigo blog.)
Ontem, completei a carreira SharePoint 2007/WSS 3, com a aprovação no exame que faltava, 70-541, o Windows SharePoint Services 3.0, Application Development. Se algum de vocês vai fazer esta prova, eu já adianto: ela não é difícil.
Não estudei para a prova, fui confiando na minha experiência. Mas aí vai uma recomendação minha: nunca façam isso! Digo porque minha pontuação foi raspando na nota mínima pra obter aprovação. A partir do momento que confiei na minha experiência, deixei de estudar assuntos cobrados no exame que eu não tenho muita familiaridade, como os Web Services do SharePoint.
Esse exame não chega ao nível de dificuldade do 70-542, o Microsoft Office SharePoint Server 2007, Application Development. Mas não significa que a prova é fácil. Ela vai ser simples pra quem tem experiência com a ferramenta e ainda faz uma revisão dos itens com os quais não possui muita familiaridade.
Mais informações: Microsoft Learning.
Ontem, completei a carreira SharePoint 2007/WSS 3, com a aprovação no exame que faltava, 70-541, o Windows SharePoint Services 3.0, Application Development. Se algum de vocês vai fazer esta prova, eu já adianto: ela não é difícil.
Não estudei para a prova, fui confiando na minha experiência. Mas aí vai uma recomendação minha: nunca façam isso! Digo porque minha pontuação foi raspando na nota mínima pra obter aprovação. A partir do momento que confiei na minha experiência, deixei de estudar assuntos cobrados no exame que eu não tenho muita familiaridade, como os Web Services do SharePoint.
Esse exame não chega ao nível de dificuldade do 70-542, o Microsoft Office SharePoint Server 2007, Application Development. Mas não significa que a prova é fácil. Ela vai ser simples pra quem tem experiência com a ferramenta e ainda faz uma revisão dos itens com os quais não possui muita familiaridade.
Mais informações: Microsoft Learning.
Certificação de configuração do WSS 3.0 deixará de existir
(Notícia originalmente publicada em 24/10/2010 00:11 em nosso antigo blog)
A certificação Windows SharePoint Services 3.0 - Configuring, código 70-631, será descontinuada no dia 31 de março de 2011, segundo um anúncio da Microsoft.
A versão mais provável é a seguinte: como na versão 2010 do SharePoint a Microsoft não criou provas de certificação para a edição Foundation (novo nome do WSS), a versão 2007 do produto também não teria provas para a sua edição gratuita correspondente.
A prova 70-540 (WSS 3 - Application Development) não saiu de linha ainda porque conta com vários fundamentos da plataforma SharePoint que a prova de Desenvolvimento do MOSS 2007 (70-541, MOSS 2007 - Application Development) não aborda. Basicamente, a 70-541 é mais centrada em serviços. Por isso, é uma tendência que as duas de Desenvolvimento continuem juntas e apenas a de Configuração do WSS seja descontinuada.
A certificação Windows SharePoint Services 3.0 - Configuring, código 70-631, será descontinuada no dia 31 de março de 2011, segundo um anúncio da Microsoft.
A versão mais provável é a seguinte: como na versão 2010 do SharePoint a Microsoft não criou provas de certificação para a edição Foundation (novo nome do WSS), a versão 2007 do produto também não teria provas para a sua edição gratuita correspondente.
A prova 70-540 (WSS 3 - Application Development) não saiu de linha ainda porque conta com vários fundamentos da plataforma SharePoint que a prova de Desenvolvimento do MOSS 2007 (70-541, MOSS 2007 - Application Development) não aborda. Basicamente, a 70-541 é mais centrada em serviços. Por isso, é uma tendência que as duas de Desenvolvimento continuem juntas e apenas a de Configuração do WSS seja descontinuada.
Acessar um arquivo SPFile diretamente de uma URL.
Para instanciar um objeto SPFile correspondente a um arquivo que está armazenado no seu SharePoint local, através da URL, você pode usar o método GetFile, que tem como parâmetro a URL do arquivo.
SPFile arquivo = web.GetFile(urlDoArquivo);
Pra recuperar o ListItem, basta acessar a propriedade .Item do SPFile. (arquivo.Item) Lembre de tratar exceções sempre.
SPFile arquivo = web.GetFile(urlDoArquivo);
Pra recuperar o ListItem, basta acessar a propriedade .Item do SPFile. (arquivo.Item) Lembre de tratar exceções sempre.
Manipulando anexos de um item de lista usando SPAttachmentCollection.
Conforme você acompanhou em um tutorial anterior, a classe SPAttachmentCollection é usada para incluir/apagar anexos de um item de uma lista no SharePoint. Como uma coleção, você pode até imaginar: então há vários objetos SPAttachment ou SPFile, e posso referenciar um a um diretamente, certo? Errado.
Coisas do SharePoint... Se você acessar um item de uma lista e então sua propriedade attachments, você terá um array de strings (!) com os nomes dos anexos. Você pode adicionar um arquivo através de um método desta classe, mas não poderá fazer muita coisa além disso...
Para referenciar um anexo do SharePoint, instancie um objeto SPFile. Há duas formas para referenciá-lo:
Com a referência usando o SPFile, fica muito mais fácil. ;)
Coisas do SharePoint... Se você acessar um item de uma lista e então sua propriedade attachments, você terá um array de strings (!) com os nomes dos anexos. Você pode adicionar um arquivo através de um método desta classe, mas não poderá fazer muita coisa além disso...
Para referenciar um anexo do SharePoint, instancie um objeto SPFile. Há duas formas para referenciá-lo:
foreach (string nomeArquivo in item.Attachments)
{
SPFile arquivo = web.GetFile(item.Attachments.UrlPrefix + nomeArquivo);
//Operações com o arquivo aqui.
}
SPFolder pasta = web.Folders["Lists"].SubFolders["TÍTULO DA LISTA"].SubFolders["Attachments"].SubFolders[item.ID.ToString()];
foreach (SPFile arquivo in pasta.Files)
{
//Operações com o arquivo aqui.
}
Com a referência usando o SPFile, fica muito mais fácil. ;)
Recuperando dados de um usuário do SharePoint programaticamente, usando PeopleEditor e web.SiteUserInfoList.
Em algum momento, você já precisou acessar informações de um usuário do SharePoint? Informações como cidade, estado, endereço, escritório... Detalhes que podem ser introduzidos manualmente, bem como importados do Active Directory. Neste tutorial, mostrarei como é possível recuperar estas informações, através de um controle PeopleEditor e de uma lista oculta do SharePoint.
Vamos começar, então...
Suponho que você já registrou os assemblies do SharePoint (caso contrário, favor ver o tutorial do dia 30/11/2010, onde mostro como usar controles do SharePoint em uma application page). Desta forma, adicione um controle PeopleEditor em sua page:
<SharePoint:PeopleEditor ID="peopleEditor" AllowEmpty="false" ValidatorEnabled="true" MultiSelect="false" runat="server" SelectionSet="User" Width="300px" />
A propriedade AllowEmpty indica se este campo poderá ficar vazio. ValidatorEnabled permite a exibição de uma mensagem de erro, pedindo que o campo seja preenchido. MultiSelect torna possível selecionar mais de um usuário.
Buscando um usuário na lista oculta do SharePoint
Navegue até /_catalogs/users/detail.aspx e veja os registros de usuários no portal, com atributos como Imagem, Nome, Cargo, entre outros. Para acessar programaticamente estas informações através do usuário escolhido no PeopleEditor, podemos usar uma consulta CAML ou percorrer cada um dos registros da lista, "manualmente". Não deveria, mas escolhi a segunda opção. Veja o código abaixo:
string nome;
string departamento;
string cidade;
SPListItemCollection usuarios = web.SiteUserInfoList.Items;
foreach (SPListItem user in usuarios)
{
//se encontrou o usuário no SharePoint, recupera o nome, departamento e cidade dele.
if (user["Name"].ToString() == peopleEditor.CommaSeparatedAccounts)
{
nome = user["Name"].ToString();
departamento = user["Department"].ToString();
cidade = user["City"].ToString();
}
}
Lembrando que não tratei exceções no código acima. Caso uma das propriedades (nome, departamento ou cidade) esteja vazia no SharePoint, uma exceção será lançada, portanto, pense nesta situação.
Mais atributos dentro de um registro em web.SiteUserInfoList podem ser referenciados: Office (escritório), JobTitle (função na empresa), Address (endereço), Picture (imagem usada no perfil), entre outros. Lembre sempre de tratar possíveis exceções lançadas em uma consulta deste tipo.
Estas informações do usuário podem ser editadas no próprio SharePoint. Basta clicar no seu nome de usuário (no topo da página), e depois em "Minhas definições".
Críticas são muito bem-vindas. Aguardo sua opinião sobre o artigo no diego@sharepointhelp.com.br.
Vamos começar, então...
Suponho que você já registrou os assemblies do SharePoint (caso contrário, favor ver o tutorial do dia 30/11/2010, onde mostro como usar controles do SharePoint em uma application page). Desta forma, adicione um controle PeopleEditor em sua page:
<SharePoint:PeopleEditor ID="peopleEditor" AllowEmpty="false" ValidatorEnabled="true" MultiSelect="false" runat="server" SelectionSet="User" Width="300px" />
A propriedade AllowEmpty indica se este campo poderá ficar vazio. ValidatorEnabled permite a exibição de uma mensagem de erro, pedindo que o campo seja preenchido. MultiSelect torna possível selecionar mais de um usuário.
Buscando um usuário na lista oculta do SharePoint
Navegue até /_catalogs/users/detail.aspx e veja os registros de usuários no portal, com atributos como Imagem, Nome, Cargo, entre outros. Para acessar programaticamente estas informações através do usuário escolhido no PeopleEditor, podemos usar uma consulta CAML ou percorrer cada um dos registros da lista, "manualmente". Não deveria, mas escolhi a segunda opção. Veja o código abaixo:
string nome;
string departamento;
string cidade;
SPListItemCollection usuarios = web.SiteUserInfoList.Items;
foreach (SPListItem user in usuarios)
{
//se encontrou o usuário no SharePoint, recupera o nome, departamento e cidade dele.
if (user["Name"].ToString() == peopleEditor.CommaSeparatedAccounts)
{
nome = user["Name"].ToString();
departamento = user["Department"].ToString();
cidade = user["City"].ToString();
}
}
Lembrando que não tratei exceções no código acima. Caso uma das propriedades (nome, departamento ou cidade) esteja vazia no SharePoint, uma exceção será lançada, portanto, pense nesta situação.
Mais atributos dentro de um registro em web.SiteUserInfoList podem ser referenciados: Office (escritório), JobTitle (função na empresa), Address (endereço), Picture (imagem usada no perfil), entre outros. Lembre sempre de tratar possíveis exceções lançadas em uma consulta deste tipo.
Estas informações do usuário podem ser editadas no próprio SharePoint. Basta clicar no seu nome de usuário (no topo da página), e depois em "Minhas definições".
Críticas são muito bem-vindas. Aguardo sua opinião sobre o artigo no diego@sharepointhelp.com.br.
Usando o PeoplePicker (e demais controles do SharePoint) em uma application page (.aspx).
Para usar controles do SharePoint em uma application page customizada (.aspx), você precisará registrar os assemblies necessários do SharePoint. Adicione ao início da página, após a cláusula Page e antes dos Contents, as seguintes linhas:
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
< %@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
A partir disso, você pode colocar os controles do SharePoint normalmente. Um exemplo usando o PeoplePicker:
<SharePoint:PeopleEditor ID="pplEditor" AllowEmpty="false" ValidatorEnabled="true" MultiSelect="false" runat="server" SelectionSet="User" Width="300px" />
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
< %@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
A partir disso, você pode colocar os controles do SharePoint normalmente. Um exemplo usando o PeoplePicker:
<SharePoint:PeopleEditor ID="pplEditor" AllowEmpty="false" ValidatorEnabled="true" MultiSelect="false" runat="server" SelectionSet="User" Width="300px" />
Como fazer o upload de um documento para o SharePoint programaticamente.
Em uma lista do SharePoint, você pode ter um ou mais anexos. A lista de anexos de um item é uma coleção do tipo SPAttachmentCollection. Neste exemplo, usaremos um controle FileUpload para carregar o documento.
//faz o upload do arquivo desejadoif (fUpload.PostedFile != null && fUpload.HasFile){Stream fStream = fUpload.PostedFile.InputStream;
byte[] conteudo = new byte[fStream.Length];
fStream.Read(conteudo, 0, (int)fStream.Length);
fStream.Close();
fStream.Dispose();
SPAttachmentCollection attachments = item.Attachments;
string nomeArquivo = Path.GetFileName(fUpload.PostedFile.FileName);
attachments.Add(nomeArquivo, conteudo);
}
Error when debugging: "Could not load web.config file. The given key was not present in the dictionary."
Could not load the Web.config configuration file. Check the file for any malformed XML elements, and try again. The following error occurred: The given key was not present in the dictionary.
If your configuration file is well-formed, possibly this error is happening due to your public URL set on Central Administration, on Alternate Access Mappings. The Site Url property of your project in Visual Studio needs to match the public URL on AAM. Check it on Central Administration > Configure alternate access mappings > Edit public URLs.
If your configuration file is well-formed, possibly this error is happening due to your public URL set on Central Administration, on Alternate Access Mappings. The Site Url property of your project in Visual Studio needs to match the public URL on AAM. Check it on Central Administration > Configure alternate access mappings > Edit public URLs.
Erro ao depurar código: "Could not load web.config file. The given key was not present in the dictionary."
Could not load the Web.config configuration file. Check the file for any malformed XML elements, and try again. The following error occurred: The given key was not present in the dictionary.
Se o seu arquivo de configuração está bem-formado, possivelmente a causa deste erro é a URL usada pelo seu site nos Mapeamentos Alternativos de Acesso (Alternate Access Mappings). A propriedade Site Url do seu projeto no Visual Studio precisa ter o mesmo valor da URL pública do site. Confira em Central Administration > Configure alternate access mappings > Edit public URLs.
Se o seu arquivo de configuração está bem-formado, possivelmente a causa deste erro é a URL usada pelo seu site nos Mapeamentos Alternativos de Acesso (Alternate Access Mappings). A propriedade Site Url do seu projeto no Visual Studio precisa ter o mesmo valor da URL pública do site. Confira em Central Administration > Configure alternate access mappings > Edit public URLs.
When updating data inside a collection: "Collection was modified; enumeration operation may not execute".
When trying to update some data in a collection, you will find this error:
foreach (SPListItem item in list.Items){You can´t update read-only collections. The solution: keep the ID of the ListItem you want to modify in some kind of object (like a generic list, for example), and modify this item in one-way, out of any collections, getting it by its ID.
item["column"] = "New title";
item.Update();
}
SPListItem item = list.GetItemById(idItem);
item["column"] = "New title";
item.Update();
Ao atualizar programaticamente uma coleção: "Collection was modified; enumeration operation may not execute"
Ao tentar atualizar uma informação diretamente em uma coleção de dados, você pode encontrar este erro, como no caso abaixo:
foreach (SPListItem item in lista.Items){Ao invés disto, salve o identificador dos ListItems que você deseja modificar em um objeto à parte (pode ser uma lista genérica, por exemplo), e acesse diretamente este item depois através do identificador, não modificando em uma coleção.
item["coluna"] = "Novo titulo";
item.Update();
}
SPListItem item = list.GetItemById(idItem);
item["coluna"] = "Novo titulo";
item.Update();
When running psconfig (Products Configuration Wizard), and providing database server name, the following error appears: SQL Server at [server name] has an unsupported version".
See the minimum versions of SQL Server required to the SharePoint 2010 installation on same farm:
SQL Server 2008 Express Edition Service Pack 1, version number 10.0.2531;
SQL Server 2005 Service Pack 3 cumulative update package 3, version number 9.00.4220.00;
SQL Server 2008 Service Pack 1 cumulative update package 2, version number 10.00.2714.00.
It´s very important to remember that SQL Server SP1 is necessary on SQL Express. If SQL version is paid (Professional or higher), it´s needed the SP1 Cumulative Update 2 too.
SQL Server 2008 Express Edition Service Pack 1, version number 10.0.2531;
SQL Server 2005 Service Pack 3 cumulative update package 3, version number 9.00.4220.00;
SQL Server 2008 Service Pack 1 cumulative update package 2, version number 10.00.2714.00.
It´s very important to remember that SQL Server SP1 is necessary on SQL Express. If SQL version is paid (Professional or higher), it´s needed the SP1 Cumulative Update 2 too.
Ao rodar o psconfig (Products Configuration Wizard), e informar o servidor de banco, o erro: SQL Server at [nome do servidor] has an unsupported version".
Verifique a versão do SQL Server mínima necessária:
SQL Server 2008 Express Edition Service Pack 1, version number 10.0.2531;
SQL Server 2005 Service Pack 3 cumulative update package 3, version number 9.00.4220.00;
SQL Server 2008 Service Pack 1 cumulative update package 2, version number 10.00.2714.00.
É importante lembrar que o SP1 do SQL Server é necessário no caso do SQL Express. Em uma versão paga (Professional ou superior), é necessário também instalar o Cumulative Update 2 do SP1.
SQL Server 2008 Express Edition Service Pack 1, version number 10.0.2531;
SQL Server 2005 Service Pack 3 cumulative update package 3, version number 9.00.4220.00;
SQL Server 2008 Service Pack 1 cumulative update package 2, version number 10.00.2714.00.
É importante lembrar que o SP1 do SQL Server é necessário no caso do SQL Express. Em uma versão paga (Professional ou superior), é necessário também instalar o Cumulative Update 2 do SP1.
While using Windows Server: "Your client does not support opening this list with Windows Explorer".
On Server Manager, enable the "Desktop Experience" feature. Then, enable the "WebClient" Windows service, on services.msc.
Usando o Windows Server: "Your client does not support opening this list with Windows Explorer"
Habilite o recurso (feature) do Windows Server "Desktop Experience", no Server Manager, e então habilite o serviço do Windows (em services.msc) "WebClient".
While adding content DB: "This content database has a schema version which is not supported in this farm."
Install all Cumulative Updates on SharePoint servers, until its version be the same version as the old farm.
Ao adicionar base de conteúdo: "This content database has a schema version which is not supported in this farm."
Instale os Cumulative Updates do SharePoint no servidor em que você está importando as bases, até que a versão do SharePoint no mesmo seja exatamente igual à do servidor original, cuja farm continha as bases.
Erro ao abrir arquivo do Excel no SharePoint: "No momento, a pasta de trabalho está aberta por 256 usuários, sendo que esse é o número máximo de usuários que podem ter uma pasta de trabalho compartilhada".
O arquivo que você tenta abrir está, de alguma forma, corrompido - a menos que realmente esteja sendo aberto por 256 usuários, obviamente. Se não for o caso, salve uma cópia do arquivo no SharePoint, usando o Excel e a opção "Salvar como". Ignore o aviso de "arquivo somente leitura". Verifique que o novo está habilitado para edição e apague o antigo. Resolvido!
Error opening Excel file on SharePoint: "The workbook is currently open by 256 users. A maximum of 256 users can have a shared workbook open at the same time."
The file you are trying to open is, somehow, corrupted - unless it´s being opened by 256 users, obviously. In case of corruption, you can try to save a copy of the file on SharePoint, using the Excel. Ignore the "read-only" warning and "save as" a new file. Delete the old one. Solved!
Ao iniciar um serviço do SharePoint: "The service cannot accept control messages at this time".
Esta é uma pequena falha na comunicação entre o controle que você utilizou para mudar o estado do serviço, e o serviço propriamente dito. Aguarde alguns minutos e tente iniciar o serviço novamente.
When adding a content database: "The specified SPContentDatabase Name=(name) Parent=SPDatabaseServiceInstance has been upgraded to a newer version of SharePoint".
SharePoint´s version on the machine where you try to add the content DB is older than in the other machine. Install the Service Packs and the Cumulative Updates needed to reach the same version.
Ao adicionar um banco de dados de conteúdo: "A SPContentDatabase Name=(nome) Parent=SPDatabaseServiceInstance especificada foi atualizada para uma versão mais recente do SharePoint".
A versão do SharePoint na máquina onde você tenta adicionar o banco é mais antiga que a versão na máquina anterior. Atualize o SharePoint para a mesma versão.
This solution contains two assemblies with the same name, or the SharePoint server already has an assembly with the specified name.
Simples.
1) Desinstale o assembly da solução do Global Assembly Cache (drive\WINDOWS\assembly).
2) Delete a pasta da feature na SharePoint Root (drive\Program Files\Common Files\Microsoft Shared\web server extensions\TEMPLATE\FEATURE\nome).
1) Desinstale o assembly da solução do Global Assembly Cache (drive\WINDOWS\assembly).
2) Delete a pasta da feature na SharePoint Root (drive\Program Files\Common Files\Microsoft Shared\web server extensions\TEMPLATE\FEATURE\nome).
Root element is missing.
"Root element is missing"? A parte que eu mais gosto do SharePoint é quando ele retorna esses erros esquisitos, sem muitos detalhes...
Este erro é retornado quando um arquivo de alguma pasta dentro de Templates, na famosa "SharePoint Root" (C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\web server extensions\12\TEMPLATE\), estiver faltando. Resumo: um arquivo que já é instalado com o SharePoint está faltando.
Se o erro é retornado ao criar um site, está faltando um template na pasta SiteTemplates. Se o erro é retornado ao criar uma biblioteca, verifique os .xml na pasta XML. Ambas as pastas estão em TEMPLATE.
Como saber o arquivo que está faltando? Bom, aí já é com você, que vai ter que verificar um a um.
Este erro é retornado quando um arquivo de alguma pasta dentro de Templates, na famosa "SharePoint Root" (C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\web server extensions\12\TEMPLATE\), estiver faltando. Resumo: um arquivo que já é instalado com o SharePoint está faltando.
Se o erro é retornado ao criar um site, está faltando um template na pasta SiteTemplates. Se o erro é retornado ao criar uma biblioteca, verifique os .xml na pasta XML. Ambas as pastas estão em TEMPLATE.
Como saber o arquivo que está faltando? Bom, aí já é com você, que vai ter que verificar um a um.
(nome do método) does not contain a definition on (página) at System.Web.Compilation.AssemblyBuilder.Compile()
Esses bugs do WSS 3/MOSS 2007... Você cria um código enorme, em tempo de execução aparece isso e você não sabe nem por onde começar.
Usei uma Application Page (página de aplicação) .aspx para hospedar um formulário para o SharePoint 2007 (sabe como é, o InfoPath 2007 não chega aos pés do 2010 em questão de compatibilidade). Deploy feito. Na hora de visualizar no portal, o nosso querido "Unknown Error" (erro desconhecido). Fui no web.config da pasta da aplicação no IIS, mudei o CustomErrors para "off" e o CallStack para "true" e aí tive um susto.
Um dos métodos do code-behind da página estava acusando este erro (does not contain a definition (...) at System.Web.Compilation.AssemblyBuilder.Compile()), mas este método realmente existia, se encontrava no namespace da página. Conferi todo o cabeçalho dela e tudo estava ok. Aí então eu fui olhar linha por linha deste método e encontrei um erro bobo de sintaxe. Detalhe, esse erro passou pelo compilador (fiz inclusive o deploy pelo SPVisualDev) e em tempo de execução o usuário nunca ia imaginar que o problema seria esse.
Basicamente, a solução é essa. Viu um erro do tipo, que não há uma definição de um método que você implementou, conferiu todo o cabeçalho da página e tá tudo certo? Verifique o método linha por linha. Usar soluções de terceiros para fazer deploy pode resultar nisso. E lembre: quem usa SharePoint está sempre sujeito a essas situações. rs
Usei uma Application Page (página de aplicação) .aspx para hospedar um formulário para o SharePoint 2007 (sabe como é, o InfoPath 2007 não chega aos pés do 2010 em questão de compatibilidade). Deploy feito. Na hora de visualizar no portal, o nosso querido "Unknown Error" (erro desconhecido). Fui no web.config da pasta da aplicação no IIS, mudei o CustomErrors para "off" e o CallStack para "true" e aí tive um susto.
Um dos métodos do code-behind da página estava acusando este erro (does not contain a definition (...) at System.Web.Compilation.AssemblyBuilder.Compile()), mas este método realmente existia, se encontrava no namespace da página. Conferi todo o cabeçalho dela e tudo estava ok. Aí então eu fui olhar linha por linha deste método e encontrei um erro bobo de sintaxe. Detalhe, esse erro passou pelo compilador (fiz inclusive o deploy pelo SPVisualDev) e em tempo de execução o usuário nunca ia imaginar que o problema seria esse.
Basicamente, a solução é essa. Viu um erro do tipo, que não há uma definição de um método que você implementou, conferiu todo o cabeçalho da página e tá tudo certo? Verifique o método linha por linha. Usar soluções de terceiros para fazer deploy pode resultar nisso. E lembre: quem usa SharePoint está sempre sujeito a essas situações. rs
"Updating the site columns failed" ao tentar publicar um formulário do InfoPath 2007 em um Content Type
Você fez tudo certo pra publicar um formulário em um Content Type através do InfoPath 2007, mas, na hora de publicar, aparece o erro "Updating the site columns failed". Como solucionar?
Simples: reinicie o servidor de front-end em que você está tentando criar o Content Type juntamente com o formulário. Este é um bug do SharePoint 2007 / InfoPath 2007, que foi solucionado na versão 2010 do SP, que agora conta com suporte nativo - leia-se, sem gambiarras orientadas a gambiarras (GOGs) - ao InfoPath.
Simples: reinicie o servidor de front-end em que você está tentando criar o Content Type juntamente com o formulário. Este é um bug do SharePoint 2007 / InfoPath 2007, que foi solucionado na versão 2010 do SP, que agora conta com suporte nativo - leia-se, sem gambiarras orientadas a gambiarras (GOGs) - ao InfoPath.
Quero acessar o estado de aprovação de um item em uma lista programaticamente, mas não consigo encontrar "Approved" (aprovado), "Rejected" (rejeitado) ou "Canceled" (cancelado). Como acessar esta coluna?
Ao usar o workflow de aprovação nativo do SharePoint 2010, o valor da coluna de status de aprovação é definido como um inteiro. 15 significa "Canceled", 16 representa "Approved" e 17 é "Rejected".
Your changes conflict with those made concurrently by another user. If you want your changes to be applied, click Back in your Web browser, refresh the page, and resubmit your changes.
Provavelmente, você está usando um fluxo de trabalho com algum evento que é disparado quando um item é atualizado. Vou explicar o que acontece: você coloca novos valores no item, e quando o mesmo é atualizado pelo sistema, o fluxo é disparado novamente, com os mesmos valores que você colocou, que é atualizado e o fluxo é chamado mais uma vez - e por aí vai. Vários processos de atualização concorrem ao mesmo tempo e isto só acaba quando o primeiro processo é terminado - ou seja, o item é atualizado pela primeira vez, o que pode demorar bastante, dependendo do seu ambiente. Tente não usar o debugging nesta situação - caso contrário, depurar seu código será uma experiência bastante "insana", no mínimo.
Caso esteja usando o SharePoint Designer, coloque algumas ações no passo em questão do fluxo: primeiro, o "Set field in current item". Depois, o "Wait for field change in current item" e então o "Stop Workflow". Assim, você garante que os processos concorrentes não vão tentar atualizar o item. Caso você esteja usando código, coloque algo parecido.
Caso esteja usando o SharePoint Designer, coloque algumas ações no passo em questão do fluxo: primeiro, o "Set field in current item". Depois, o "Wait for field change in current item" e então o "Stop Workflow". Assim, você garante que os processos concorrentes não vão tentar atualizar o item. Caso você esteja usando código, coloque algo parecido.
0x80020005
Esse erro, aparentemente "indecifrável", é bastante simples de resolver. Claro que para eu descobrir e contar a você não foi algo muito rápido... Mas enfim: este erro é, basicamente, uma indicação de que você está tentando atualizar ou inserir um valor em um campo de outro tipo em uma lista.
Exemplo: você tem uma lista onde um campo é do tipo Person/Group. Via código, você tenta inserir neste campo um string, com apenas o nome do usuário ou do grupo. Vai dar erro. Isso porque o campo Person/Group é um campo Lookup: id;#valor. Ou seja: se você está inserindo o nome de um usuário, precisa colocar o id dele no site, seguido por ponto-e-vírgula, jogo da velha e então o valor. Exemplo: 7;#Fulano. Neste caso, adicione, através do código, o ID dele junto com ";#" ao nome. Como fazer isso? Crie um objeto do tipo SPFieldValueLookup, passando por parâmetro o ID dele (use algo do tipo "usuario.Id") e o nome. Cuidado com os campos Lookup: eles não são simples campos de texto.
Exemplo: você tem uma lista onde um campo é do tipo Person/Group. Via código, você tenta inserir neste campo um string, com apenas o nome do usuário ou do grupo. Vai dar erro. Isso porque o campo Person/Group é um campo Lookup: id;#valor. Ou seja: se você está inserindo o nome de um usuário, precisa colocar o id dele no site, seguido por ponto-e-vírgula, jogo da velha e então o valor. Exemplo: 7;#Fulano. Neste caso, adicione, através do código, o ID dele junto com ";#" ao nome. Como fazer isso? Crie um objeto do tipo SPFieldValueLookup, passando por parâmetro o ID dele (use algo do tipo "usuario.Id") e o nome. Cuidado com os campos Lookup: eles não são simples campos de texto.
Como ocultar o Quick Launch (Início Rápido) da página
Solução: Para ocultar o Quick Launch (acesso rápido às listas e bibliotecas), aplique no CSS, ao #s4-leftpanel o atributo display:none. Para ocultar a div com os links All Site Content e Recycle Bin, aplique à .s4-specialNavLinkList o atributo display:none. Para puxar a div principal do conteúdo, aplique à .s4-ca o atributo margin-left:0px.
Error occurred in deployment step 'Activate Features': This functionality is unavailable for fields not associated with a list.
Solução: Você modificou alguma propriedade, como a visibilidade de um campo (alterando atributos como ShowInNewForm), diretamente no Content Type? Esta não é a forma correta, você precisa modificar a propriedade desejada do campo diretamente na lista, sem acessar programaticamente o Content Type. Esqueça o lista.ContentTypes["nomeCT"].Fields["campo"].propriedade e use logo o lista.Fields["campo"].propriedade.
Error occurred in deployment step 'Activate Features': Invalid data has been used to update the list item. The field you are trying to update may be read only.
Solução: Certifique-se de que os valores atribuídos a cada campo possuem o mesmo tipo de cada um no portal no SharePoint. Por exemplo, se o tipo de uma coluna é People and Groups, certifique-se de que você está atribuindo algo do tipo SPUser ou SPGroup, por exemplo.
Cannot connect to the configuration database.
Solução: Por algum motivo (inclua nisso alguma atualização do Windows Update), o serviço do SQL Server foi interrompido. Execute services.msc e inicie o serviço do SQL Server. Você iniciou, mas o problema continua? Aguarde alguns instantes e você vai voltar a se conectar ao SharePoint normalmente.
Error occurred in deployment step '[etapa aqui]: A timeout has occurred while invoking commands in SharePoint host process.
Solução: A memória RAM está sendo muito usada. Feche alguns programas e tente novamente.
Mudei o nome do WSP e ele dá o erro "could not find assembly (nome)".
Solução: mude o nome apenas no Package.package (pode ser no modo design, mesmo) e reinicie o Visual Studio.
Assinar:
Postagens (Atom)