Sharepoint: O que acontece com listas com base no tipo de conteúdo quando o tipo de conteúdo é atualizado?

StackOverflow https://stackoverflow.com/questions/446451

Pergunta

Eu tenho tipo de pergunta hipotética (pelo menos por agora:))

Digamos que eu criar lista com base em algum costume tipo de conteúdo. Eu adicionar algumas 1000 itens em que lista (em produção). Então cliente vem e ele diz que ele precisa para modificar esse tipo de conteúdo personalizado.

O que acontece à lista se eu modificar tipo de conteúdo personalizado? Será que vai ser atualizado automaticamente (duvido)? E o que dizer já criado os itens da lista?

Algum de vocês tem alguma experiência com isso?

Foi útil?

Solução

Assim, um par de questões relacionadas com os tipos de conteúdo:

Em primeiro lugar, os tipos de conteúdo vem em dois sabores: tipos de conteúdo do site e tipos de conteúdo lista. tipos de conteúdo site são "modelos" que residem em uma galeria. Quando um tipo de conteúdo do site é usado em uma lista, o tipo de conteúdo é instanciado como um tipo de conteúdo lista na lista dada.

Em segundo lugar, os tipos de conteúdo pode ser criado e modificado de várias maneiras, o que decidirá sobre a dos três modos de seus dados está presente no banco de dados.

Se você tiver criado o tipo de conteúdo usando a GUI, ou através de código personalizado usando o API, ambos os seus tipos de conteúdo local e listar os seus tipos de conteúdo estão na "base de dados só de" estado na base de dados. Isso significa que ele está procurando no banco de dados para as definições do tipo de conteúdo.

Se você tiver criado o tipo de conteúdo como um recurso no CAML , o seu local tipo de conteúdo é fantasma (ou un-personalizado como devemos chamá-lo em v3) no banco de dados. Isso significa basicamente que os olhares banco de dados no XML recurso do 12-hive para as colunas de site que faz com que o tipo de conteúdo. De modo que deve significar que você pode atualizar o recurso, e você teria que novas colunas de site disponíveis no tipo de conteúdo atualização, certo?

Infelizmente não: lembre-se que também tivemos tipos de conteúdo de lista? A chatice aqui é que estes tipos de conteúdo lista são instanciado usando o código, então eles estão no estado "database-only". Isso significa que as alterações só seria visto em seus tipos de conteúdo do site, mas não em listas existentes usando esse tipo de conteúdo!

Existem várias abordagens para corrigir esse problema, a solução depende de quais são suas necessidades e que tipo de mudanças que você está fazendo (a supressão dos campos, adicionando campos, mudando campos).

Por exemplo, você muitas vezes querem manter seus dados do item meta existentes, mesmo que o tipo de conteúdo muda com o tempo. Se você empurrar com as mudanças no tipo de conteúdo lista através de código, você perderia os dados armazenados nos mudaram campos / excluídos. Uma solução para este seria adicionar um novo tipo de conteúdo baseado no antigo um, mas com os campos alterados. Você gostaria de acrescentar o novo tipo de conteúdo (através de código ou usando XML recurso) e usar um receptor de recurso ou semelhante a propegate o novo tipo de conteúdo para todas as listas que usaram o tipo de conteúdo de idade, e, posteriormente, marcar o tipo de conteúdo antigo como oculto. Isso tornaria possível manter dados de meta de idade, mas não para adicionar novos itens usando que não os novos dados meta.

A abordagem mencionada na outra resposta a esta pergunta seria preferível se você tem acesso direto ao ambiente de produção, e se o seu plano de clientes governança permite. Tal como acontece com outros artefatos em SharePoint no entanto, seria recomendável para implantar tipos de conteúdo de uma forma estruturada. A adição de novos tipos de conteúdo em uma forma não estruturada iria influenciar a relevância da busca (propriedades gerenciadas) e também poderia afetar a taxonomia geral do site (colunas de site não está sendo reutilizado, etc.), por isso mesmo que é possível adicionar essas alterações diretamente em um local de produção, eu não recomendo!

Isso me leva a aproximação final, que é o que eu recomendo, pelo menos para futuras tipos de conteúdo: Crie seus tipos de conteúdo por meio de programação desde o início, usando um receptor de recurso! Dessa forma, você sempre saber o verdadeiro estado de seus tipos de conteúdo (banco de dados somente) e você pode ter uma abordagem estruturada para governar mudanças no futuro! Você pode encontrar várias maneiras de fazer isso por googling 'criar 'tipos de conteúdo' programaticamente SharePoint'

Para completar: eu mencionei três modos. O último modo o seu tipo de conteúdo pode ser em é "unghosted". Isso significa que o seu tipo de conteúdo foi criado usando XML recurso, mas que ele foi desconectado da fonte XML original no12 colmeia.

Meu amigo Søren Nielsen tem alguns bons pontos sobre Tipos de Conteúdo em auditoria seu tipo de conteúdo Hierarquia . Alguns dos problemas descritos acima podem ser encontrados brevemente mencionado em um artigo MSDN Atualização Tipos de conteúdo . Gary Lapointe também tem uma extensão STSADM que aborda alguns dos problemas com tipos de conteúdo, consulte Propagate Tipo de conteúdo Alterações .

Desculpem o desabafo, mas o assunto é complexo e exige uma explicação completa para evitar quaisquer equívocos.

Outras dicas

Quando você atualizar o tipo de conteúdo há uma caixa que você pode clicar para atualizar tipos de conteúdo filho. Ao verificar que a caixa de tipos de conteúdo lista será atualizada.

Note que se você não marque a caixa para atualizar tipos de conteúdo filho, então não há nenhuma maneira para forçar a atualização mais tarde. Assim, se você não atualizar e mais tarde quer tipos de conteúdo filho a ter a atualização primeiro você precisa para reverter a atualização eo reaply-lo.

.B

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