lunes, 25 de febrero de 2013

SharePoint: Consumir servicio REST

SharePoint 2013 incorpora un nuevo servicio que permite consumir los datos almacenados en SharePoint mediante REST. Los servicios REST permiten interactuar con recursos web mediante la interfaz HTTP pudiendo realizar consultas y operaciones modificando su URI.

Para utilizar el servicio Rest utilizaremos la ruta manejada “_api” a partir de la cual podremos componer consultas REST con un formato similar al siguiente:

http://misitio/_api/lists la cual nos devolvería las listas disponibles para el sitio actual, o por ejemplo para devolver los elementos de una lista utilizaríamos:

http://misitio/_api/lists/getbytitle('listname')

Podéis consultar la referencia del servicio desde http://msdn.microsoft.com/en-us/library/fp142380.aspx

Uno de los beneficios de utilizar REST es el de que podemos aislar nuestro servicio del cliente desde donde se consuma como por ejemplo JavaScript o PHP. La idea es que con este servicio podamos extender SharePoint utilizando JavaScrpt de forma que programadores no expertos en SharePoint podrían participar en proyectos SharePoint, cosa que hasta ahora realizar cualquier personalización sobre SharePoint requería de una curva de aprendizaje muy grande. No quiero decir que con el servicio REST de SharePoint no necesitemos conocer SharePoint.

Un ejemplo de código en JavaScript para consumir REST:

var executor;
  executor = new SP.RequestExecutor(appweburl);
  executor.executeAsync(
      {
          url:
              appweburl +
              "/_api/web/lists/getbytitle('" + ListName + "')/items?$select=Title,FileLeafRef,WorkOffice,Description,Alias,Linkedin&$top=500&$orderby=Title",
          method: "GET",
          headers: { "Accept": "application/json; odata=verbose" },
          success: onGetAllItemsSuccess,
          error: onGetFail
      }

Donde utilizando la clase SP.RequestExecutor podemos realizar llamadas asíncronas al servicio REST. En caso de realizarse la llamada con éxito se llamaría a la función onGetAllItemsSuccess que podría tener un aspecto similar al siguiente código:

function onGetAllItemsSuccess(data) {
   var jsonObject = JSON.parse(data.body);

  var lists = jsonObject.d.results;
  var max = lists.length;
  var list = new Array(max);
  var aliasList = new Array(max);

  var listsHtml = $.each(lists, function (index, item) {

         var Title = item.Title;
         var WorkOffice =  item.WorkOffice;

  });
}

SharePoint 2013 además nos proporciona un conjunto de funciones y clases para JavaScript con las que poder manejar llamadas al servicio, estas definiciones las encontramos en el fichero SP.js que se añade en la masterpage por defecto. Si utilizamos nuestra propia masterpage tendremos que agregar a nuestra página la referencia al fichero SP.js:

<SharePoint:ScriptLink ID="ScriptLink1" name="sp.js" runat="server" OnDemand="true" LoadAfterUI="true" Localizable="false" />

Para empezar a ejecutar nuestro código debemos asegurarnos antes que se han descargado los ficheros js, esto lo podemos hacer con un código como el siguiente, donde sharePointReady es la función con la que empezamos a ejecutar nuestras llamadas:

 

<script type="text/javascript">
        $(document).ready(function () {
            SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { sharePointReady(); });
        });
</script>

 

Consumir REST con usuarios anónimos

Pero no solo podemos realizar páginas Html con JavaScript sino que podríamos hacer aplicaciones para móviles que utilicen este servicio REST para poder consumir nuestros datos de SharePoint desde estos dispositivos.

Ahora bien, todo es muy bonito hasta que queremos que nuestro portal público sobre SharePoint 2013 utilice REST y nos encontramos de repente un erro del tipo “Acceso denegado. No tiene el permiso necesario para realizar esta acción o tener acceso a este recurso”.

Ups, esto se debe a que el servicio REST por defecto está deshabilitado para los usuarios anónimos ya que por debajo utiliza la interfaz de cliente de SharePoint (Client Object Model).

De modo que para habilitar el servicio REST para usuarios anónimos:

  • Desde la configuración del sitio ráiz o nivel superior
  • Accedemos a Permisos del sitio y seleccionamos Acceso anónimos.
  • En la pantalla emergente deshabilitamos la opción “Requiere permiso de uso de interfaces remotas”.

image

image

 

 

 

 

 

viernes, 21 de diciembre de 2012

Material evento MadPoint: SharePoint 2013 aterriza en Madrid

El pasado 11 de Diciembre celebramos en MadPoint el evento “SharePoint 2013 aterriza en Madrid ¿Preparados?” en el que dimos un vistazo a las principales novedades en SharePoint 2013.

En el evento participaron AvePoint, PlainConcepts y Spenta. Gracias al patrocinio de AvePoint pudimos sortear una Surface recién salida del horno!!, ahí os dejo la cara de felicidad del ganador. Gracias también a DotnetMania sorteamos una subscripción anual a la revista y dimos ejemplares de su último número.

WP_000397

Os dejo el enlace desde poderos descargar todas las presentaciones y mi ejemplo de App “CompisApp” en el que muestra los datos de mis compañeros a partir de una lista. Lo sé, no es el mejor código que se puede hacer pero desde luego es un ejemplo muy didáctico de lo que se puede hacer de forma rápida con un App.

imageimageimage

 

Lo pasamos genial así que solo agradeceros a todos la colaboración y la participación, para el año que viene ya estamos preparando más cosas con muchos de vosotros que os habéis animado a colaborar. Gracias chicos!!!

  • Introducción a MadPoint (Miguel Tabera y el menda)
  • Un paseo por las novedades de SharePoint 2013 (Mario Cortés)
  • Novedades en Social y BI (Miguel Tabera)
  • Novedades en el desarrollo de Apps + ejemplo de App “CompisApp” (Mario Cortés)
  • Migración a 2013 (Roberto Delgado)

image

martes, 18 de diciembre de 2012

Grabación de videoconferencia con Lync

Al realizar una reunión por videoconferencia desde Lync disponemos de la posibilidad de grabar la llamada y de almacenar todo el contenido que se comparta en la misma. La grabación de las reuniones por Lync nos permite ver en diferido lo que se ha hablado y compartido en la reunión. En mi caso suelo utilizarlos para grabar sesiones de formación y poder reaprovechar la sesión como material de los cursos.

 

Mientras estemos conectados a una conferencia los moderadores podrán iniciar una grabación desde Lync. En la parte inferior encontraremos el menú de acciones de la reunión desde el que seleccionaremos “Start Recording” para iniciar la grabación.  En ese momento aparecerá un mensaje indicativo a todos los usuarios de que la reunión está siendo grabada y el moderador dispondrá de una serie de botones para pausar la grabación y pararla.

Al parar la grabación aparecerá en la barra de iconos el asistente de grabaciones de Lync encargado de generar el vídeo en formato MPEG-4. El vídeo se creará con un encabezado con el título de la reunión, la fecha y el organizador. Además aparecerá en un lateral todos los textos escritos por los asistentes desde IM. Desde la opción de “Publish” podemos configurar el título del vídeo y si queremos que se genere con audio, vídeo, mensajes IM, contenido compartido.

image

image

image

image

image

jueves, 13 de diciembre de 2012

Error al configurar la URL de Apps de SharePoint

 

Al intentar configurar las urls de SharePoint 2013 desde la Administración Central me encontré con el error “The Subscription Settings service and corresponding application and proxy needs to be running in order to make changes to these settings.” lo que me impedía crear mi catálogo de Apps.

Lo primero que comprobé fue que tuviera iniciados los servicios:

  • App Management Service
  • SharePoint Foundation Subscription Settings Service

Una vez comprobado me aseguré de disponer de una aplicación de servicio del tipo: App Management

imageimageimage

Como aun seguía dándome error tuve que crear de nuevo la aplicación de servicio de subscripción pero esta vez desde PowerShell reparando además el usuario administrador:

#Reparar el usuario administrador

Set-SPManagedAccount -UseExistingPassword -Identity DC07\Administrator
Repair-SPManagedAccountDeployment
iisreset

#crear una nueva aplicación de servicio de subscripción

$account = Get-SPManagedAccount DC07\administrator
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPoolSubSvc -Name SettingsServiceApp -DatabaseName SettingsServiceDB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $appSubSvc

iisreset

 

En el siguiente enlace encontraréis los pasos para configurar SharePoint 2013 para poder ejecutar Apps.

Configure an environment for apps for SharePoint (SharePoint 2013)

viernes, 7 de diciembre de 2012

[Office] Producto no licenciado

Office 2013 nos permite utilizar el producto durante un tiempo sin necesidad de activarlo. Una vez finalizado el período de prueba el cliente nos permitirá abrir documentos solo en modo lectura simple no permitiendo la copia de contenido ni impresión o funcionalidades avanzadas. Aparecerá la barra de título en color rojo con el texto “(Producto no registrado)” o “(Unlicensed Product)”.

Para activar nuestra instalación tendremos dos opciones:

  • Introducir una clave de producto
  • Registrarnos con un usuario de Office 365 con la licencia para el cliente Office 2013.

 

image

Para utilizar un usuario de Office365

  • Desde la opción “Fichero” seleccionamos “Cuenta” y pulsamos en “Sign in” o “iniciar sesión”.
  • En la ventana que aparezca seleccionaremos “Cuenta de Organización” y completaremos nuestro usuario de Office365.

image

  • Aparecerá entonces información de nuestro usuario, los servicios disponibles y las ubicaciones de Office365 dónde podremos guardar nuestro documento
  • Pulsaremos en activar producto". En el caso de Visio 2013, solo podremos activarlo mediante una cuenta de Office365 Preview si utilizamos una subscripción específica para Visio http://www.microsoft.com/office/preview/en/try-more-products.

image

Para introducir la clave de activación

  • Desde la opción “Fichero” seleccionamos “Cuenta” y pulsamos en el botón “Activar producto”.

image

  • Aparecerá una pantalla para que hagamos inicio de sesión desde SkyDrive, Outllook.com y Office365. En este caso no iniciaremos sesión y pulsaremos en el enlace “Introducir una clave de producto”.

image

  • Se mostrará entonces una ventana donde indicaremos nuestra clave de producto".

image

domingo, 2 de diciembre de 2012

Material WebCast: Office 365 Preview y SharePoint Online

El pasado Jueves los grupos de usuarios de SharePoint de habla Hispana organizamos un maratón de WebCast dedicados a las novedades de SharePoint 2013. En mi caso hablé de lo que traerá Office365 en especial para SharePoint Online.

Por problemas técnicos algunos WebCast no se pudieron realizar, pero en el post de Fabián Imaz encontraréis más detalle de los WebCasts pendientes.

En el site de SUGES encontraréis todas las presentaciones y vídeos del maratón.

Os dejo la presentación, el vídeo y el excel comparativo de prestaciones. Comentaros que faltó por ver Napal y las Apps en SharePoint Online, espero poder subirlo en siguientes posts.

Vídeo y materiales del WebCast Office 365 Preview y SharePoint Online

 

image

image

lunes, 12 de noviembre de 2012

Taller de SharePoint con MadPoint

El próximo 20 de Noviembre en Madrid desde MadPoint realizaremos un Taller de SharePoint donde veremos distintas temáticas sobre SharePoint desde un punto de vista muy muy práctico y en el que compartiremos experiencias y problemas comunes. Por supuesto el taller es Gratuito.

Comparte con nosotros tus experiencias, pregunta lo que quieras, tráete código que no consigas que funcione o simplemente ven a oír a otros profesionales.

[Actualizado]Todos los asistentes recibirán un ejemplar gratuito de la revista DotNetMania.

 

Lugar: Centro de Innovación Vaguada, Avenida de Monforte de Lemos, 38, Madrid

Fecha: Martes 20 de Noviembre

Hora: 19:30 a 21:30

URL Registro: http://madpointtallersharepoint.eventbrite.com/image

image

image

 

Más información de MadPoint:

•LinkedIn: http://www.linkedin.com/groups?gid=4554702

•Twitter: @MadPoint