Pergunta

Estou usando uma solução em área restrita de um fornecedor terceirizado que contém algumas colunas de site e um tipo de conteúdo de site.
Quero adicionar esse tipo de conteúdo à definição da minha biblioteca de documentos no CAML.
Mas quando adiciono uma referência a esse tipo de conteúdo no meu esquema.xml assim:

<List ... EnableContentTypes="TRUE">
 <MetaData>
  <ContentTypes>
   <ContentTypeRef ID="0x0101002EFF4F6709F446E5AD064DC20BBE6855" />
   <!--contenttypeid of content type from sandboxed solution-->
   <ContentTypeRef ID="0x0101" />
   <!--contenttypeid of Document-->
   ...
  </ContentTypes>
  ...
 </MetaData>
</List>

O tipo de conteúdo não é adicionado à minha biblioteca quando crio uma instância dele.(Eu criei esta biblioteca de documentos depois que a solução em sandbox foi ativada, é claro)
Pior ainda, recebo a seguinte mensagem de erro:

Foi encontrado um nome de tipo de conteúdo duplicado "Documento".

Tenho motivos para acreditar que isso se deve ao fato de que o SP de alguma forma não consegue encontrar o tipo de conteúdo em área restrita e pensa que é um tipo de conteúdo filho de Documento.Portanto, ele adiciona o tipo de conteúdo Documento duas vezes à minha lista, resultando nesta mensagem de erro.

Só não entendo por que não está adicionando o tipo de conteúdo da solução em área restrita.
Afinal, posso ver esse tipo de conteúdo na galeria de tipos de conteúdo do site (coleção) e posso adicionar o tipo de conteúdo por meio da interface do usuário à mesma biblioteca de documentos sem uma referência a esse tipo de conteúdo "em área restrita".

ATUALIZAR: Tentei adicionar apenas o tipo de conteúdo de fornecedores terceirizados à definição da biblioteca de documentos e agora apenas 1 tipo de conteúdo "Documento" foi adicionado.
Na verdade, ele cria um tipo de conteúdo de lista chamado "Documento", que herda do tipo de conteúdo do site do fornecedor terceirizado.
Portanto, as seguintes informações do tipo de conteúdo da lista são exibidas:

  • Nome:Documento
  • Descrição:Crie um novo documento
  • Pai:{tipo de conteúdo do site do fornecedor terceirizado}

E as colunas do site do tipo de conteúdo do site foram copiadas.
Infelizmente, isso não atualiza o nome do tipo de conteúdo da lista.

Por favor, compartilhe quaisquer pistas que você possa ter...

Foi útil?

Solução

Parece que a lista tem seu próprio tipo de conteúdo interno ou, pelo menos, seu próprio conjunto de campos, o que está criando o problema.Tente investigar a lista com o SharePoint Manager 2007/2010.

O Abordagem alternativa poderia ser para usar ContentTypeBinding elemento para vincular vários ContentTypes.

<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B401" 
      ListUrl="MyDocLibrary"  
/> 
<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B402" 
      ListUrl="MyDocLibrary" 
/> 
<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B403" 
      ListUrl="MyDocLibrary" 
 /> 

Os elementos ContentTypeBinding responsáveis ​​​​por vincular os vários tipos de conteúdo compartilham um pai comum, ou seja, 0x0101, o que significa que o ancestral desse tipo é o tipo de conteúdo base do Document.

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