Pregunta

Estoy usando una solución de sandboxed de un proveedor de terceros que contiene algunas columnas de sitio y un tipo de contenido del sitio.
Quiero agregar este tipo de contenido a la definición de la biblioteca de mi documento en Caml.
Pero cuando agrego una referencia a este tipo de contenido en mi schema.xml como este:

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

El tipo de contenido no se agrega a mi biblioteca cuando creo una instancia de ella. (He creado esta biblioteca de documentos después de que la solución arquejada se activó por supuesto)
Peor aún, de hecho, recibo el siguiente mensaje de error:

Se encontró un nombre de tipo de contenido duplicado "Documento".

Tengo razones para creer que esto se debe al hecho de que SP de alguna manera no puede encontrar el tipo de contenido de arena y piensa que es un tipo de contenido de contenido infantil. Por lo tanto, agrega el tipo de contenido del documento dos veces a mi lista con este mensaje de error como resultado.

Simplemente no entiendo por qué no está agregando el tipo de contenido de la solución Sandboxed? Después de todo, puedo ver este tipo de contenido en la galería de tipos de contenido del sitio (colección) y puedo agregar el tipo de contenido a través de la UI a la misma biblioteca de documentos sin una referencia a este tipo de contenido "Sandboxed".

Actualizar: He intentado agregar solo el tipo de contenido de los proveedores de terceros a la definición de la biblioteca de documentos y ahora solo se agrega 1 "documento" tipo de contenido.
En realidad, crea un tipo de contenido de la lista llamado "Documento" que hereda desde el tipo de contenido del sitio del proveedor del tercero.
Así que se muestra la siguiente información de tipo de contenido de la lista:

  • Nombre: Documento
  • Descripción: Crear un nuevo documento
  • Padre: {Tipo de contenido del sitio del proveedor de terceros}

    y las columnas del sitio del tipo de contenido del sitio se copiaron.
    Lamentablemente, no actualiza el nombre del tipo de contenido de la lista.

    Por favor, comparta cualquier pista que pueda tener ...

¿Fue útil?

Solución

It seems that list has its own internal content type or at the very least, its own set of fields, which is creating the problem. Try investigating the list with the SharePoint Manager 2007/2010.

The alternative approach could be to use ContentTypeBinding element to bind multiple ContentTypes.

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

ContentTypeBinding elements that are responsible for linking the multiple content types share a common parent i.e. 0x0101, which means ancestor of this type is the base Document content type.

Licenciado bajo: CC-BY-SA con atribución
scroll top