sharepoint moss events handlers

Los datos desaparecen después de ItemUpdate en Sharepoint con documentos de Office 2007



moss events (4)

Tengo un controlador de eventos simple con un evento ItemAdding que cambia el valor de una columna que necesito en el método ItemUpdated. Después de cargar un documento Word 2007 (* .docx, * .pptx o xlsx), el valor de la columna cambia, pero cuando protejo el documento, el valor de la columna desaparece en el método ItemUpdated. Esto solo ocurre con los documentos de office 2007, otros archivos no borran el valor.

El controlador de eventos se ejecuta en una biblioteca de documentos en MOSS 2007.

Gracias


Resuelvo el problema al poner SPWeb.ParserEnabled = false en el método ItemUpdating.

código:

properties.ListItem.Web.ParserEnabled = false;

Gracias a todos por su ayuda


Cuando carga un documento de Office en SharePoint, intenta extraer la columna del documento y promocionarlos a la lista.

Hazlo, comprueba si tu documento tiene algún atributo establecido. Si este es el caso, puede explicar lo que ves.

Nota: abra las propiedades avanzadas del documento y elimine todas las propiedades personalizadas para asegurarse


Tenemos el mismo problema. Parece que las propiedades de la lista se agregan al documento de Office 2007, pero solo con los valores predeterminados para el campo de carga / creación. Una vez que se edita el elemento, estamos experimentando que los valores de los documentos de Office están anulando los valores establecidos en nuestro controlador de eventos.

No experimentamos esto cuando utilizamos un controlador de eventos asíncronos, pero el controlador de eventos asíncronos tiene conflictos con las actualizaciones en otros hilos con ciertos tipos de actualizaciones.

Tenemos una llamada de soporte activa con Microsoft sobre este mismo problema. Ellos reconocen que esto no es No hay resultados todavía.

Intente utilizar un controlador de eventos asychronous (se ejecuta un poco más tarde que el código que se actualiza desde el documento de la oficina), pero con precaución.

ACTUALIZAR:

Una solución alternativa es configurar SPWeb.ParserEnabled en FALSE eliminará la conexión a las propiedades del documento que detendrá el comportamiento anterior. Impide que las propiedades de la lista se agreguen al documento de la oficina.


Establecer SPWeb.ParserEnabled = false funciona, pero hay efectos! Uno muy notable es que romperá las plantillas del sitio y la lista. Si SPWeb.ParserEnabled = false, y guarda una lista o plantilla de sitio, sus metadatos no están configurados (ID de función, versión del producto, etc.) y no estarán disponibles en la lista de plantillas para elegir. Es posible que pueda solucionar esto restableciendo SPWeb.ParserEnabled = true durante el evento itemUpdated, pero no he probado completamente si esto resolverá todos los problemas aún ...