Novedades en BCS en SharePoint 2013

32
¡Integración de datos de negocio con BCS! Juan Carlos González (@jcgm1978) MVP SharePoint Server http://geeks.ms/blogs/ciin [email protected]

description

Novedades en BCS en SharePoint 2013

Transcript of Novedades en BCS en SharePoint 2013

Page 1: Novedades en BCS en SharePoint 2013

¡Integración de datos de negocio con BCS!

Juan Carlos González (@jcgm1978)MVP SharePoint Serverhttp://geeks.ms/blogs/[email protected]

Page 2: Novedades en BCS en SharePoint 2013

Agenda

Repaso a BCS

Fuentes OData

ECTs a nivel de Aplicación

Interfaces REST y CSOM

Notificaciones, Alertas y Manejadores de Eventos

Page 3: Novedades en BCS en SharePoint 2013

BCS: Tipos de Contenido Externo

BCS permite la integración de datos externos en SharePoint a través de los Tipos de Contenido Externo (ECTs): Mapean en “modo ORM” datos externos a entidades de negocio:

Clientes, Pedidos, Empleados, etc.

Abstrae a los desarrolladores de las fuentes de datos subyacentes

Un ECT define: La conexión al sistema externo: Servicios Odata Servicios Web

Servicios WCF SQL Server SQL Azure BDs de negocio

Las operaciones que se pueden realizar sobre los datos externos: Crear Leer Actualizar Borrar

Los ECTs se pueden crear mediante SharePoint Designer o Visual Studio

Page 4: Novedades en BCS en SharePoint 2013

BCS: Arquitectura

Caché de Cliente

BCS

Runtime de BDC en

Cliente

SharePoint Foundation / Server

Aplicación de Servicio de BCS

Servicio de Almacenamiento Seguro

Búsquedas, Columnas Externas, WebParts, CSOM, Pérfiles, Apps

Almacén de Metadatos

Runtime de BDC en Servidor

Sitio / App SharePointPaquete

VSTOListas

Externas

Office Client

Integración con Office

External Business Parts

Código Personalizado Archivos BDCM

PersonalizadoSQL

Datos Externos

WCF / OData

Conector .NET

Page 5: Novedades en BCS en SharePoint 2013

BCS: Mejoras Se mejoran las capacidades de ordenado y filtro para Listas

Externas de modo que se mejora la eficiencia en las consultas Soporte para fuentes SQL y OData

En fuentes WCF no se soporta ordenación

A nivel de rendimiento: El paginado, filtrado y ordenado de los datos se realiza en origen, de

manera que no se consulta el set completo de datos cada vez

API en el lado del cliente: REST + CSOM

Se puede exportar a Excel una lista externa

Soporte en SharePoint Online

Page 6: Novedades en BCS en SharePoint 2013

Fuentes OData Se añade soporte por la estandarización de OData para exponer y

acceder fuentes de datos diversos: Es una “fuente de primera clase” para modelos de BDC como como lo

son servicios WCF o bien SQL Server

Se pueden generar modelos de BDC en Visual Studio

De momento, SharePoint Designer no soporta fuentes OData

Page 7: Novedades en BCS en SharePoint 2013

Fuentes OData Ejemplo de ECT:

<LobSystem Name="ODataWebNorthwindModel" Type="OData"> <Properties> <Property Name="ODataServiceMetadataUrl" Type="System.String"> http://services.odata.org/Northwind/Northwind.svc/$metadata</Property> <Property Name="ODataMetadataAuthenticationMode" Type="System.String">PassThrough</Property> <Property Name="ODataServicesVersion" Type="System.String">2.0</Property> </Properties> <LobSystemInstances> <LobSystemInstance Name="http://services.odata.org/Northwind/Northwind.svc"> <Properties> <Property Name="ODataServiceUrl" Type="System.String"> http://services.odata.org/Northwind/Northwind.svc </Property> <Property Name="ODataServiceAuthenticationMode" Type="System.String">PassThrough</Property> <Property Name="ODataFormat" Type="System.String">application/atom+xml</Property> </Properties> </LobSystemInstance></LobSystemInstances></LobSystem>

Page 8: Novedades en BCS en SharePoint 2013

Fuentes OData Ejemplo de ECT:

Type, tiene que estar fijado a ODATA cuando se trabaja con fuentes de este tipo

ODataServiceMetadataUrl, proporciona el “end pint” de los metadatos del servicio

ODataAuthenticationMode, modo de autenticación de acceso a la fuente de datos

ODataServicesVersion, versión de Odata

ODataServiceUrl, el “endpoint” para el servicio

ODataFormat, el formato de los datos devueltos

Page 9: Novedades en BCS en SharePoint 2013

Fuentes OData Creación de operaciones en ECTs:

Estereotipo Operación

Ejemplo de Uri

Finder GET http://server/crm.svc/Clients

SpecificFinder GET http://server/crm.svc/Clients(‘Contoso’)

Creator POST http://server/crm.svc/Clients

Updater PUT http://server/crm.svc/Clients(‘Contoso’)

Deleter DELETE http://server/crm.svc/Clients(‘Contoso’)

AssociationNavigator

GET http://server/crm.svc/Clients(‘Contoso’)/Contacts

Page 10: Novedades en BCS en SharePoint 2013

ECTs a nivel de aplicación En SharePoint 2010, todos los ECTs se definían a nivel de granja:

Se necesita la implicación del administrador para su instalación

El nuevo modelo de aplicaciones de SharePoint 2013 requiere un nivel de aislamiento más granular: Se introduce la posibilidad de definir ECTs dentro de una Aplicación

La administración y despliegue de ECTs es a nivel de sitio

Page 11: Novedades en BCS en SharePoint 2013

ECTs a nivel de aplicación Arquitectura:

Sistema Externo

Runtime del BDC

BusinessDataMetadataCatalog

Archivos BDCM

Lista Externa

MetadataCatalogFileName= MyModel.BDCM

FileBackedMetadataCatalog

Page 12: Novedades en BCS en SharePoint 2013

ECTs a nivel de aplicación Instancias de listas externas:

<ListInstance Url="$Resources:core,lists_Folder;/AppScopedList" Description="My App Scoped List" OnQuickLaunch="TRUE" Title="My App Scoped List" Id="AppScopedList"> <DataSource> <Property Value="" Name="LobSystemInstance"/> <Property Value="" Name="EntityNamespace"/> <Property Value="" Name="Entity"/> <Property Value="" Name="SpecificFinder"/> <Property Name="MetadataCatalogFileName“ Value="BDCMetadata.bdcm" /> </DataSource></ListInstance>

Page 13: Novedades en BCS en SharePoint 2013

Interfaces REST y CSOM SharePoint 2013 introduce CSOM para BCS:

var ctx = new SP.ClientContext();var web = ctx.get_web();entity = web.getAppBdcCatalog().getEntity(entityNameSpace, entityName);ctx.load(entity);lobSystem = entity.getLobSystem();ctx.load(lobSystem);lobSystemInstances = lobSystem.getLobSystemInstances();ctx.load(lobSystemInstances);

ctx.executeQueryAsync(success, failure);

Page 14: Novedades en BCS en SharePoint 2013

Interfaces REST y CSOM SharePoint 2013 introduce CSOM para BCS:

//Instancia de una entidad del ECT y del sistema de negocio Entity eEntity = ctx.Web.GetEntity( "CRMECT.CRMModel", "Contacto"); LobSystem lobSistema = eEntity.GetLobSystem();

//Colección de instancias de sistemas de negocio LobSystemInstanceCollection lsic = eEntity.GetLobSystem().GetLobSystemInstances(); ctx.Load(lsic); ctx.ExecuteQuery(); //Sistema de negoco concreto LobSystemInstance lobSystemInstance = lsic[0]; // Accedemos a la colección de filtros para un cierto "Finder" FilterCollection fCollection = eEntity.GetFilters("VisualizarContactos"); //Acceso a los datos de negocio EntityInstanceCollection eicResultado= eEntity.FindFiltered(fCollection, "VisualizarContactos", lobSystemInstance); ctx.Load(eicResultado); ctx.ExecuteQuery();

Page 15: Novedades en BCS en SharePoint 2013

Interfaces REST y CSOM Las listas externas se pueden acceder a través de la API REST de

SharePoint 2013:

AppLevelECT.Grid.prototype = {

init: function () {

$.ajax({ url: this.surlWeb + "_api/lists/getbytitle('Customers')/items?

$select=BdcIdentity,CustomerID,ContactName", headers: { "accept": "application/json", "X-RequestDigest": $("#__REQUESTDIGEST").val() }, success: this.showItems }); }

Page 16: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

En SharePoint 2010, las listas externas no soporta manejadores de eventos o alertas

Capacidad muy solicitada

En SharePoint 2013 se introduce soporte a: Manejadores de eventos en listas externas

Manejadores de eventos para ECTs

Alertas en listas externas

Page 17: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Los ECTs deben implementar nuevos estereotipos: Subscripción (DeliveryAddress, EventType) - Subscribe

No subscripción (SubscriptionId) - Unsubscribe

DeliveryAddress puede ser:

Una URL relativa para manejadores de eventos de listas externas

Una URL absoluta para manejadores de eventos de entidades

Tipos de eventos (EventType):

ItemAdded

ItemUpdated

ItemDeleted

SubscriptionId, devuelto en operación de subscripción…se usa para para llamar a “Unsubscribe”

Page 18: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Definición de los estereotipos en el modelo:

Delivery Address<Parameter Direction="In" Name="deliveryAddress"><TypeDescriptor TypeName="System.String" Name="deliveryAddress"><Properties><Property Name="IsDeliveryAddress" Type="System.Boolean">true</Property>

Event Type<Parameter Direction="In" Name="eventType"><TypeDescriptor TypeName="System.String" Name="eventType"><Properties><Property Name="IsEventType" Type="System.Boolean">true</Property>

Subscription ID<Parameter Direction="Return" Name="Subscribe"><TypeDescriptor TypeName="System.Int32" ReadOnly="true" Name="SubscriptionId"><Properties><Property Name="SubscriptionIdName" Type="System.String">SubscriptionId</Property><Interpretation><ConvertType LOBType="System.Int32" BDCType="System.String"/></Interpretation>

Page 19: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Las listas externas soportan funcionalidad de alertas

Es una capacidad disponible por defecto que implica: El sistema de negocio debe implementar Subscribe / Unsubscribe

El sistema de negocio tiene que enviar notificaciones de los cambios

No se necesita implementar un manejador de eventos en el lado de SharePoint, las alertas están disponibles por defecto

Page 20: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Registro de un manejador de eventos para una lista externa:

string assembly = "MyAssembly, Culture=, Version=, PublicKeyToken="; string className = "MyAssembly.MyClass"; using (SPSite site = new SPSite(siteUrl)) { using (SPWeb web = site.RootWeb) { SPList list = web.Lists[listTitle]; list.EventReceivers.Add( SPEventReceiverType.ItemAdded, assembly, className); }}

Page 21: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Registro de un manejador de eventos para una lista externa: Similar a agregar RER (Remote Event Receivers en listas estándar)

Cuando se añade el manejador, se llama a la operación de subscripción

Cuando se elimina el manejador se llama a la operación de no subscripción

El registro se puede realizar con el CSOM

Page 22: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Registro de un manejador de eventos para una entidad:

IEntity customerEntity = catalog.GetEntity("AdventureWorks", "Customer");

ILobSystemInstance lobSystemInstance = customerEntity.GetLobSystem(). GetLobSystemInstances()["AdventureWorks"];

NotificationCallback callback = new NotificationCallback(){ Type = “Absolute”, Url = "http://myserver/myservice.svc" };

string subscriptionId = customerEntity.Subscribe( EntityEventType.ItemAdded, callback, lobSystemInstance);}

Page 23: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Arquitectura:

Sistema Externo

Manejador de Eventos Personalizado

Receptor de eventos CSOM

Manejadores de Eventos

BDC

Endpoint REST

Con

ecto

resOperaciones

Notificaciones

Page 24: Novedades en BCS en SharePoint 2013

Notificaciones y Manejadores de Eventos

Arquitectura: Secuencia de eventos:

1. Primero se crea un ECT que soporta os estereotipos “Subscribe” y “Unsubscribe”

2. Se crea una lista externa a partir del ECT

3. Enlace a las subscripciones de eventos, lo que expone el correspondiente “endpoint”

4. El sistema externo devuelve la llamada al “endpoint”

5. A nivel de SharePoint, se realiza la actualización de las notificaciones recibidas para la lista externa

6. BCS consulta el sistema externo en busca de cambios

7. El manejador de eventos envía las alertas

8. El manejador de eventos remoto puede realizar acciones adicionales

Page 25: Novedades en BCS en SharePoint 2013

Conclusiones Fundamentos y arquitectura de BCS iguales con respecto a SP

2010, se mejora notablemente el rendimiento en las consultas de datos

Se extiende el ámbito de los ECTs de forma que se pueden consumir datos externos en aplicaciones

Soporte de manejadores de eventos para ECTs y Listas externas

Soporte de alertas en Listas Externas

A nivel de desarrollo, más posibilidades desarrollo a través del Modelo de Objetos en Cliente para BCS y la API REST

Page 26: Novedades en BCS en SharePoint 2013

BCS en SharePoint

2013

Page 27: Novedades en BCS en SharePoint 2013

Aprende de los expertos Descárgate CompartiMOSS:

http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx

Page 28: Novedades en BCS en SharePoint 2013

Descuentos Campus MVP

10% de descuentoen todos nuestros cursos y libros hasta el 31 de diciembre

Introduce el cupón PECIIN12SN al realizar tu compraen nuestra tienda online.

Page 29: Novedades en BCS en SharePoint 2013

Prueba SharePoint a tope CloudShare:

http://www.cloudshare.com/

Disponen de varias plantillas de SharePoint 2013 listas para probar

Page 30: Novedades en BCS en SharePoint 2013

Nos vemos en los foros Foro de desarrollo:

http://social.msdn.microsoft.com/Forums/es-es/mossdeves/threads

Foro de IT http://social.technet.microsoft.com/Forums/es-ES/mosses/threads

Foro de Office 365: http://community.office365.com/es-es/default.aspx

Page 31: Novedades en BCS en SharePoint 2013
Page 32: Novedades en BCS en SharePoint 2013

GRACIAS POR SU ATENCIÓN