none
Como eu faço para mudar "MANUALMENTE" quem criou um item em uma lista do SharePoint 2010? RRS feed

  • Pergunta

  • Olá.

    Eu não sei se é possível, mas eu gostaria de mudar manualmente quem criou um item em uma lista.

    Seria isso possível?

    Toda vez que vou na minha lista no Sharepoint, encontro lá, na coluna, Criado Por, o nome do cara que criou o item, mas para um caso expecífico aqui, eu preciso mudar isso.

     

    Abraços


    k2rto4 - Analista Programador SharePoint Jr.
    quarta-feira, 29 de junho de 2011 16:41

Respostas

  • Olá.

    É com muito prazer que venho divulgar a resposta aqui.

    O que eu fiz afinal foi:

    1º Criei uma nova coluna na minha lista do mesmo tipo da coluna "Criado Por"
    2º Acrescentei os dados que eu queria na nova Coluna, neste caso, a coluna se chama "Criadore"
    3º Criei uma Web Part com o Seguinte código:

    using (SPSite sitec = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb site = sitec.OpenWeb())
                    {
                        EntityesDataContext dc = new EntityesDataContext(SPContext.Current.Web.Url);

                        site.AllowUnsafeUpdates = true;
                        SPList list = site.Lists["NomedaLista"];
                        SPListItemCollection collection = list.Items;

                        foreach (SPListItem item in collection)
                        {
                            item["Author"] = item["CriadoreS"];
                            item.Update();
                        }

                        list.Update();
                    }

    4º Fiz o Deploy com o Visual Studio no meu ambiente
    5º Adicionei a Web Part na página do meu site onde existe a Lista mensionada.

    E com estes 5 passos eu consegui resolver este problema.
    Eu achei bem mais fácil isso, pois apenas tive que criar um nova coluna e preenche-la com as informações que eu desejava que estivesse na coluna "Criado Por" e depois foi só fazer a atribuição de valores.

    Espero que esta informação ajude as pessoas que passam por este mesmo problema que eu passei.

    Abraços


    k2rto4 - Analista Programador SharePoint Jr.
    • Marcado como Resposta TI DEV sexta-feira, 1 de julho de 2011 17:00
    sexta-feira, 1 de julho de 2011 17:00

Todas as Respostas

  • Olá,

     

    Nativamente não tem como, ele busca o nome do padrão no AD e serve para registro e referência.

    Nesta situação te sugiro uma customização através do código:

    U can change the Created By filed through code :


    foreach(SPListItem item in listColl.Items)
    {

            item[
    "Created"]=UserName;
            item.Update();
    }

     

    Espero ter ajudado!


    Hezequias Vasconcelos de Lima , MCITP,MCT. Consultor SharePoint/ EPM - Enterprise Project Managament Consultar Transcript: https://mcp.microsoft.com/authenticate/validatemcp.aspx Transcript ID: 843062 Code:hezequias01
    quarta-feira, 29 de junho de 2011 17:18
    Moderador
  • Olá.

    Parece que isso funciona, pelo menos o código diz isso, mas como o utilizarei?

    Terei que criar uma webPart, sei lá?

     

    Obrigado


    k2rto4 - Analista Programador SharePoint Jr.
    quarta-feira, 29 de junho de 2011 17:53
  • Você pode criar uma web part ou uma aplicação windows vai depender da sua necessidade.
    Gleisson Ricardo Pinheiro [MSP] - Moderador DotNetRaptors
    quarta-feira, 29 de junho de 2011 20:04
  • Olá,

     

    Exatamente isso, utilize uma web part e utilize um dos programas de desenvolvimento para o SharePoint 2010 que seria o SharePoint Designer ou Visual Studio 2010!

     

    Espero ter ajudado!


    Hezequias Vasconcelos de Lima , MCITP,MCT. Consultor SharePoint/ EPM - Enterprise Project Managament Consultar Transcript: https://mcp.microsoft.com/authenticate/validatemcp.aspx Transcript ID: 843062 Code:hezequias01
    quarta-feira, 29 de junho de 2011 22:58
    Moderador
  • Olá.

    Posso fazer isso através do SharePoint Designer?

    Bom, enquanto isso foi tentar aqui pelo Visual Studio 2010.

    Abraços


    k2rto4 - Analista Programador SharePoint Jr.
    quinta-feira, 30 de junho de 2011 12:23
  • Olá.

    Criei o código aqui, mas não funfou não.

    Será que fiz a comparação errada?

    Analisem o código de comparação:

     foreach (SPListItem item in collection )
                        {
                            if(item["Created"] == "Conta de Sistema")
                            {
                                item["Created"] =  "GRUPOGERAL\\2519157";

                                item.Update();
                            }
                        }

     

    Neste caso, o que eu preciso é:

    Trocar todos os dados da coluna criado por que contenha Conta de Sistema para GRUPOGERAL\\2519157 .

    E aparece um aviso no Visual Studio dizendo:

    Possilbe unintended reference comparison; to get a value comparison, cast the left hand side to type 'string'

    Abraços


    k2rto4 - Analista Programador SharePoint Jr.
    quinta-feira, 30 de junho de 2011 14:48
  • Olá.

    É com muito prazer que venho divulgar a resposta aqui.

    O que eu fiz afinal foi:

    1º Criei uma nova coluna na minha lista do mesmo tipo da coluna "Criado Por"
    2º Acrescentei os dados que eu queria na nova Coluna, neste caso, a coluna se chama "Criadore"
    3º Criei uma Web Part com o Seguinte código:

    using (SPSite sitec = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb site = sitec.OpenWeb())
                    {
                        EntityesDataContext dc = new EntityesDataContext(SPContext.Current.Web.Url);

                        site.AllowUnsafeUpdates = true;
                        SPList list = site.Lists["NomedaLista"];
                        SPListItemCollection collection = list.Items;

                        foreach (SPListItem item in collection)
                        {
                            item["Author"] = item["CriadoreS"];
                            item.Update();
                        }

                        list.Update();
                    }

    4º Fiz o Deploy com o Visual Studio no meu ambiente
    5º Adicionei a Web Part na página do meu site onde existe a Lista mensionada.

    E com estes 5 passos eu consegui resolver este problema.
    Eu achei bem mais fácil isso, pois apenas tive que criar um nova coluna e preenche-la com as informações que eu desejava que estivesse na coluna "Criado Por" e depois foi só fazer a atribuição de valores.

    Espero que esta informação ajude as pessoas que passam por este mesmo problema que eu passei.

    Abraços


    k2rto4 - Analista Programador SharePoint Jr.
    • Marcado como Resposta TI DEV sexta-feira, 1 de julho de 2011 17:00
    sexta-feira, 1 de julho de 2011 17:00