Compartir a través de


Instancia de lista en el modelo de complemento de SharePoint

El enfoque usado para crear instancias de lista es distinto en el nuevo modelo de complementos de SharePoint, en comparación con el código de plena confianza. En un típico código de plena confianza (FTC) o escenario de solución de granja, las instancias de lista se han creado con código declarativo e se han implementado con soluciones de SharePoint.

En un escenario de modelo de complemento de SharePoint, el modelo de aprovisionamiento remoto se usa para crear instancias de lista.

Directrices importantes

Como regla general, nos gustaría proporcionar las siguientes directrices generales para crear instancias de lista.

  • Use el modelo de aprovisionamiento remoto para crear instancias de lista.
  • No use el código declarativo (elements.xml) para crear instancias de lista.

Introducción

En el siguiente ejemplo de código PnP de Office 365 y vídeo se explica cómo crear un complemento de SharePoint que ofrece una interfaz de usuario que permite a los usuarios finales la creación de nuevas bibliotecas de documentos. También se muestra cómo crear una biblioteca de documentos con una configuración específica que representa de manera colectiva una plantilla. En este ejemplo, encontrará el código que crea una instancia de lista.

El siguiente vídeo le guiará por el ejemplo de código.

Use el método AddList en CSOM de SharePoint para crear una instancia de lista con el modelo de aprovisionamiento remoto. En el siguiente código de ECM.DocumentLibraries (ejemplo de código PnP de Office 365) se muestra cómo hacerlo.

private void CreateLibrary(ClientContext ctx, Library library, string associateContentTypeID)
{
    if (!ctx.Web.ListExists(library.Title))
    {
      // Create List Instance
        ctx.Web.AddList(ListTemplateType.DocumentLibrary, library.Title, false);
        List _list = ctx.Web.GetListByTitle(library.Title);

      //Set Description
        if(!string.IsNullOrEmpty(library.Description))
        {
        _list.Description = library.Description;
        }

      //Turn on versioning
        if(library.VerisioningEnabled) {
          _list.EnableVersioning = true;
        }

    //Turn on Content Types
        _list.ContentTypesEnabled = true;
        _list.Update();

      //Add Content Type to List
        ctx.Web.AddContentTypeToListById(library.Title, associateContentTypeID, true);

        //Remove the default Document Content Type
        _list.RemoveContentTypeByName(ContentTypeManager.DEFAULT_DOCUMENT_CT_NAME);

        ctx.Web.Context.ExecuteQuery();
    }
}

En el ejemplo siguiente se muestra cómo crear una instancia de lista con la API de REST de SharePoint. Este ejemplo procede del Referencia de API de REST de listas y elementos de lista (artículo de MSDN)

executor.executeAsync({
  url: "<app web url>/_api/SP.AppContextSite(@target)/web/lists
    ?@target='<host web url>'",
  method: "POST",
  body: "{ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100,
    'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test title' }",
  headers: { "content-type": "application/json;odata=verbose" },
  success: successHandler,
  error: errorHandler
});

Ejemplos de PnP

Se aplica a

  • Office 365 multiempresa (MT)
  • Office 365 dedicado (D) parcial
  • SharePoint 2013 local parcial

Los modelos para Office 365 dedicado y local son idénticos a las técnicas del modelo de complemento de SharePoint, pero existen algunas diferencias en las posibles tecnologías que se pueden usar.