Índice del Foro Sperto IT - Tecnologías SharePoint Sperto IT - Tecnologías SharePoint
Bienvenido al Foro de discusión
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   ConectarseConectarse 

Recorrer todos los elementos de una biblioteca

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Sperto IT - Tecnologías SharePoint -> SharePoint 2007
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
martin0341
Specialist


Registrado: 28 Ene 2010
Mensajes: 36
Ubicación: Rosario

MensajePublicado: Jue Mar 11, 2010 11:25 am    Título del mensaje: Recorrer todos los elementos de una biblioteca Responder citando

El problema que tengo es que tengo que recorrer todos los documentos de una biblioteca X y verificar que una columna tenga un valor en particular, si es asi entonces envio un mail.

La parte que no se como hacer es la de recorrer todos los elementos de la biblioteca, la verdad que llevo bastante dias tratando de resolver este problema pero no lo logro. Alguien sabe como puedo realizar esta tarea??

Gracias

Martin
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
jrodrigj



Registrado: 01 Feb 2010
Mensajes: 10

MensajePublicado: Jue Mar 11, 2010 1:18 pm    Título del mensaje: Responder citando

hola

lo estás haciendo con workflow?

saludos
Volver arriba
Ver perfil del usuario Enviar mensaje privado
martin0341
Specialist


Registrado: 28 Ene 2010
Mensajes: 36
Ubicación: Rosario

MensajePublicado: Jue Mar 11, 2010 1:46 pm    Título del mensaje: Responder citando

Gracias por responder,si por el momento lo estoy haciendo desde el designer.
La idea es la siguiente: cada vez que modifique algun elemento de esta biblioteca X se dispare el workflow para comprobar cual documento le falta esta propiedad y asi avisar por mail a la persona responsable.

El tema que me traba es el de recorrer todos los documentos de la biblioteca, o sea, lo que hice hasta ahora sirve para comprobar el documento sobre el cual se dispara el workflow.

No se si se entiende?
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
jrodrigj



Registrado: 01 Feb 2010
Mensajes: 10

MensajePublicado: Jue Mar 11, 2010 2:28 pm    Título del mensaje: Responder citando

hola

mira yo estoy haciendo algo similar, en el sentido de recorrer una lista utilizando workflows y SPD.

Lo que haría en tu caso sería algo como:

1.- Que el workflow se ejecute cuando se modifique un elemento de la lista

2.- Creo una columna de tipo checkbox. El estado yes/no definirlo según si han sido recorridos o no

3.- Creo una variable(por ejemplo V1) en el workflow de tipo "list item id". En el "Source" del lookup pondría la lista a recorrer y en el "Field" del lookup pondría el ID. Luego en el "Field" del "find list item" pondría la columna de tipo checkbox del punto 2. Y el "value" del "find list item" pondría por ejemplo "no", indicando a los elementos no recorridos.

Una consideración: es que el ID que va a retornar esto, es del elemento siguiente de la lista. Por ello, lo que hago es almacenar en otra variable (por ejemplo V2), también de tipo "list item id", el id del “current ítem”

Otra consideración: es que cuando termine de recorrer todos los ítems, la variable V1 es igual a cero. Entonces en un paso, hago un “if” en donde se verifica que si V1 es igual a 0, terminar el workflow.

4.- hacer la comprobación del valor que quieres, si corresponde, mandar el mail.

5.- Actualizar el valor de la columna de tipo checkbox a “yes”, indicando que ya fue recorrida. En el “find the list ítem”, poner en el “field” el ID y en el “value” la variable V1.

Bueno lo anterior recorrería toda la lista, pero el problema es que al terminar de ejecutarse el workflow, todos los ítem de la columna de tpio checkbox quedarían en “yes”. Ahí tendrías dos opciones: la primera, modificar esa columna manualmente poniendo todos los ítem en “no” y la segunda es crear otro workflow que modifique esa columna a “no” después de que se termine de ejecutar el otro workflow. En este punto es en el que estoy trabajando.. Razz

saludos
Volver arriba
Ver perfil del usuario Enviar mensaje privado
martin0341
Specialist


Registrado: 28 Ene 2010
Mensajes: 36
Ubicación: Rosario

MensajePublicado: Jue Mar 11, 2010 3:00 pm    Título del mensaje: Responder citando

jajajaj parece que los dos estamos atascados en lo mismo!!

es muy razonable lo que planteas, el tema esta ahi: nos quedamos con la variable "bandera" que usamos para recorrer ya usada y por lo tanto para la segunda vez que se corra no nos sirve.

Hay q encontrar una manera de cuando termine de recorrer toda la lista disparar un wf que ponga a todas las variables "banderas" en NO...vamos a ver si podemos lograrlo.

Estamos en contacto para ver si resolvemos esto.

Saludos y mil gracias!!!!
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
jrodrigj



Registrado: 01 Feb 2010
Mensajes: 10

MensajePublicado: Jue Mar 11, 2010 3:14 pm    Título del mensaje: Responder citando

hola

mira lo que estoy haciendo es que en otra lista dejo un flag, le puse 1 ó 0. Pero que siempre tenga solo 1 elemento, esto para saber el ID exacto al momento de hacer buscar su valor. En un comienzo este flag le puse que tuviese un valor de 0.

Entonces en el primer paso de la otra lista (con la cual estabamos trabajando) hago una comprobación de si el valor del flag (con ID conocida) es distinto de cero, que se salga del workflow. Otro cambio que se tendría que hacer a este workfow, sería que cuando se termine de ejecutar (en el if de si V1 era igual a 0), se actualice el valor del flag a 1.

Ahora en la lista en donde se encuentra el flag, hacer otro workflow que se gatille cuando se modifique un elemento.

Como primer paso, hacer una comprobación, de si el flag es igual a 0, terminar este workflow.
Luego creo una variable(por ejemplo V1) en el workflow de tipo "list item id". En el "Source" del lookup pondría la lista que queremos recorrer y en el "Field" del lookup pondría el ID. Luego en el "Field" del "find list item" pondría la columna de tipo checkbox. Y el "value" del "find list item" pondría “yes”, indicando a los elementos ya recorridos.

Finalmente hacer una la comprobación de si V1 es igual a cero, en caso de serlo (ya se recorrieron todos los elementos), actualizar el valor del flag a 0 y terminar el workflow. En caso de que no sea igual a cero, actualizar la columna checkbox a “no” utilizando la ID de la variable V1.

Ah, para que esto se haga para todos los elementos, lo que hago es en una variable (por ejemplo temp) del workflow de la lista del flag, almacenar el valor del flag y luego reepmlazarlo en el flag. Esto lo hago para que se gatille el workflow de nuevo.

saludos
Volver arriba
Ver perfil del usuario Enviar mensaje privado
msorli
Specialist


Registrado: 04 Jun 2007
Mensajes: 131
Ubicación: Buenos Aires, Argentina

MensajePublicado: Mar Mar 16, 2010 3:23 am    Título del mensaje: Responder citando

A ver si lo que se me ocurre les sirve. El objetivo es saber si todos los registros tienen completado el campo XXXX. Lo que yo haría es lo siguiente

Primero a mi lista le agrego un campo calculado que me almacene 0 si el campo XXXX esta vació y 1 si está completo. De esa manera cada vez que se edita el registro mi campo calculado se actualiza.
Por otro lado hago un WF que se ejecute cada vez que se modifica un elemento y que el WF sume los valores del campo calculado y los compare contra la totalidad de registros, si son iguales quiere decir que todos los registros tienen el campo xxxx completo.

Se entiende o es cualquiera Smile

Saludos!!
_________________
Maximiliano Sorlino
Sperto IT
Volver arriba
Ver perfil del usuario Enviar mensaje privado
martin0341
Specialist


Registrado: 28 Ene 2010
Mensajes: 36
Ubicación: Rosario

MensajePublicado: Mar Mar 16, 2010 12:17 pm    Título del mensaje: Responder citando

Antes que nada muchas gracias por responder a todos.

Mi problema no es recorrer todos los elementos de la biblioteca, eso lo puedo hacer sin problemas; pero lo puedo hacer solamente una vez porque al finalizar el wf la variable que uso para recorrer todos los elementos (a la que le llamo "procesado") ya me queda en todas en "SI".

En la biblioteca hay 350 documentos, tendría que desabilitar el wf y entrar una por una a las propiedades de los 350 documentos y poner el campo "procesado" en NO y al terminar esta tarea volver a activar el fw para que me vuelva a andar de nuevo y eso es una locura...

Lo que necesito es que al finalizar de recorrer todos los documentos, se dispare algo que vuelva a poner a la variable "procesado" en NO para todos los documentos.


No se si me explique bien, cualquier cosa me avisan.
Gracias
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Sperto IT - Tecnologías SharePoint -> SharePoint 2007 Todas las horas están en GMT
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by phpBB © 2001, 2005 phpBB Group