Eventos SharePoint

26/03/2008 - 12:53 por Tito | Informe spam
Buenas otra vez, tango una duda en programación de eventos en SharePoint.
He conseguido muchas cosas gracias a la captura de eventos, con temas como
listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
pasar.

Resulta que quiero que determinadas personas en determinados grupos no
modifiquen algunos campos, para ello uso el evento del
Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.

He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
biblioteca de documentos y a mi me interesa que sean listas normales, de
elementos, existe algo parecido?, gracias otra vez.

Preguntas similare

Leer las respuestas

#1 Gustavo
26/03/2008 - 22:10 | Informe spam
Hola Tito,
Es cierto, el BeforeProperties solo se conserva en Librerias de Documentos
(el AfterProperties si se conserva en ambas, Listas y Librerias).
Lo unico que se me ocurre es algo complicado, pero podria funcionar: crear
una lista "espejo", que no sea visible para los usuarios, y que mantenga una
copia de los datos de la lista de verdad. Cuando algo cambie, miras en la
lista espejo, y puedes comprobar que ha pasado. La sincronizacion entre las
listas la tienes que garantizar con los eventos mismos (cuando pasa algo en
la lista de verdad, tiene que ser duplicado en la espejo).
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Tito" wrote:

Buenas otra vez, tango una duda en programación de eventos en SharePoint.
He conseguido muchas cosas gracias a la captura de eventos, con temas como
listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
pasar.

Resulta que quiero que determinadas personas en determinados grupos no
modifiquen algunos campos, para ello uso el evento del
Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.

He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
biblioteca de documentos y a mi me interesa que sean listas normales, de
elementos, existe algo parecido?, gracias otra vez.

Respuesta Responder a este mensaje
#2 Tito
26/03/2008 - 23:20 | Informe spam
Gracias Gustavo y una duda, si AfterProperties funciona no podria hacer esto
en el updatingEvent:

if(item["nombre"]==properties.afterproperties)

Se supone que el evento updating es antes de que cambie el valor y deberia
mantener el anterior no?¿.
Gracias por las respuestas y un saludo.


"Gustavo" wrote:

Hola Tito,
Es cierto, el BeforeProperties solo se conserva en Librerias de Documentos
(el AfterProperties si se conserva en ambas, Listas y Librerias).
Lo unico que se me ocurre es algo complicado, pero podria funcionar: crear
una lista "espejo", que no sea visible para los usuarios, y que mantenga una
copia de los datos de la lista de verdad. Cuando algo cambie, miras en la
lista espejo, y puedes comprobar que ha pasado. La sincronizacion entre las
listas la tienes que garantizar con los eventos mismos (cuando pasa algo en
la lista de verdad, tiene que ser duplicado en la espejo).
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Tito" wrote:

> Buenas otra vez, tango una duda en programación de eventos en SharePoint.
> He conseguido muchas cosas gracias a la captura de eventos, con temas como
> listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
> pasar.
>
> Resulta que quiero que determinadas personas en determinados grupos no
> modifiquen algunos campos, para ello uso el evento del
> Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
> el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
> recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.
>
> He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
> biblioteca de documentos y a mi me interesa que sean listas normales, de
> elementos, existe algo parecido?, gracias otra vez.
>
Respuesta Responder a este mensaje
#3 Gustavo
27/03/2008 - 09:18 | Informe spam
Hola Tito,
No, los valores originales no son conservados alli. AfterProperties lo usas
para configurar valores para las propiedades que seran modificadas al final
del proceso, asi que si lo examinas al principio en la forma que dices veras
que simplemente no existe.
Entre otras cosas, AfterProperties es un hash table, asi que tienes que
usarlo dandole el valor de identificacion:
if(item["nombre"]==properties.AfterProperties["nombre'])...
Saludes,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Tito" wrote:

Gracias Gustavo y una duda, si AfterProperties funciona no podria hacer esto
en el updatingEvent:

if(item["nombre"]==properties.afterproperties)

Se supone que el evento updating es antes de que cambie el valor y deberia
mantener el anterior no?¿.
Gracias por las respuestas y un saludo.


"Gustavo" wrote:

> Hola Tito,
> Es cierto, el BeforeProperties solo se conserva en Librerias de Documentos
> (el AfterProperties si se conserva en ambas, Listas y Librerias).
> Lo unico que se me ocurre es algo complicado, pero podria funcionar: crear
> una lista "espejo", que no sea visible para los usuarios, y que mantenga una
> copia de los datos de la lista de verdad. Cuando algo cambie, miras en la
> lista espejo, y puedes comprobar que ha pasado. La sincronizacion entre las
> listas la tienes que garantizar con los eventos mismos (cuando pasa algo en
> la lista de verdad, tiene que ser duplicado en la espejo).
> Suerte,
> Gustavo
> http://www.gavd.net/servers/default.aspx
> http://geeks.ms/blogs/gvelez/
>
>
> "Tito" wrote:
>
> > Buenas otra vez, tango una duda en programación de eventos en SharePoint.
> > He conseguido muchas cosas gracias a la captura de eventos, con temas como
> > listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
> > pasar.
> >
> > Resulta que quiero que determinadas personas en determinados grupos no
> > modifiquen algunos campos, para ello uso el evento del
> > Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
> > el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
> > recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.
> >
> > He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
> > biblioteca de documentos y a mi me interesa que sean listas normales, de
> > elementos, existe algo parecido?, gracias otra vez.
> >
Respuesta Responder a este mensaje
#4 Elecktrus
28/03/2008 - 22:39 | Informe spam
Hola, Tito:
Una sugerencia, que quiza te funcione. Si en el evento updating, recuperas
el id del item modificado y atacas a la lista de la forma normal (navegas al
sitio, recuperas la lista, recorres los items hasta llegar al tuyo,etc)
podras leer las propiedades actuales (no se han modificado todavia ya que tu
estas en el evento que las modifica) y las puedes comparar con las que te
llegan como parametros en el evento, para ver las que han cambiado

"Tito" wrote:

Gracias Gustavo y una duda, si AfterProperties funciona no podria hacer esto
en el updatingEvent:

if(item["nombre"]==properties.afterproperties)

Se supone que el evento updating es antes de que cambie el valor y deberia
mantener el anterior no?¿.
Gracias por las respuestas y un saludo.


"Gustavo" wrote:

> Hola Tito,
> Es cierto, el BeforeProperties solo se conserva en Librerias de Documentos
> (el AfterProperties si se conserva en ambas, Listas y Librerias).
> Lo unico que se me ocurre es algo complicado, pero podria funcionar: crear
> una lista "espejo", que no sea visible para los usuarios, y que mantenga una
> copia de los datos de la lista de verdad. Cuando algo cambie, miras en la
> lista espejo, y puedes comprobar que ha pasado. La sincronizacion entre las
> listas la tienes que garantizar con los eventos mismos (cuando pasa algo en
> la lista de verdad, tiene que ser duplicado en la espejo).
> Suerte,
> Gustavo
> http://www.gavd.net/servers/default.aspx
> http://geeks.ms/blogs/gvelez/
>
>
> "Tito" wrote:
>
> > Buenas otra vez, tango una duda en programación de eventos en SharePoint.
> > He conseguido muchas cosas gracias a la captura de eventos, con temas como
> > listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
> > pasar.
> >
> > Resulta que quiero que determinadas personas en determinados grupos no
> > modifiquen algunos campos, para ello uso el evento del
> > Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
> > el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
> > recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.
> >
> > He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
> > biblioteca de documentos y a mi me interesa que sean listas normales, de
> > elementos, existe algo parecido?, gracias otra vez.
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida