none
Cambio de campos masivo Sharepoint 2007 RRS feed

  • Pregunta

  • Buenos días,

    Tenemos un campo del Sharepoint que es departamento (una columna personalizada del tipo de sharepoint  de "persona o grupo"), en el cuál aparece una referencia al grupo del departamento correspondiente en el active directory. El problema es que ahora todos los grupos han cambiado de nombre y para no ir cambiando 1 a 1 en los 8000 documentos que tenemos hay que hacer alguna herramienta que permita cambiar todos los nombres de los departamentos de todos los documentos con poco trabajo

    como se debería hacer esto? con visual Basic? con sharepoint designer 2007 es posible? Habría que hacer un entorno donde aparezca un menu desplegable que te permita seleccionar un grupo y otro al lado que te permita escribir el nuevo nombre y luego cuando aceptes que se modifique el nombre en todos los documentos. No es necesario que tenga este formato en modo web pero si muy recomendable

    Ejemplo:

    Departamento:  [MENU DESPLEGABLE] Nuevo nombre de departament [CUADRO DE TEXTO]   [Botón Aceptar]

    Departamento:<select name="dia" size="1"> <option selected="selected">2412_Recursos_Humanos</option> <option>2411_Marketing</option> <option>2410_Finanzas</option></select> Nuevo nombre departamento:<input name="nombre" type="text" /> <input name="enviar" type="submit" value="cambiar" />

     

    Muchas gracias por adelantado


    ManuelPa

    jueves, 7 de abril de 2011 10:40

Respuestas

Todas las respuestas

  • ¿has probado a abrir la lista con Access y actualizarlo desde este?
    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server
    jueves, 7 de abril de 2011 12:28
  • Buenas ManuelPa,

    Claramente yo desarrollaría una aplicacioncilla que te permita realizar la actualización que necesitas mediante el modelo de objetos de SharePoint. Mediante dicha aplicación tienes que mapear los pares valor antiguo - valor nuevo y actualizar cada registro al valor nuevo. Con SharePoint Designer olvidate de intenar hacerlo, ya que necesitas de cierta inteligencia que no vas a poder añadir desde aquí. La opción de Access que comenta Alberto creo que no te soluciona el tema de las actualizaciones manuales.

    Saludos!

    JC's

    jueves, 7 de abril de 2011 13:30
  • Juan Carlos me podrías concretar un poco más acerca del modelo de objetos de sharepoint? no te entiendo muy bien lo que me quieres decir.

    Alberto tu respuesta no me sirve porque tiene que ser algo para que pueda acceder un usuario, no tiene que hacerlo alguien con conocimientos de informatica

     

    Muchas gracias a los dos


    ManuelPa
    viernes, 8 de abril de 2011 7:16
  • Hola ManuelPa,

    Básicamente, el modelo de objetos te facilita el acceso a los campos de una lista y a la modificación de su contenido que es lo que quieres. Usar el modelo de objetos implica desarrollar, ya sea en C# o en Visual Basic para hacer esas actualizaciones. Lo que yo te estoy sugiriendo es lo siguiente:

    • Por un lado, dispones del listado de valores actuales que tienes en el campo Departamento y que son incorrectos.
    • Por otro, dispones de listado con los valores correctos del campo Departamento.
    • Entonces, te tienes que recorrer los elementos de tu lista y actualizar el campo Departamento con el valor correcto para cada elemento de la lista.

    Ejemplos de como actualizar los elementos de una lista son los siguientes:

    Saludos!

    viernes, 8 de abril de 2011 7:30
  • Muchas Gracias Juan Carlos,

    mi última pregunta es si hacerlo en visual studio con el codigo que me has pasado, me permitiría hacer un entorno gráfico para poder añadir un botón en mi sharepoint para escoger las opciones. Es decir puedo hacer un programa para cambiar el nombre del departamento pero me gustaría hacer un entorno gráfico que se pueda manipular desde sharepoint.

    Es posible esto?


    ManuelPa
    viernes, 8 de abril de 2011 7:51
  • Hola ManuelPa,

    Por supuesto, de hecho yo lo haría de la siguiente forma:

    Un saludo!

    • Marcado como respuesta ManuelPa viernes, 8 de abril de 2011 10:44
    viernes, 8 de abril de 2011 8:05
  • using System;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Text;
    
    using Microsoft.SharePoint;
    
    using Microsoft.SharePoint.WebControls;
    
    
    
    namespace ConsoleApplication1{
    
     class Program{
    
      static void Main(string[] args){
    
       SPSite miSite = new SPSite("https://bla-bla");
    
       SPWeb miWeb = miSite.OpenWeb();
    
    
    
       SPListCollection misListas = miWeb.Lists;
    
       SPList miLista = misListas["Metadocuments"];
    
       
    
       SPListItemCollection items = miLista.Items;
    
       
    
       foreach (SPListItem fila in items){
    
       //como miro el campo departamento de fila? El campo departamento es del tipo usuario
    
       }
    
      }
    
     }
    
    }
    
    

    Bueno días estoy inmerso en esto que me comentaste, pero me he encontrado con un problema. Soy bastante novato en sharepoint y no se imprimir el valor de una columna. El codigo que tengo hasta la fecha es el que aparece arriba. Necesito tener el contenido del campo departamento y necesito tenerlo en string para así después poder hacer comparaciones para poder hacer los cambios masivos

    Muchas Gracias


    ManuelPa

    miércoles, 13 de abril de 2011 7:41
  • Hola ManuelPa,

    ¿Puedes iniciar mejor otro thread ya que este consta como respondido?

    Un saludo!

    miércoles, 13 de abril de 2011 8:44