Lightning Connect
DUG Granada 26 Nov 2015
Agustina García Odeian @agarciaodeian
Alba Azcona Rivas @Alba_ARivas
¿Qué es Lightning Connect?
● Feature que permite visualizar tablas de datos alojadas
en sistemas externos en Salesforce:
● No es un ETL (Extract - Transform - Load)
● Los datos NO se copian
● Se pueden leer bajo demanda y en TIEMPO REAL como si
formaran parte de nuestro esquema
● Se pueden escribir si el datasource lo permite
External datasource
● Para poder trabajar con Lightning Connect necesitamos un
external datasource. Este puede ser un repositorio externo
Google Drive, Sharepoint, Amazon, una base de datos…
● Hay que elegir un adapter para comunicarse con el
datasource: Lightning Connect OData 2.0, OData 4.0
● OData es un protocolo que permite el acceso a datos en
tiempo real mediante peticiones REST.
● Puede estar autenticado (OAuth) o no.
Vamos a crear un external datasource:
- Nuestro datasource será un spreadsheet: https://goo.gl/auSswl
- Setup → Develop → External Datasource
- Type: OData 2.0
- URL: https://sheltered-badlands-
4799.herokuapp.com/InMemoryProducerExample.svc
External datasource
● Custom Connector - Apex Connector Framework
●Provider class
●Connection class
External objects
● Es un nuevo tipo de objeto que permite visualizar la
información que tenemos en nuestro external
datasource
Vamos a crear un external object:
- En la página de detalle del External Datasource, click en
“Validate & Sync”
- Sincroniza el objeto “HotelReservation”
- Puedes ver que se ha creado un nuevo objeto en Setup → Develop
External Objects.
External objects
● ¿En qué se diferencia un external object de un objeto
custom?
● Acaba en __x
● External Datasource: datasource desde el cual lo hemos
creado
● Name field: indica cuál de los campos del objeto será el
Name.
● Standard fields:
● External Id: identifica de forma unívoca al registro
● Display URL: URL a través de la cual consumimos el objeto
Tabs y layouts
● Podemos crear una tab para el external object como
hacemos normalmente.
● Podemos modificar el page layout, compact layout y
search layouts del objeto, como si de un objeto normal
se tratara.
Vamos a crear una tab para nuestro external object:
- Crea una tab para “HotelReservation”
- Ve a la tab y modifica las columnas del layout para mostrar
todos los campos
Demo
External lookup
● Crea un lookup hacia un external object. Es decir,
podemos crear un external lookup:
● De custom object hacia external object
● De external object hacia otro external object
Vamos a crear un external lookup:
- Crea un objeto que se llame “ParkingReservation”. Varias
reservan de parking pueden estar asociadas a la misma reserva de
habitación.
- Crea un external lookup en ParkingReservation al external object
“HotelReservation”.
- Crea una tab para el objeto Parking Reservation
- Crea una reserva de parking desde la nueva tab
Indirect lookup
● Es un lookup desde un external object hacia un objecto
custom o standard.
● El custom o standard object que vamos a utilizar tiene
que tener un unique External Id.
Vamos a crear un indirect lookup:
- Vamos a utilizar el objeto Account para asociarlo con las
personas que hacen las reservas.
- Crea un external id en Account llamado “Guest Name”
(Guest_Name__c).
- Utiliza el script populate_accounts.txt para crear Accounts con
los mismos datos que tenemos en nuestra tabla externa.
- Edita el campo Guest Name de Hotel Reservation para que sea un
indirect lookup hacia el campo Guest Name de Account.
- Puedes ver el resultado viendo la lista de Hotel Reservations.
- Edita el layout de Account para añadir la related list de Hotel
Reservations.
VF, Apex and SOQL
● Podemos crear código Apex para el external object,
leer sus datos mediante SOQL y crear páginas
Visualforce.
Vamos a crear una página VF para poder imprimir facturas de las
reservas:
- Crea un controlador para Hotel Reservation
(HotelRervationController.cls).
- Crea una página VF que haga uso del controlador y cree la
factura en PDF (reservation_invoice.page).
- Crea un botón “Print Invoice” en la vista de detalle de Hotel
Reservation que nos lleve a la página VF.
- Añádelo al layout de la vista de detalle.
- Comprueba el resultado.
FieldSets
● También podemos crear FieldSets para un external
object.
Vamos a crear un fieldset y sobreescribir la página de detalle de Hotel
Reservation con un VF que muestre este fieldset
- Crea un fieldset para el external object Hotel Reservation
(Reservation_Information).
- Crea una página VF que haga uso del controlador y renderice los
campos indicados en el fieldset (reservation_view.page).
- Sobreescribe el comportamiento del boón view para que muestre la
nueva página.
- Comprueba el resultado.
Aún hay más…
● También puedes visualizar tu objeto en Salesforce1, y
como dijimos anteriormente modificar su compact
layout para personalizar los campos que se muestran.
● Puedes seguir tus external objets a través de los feeds
de Chatter (aunque sin Field History Tracking).
● Se puede acceder a ellos a través de las APIs SOAP y
REST de SF.
● Puedes aplicar FLS a tus external objects.
Writability
● Antes de la Winter 16 read-only. A partir de la Winter
16, writable!!
● Esto implica que a partir de la Winter 16, podemos
utilizar operaciones DML en nuestro código Apex para
escribir estos objetos.
● Diferencias en cuanto al momento en el que se
commitean los datos. Para ello:
Limitaciones
● Sólo podemos tener 100 external objects / org
● No podemos crear relaciones Master - Detail
●Workaround con Indirect y External Lookups
● No podemos crear Reports // Dashboards
● No se pueden crear Triggers
● No se pueden utilizar en fórmulas o workflow.
● Todo lo relacionado con sharing no aplica para los
external objects.
Más información
● Blog de Agustina:
http://agarciaodeian.com/2015/10/20/external-
objects-what-lightning-connect-offers-to-us/
Gracias por venir!!

Más contenido relacionado

PPTX
9th Salesforce Developer Group meeting in Bilbao
PPT
Hojas de calculo_todovaia
PPTX
Crece tu Carrera con Trailhead y Encuentra tu Trabajo Ideal
PPTX
Modern UI development with Lightning Components - Spanish!
PPTX
Salesforce CRM
PDF
Solvis Consulting Inbound 2016 Event Report #inbound16 #solvis
PDF
Presentación de Salesforce Connect en dreamolé 2018
PPTX
Salesforce Bilbao Elevate '15 - 2nd developer workshop
9th Salesforce Developer Group meeting in Bilbao
Hojas de calculo_todovaia
Crece tu Carrera con Trailhead y Encuentra tu Trabajo Ideal
Modern UI development with Lightning Components - Spanish!
Salesforce CRM
Solvis Consulting Inbound 2016 Event Report #inbound16 #solvis
Presentación de Salesforce Connect en dreamolé 2018
Salesforce Bilbao Elevate '15 - 2nd developer workshop

Similar a Lightning connect dug_26_nov2015 (10)

PDF
Introduciendo Spring 19 - Evento Palma Salesforce
PPTX
Novedades en BCS en SharePoint 2013
PDF
Taller Admin Báscio Comunidad MTY
PPTX
Big data, Big Objects
PPTX
Salesforce Bilbao Elevate '15 - 3rd developer workshop
PDF
Presentacion salesforce lightning. el bueno, el feo y el malo. Por KaizenStep
PDF
Fundamentos de la plataforma Force.com
PPTX
Dynamics saturday madrid 2019 conecta business central con el mundo v2
PDF
Entity Framework y Cluster en Mysql
PPTX
Salesforce III developer day bbva innovation center Madrid by @almazanjl
Introduciendo Spring 19 - Evento Palma Salesforce
Novedades en BCS en SharePoint 2013
Taller Admin Báscio Comunidad MTY
Big data, Big Objects
Salesforce Bilbao Elevate '15 - 3rd developer workshop
Presentacion salesforce lightning. el bueno, el feo y el malo. Por KaizenStep
Fundamentos de la plataforma Force.com
Dynamics saturday madrid 2019 conecta business central con el mundo v2
Entity Framework y Cluster en Mysql
Salesforce III developer day bbva innovation center Madrid by @almazanjl
Publicidad

Último (20)

PDF
Tecnólogo en Automatización de Sistemas Mecatrónicos - ASM.pdf
PDF
PL05_TMI_M2 S1_Mantiene en funcionamiento equipos de control electrónico (1).pdf
PPTX
FOP Modulo 1 FU 220520993216514651133.pptx
PDF
Uso básico del microcontrolador para medición y control - LibreTexts Español.pdf
PPTX
CRIPTOGRAFÍA BASICA EN POWER POINT - CS
PPTX
GESTION DE OPERACION Y MANTENIMIENTO DE CENTRALES DE GENERACION. (1).pptx
DOCX
Manual de Capacitación suelos trabajo edwin varon.docx
PPTX
EVALUACIÓN DE IMPACTO AMBIENTAL PARA PROYECTOS.pptx
PPTX
EXPOSICION MATERIA CALIDAD Y PRODUCTIVIDAD
PDF
electronica y seguridad informatica presentaciones
PPTX
psoriasis-220513045257-a03f59a9 (1).pptx
PPTX
1.definiciones para Trabajos en Caliente.pptx
DOCX
PETS-TRASLADO DE DESMONTE U OTROS MATERIALES.docx
PPTX
Unidad 15 Radiaciones ionizantes y No ionizantes.pptx
PDF
Libro-Bases de la Agroecologia- altieri 1999
PDF
REALITY "Vive como quieras ser" Un año sobre el terreno creando un escenario ...
PDF
SEMINARIO SOLDADURA FCAW 262024ACTUALEDIT (1) (1).pdf
PPTX
ETICA PROFESIONAL PARA MOTIVACION PERSONAL
PDF
Conceptos Básicos Presentación 12 de marzo.pdf
DOCX
P.CELI.10 OPERACIÓN DE BOMBA DE AGUA.docx
Tecnólogo en Automatización de Sistemas Mecatrónicos - ASM.pdf
PL05_TMI_M2 S1_Mantiene en funcionamiento equipos de control electrónico (1).pdf
FOP Modulo 1 FU 220520993216514651133.pptx
Uso básico del microcontrolador para medición y control - LibreTexts Español.pdf
CRIPTOGRAFÍA BASICA EN POWER POINT - CS
GESTION DE OPERACION Y MANTENIMIENTO DE CENTRALES DE GENERACION. (1).pptx
Manual de Capacitación suelos trabajo edwin varon.docx
EVALUACIÓN DE IMPACTO AMBIENTAL PARA PROYECTOS.pptx
EXPOSICION MATERIA CALIDAD Y PRODUCTIVIDAD
electronica y seguridad informatica presentaciones
psoriasis-220513045257-a03f59a9 (1).pptx
1.definiciones para Trabajos en Caliente.pptx
PETS-TRASLADO DE DESMONTE U OTROS MATERIALES.docx
Unidad 15 Radiaciones ionizantes y No ionizantes.pptx
Libro-Bases de la Agroecologia- altieri 1999
REALITY "Vive como quieras ser" Un año sobre el terreno creando un escenario ...
SEMINARIO SOLDADURA FCAW 262024ACTUALEDIT (1) (1).pdf
ETICA PROFESIONAL PARA MOTIVACION PERSONAL
Conceptos Básicos Presentación 12 de marzo.pdf
P.CELI.10 OPERACIÓN DE BOMBA DE AGUA.docx
Publicidad

Lightning connect dug_26_nov2015

  • 1. Lightning Connect DUG Granada 26 Nov 2015 Agustina García Odeian @agarciaodeian Alba Azcona Rivas @Alba_ARivas
  • 2. ¿Qué es Lightning Connect? ● Feature que permite visualizar tablas de datos alojadas en sistemas externos en Salesforce: ● No es un ETL (Extract - Transform - Load) ● Los datos NO se copian ● Se pueden leer bajo demanda y en TIEMPO REAL como si formaran parte de nuestro esquema ● Se pueden escribir si el datasource lo permite
  • 3. External datasource ● Para poder trabajar con Lightning Connect necesitamos un external datasource. Este puede ser un repositorio externo Google Drive, Sharepoint, Amazon, una base de datos… ● Hay que elegir un adapter para comunicarse con el datasource: Lightning Connect OData 2.0, OData 4.0 ● OData es un protocolo que permite el acceso a datos en tiempo real mediante peticiones REST. ● Puede estar autenticado (OAuth) o no. Vamos a crear un external datasource: - Nuestro datasource será un spreadsheet: https://goo.gl/auSswl - Setup → Develop → External Datasource - Type: OData 2.0 - URL: https://sheltered-badlands- 4799.herokuapp.com/InMemoryProducerExample.svc
  • 4. External datasource ● Custom Connector - Apex Connector Framework ●Provider class ●Connection class
  • 5. External objects ● Es un nuevo tipo de objeto que permite visualizar la información que tenemos en nuestro external datasource Vamos a crear un external object: - En la página de detalle del External Datasource, click en “Validate & Sync” - Sincroniza el objeto “HotelReservation” - Puedes ver que se ha creado un nuevo objeto en Setup → Develop External Objects.
  • 6. External objects ● ¿En qué se diferencia un external object de un objeto custom? ● Acaba en __x ● External Datasource: datasource desde el cual lo hemos creado ● Name field: indica cuál de los campos del objeto será el Name. ● Standard fields: ● External Id: identifica de forma unívoca al registro ● Display URL: URL a través de la cual consumimos el objeto
  • 7. Tabs y layouts ● Podemos crear una tab para el external object como hacemos normalmente. ● Podemos modificar el page layout, compact layout y search layouts del objeto, como si de un objeto normal se tratara. Vamos a crear una tab para nuestro external object: - Crea una tab para “HotelReservation” - Ve a la tab y modifica las columnas del layout para mostrar todos los campos
  • 9. External lookup ● Crea un lookup hacia un external object. Es decir, podemos crear un external lookup: ● De custom object hacia external object ● De external object hacia otro external object Vamos a crear un external lookup: - Crea un objeto que se llame “ParkingReservation”. Varias reservan de parking pueden estar asociadas a la misma reserva de habitación. - Crea un external lookup en ParkingReservation al external object “HotelReservation”. - Crea una tab para el objeto Parking Reservation - Crea una reserva de parking desde la nueva tab
  • 10. Indirect lookup ● Es un lookup desde un external object hacia un objecto custom o standard. ● El custom o standard object que vamos a utilizar tiene que tener un unique External Id. Vamos a crear un indirect lookup: - Vamos a utilizar el objeto Account para asociarlo con las personas que hacen las reservas. - Crea un external id en Account llamado “Guest Name” (Guest_Name__c). - Utiliza el script populate_accounts.txt para crear Accounts con los mismos datos que tenemos en nuestra tabla externa. - Edita el campo Guest Name de Hotel Reservation para que sea un indirect lookup hacia el campo Guest Name de Account. - Puedes ver el resultado viendo la lista de Hotel Reservations. - Edita el layout de Account para añadir la related list de Hotel Reservations.
  • 11. VF, Apex and SOQL ● Podemos crear código Apex para el external object, leer sus datos mediante SOQL y crear páginas Visualforce. Vamos a crear una página VF para poder imprimir facturas de las reservas: - Crea un controlador para Hotel Reservation (HotelRervationController.cls). - Crea una página VF que haga uso del controlador y cree la factura en PDF (reservation_invoice.page). - Crea un botón “Print Invoice” en la vista de detalle de Hotel Reservation que nos lleve a la página VF. - Añádelo al layout de la vista de detalle. - Comprueba el resultado.
  • 12. FieldSets ● También podemos crear FieldSets para un external object. Vamos a crear un fieldset y sobreescribir la página de detalle de Hotel Reservation con un VF que muestre este fieldset - Crea un fieldset para el external object Hotel Reservation (Reservation_Information). - Crea una página VF que haga uso del controlador y renderice los campos indicados en el fieldset (reservation_view.page). - Sobreescribe el comportamiento del boón view para que muestre la nueva página. - Comprueba el resultado.
  • 13. Aún hay más… ● También puedes visualizar tu objeto en Salesforce1, y como dijimos anteriormente modificar su compact layout para personalizar los campos que se muestran. ● Puedes seguir tus external objets a través de los feeds de Chatter (aunque sin Field History Tracking). ● Se puede acceder a ellos a través de las APIs SOAP y REST de SF. ● Puedes aplicar FLS a tus external objects.
  • 14. Writability ● Antes de la Winter 16 read-only. A partir de la Winter 16, writable!! ● Esto implica que a partir de la Winter 16, podemos utilizar operaciones DML en nuestro código Apex para escribir estos objetos. ● Diferencias en cuanto al momento en el que se commitean los datos. Para ello:
  • 15. Limitaciones ● Sólo podemos tener 100 external objects / org ● No podemos crear relaciones Master - Detail ●Workaround con Indirect y External Lookups ● No podemos crear Reports // Dashboards ● No se pueden crear Triggers ● No se pueden utilizar en fórmulas o workflow. ● Todo lo relacionado con sharing no aplica para los external objects.
  • 16. Más información ● Blog de Agustina: http://agarciaodeian.com/2015/10/20/external- objects-what-lightning-connect-offers-to-us/