Cargar un informe de PowerBI en SharePoint Online

Una de las grandes funcionalidades que siempre ha traído SharePoint Enterprise, era la funcionalidad de Business Intelligence con la posibilidad de añadir KPI, Dashboards, etc…

Con la versión de SharePoint Online, tenemos la posibilidad de añadir informes de Power BI a nuestras páginas dentro de SharePoint, con lo que los usuarios podrán acceder a dicho informe sin necesidad de salir de SharePoint. Veamos cómo hacerlo.

Primero de nada, debemos tener el informe de Power BI publicado. Para ello dentro de Power BI, podemos utilizar el botón de Publicar.

Opción de publicar en Power BI
Opción de publicar en Power BI

Una vez publicado, accederemos al informe desde la web de Power BI y copiaremos el enlace del navegador de nuestro informe.

Informe publicado en Power BI
Informe publicado en Power BI

Seguidamente accedemos a SharePoint Online y creamos una nueva página del sitio donde alojaremos nuestro informe

 

Crear nueva página del sitio en SharePoint Online
Crear nueva página del sitio en SharePoint Online

En la nueva página creada, podemos añadir componentes pulsando en botón de +. Añadimos el componente de Power BI.

Componente de Power BI para páginas de SharePoint
Componente de Power BI para páginas de SharePoint

Una vez añadido el componente en la parte derecha, nos aparece su configuración a la parte derecha de la pantalla. Veremos que tenemos un campo para añadir la url (vínculo)que copiamos del informe de la página de Power BI publicada.

Vínculo al informe de Power BI desde la página de SharePoint
Vínculo al informe de Power BI desde la página de SharePoint

Una vez publicada la página de SharePoint Online, veremos que se carga el informe de Power BI dentro de la página. Veremos que el informe es totalmente operativo y si pulsamos en los filtros, la información se actualiza.

 

Informe de Power BI publicado en SharePoint Online
Informe de Power BI publicado en SharePoint Online

 

Anuncios
Cargar un informe de PowerBI en SharePoint Online

Añadir JavaScript en SharePoint Online

Una forma muy útil de poder configurar el aspecto de SharePoint es añadiendo JavaScript y CSS. En SharePoint onpremise, conectamos con SharePoint Designer y podemos cambiar cualquier cosa, pero con Online está más limitado. Aún así podemos añadir JavaScript usando el editor de secuencias. Veamos cómo hacerlo.

Inicialmente al estar en un entorno Online, por defecto, no podemos añadir ningún elemento de scripting en SharePoint y deberemos habilitarlo. Para ello accedemos a la administración de SharePoint Online desde el centro de administración de Office365

Centro de Administración de Office365
Centro de Administración de Office365

Seleccionamos el menú de configuración y habilitamos los permisos para que los usuarios puedan ejecutar scripts personalizados. Esta opción puede tardar 24 horas en habilitarse.

Habilitar scripts en SharePoint online
Habilitar scripts en SharePoint online

Una vez habilitado, si editamos cualquier página de SharePoint Online, veremos que nos aparece la opción de añadir el Editor de secuencias de comandos.

Editor de secuencias de comandos
Editor de secuencias de comandos

Añadimos el editor y veremos que nos aparece la opción Editar fragmento de código para poder añadir el código de nuestros scripts.

Editor de comandos
Editor de comandos

Nos aparecerá una ventana donde podemos copiar y pegar nuestro código de Javascript

Ventana para añadir código de Javascript
Ventana para añadir código de Javascript

En nuestro caso, copiamos un simple código en HTML y JavaScript que lo que hace es mostrar un botón y que cuando pulsemos en él nos saluda.

Código html y javascript
Código html y javascript

Una vez guardemos la página, veremos que nos aparece el botón en nuestra página de SharePoint Online y cuando pulsemos, veremos que se ejecuta el código Javascript.

 

Botón de html con Javascript
Botón de html con Javascript
Añadir JavaScript en SharePoint Online

Instalar SharePoint 2016 Onpremise en un entorno de pruebas

En muchas ocasiones, necesitamos montar un entorno de pruebas para probar o acceder a SharePoint, sin necesidad de hacer una instalación muy compleja. En este post, vamos a ver cómo podemos instalar SharePoint 2016 Onpremise de una forma sencilla.

Si lo que buscamos es un entorno de pruebas, podemos descargar todo el software en formato trials para poder probarlo gratis durante 6 meses. En estas urls, podemos descargar tanto Windows 2012 R2 estándar, SQL Server 2014 estándar, como SharePoint 2016 estándar

https://www.microsoft.com/es-es/evalcenter/evaluate-windows-server-2012-r2

https://www.microsoft.com/es-es/evalcenter/evaluate-sql-server-2014-sp2

https://www.microsoft.com/es-es/download/details.aspx?id=51493

Evidentemente para un entorno de pruebas, virtualizaremos todo esto en un vmware, hyper-v, virtualbox, etc..

Una vez tenemos todo el software, antes de instalar SharePoint, debemos tener instalado y configurado todo esto:

  • Windows Server 2012 R2 estándar
    • Configurada una ip fija, nombre de equipo, y para entornos de pruebas, habilitado escritorio remoto
  • Creado un dominio nuevo
    • Añadimos el rol de Servicios de dominio de Active Directory, el cuál instalará DNS.
  • SQL Server 2014 estándar
    • Importante: Ya no se soporta SQL Express, por lo que es necesario hacer la instalación de SQL Server. Añadimos al administrador de dominio como administrador de SQL Server
  • Instalado todos los prerrequisitos de SharePoint 2016 estándar
    • Durante los prerrequisitos, SharePoint solicitará instalar tanto el rol del servidor web, como el de aplicaciones. También solicitará que instalemos la característica de .NET framework 3.5 y de 4.5
  • Instalado el propio software de SharePoint 2016 estándar
    • La instalación del software es muy simple: siguiente, siguiente…. y dejará el software instalado en Archivos de programa.

 

Una vez instalado el software, ya procedemos a configurarlo. Para ello iniciamos el asistente de configuración de producto de SharePoint 2016

Asistente de configuración de SharePoint 2016
Asistente de configuración de SharePoint 2016

Inicialmente nos solicitará si queremos crear una nueva granja o conectarnos a una ya existente. Creamos una nueva

Instalar una granja de SharePoint 2016
Instalar una granja de SharePoint 2016

Seguidamente nos solicitará los datos de conexión a SQL Server. Debemos indicar el nombre del servidor donde tenemos instalado SQL Server, el nombre que queremos darle a la base de datos de configuración de SharePoint, y un usuario y contraseña con permisos en SQL Server para conectar y crear bases de datos. Si lo hacéis en un entorno de pruebas con todo instalado en la misma máquina, el nombre del servidor es el mismo de Windows 2012 y el usuario el administrador de dominio.

Configuración de la conexión con SQL Server
Configuración de la conexión con SQL Server

Después debemos introducir una contraseña nueva que servirá para añadir nuevos servidores a la granja

Contraseña para configurar la granja
Contraseña para configurar la granja

Seguidamente debemos seleccionar el Rol que queremos instalar y configurar. Esta es una de las novedades de SharePoint 2016, ya que añade varios roles y permite configurarlos separadamente en cada servidor para granjas muy complejas. En nuestro caso, seleccionaremos la opción Granja de servidor único en donde tendremos todos los servicios juntos.

Roles de SharePoint 2016
Roles de SharePoint 2016

En la siguiente pantalla de configuración, tenemos la posibilidad de cambiar el puerto de la web de administración de la configuración de SharePoint y de cambiar la seguridad NTLM o Kerberos. Dejamos todo por defecto.

Puerto y seguridad en SharePoint2016
Puerto y seguridad en SharePoint2016

Finalmente el asistente nos mostrará un resumen de la instalación

Resumen instalación SharePoint 2016
Resumen instalación SharePoint 2016

Una vez pulsemos Siguiente, SharePoint se pondrá a crear la base de datos de configuración y creará todos los servicios necesarios. Puede tardar un buen rato en instalarlo todo.

Configuración SharePoint 2016
Configuración SharePoint 2016

Una vez configurada la base de datos y los servicios, SharePoint abrirá el site de administración y nos mostrará el Asistente de configuración de Servicios. Iniciamos el asistente

Asistente de configuración de servicios
Asistente de configuración de servicios

En un entorno de producción, los servicios deberíamos configurarlos con otra cuenta, aunque para entornos de pruebas podemos dejar la cuenta de administrador de dominio

Cuenta de seguridad de los servicios de SharePoint 2016
Cuenta de seguridad de los servicios de SharePoint 2016

En el asistente podemos indicar los servicios que queremos que se configuren; como vemos es muy fácil, sólo hay que marcar o desmarcar.

Configuración de servicios
Configuración de servicios

Una vez finalicemos, veremos que SharePoint ya nos muestra el site de administrador, listo para crear nuestros nuevos sites.

Site de administración de SharePoint 2016
Site de administración de SharePoint 2016

 

Instalar SharePoint 2016 Onpremise en un entorno de pruebas

Conectar a Odoo desde Javascript habilitando CORS

Cuando queremos desarrollar una aplicación externa a nuestro ERP, podemos pensar en muchos lenguajes de programación, pero un lenguaje y entorno muy interesante es usar JavaScript con Apache Cordova para conectarnos por ejemplo desde una aplicación web.

¿Y cómo se come eso? Si Odoo por ejemplo funciona con python y Cordova con JavaScript

Aquí es donde entra el protocolo xmlrpc que nos permite hacer llamadas a procedimientos rpc, usando XML, osea http y que Odoo soporta.

Pero si lo que queremos es conectar usando JavaScript desde el móvil por ejemplo, ahí es donde podemos usar esta magnífica librería que nos permite conectar usando jquery y xmlrpc:

https://github.com/timheap/jquery-xmlrpc

El problema cuando intentemos conectar a Odoo es que no vamos a poder, nos saldrá un error de JavaScript diciendo que CORS ha bloqueado la conexión. ¿Y qué es CORS? CORS (Access-Control-Allow-Origin) es un sistema de seguridad para controlar el acceso de llamadas JavaScript entre distintos dominios. Cuando llamamos al JavaScript desde nuestro móvil, estamos usamos una ip o dominio que está fuera de la red en donde está Odoo instalado y por tanto CORS bloquea el acceso.

Para solucionar esto, podemos editar la librería de JavaScript y añadir CORS o podemos habilitar Odoo para que acepte CORS. Veamos cómo hacer que Odoo acepte CORS. Para ello debemos editar el fichero del servidor web de Odoo wsgi_server.py y añadir estas líneas en varias de sus funciones para modificar la respuesta de la cabecera HTTP y que se acepte CORS.

('Access-Control-Allow-Origin','*'),
('Access-Control-Allow-Methods','POST, GET, OPTIONS'),
('Access-Control-Max-Age',1000),
('Access-Control-Allow-Headers','origin, x-csrftoken, content-type, accept')

En esta web está muy bien explicado qué código hay que cambiar y en qué funciones:

https://www.odoo.com/es_ES/forum/ayuda-1/question/avoid-cors-error-webapp-cordova-99048

En el momento reiniciemos los servicios del servidor, veremos que Odoo ya no bloquea JavaScript usando CORS y las llamadas usando xmlrpc ya funcionan, y por tanto ya podemos usar JavaScript en apache cordova para desarrollar nuestra aplicación móvil contra Odoo.

 

 

Conectar a Odoo desde Javascript habilitando CORS

Cambiar el formato de la exportación en CSV de Excel

Excel es una magnífica herramienta que siempre usamos en nuestras importaciones/exportaciones, pero en algunos casos, no es adecuado.

En un fichero Excel, si seleccionamos Guardar como… veremos que tenemos la opción de guardar en formato CSV con la opción CSV (delimitado por comas), pero si abrimos con el bloc de notas dicho fichero veremos que usa como delimitador el punto y coma ; en vez de la coma ,

Exportar en formato CSV en Excel
Exportar en formato CSV en Excel

Otro problema adicional que nos podemos encontrar son las comillas . Por ejemplo hay software ERPs tal como OpenERP u Odoo que en el formato CSV requiere que los datos estén entre comillas “” y separados por comas ,. Ante esto, podemos buscar/reemplazar, usar fórmulas, etc.. pero es un proceso muy costoso para adaptarnos.

En cambio, el propio Microsoft da una solución sencilla en su página web. En este enlace se explica cómo crear una Macro en Excel que permite exportar el contenido en Excel en formato CSV usando comas , y comillas “” como delimitadores.

https://support.microsoft.com/en-us/help/291296/procedure-to-export-a-text-file-with-both-comma-and-quote-delimiters-i

Para usarlo es muy sencillo, creamos una Macro nueva en Excel y copiamos el código VBA de la página de Microsoft. Una vez creado, ejecutamos la macro.

Menú Programador con los botones de Macros en Excel
Menú Programador con los botones de Macros en Excel
Macros en Excel
Macros en Excel

Para que funcione correctamente es necesario seleccionar todas las filas y columnas que queramos exportar y tener el fichero destino vacío; cuando lo ejecutemos nos pedirá un destino de la exportación y si por ejemplo indicamos la ruta “c:\export.csv” dicho fichero debe existir (aunque vacío).

Cambiar el formato de la exportación en CSV de Excel

Conectarse a Alfresco desde Eclipse usando CMIS

Con la llegada de la versión 5 de Alfresco, varias de las APIs más usadas y antiguas han dejado de soportarse, por ejemplo el API de los WebServices.

¿y ahora qué hacemos, cómo conectamos con Alfresco desde fuera? Alfresco propone varios APIs nuevos y entre ellos CMIS

CMIS (Content Management Interoperability Services) es un nuevo estándar de comunicación entre gestores documentales que implementan tanto Alfresco como SharePoint. Desde la propia página de CMIS, podemos descargarnos ejemplos de cómo usar CMIS y en este post vamos a ver cómo conectarnos desde Java con Eclipse.

Para poder trabajar con Java, deberemos descargar la librería chemistry-opencmis-client-api.jar desde la propia página de Apache Chemistry e importarla en Eclipse, junto al resto de librerías del paquete.

Librería para conectarse usando CMIS en Java
Librería para conectarse usando CMIS en Java

Una vez importado, ya podemos crear una clase referenciando a los métodos  CMIS. En concreto, necesitaremos crear un objeto SesssionFactory para poder conectarnos a nuestro endpoint de Alfresco, como por ejemplo este especificado en un sessionParameters:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom

Una vez hayamos conectado, podremos usar el método getRepositories para conectarnos al repositorio de Alfresco y usar los métodos getRootFolder, getChildren y objetos CmisObject, Document para obtener la información desde Alfresco.

Para poder ejecutar el proyecto también es necesario descargar e instalar en eclipse la librería SLF4J

El siguiente código de Eclipse permite mostrar los documentos de la raíz del repositorio de Alfresco


import java.util.HashMap;
import java.util.Map;
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.chemistry.opencmis.client.api.Document;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.ItemIterable;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.enums.BindingType;

public class inicio {

public static void main(String[] args) {

Map<String, String> sessionParameters = new HashMap<String, String>();
sessionParameters.put(SessionParameter.USER, "admin");
sessionParameters.put(SessionParameter.PASSWORD, "admin");
sessionParameters.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom");
sessionParameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
Session lSession = sessionFactory.getRepositories(sessionParameters).get(0).createSession();
Folder root = lSession.getRootFolder();
ItemIterable<CmisObject> contentItems= root.getChildren();
for (CmisObject contentItem : contentItems) {
if (contentItem instanceof Document) {
Document docMetadata = (Document)contentItem;
System.out.println(docMetadata.getName());
} else {
System.out.println(contentItem.getName());
}
}

 

 

 

Conectarse a Alfresco desde Eclipse usando CMIS

Depurar el desarrollo de aplicaciones sobre el móvil con Visual Studio

Uno de los problemas que nos encontramos cuando queremos desarrollar aplicaciones para el móvil, es que no sabemos cómo va a quedar cuando despleguemos la aplicación final.

Normalmente los entornos de desarrollo, suele tener emuladores que se aproximan mucho al entorno del móvil pero no es lo mismo que en el móvil en sí. Si trabajamos con Visual Studio y desarrollamos aplicaciones tanto en Xamarin como Apache Cordova, podemos depurar y desplegar nuestras aplicaciones directamente en el móvil. Veamos cómo hacerlo.

Para depurar sobre el móvil, debemos conectar nuestro móvil por USB al ordenador. Una vez conectado, debemos habilitar la depuración por USB en el móvil. Esto depende de cada móvil, pero en Android, si accedemos a la configuración, y al menú de Opciones de desarrollo, veremos que aparece la opción Depuración por USB.

Opción de depuración por USB
Opción de depuración por USB

Una vez activada la opción, veremos que el propio móvil nos solicita permiso para depurar al ordenador conectado por USB.

Solicitar permiso para depurar
Solicitar permiso para depurar

Una vez demos permisos, si abrimos Visual Studio, veremos que nos aparece una opción nueva Device para poder depurar y desplegar la aplicación directamente en el móvil sin necesidad de utilizar un emulador.

Depurar sobre el dispositivo móvil
Depurar sobre el dispositivo móvil

 

Depurar el desarrollo de aplicaciones sobre el móvil con Visual Studio