lightning connect dug_26_nov2015

17
Lightning Connect DUG Granada 26 Nov 2015 Agustina García Odeian @agarciaodeian Alba Azcona Rivas @Alba_ARivas

Upload: alba-azcona-rivas

Post on 12-Apr-2017

302 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Lightning connect dug_26_nov2015

Lightning ConnectDUG Granada 26 Nov 2015

Agustina García Odeian @agarciaodeianAlba Azcona Rivas @Alba_ARivas

Page 2: Lightning connect dug_26_nov2015

¿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

Page 3: Lightning connect dug_26_nov2015

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

Page 4: Lightning connect dug_26_nov2015

External datasource● Custom Connector - Apex Connector Framework

●Provider class●Connection class

Page 5: Lightning connect dug_26_nov2015

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.

Page 6: Lightning connect dug_26_nov2015

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

Page 7: Lightning connect dug_26_nov2015

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

Page 8: Lightning connect dug_26_nov2015

Demo

Page 9: Lightning connect dug_26_nov2015

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

Page 10: Lightning connect dug_26_nov2015

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.

Page 11: Lightning connect dug_26_nov2015

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.

Page 12: Lightning connect dug_26_nov2015

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.

Page 13: Lightning connect dug_26_nov2015

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.

Page 14: Lightning connect dug_26_nov2015

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:

Page 15: Lightning connect dug_26_nov2015

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.

Page 16: Lightning connect dug_26_nov2015

Más información● Blog de Agustina: http://agarciaodeian.com/2015/10/20/external-objects-what-lightning-connect-offers-to-us/

Page 17: Lightning connect dug_26_nov2015

Gracias por venir!!