none
Validar datos antes de ser insertados en una lista SharePoint 2007 RRS feed

  • Pregunta

  • Hola a toda la comunidad:

    Tengo un problema, antes que nada decirles que estoy trabajando con SharePoint 2007.. Tengo dos listas personalidas, una llamada Chequeo Pre-Empleo y otra llamada Historia Clínica ... La cuestión es que Chequeo Pre-Empleo tiene un conjunto de campos iguales a Historia Clínica, por eso lo que hago es una ves que se inserta un nuevo item en la lista  Chequeo Pre-Empleo, verifico mediante un event handler si en el campo Conclusiones dice Apto, en caso de ser así copio algunos de los items de Chequeo Pre-Empleo a la lista Historia Clinica ...

    Esa parte ya la he solucionado, ahora el problema que tengo es que no sé como validar que antes de insertar un nuevo item en Historia Clinica se recorra la lista, se verifique que ese item no exista, en ese caso se inserta uno nuevo, y en caso de que el item si exista lo que debe es actualizar con los nuevos valores...

    No sé qué más hacer, si alguien puede darme opciones para ir probando cosas le estaría muy agradecida, ya que estoy muy desesperada, frustrada e impotente ante este problema.

    Muchas gracias y un saludo.

    Christina Torres 

    miércoles, 12 de enero de 2011 14:14

Todas las respuestas

  • Hola Christina:

    Si no entendí mal tu necesidad, también lo puedes resolver con manejadores de eventos, ya que existen los de tipo "before" que sirven para validar y se disparan antes de que se confirme la transacción en la base de contenido.

    Aquí tiene más info:

    http://surpoint.blogspot.com/2009/12/manejadores-de-eventos-en-sharepoint.html

    Si no te entendí bien, por favor dimelo así puedo ayudarte.

    Saludos cordiales.


    Juan Pablo.
    surpoint.blogspot.com
    geeks.ms/blogs/jpussacq
    @jpussacq
    HispaPoint: comunidad sharepoint de habla hispana
    miércoles, 12 de enero de 2011 18:14
  • Juan,

    Creo que este hilo es el mismo en el que está contestando y trabajando la respuesta David con Christina.

    JC's

    miércoles, 12 de enero de 2011 21:30
  • Hola Juan:

    Disculpa que ayer no haya podido contestar pero tuve que salir ... muchas gracias por responder .. ese enlace que me has mandado ya lo he revisado varias veces pero no logro resolver el problema ...  la cuestión es la siguiente estoy tratando de resolver el problema a través de un event handler como bien me dices .. lo que quiero hacer es copiar de la lista Chequeo Pre-Empleo hacia la lista Historia Clínica, pero primero debo validar dos cosas:

    1.      Que el campo Conclusiones de chequeo pre-empleo diga apto.

    2.        Una vez que se haya comprobado el paso 1 recorrer la lista Historia Clínica y verificar si existen ítems insertados que su CI(un campo de esa lista) es igual CI del   ítem nuevo que se mando a insertar desde Chequeo Pre-Empleo.

      Ahora mira el código que he implementado :

    SPWeb oWebSite = properties.OpenWeb();

      SPList listOrigen = oWebSite.Lists["Chequeo_PreEmpleo"];

    SPList listDestino = oWebSite.Lists["Historia_Clinica"];

      string ci = properties.AfterProperties["CI"].ToString(); // esta variable la declaro para obtener el   valor que trae CI
               
      if (properties.ListItem["Conclusiones"].ToString() == "Apto") // aquí estoy validando el paso 1
          {

                    SPQuery myQuery = new SPQuery(); // desde aquí estoy tratando de validar el paso 2

                     myQuery.Query = "<Query>" +
                                      "<Where>" +
                                         "<Eq>" +
                                          "<FieldRef Name='CI'/>" +
                                           "<Value Type='Text'> "+ ci +" </Value>" +
                                         "</Eq>" +
                                      "</Where>" +
                                    "</Query>";

                    SPListItemCollection myItems = listDestino.GetItems(myQuery);

                    foreach (SPListItem item2 in myItems)

                    {
                        item2["Nombre y Apellidos"] = properties.ListItem["Nombre y Apellidos"];
                      
                        item2.Update();
                                                               
                    }

    Pero no me funciona, lo que me hace este código es cambiar todos los Nombre y Apellidos en la lista Historia Clínica sin validar si el CI es el mismo que se mando a insertar desde Chequeo Pre-Empleo … Revísalo y dime que puede andar mal …

    Saludos Christina..
    jueves, 13 de enero de 2011 13:53
  • Estoy usando un ItemAdded ...
    jueves, 13 de enero de 2011 15:00
  • Me paso a la consulta que estás viendo con David, así no  abrimos dos caminos...
    Juan Pablo.
    surpoint.blogspot.com
    geeks.ms/blogs/jpussacq
    @jpussacq
    HispaPoint: comunidad sharepoint de habla hispana
    jueves, 13 de enero de 2011 15:16