• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Novedades en BCS en SharePoint 2013
 

Novedades en BCS en SharePoint 2013

on

  • 1,198 views

Novedades en BCS en SharePoint 2013

Novedades en BCS en SharePoint 2013

Statistics

Views

Total Views
1,198
Views on SlideShare
1,198
Embed Views
0

Actions

Likes
0
Downloads
24
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Novedades en BCS en SharePoint 2013 Novedades en BCS en SharePoint 2013 Presentation Transcript

    • ¡Integración de datos de negocio con BCS! Juan Carlos González (@jcgm1978) MVP SharePoint Server http://geeks.ms/blogs/ciin jgonzalez@gruposodercan.es
    • Agenda Repaso a BCS Fuentes OData ECTs a nivel de Aplicación Interfaces REST y CSOM Notificaciones, Alertas y Manejadores de Eventos
    • 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
    • BCS: Arquitectura Office Client SharePoint Foundation / Server External Business Parts Sitio / App SharePoint Código Personalizado Paquete Listas Archivos VSTO Externas BDCM Integración con Office Búsquedas, Columnas Externas, WebParts, CSOM, Pérfiles, Ap ps BCS Servicio de Almacenamiento SeguroRuntime de Aplicación de Servicio de BCS Caché de Runtime de BDC en Almacén de Cliente BDC en Cliente Metadatos Servidor SQL WCF / OData Personalizado Conector .NET Datos Externos
    • 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
    • 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
    • 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>
    • 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
    • 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
    • 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
    • ECTs a nivel de aplicación Arquitectura:BusinessDataMetadataCatalog FileBackedMetadataCatalog Runtime del BDC Sistema Archivos BDCM Externo Lista Externa MetadataCatalogFileName = MyModel.BDCM
    • 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>
    • 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);
    • 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();
    • 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 }); }
    • 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
    • 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”
    • 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>
    • 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
    • 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); } }
    • 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
    • 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); }
    • Notificaciones y Manejadores de Eventos Arquitectura: Endpoint REST Receptor de eventos CSOM Manejadores de Eventos BDC Conectores Operaciones Sistema Externo Manejador de Eventos Personalizado
    • 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
    • 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
    • BCS en SharePoint 2013
    • Aprende de los expertos Descárgate CompartiMOSS:  http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    • Descuentos Campus MVP10% de descuentoen todos nuestros cursos y libros hasta el 31 dediciembreIntroduce el cupón PECIIN12SN al realizar tucompraen nuestra tienda online.
    • Prueba SharePoint a tope CloudShare:  http://www.cloudshare.com/  Disponen de varias plantillas de SharePoint 2013 listas para probar 
    • 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
    • GRACIAS POR SU ATENCIÓN