Pergunta

Eu tenho um manipulador de eventos simples, com um evento ItemAdding que muda um valor de coluna que eu preciso no método ItemUpdated. Após o upload de um documento do Word 2007 (* .docx, * .pptx ou xlsx) o valor da coluna for alterado, mas quando eu proteger o documento, o valor da coluna desaparece no método ItemUpdated. Isso só acontece para o Office 2007 documentos, outros arquivos não apagar o valor.

O manipulador de eventos é executado em uma biblioteca de documentos no MOSS 2007.

Graças

Foi útil?

Solução

Temos o mesmo problema. Parece que as propriedades da lista são adicionados ao Office 2007 doc, mas apenas com os valores padrão para o campo de upload / criação. Uma vez que o item é editado estamos experimentando que os valores originais do escritório estão substituindo os valores definidos em nosso manipulador de eventos.

Nós não enfrentar esse ao usar um manipulador de eventos assíncrona, mas o manipulador de eventos assíncrona tem conflitos com atualizações sobre outros tópicos com certos tipos de atualizações.

Temos uma chamada de suporte ativo com a Microsoft sobre esta questão. Eles reconhecem isso não é Ainda não há resultados.

Tente usar um manipulador de eventos asychronous (ele roda um pouco mais tarde do que o código que atualizações do documento de escritório), mas com cautela.

UPDATE:

A solução alternativa é definir o SPWeb.ParserEnabled para FALSE irá remover a conexão com as propriedades do documento que vai parar o comportamento acima. Ela impede que as propriedades da lista de ser adicionado ao documento escritório.

Outras dicas

Quando você carrega um documento do Office em SharePoint, ele tenta extrair coluna a partir do documento e promovê-los à lista.

Do, verificar se o seu doc ??tem qualquer conjunto de atributos. Se este for o caso, pode explicar o que você vê.

Nota: abertas as propriedades do documento de adiantamento e excluir todas as propriedades personalizadas para ter certeza

Eu resolver o problema colocando o SPWeb.ParserEnabled = false no método ItemUpdating.

código:

properties.ListItem.Web.ParserEnabled = false;

Obrigado a todos pela ajuda

Configuração SPWeb.ParserEnabled = false não funciona, mas há efeitos! Uma forma muito notável é que ele irá quebrar site e lista de modelos. Se SPWeb.ParserEnabled = false, e você salvar uma lista ou modelo do site, é meta dados não está definido (ID Feature, versão do produto, etc) e não estará disponível na lista de modelos para escolher. Você pode ser capaz de contornar este problema, redefinindo SPWeb.ParserEnabled = true durante o evento ItemUpdated, mas eu ainda não totalmente testada se isso vai resolver todas as questões ainda ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top