Tipo de conteúdo personalizado do conjunto de documentos do SharePoint 2010
-
09-12-2019 - |
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>
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