Novedades en BCS en SharePoint 2013

Juan Carlos Gonzalez
Juan Carlos GonzalezMicrosoft 365 Apps & Services MVP | Microsoft 365 SME at CompartiMOSS
¡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 Seguro

Runtime 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 MVP



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

Introduce el cupón PECIIN12SN al realizar tu
compra
en 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
Novedades en BCS en SharePoint 2013
GRACIAS POR SU ATENCIÓN
1 of 32

Recommended

Seminario MS IDA by
Seminario MS IDASeminario MS IDA
Seminario MS IDAMarcela Berri
874 views51 slides
Tarea 2 cristian_merchan_admin_bd by
Tarea 2 cristian_merchan_admin_bdTarea 2 cristian_merchan_admin_bd
Tarea 2 cristian_merchan_admin_bdCristian Merchan
280 views11 slides
Introducción Desarrollo MOSS2007 by
Introducción Desarrollo MOSS2007Introducción Desarrollo MOSS2007
Introducción Desarrollo MOSS2007Eva Ordoñez Perez
844 views46 slides
RBS in SharePoint by
RBS in SharePointRBS in SharePoint
RBS in SharePointMiguel Tabera
5.3K views7 slides
Diseña tu propio Office 365 - Global Azure Bootcamp 2015 by
Diseña tu propio Office 365 - Global Azure Bootcamp 2015Diseña tu propio Office 365 - Global Azure Bootcamp 2015
Diseña tu propio Office 365 - Global Azure Bootcamp 2015Miguel Tabera
5K views66 slides
Movilidad en Office 365 by
Movilidad en Office 365Movilidad en Office 365
Movilidad en Office 365Miguel Tabera
6.1K views73 slides

More Related Content

Similar to Novedades en BCS en SharePoint 2013

Exprimiendo SharePoint 2010 by
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
1.5K views48 slides
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa... by
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Andrés Iturralde
584 views28 slides
IT Camps Apps Office 365 Valencia 2014 by
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
600 views62 slides
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx by
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
6 views42 slides
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx by
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
190 views74 slides
SharePoint 2010 Introducción para Desarrolladores by
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresAndrés Iturralde
996 views38 slides

Similar to Novedades en BCS en SharePoint 2013(20)

Exprimiendo SharePoint 2010 by Juan Pablo
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
Juan Pablo 1.5K views
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa... by Andrés Iturralde
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Andrés Iturralde584 views
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx by XavierNavia
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
XavierNavia6 views
SharePoint 2010 Introducción para Desarrolladores by Andrés Iturralde
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para Desarrolladores
Andrés Iturralde996 views
Sharepoint server 2010 - La nueva colaboración by Andrés Iturralde
Sharepoint server 2010  - La nueva colaboraciónSharepoint server 2010  - La nueva colaboración
Sharepoint server 2010 - La nueva colaboración
Andrés Iturralde1.2K views
Microsoft Asp. Net [Asp.Net - Parte 2] by Antonio Torres
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
Antonio Torres4.3K views
Estrategias de desarrollo en sharepoint by Daniel Laco
Estrategias de desarrollo en sharepointEstrategias de desarrollo en sharepoint
Estrategias de desarrollo en sharepoint
Daniel Laco1.4K views
SP2010 evolución vs evolución by goreorti
SP2010 evolución vs evoluciónSP2010 evolución vs evolución
SP2010 evolución vs evolución
goreorti349 views
Intro a ASP.NET by williamsm
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
williamsm4.8K views
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010 by Andrés Iturralde
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Andrés Iturralde693 views

More from Juan Carlos Gonzalez

Boost your Teams Meetings to the next level with Teams Premium by
Boost your Teams Meetings to the next level with Teams PremiumBoost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams PremiumJuan Carlos Gonzalez
3 views53 slides
Stream en SharePoint en detalle by
Stream en SharePoint en detalle Stream en SharePoint en detalle
Stream en SharePoint en detalle Juan Carlos Gonzalez
23 views43 slides
Power Platform y Teams: ¿Qué platos tengo en mi menú? by
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Juan Carlos Gonzalez
38 views36 slides
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue... by
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Juan Carlos Gonzalez
33 views49 slides
Stream on SharePoint, an overview - JcGonzalez.pptx by
Stream on SharePoint, an overview - JcGonzalez.pptxStream on SharePoint, an overview - JcGonzalez.pptx
Stream on SharePoint, an overview - JcGonzalez.pptxJuan Carlos Gonzalez
145 views43 slides
Shared channels in Microsoft Teams, an overview by
Shared channels in Microsoft Teams, an overview Shared channels in Microsoft Teams, an overview
Shared channels in Microsoft Teams, an overview Juan Carlos Gonzalez
46 views33 slides

More from Juan Carlos Gonzalez(20)

Boost your Teams Meetings to the next level with Teams Premium by Juan Carlos Gonzalez
Boost your Teams Meetings to the next level with Teams PremiumBoost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams Premium
Power Platform y Teams: ¿Qué platos tengo en mi menú? by Juan Carlos Gonzalez
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue... by Juan Carlos Gonzalez
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx by Juan Carlos Gonzalez
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptxDigitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Microsoft 365 Chicago - Governing Microsoft Teams Meetings by Juan Carlos Gonzalez
Microsoft 365 Chicago - Governing Microsoft Teams MeetingsMicrosoft 365 Chicago - Governing Microsoft Teams Meetings
Microsoft 365 Chicago - Governing Microsoft Teams Meetings
Solicita y comparte actualizaciones con Updates en Teams by Juan Carlos Gonzalez
Solicita y comparte actualizaciones con Updates en TeamsSolicita y comparte actualizaciones con Updates en Teams
Solicita y comparte actualizaciones con Updates en Teams
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptx by Juan Carlos Gonzalez
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptxShared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Governing Microsoft Teams Meetings: What are my options? by Juan Carlos Gonzalez
Governing Microsoft Teams Meetings: What are my options?Governing Microsoft Teams Meetings: What are my options?
Governing Microsoft Teams Meetings: What are my options?
Power Platform y Teams: ¿Qué platos tengo en mi menú? by Juan Carlos Gonzalez
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Digitalize your Approval processes with approvals in Microsoft Teams by Juan Carlos Gonzalez
Digitalize your Approval processes with approvals in Microsoft TeamsDigitalize your Approval processes with approvals in Microsoft Teams
Digitalize your Approval processes with approvals in Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft Teams by Juan Carlos Gonzalez
Digitaliza tus Aprobaciones con Approvals en Microsoft TeamsDigitaliza tus Aprobaciones con Approvals en Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft Teams
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ... by Juan Carlos Gonzalez
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ... by Juan Carlos Gonzalez
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...
Microsoft Lists o como crear aplicaciones a la velocidad de la luz para M365 ...

Recently uploaded

Dominios de internet.pdf by
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdfNahomiBanchen
8 views2 slides
Google alternativo, para volar by
Google alternativo, para volarGoogle alternativo, para volar
Google alternativo, para volarcorpbracat
9 views1 slide
Presentación: El impacto y peligro de la piratería de software by
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de softwareEmanuelMuoz11
16 views66 slides
FC if03.pptx by
FC if03.pptxFC if03.pptx
FC if03.pptxScarletRodriguez14
6 views6 slides
ACTIVIDAD 3 TECNOLOGIAA (1).pdf by
ACTIVIDAD 3 TECNOLOGIAA (1).pdfACTIVIDAD 3 TECNOLOGIAA (1).pdf
ACTIVIDAD 3 TECNOLOGIAA (1).pdfIsabelQuintero36
8 views7 slides
Tarea15.pptx by
Tarea15.pptxTarea15.pptx
Tarea15.pptxillanlir
9 views6 slides

Recently uploaded(17)

Google alternativo, para volar by corpbracat
Google alternativo, para volarGoogle alternativo, para volar
Google alternativo, para volar
corpbracat9 views
Presentación: El impacto y peligro de la piratería de software by EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1116 views
Tarea15.pptx by illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir9 views
El Ciberespacio y sus Características.pptx by AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira10 views
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf by ortizjuanjose591
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf by coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria13 views
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... by codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura505 views
Tecnologías para la enseñanza virtual.pptx by exprosaavedra
Tecnologías para la enseñanza virtual.pptxTecnologías para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual.pptx
exprosaavedra11 views
Probando aplicaciones basadas en LLMs.pdf by Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo47 views

Novedades en BCS en SharePoint 2013

  • 1. ¡Integración de datos de negocio con BCS! Juan Carlos González (@jcgm1978) MVP SharePoint Server http://geeks.ms/blogs/ciin jgonzalez@gruposodercan.es
  • 2. Agenda  Repaso a BCS  Fuentes OData  ECTs a nivel de Aplicación  Interfaces REST y CSOM  Notificaciones, Alertas y Manejadores de Eventos
  • 3. 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
  • 4. 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 Seguro Runtime 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
  • 5. 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
  • 6. 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
  • 7. 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>
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. ECTs a nivel de aplicación  Arquitectura: BusinessDataMetadataCatalog FileBackedMetadataCatalog Runtime del BDC Sistema Archivos BDCM Externo Lista Externa MetadataCatalogFileName = MyModel.BDCM
  • 12. 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>
  • 13. 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);
  • 14. 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();
  • 15. 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 }); }
  • 16. 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
  • 17. 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”
  • 18. 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>
  • 19. 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
  • 20. 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); } }
  • 21. 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
  • 22. 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); }
  • 23. Notificaciones y Manejadores de Eventos  Arquitectura: Endpoint REST Receptor de eventos CSOM Manejadores de Eventos BDC Conectores Operaciones Sistema Externo Manejador de Eventos Personalizado
  • 24. 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
  • 25. 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
  • 27. Aprende de los expertos  Descárgate CompartiMOSS:  http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
  • 28. Descuentos Campus MVP 10% de descuento en todos nuestros cursos y libros hasta el 31 de diciembre Introduce el cupón PECIIN12SN al realizar tu compra en nuestra tienda online.
  • 29. Prueba SharePoint a tope  CloudShare:  http://www.cloudshare.com/  Disponen de varias plantillas de SharePoint 2013 listas para probar 
  • 30. 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
  • 32. GRACIAS POR SU ATENCIÓN