Pergunta

Estou trabalhando em um tipo de conteúdo personalizado do tipo Documentset.Quero definir os tipos de conteúdo permitidos, mas isso não está funcionando, apenas mostra o documento padrão.Eu li vários blogs, mas não consigo encontrar minha solução.

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
  <!-- Parent ContentType: Document Set (0x0120D520) --> 
  <ContentType ID="0x0120D520008d2ff418027e4c31b54d155b98596748" 
               Overwrite="True" 
               Name="Custom Dossier" 
               Group="Custom group" 
               Description="Custom dossier" 
               Inherits="True" 
               Version="0"> 
    <FieldRefs> 
            <FieldRef ID="{8D6C094C-3E1F-41f4-BEE3-25B27EE09702}" Name="Dossier_Nummer" DisplayName="Dossiernummer" Required="True"  /> 
    </FieldRefs> 
    <XmlDocuments> 
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes"> 
        <act:AllowedContentTypes xmlns:act="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes" LastModified="05/31/2012 08:46:56"> 
          <AllowedContentType id="0x0101" /> 
          <AllowedContentType id="0x0101000490d50c50624b6ca21c637ef39cd89b" /> 
        </act:AllowedContentTypes> 
      </XmlDocument> 
    </XmlDocuments> 
  </ContentType> 
</Elements> 
Foi útil?

Solução

Tente definir o atributo Inherits no tipo de conteúdo como FALSE.Há um bug na estrutura de recursos que faz com que qualquer declaração seja ignorada silenciosamente se o atributo herdado for definido como verdadeiro (que, por sua vez, pela lei de Murphy, é verdadeiro por padrão).Suspeito que este deva ser o seu caso (não creio que nenhum CU/SP tenha corrigido o bug como hoje).

Apenas lembre-se de compensar o atributo Inherits="False"...e acendeu uma vela para a divindade de desenvolvimento do SharePoint se você não tivesse 8 tipos de conteúdo filhos para atualizar também...

Outras dicas

Eu tenho uma solução alternativa onde você pode criar seu tipo de conteúdo Doc Set, definir Inherits = "True" e ainda manter todos os seus XMLDocuments personalizados.Basicamente, a ideia é usar um receptor de recurso no recurso onde você implanta suas definições de ctype, extrai os arquivos elements.xml e copia seus XMLDocuments para os ctype defs no site (que ignoraram suas alterações porque Inherits="True" ).Tenho alguns exemplos de código no meu blog:

http://morefunthanapokeintheeye.blogspot.com/2012/10/how-to-successfully-publish-custom.html

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