Almacenar documentos en SharePoint ordenadamente

Almacenar documentos en SharePoint ordenadamente

Cuando trabajamos con SharePoint, comunmente manejamos documentos electrónicos generados directamente en la plataforma o cargados en una biblioteca de documentos. Si bien el número máximo soportado por una biblioteca es muy grande, existen algunas restricciones con respecto al número de documentos por vistas que soportan las bibliotecas, es ahí don debemos empezar a manejar con cuidado como subimos documentos. Incluso en los tiempos que corren, muchos usuarios que utilizan SharePoint lo hacen a través de aplicaciones desarrolladas que se conectan directamente a través de distintos servicios y brindan una experiencia de usuario más rica que la propia plataforma e incluso desde los dispositivos móviles.

El uso de carpetas nos permite de forma rápida ordenar los documentos que deseamos almacenar, estableciendo un orden y una categorización rápida para guardar documentos. De esta forma los usuarios no solo pueden almacenar todos los millones de documentos que se soportan, sino también pueden acceder a ellos de forma sencilla. La siguiente imagen muestra una biblioteca de documentos con una carpeta creada utilizando la interfaz de SharePoint.

clip_image002[4]

Imagen 1 – Biblioteca de documentos en SharePoint.

Pero como podemos hacer para crear una carpeta en una biblioteca desde una aplicación móvil o un sistema externo a SharePoint, la solución está en el API CSOM (Client Side Object Model). Esta API permite conectarse desde cualquier aplicación .Net a SharePoint y manipular los elementos de una biblioteca, lista o un sitio web propiamente. En el siguiente ejemplo, se va a crear dos carpetas a través de CSOM y una aplicación de consola de .Net.

Una vez creado el proyecto en Visual Studio, el próximo paso a realizar es agregar las referencias al API como se puede ver en la siguiente imagen.

clip_image004[4]

Imagen 2 – Agregando referencias del API CSOM a Vs.Net

Por último, sustituya todo el código de la aplicación por el código que se muestra a continuación y ejecute la aplicación, introduzca la contraseña del usuario que está usando para conectarse y presione “Enter”. Al terminar la ejecución de la aplicación de consola, acceda a la biblioteca en cuestión y encontrara dos carpetas nuevas recién creadas.

Para ejecutar el código correctamente debe cargar las siguientes variables en el código mismos antes d ejecutarlo.

  • siteUrl = Introduzca la URL del sitio de SharePoint donde se encuentra su biblioteca de documentos.
  • query = Introduzca el nombre de la biblioteca de documentos.
  • namesArray = Introduzca los nombres de las carpetas que desea crear, es una lista, por lo cual

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
string siteUrl = “URL DEL SITIO”;
ClientContext clientContext = new ClientContext(siteUrl);
SecureString securePassword = GetPassWordFromConsole();
clientContext.Credentials = new SharePointOnlineCredentials(“usuario@domino.onmicrosoft.com”, securePassword);
Web rootWeb = clientContext.Web;
//Obtener la lista
var query = clientContext.LoadQuery(rootWeb.Lists.Where(p => p.Title == “Documentos”));
clientContext.ExecuteQuery();
List list = query.FirstOrDefault();
string[] namesArray = new string[] { “Invoices”, “Orders” };
foreach (string name in namesArray)
{
//Agregar Carpetas
var folders = list.RootFolder.Folders;
clientContext.Load(folders);
clientContext.ExecuteQuery();
var newFolder = folders.Add(name);
Console.WriteLine(name);
}
//Ejecucion de request
clientContext.ExecuteQuery();

}
private static SecureString GetPassWordFromConsole()
{
SecureString securePassword = new SecureString();
string password = “”;
ConsoleKeyInfo info = Console.ReadKey(true);
while (info.Key != ConsoleKey.Enter)
{
if (info.Key != ConsoleKey.Backspace)
{
Console.Write(“*”);
password += info.KeyChar;
}
else if (info.Key == ConsoleKey.Backspace)
{
if (!string.IsNullOrEmpty(password))
{
password = password.Substring(0, password.Length – 1);
int pos = Console.CursorLeft;
Console.SetCursorPosition(pos – 1, Console.CursorTop);
Console.Write(” “);
Console.SetCursorPosition(pos – 1, Console.CursorTop);
}
}
info = Console.ReadKey(true);
}
Console.WriteLine();
securePassword = new SecureString();
//Convert string to secure string
foreach (char c in password)
securePassword.AppendChar(c);
securePassword.MakeReadOnly();
return securePassword;
}
}
}

Compartir