Pergunta

Requerimento :Webtemplate com bibliotecas de documentos personalizadas junto com tipos de conteúdo personalizados para serem usados ​​no sharepoint 2013 online

criei o modelo da web e o tipo de conteúdo, ambos estão funcionando bem no sharepoint online.Mas estou enfrentando dois problemas principais com a definição da lista

1)Não é possível incluir o tipo de conteúdo personalizado como ContentTypeRef no esquema de definição de lista.2) Não consigo descobrir como incluir a definição da lista no onet.xml do modelo da web, estou tentando adicionar o ID do recurso, mas ao criar um novo site usando o modelo, a biblioteca de documentos está faltando.

Código:

Onet.xml

<?xml version="1.0" encoding="utf-8"?>
<Project Title="$Resources:onet_TeamWebSite;" Revision="3" ListDir="$Resources:core,lists_Folder;" xmlns:ows="Microsoft SharePoint" UIVersion="15" HideSiteContentsLink="true">
  <NavBars>
  </NavBars>
  <ListTemplates>
  </ListTemplates>
<Configurations>
    <Configuration ID="0" Name="Default" MasterUrl="_catalogs/masterpage/seattle.master">
      <Lists>
        <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title_15;" Url="$Resources:core,shareddocuments_Folder;" OnQuickLaunch="TRUE" QuickLaunchHeading="TRUE" />
      </Lists>
      <SiteFeatures>
        <Feature ID="8b312a79-d117-44ef-81b2-453a71ccfea5" /> // Feature including the list definition
      </SiteFeatures>
      <WebFeatures>
      </WebFeatures>
    </Configuration>
  </Configurations>
  <ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>
</Project>

Parte do Schema.xml da definição da lista

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Resources" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/Resources" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/" EnableContentTypes="TRUE">
  <MetaData>
    <ContentTypes>
      <ContentType ID="0x010100992CB78E42804317A18A5E40907EA235" Name="Custom Content Type" Group="Custom Content Type" Description="Custom Content Type" Inherits="TRUE" Version="0">
        <FieldRefs>
          <FieldRef ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Name="Organization/Author" Required="TRUE" />
          <FieldRef ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Name="Publication Date" Required="TRUE" />
          <FieldRef ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Name="Partners" Required="TRUE" />
        </FieldRefs>
      </ContentType>
    </ContentTypes>
    <Fields>
      </Fields>
    <Views>

Dentro de ContentTypes eu também tentei usar ContentTypeRef mas também não funcionou

Element.xml do tipo de conteúdo

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <Field ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Type="Text" Name="Organization/Author" DisplayName="Organization/Author" ShowInNewForm="FALSE" ShowInFileDlg="FALSE"></Field>
  <Field ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Type="DateTime" Name="Publication Date" DisplayName="Publication Date" Required="FALSE" EnforceUniqueValues="FALSE" ShowInNewForm="FALSE" ShowInFileDlg="FALSE"></Field>
  <Field ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Type="Choice" Name="Partners" DisplayName="Partners" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="Dropdown" FillInChoice="FALSE">  
    <CHOICES>
      <CHOICE>Yes</CHOICE>
      <CHOICE>No</CHOICE>
    </CHOICES>
  </Field>

  <!-- Parent ContentType: Document (0x0101) -->
  <ContentType ID="0x010100992CB78E42804317A18A5E40907EA235" Name="Custom Content Type" Group="Custom Content Type" Description="Custom Content Type" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Name="Organization/Author" Required="TRUE" />
      <FieldRef ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Name="Publication Date" Required="TRUE" />
      <FieldRef ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Name="Partners" Required="TRUE" />
    </FieldRefs>
  </ContentType>
</Elements>

Alguém pode sugerir o que estou fazendo de errado?

Mais algumas coisas: todas as três coisas (modelo da Web, tipo de conteúdo e definição de lista) estão incluídas no mesmo recurso com escopo definido para o site, pois irei implantá-lo no SharePoint Online, que é uma arquitetura em área restrita.

Foi útil?

Solução

Eu gostaria de sugerir que você reestruturasse um pouco seu código, se possível.Coloque o modelo da web em sua própria solução.Faça isso funcionar primeiro.

Em seguida, crie uma segunda solução que inclua o tipo de conteúdo e a lista.Seu recurso deve ter como escopo a Web, não o Site.Não vejo nenhum problema com o seu esquema e, de qualquer forma, o VS2012 tem um assistente de designer de lista e, se você o usou, deve estar bem.

A razão pela qual estou sugerindo duas soluções é porque os modelos da web complicam o fluxo de trabalho de desenvolvimento.Reimplantá-lo implica excluir e recriar todo o site.Não há necessidade de fazer isso se você estiver trabalhando apenas na lista.Com sua lista em uma solução separada, suas reimplantações serão muito mais rápidas.

Se precisar de tudo em uma solução, você poderá reuni-los novamente quando tudo estiver funcionando, mas você precisa ter dois recursos:Seu modelo da Web deve estar em um recurso com escopo de site e sua lista precisa estar em um recurso com escopo de Web.Os campos e o tipo de conteúdo, eu acho, podem ser adequados em qualquer escopo, mas sempre os coloquei no escopo da Web.

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