Essentials Madrid 2015 - Trabajando con APEX y SOQL

14
Trabajando con Apex y SOQL Essentials Madrid – Dev Theatre, 28 Abril 2015

Transcript of Essentials Madrid 2015 - Trabajando con APEX y SOQL

Trabajando con Apex y SOQLEssentials Madrid – Dev Theatre, 28 Abril 2015

Alba AzconaSalesforce Developer at FinancialForce.com@Alba_Arivas

Linkedin: alba-azcona-rivas

Speaker

Agenda

• Introducción• Características del lenguaje APEX• ¿Qué es SOQL?• Operaciones DML• Aplicación práctica de APEX• ¿Cómo desarrollo en APEX?• Recapitulando• Próximos pasos• Preguntas

Introducción

• Un poco de historia …

– 1999 – 2007:

Point-and-click + Force.com API

– 2007 – Nace APEX

• APEX: lenguaje de programación que permite ejecutar código en los servidores de la plataforma Salesforce.

• Diseñado específicamente para expresar lógica de negocio y manipular datos bajo demanda en un entorno multitenant.

PROGRAMACIÓNDECLARATIVA

(Point-and-click )

POR CÓDIGO

UI TabsPage Layouts

…VisualForce

Business Logic

Formula FieldsValidation Rules

...

Apex Code

Características del lenguaje APEX

• Corre de forma nativa en el servidor. Compilado, debugging y

unit testing cloud

• Upgrades automáticos.

• Integrado con el resto de la plataforma

• Sintaxis similar a Java (OO, tipado, herencia…)

Similar a Java

Tipos de datos primitivos y colecciones

Estructuras de control

Gestión de excepciones

Diferente de Java

Case insensitive

Soporte para acceso a datos integrado (SOQL)

Soporte para operaciones CRUD (DML)

Características de APEX

• Una clase APEX

public class Car {

private Car__c myCar;

public Car() {myCar = new Car__c();

}

public String getName() {return myCar.Name;

}

public void setName(String carName) {myCar.Name = carName;

}}

¿Qué es SOQL?

• Lenguaje de consulta de base de datos basado en SQL

• Sintaxis especialmente diseñada para navegar relacciones

entre objetos

// Recuperar coches cuya marca es CitroenSELECT Name, Brand__r.Name FROM Car__c WHERE Brand__r.Name LIKE '%Citroen%'

// Recuperar coches cuya marca es de gama mediaSELECT Name, Brand__r.Name FROM Car__c WHERE Brand__c IN (SELECT Id FROM Brand__c WHERE Range__c = 'Medium')

//Recuperar qué coches pertenecen a cada marcaSELECT Name, (SELECT Name FROM Cars__r) FROM Brand__c

Car__c Brand__c

N 1

Operaciones DML• DML: son sentencias de manipulación de datos con APEX (create,

update, delete).

Brand__c myBrand = new Brand__c ();myBrand.Name = 'Nissan Almera';myBrand.Range__c = 'Medium';insert myBrand;

Brand__c otherBrand = [SELECT Name, Range__c FROM Brand__c WHERE Name = 'Citroen C4'];otherBrand.Range__c = 'Medium';update otherBrand;

Brand__c myBrand = [SELECT Id FROM Brand__c WHERE Name = 'Nissan Almera'];delete myBrand;

Aplicación práctica de APEX

• Tienda de coches de 2ª mano• APEX permite ejecutar lógica de negocio:

– Asociada a un controlador de una página visualforce (DEMO)

– Asociada a un trigger (DEMO)– Exponiéndola a través de una API– Procesos asíncronos– Unit tests– …

¿Cómo desarrollo en Apex?

• Developer Console• Force.com IDE (Eclipse plugin)• MavensMate (Sublime plugin)• Force.com CLI• …

Recapitulando…

• APEX es un lenguaje orientado a objetos muy potente especialmente diseñado para funcionar sobre Salesforce.

– Controllers– Triggers– Mucho más

• SOQL es el lenguaje de consulta integrado en Apex que nos permite atravesar relaciones de forma óptima.

• APEX soporta la realización de operaciones DML de creación, actualización y borrado de datos de forma transaccional y un sinfín de características más.

Próximos pasos

• Obtener una org de desarrollo: https://developer.salesforce.com/signup• Apex developer guide: https://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm• Force.com Apex Workbook: https://developer.salesforce.com/page/Force.com_workbook• Trailheadhttps://developer.salesforce.com/trailhead• Código de la demo:https://github.com/aazcona/simple-vehicles-store

Q & A

¿Preguntas?

Gracias