Customizar ‘XSL Date Formats’ – SharePoint

Existem varios post com esse tema, mas nenhum de maneira tão assertiva quanto esse, nas pesquisas que fiz não achei nenhum que explicasse o começo, o meio e o fim, então vamos lá.

Cada cliente precisa de um formato de data diferente, uns usam padrão chinês, outros português… O mais importante é atendermos a necessidade do cliente.

Por padrão no SharePoint que este usando LCID 1033 – Ingles dos Estados Unidos, vai te retorna dd/MM/yyyy, convém salientar que vai depender um pouco do tipo da coluna que foi criada.

Veja a lista que criei abaixo:

screenshot.337

Agora vamos customizar essa data num formato mais amigável para gente.

<xsl:value-of select="ddwrt:FormatDate(string($thisNode/@*[name()=current()/@Name]),2057,3)"/>

Feito isso veja o resultado.

screenshot.338

Isso depois de eu customizar usando XSLT. O que será alterado será a Locale e Format.

Na imagem abaixo usei a locale 1046 que é a português-Brasil e o format 7, fique tranquilo criei uma tabela de locale e format para ajudar você.

screenshot.340

Vamos ao que interessa que são as locale e format veja a tabela, deve te ajudar! Criei dos que mais uso, mas no link  a seguir você poderá consultar todas as locale Locale ID.

Output Locale Format
3/23/2009 1033 1
3/23/2009 12:00 AM 1033 2
Monday, March 23 2009 1033 3
12:00 AM 1033 4
Monday, March 23, 2009 12:00 AM 1033 7
3/23/2009 12:00:00 AM 1033 13
Monday, March 23, 2009 12:00:00 AM 1033 15
23/03/2009 2057 1
3/23/2009 12:00 AM 2057 2
23 March 2009 2057 3
00:00 2057 4
23/03/2009 00:00 2057 5
23 March 2009 00:00 2057 7
00:00:00 2057 12
23/03/2009 00:00 2057 13
23 March 2009 00:00:00 2057 15

Bons projetos. 🙂

Only Content controls are allowed directly in a content page that contains Content controls + SharePoint + Designer

Boa tarde, a dica de hoje será bem breve, me deparei com um cenário hoje, assumi um projeto onde algumas páginas funcionavam e outras não, fui abrindo (SharePoint Designer) página por página e nas que não funcionavam e achei essa tag:

<head> 
  <meta name="ProgId" content="SharePoint.WebPartPage.Document"> 
  <meta name="WebPartPageExpansion" content="full">
</head>

 

Analisando os page layouts com problema achei algumas tag asp:content sem fechar.

 <asp:Content> </asp:Content>

Quando não se fecha uma tag asp:content corretamente ao salvar o arquivo ele gera automaticamente a tag head e da problema ao renderizar a página.

Se você estiver passando por esse problema é simples revise as tag asp:content e paga a head e salve o arquivo, sucesso, sua página voltará a funcionar. 🙂

Realizando SELECT no SQL Server + SharePoint Solution

Opá que post é esse, isso não é nada aconselhável… Muitos devem estar falando isso, mas isso necessidade surgiu desse post aqui -> Problemas com a proc_ListUrls. Da uma lidinha nele vocês entenderam o problema que tive, e um problema da biblioteca Microsoft.SharePoint, ela funciona perfeitamente para uma Library ou List que possua poucos itens, mas no meus caso eram cerca 1,5 mi, só tive problemas e dor de cabeça, dai então realizei querys diretamente no banco, e ainda tive que criar novos índices, pois os criados não estavam performando nada, lógico que tive a ajuda de um DBA, pois não são especialista em SQL Server.

Mas vamos lá, você ao tentar criar um ConnectionString em um projeto SharePoint, pode ser um Projeto App, ou uma Solution, terá problemas ao tentar se conectar a base de dados do SharePoint.

Mas usando o método que criei isso não será o problema.

Da uma olhadinha:

public static SqlDataReader SelectTo(SqlConnection connection)
        {
            SqlDataReader reader = null;
            SPSecurity.RunWithElevatedPrivileges(delegate ()
            {
                using (SPSite ElevatedsiteColl = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb())
                    {
                        try
                        {
                          
                            connection.Open();
                            SqlCommand cmdSelect = new SqlCommand(procGetItens, connection);
                            cmdSelect.CommandType = CommandType.StoredProcedure;
                            reader = cmdSelect.ExecuteReader();
                        }
                        catch (Exception ex)
                        {
                            reader = null;
                        }
                    }
                }
            });
            return reader;
        }

Realizando queries diretamente na base de dados consegui performar muito minha solução, antes o tempo para retorna uma busca era de 48 seg. com essa customização reduzi para 2 seg. é um ganho considerável.

Esse feature já esta no ar e o feedback dos usuários esta sendo muito positivo.

Abraços! Achei justo compartilhar esse case com vocês.

Como habilitar Code Block no SharePoint 2010 e 2007

Como habilitar Code Block no SharePoint 2010 e 2007

Trabalho em uma empresa que não permite usar o Visual Studio nos servidor por questões de politicas de segurança.
Frente a esse problema pensei em criar uma página usando o SharePoint Designer.

Criei meu código dentro dessa página.

Salvei e rodei e me retorno o seguinte erro:

Para hablitar no SharePoint o Code Block sega os seguintes passos:
  1. Abra o diretório C:\inetpub\wwwroot\wss\VirtualDirectories\porta_da_sua_aplicação
  2. Abra o web.config 
  3. De baixo de Configuration –> Sharepoint –> SafeMode –> PageParserPaths
  4. Adicione a seguinte tag e salve: 
   <PageParserPath VirtualPath=”sua_pagina” 
    CompilationMode=”Always” AllowServerSideScript=”true” />

Para mais informação acesso: https://msdn.microsoft.com/en-us/library/office/bb862025(v=office.12).aspx

Isso ai galera, espero ter ajudado.

Usando Query String no SharePoint usando Designer 2007

1. Criar uma Page do tipo Web page Blank onde será exibida a pagina filtrada por query string.

2. Após a criação da pagina click em Edit Page e adicione uma Web Part, que no caso será a lista de páginas do portal.

Como mencionado acima ao clicar em adicionar uma nova Web Part selecione a lista de paginas do portal, essa lista contera todas paginas criadas por você.

Apos adicionar a Web Part!

3. Abra o sharepoint Designer, em seguida seu site para fazer os passos seguintes. Selecione a pagina que foi criada anteriormente, clique em cima da mesma com o botão direito do mouse e selecione a opção Detach from Page Layout que irá desatachar o layout da pagina.

Você poderá começar a fazer edições na page se aparecer a seguinte caixa de dialogo com a mensagem de successfully como se segue abaixo.

4. Abra a pagina em que você acabou de desatachar o page layout,clique com o botão direito em cima da web part a ser editada, selecione a opção Convert to XSTL Data View.

5. Clique na Smart Tag da web part e defina os parametros. Selecionando a opção Parameters do Common Data View Task.

Defina o paremtro a será usado na query string seguindo os passos abaixo:

1. No botão New Parameter

2. Defina um nome para seu parametro, no drop down selecione a opção Query String e em seguida de um nome para a variável Query String.

Clique em OK!

6. Chegamos na parte final do tutorial, nessa parte iremos definir o filtro, que é uma opção do Common Data View Task. Novamente clique no Smart Tag da web part que esta em edição. O filtro a ser criado irá filtrar os dados da lista page, e o filtro pode ser criado seguindo os passos abaixo:

1. Defina o nome do campo que será usado como filtro.

2. Após a deifnição do campo, defina a forma de compração a ser usado que no exemplo foi usado o Equals.

Essa comparação será feita como parametro criado no passo anterior.

Clique Ok!

Segue abaixo algumas imagens do portal criado como exemplo.