Trabajando con Apex y SOQL
Essentials Madrid – Dev Theatre, 28 Abril 2015
Alba Azcona
Salesforce 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ÓN
DECLARATIVA
(Point-and-click )
POR CÓDIGO
UI Tabs
Page Layouts
…
VisualForce
Business
Logic
Formula Fields
Validation 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 Citroen
SELECT Name, Brand__r.Name FROM Car__c WHERE Brand__r.Name LIKE '%Citroen%'
// Recuperar coches cuya marca es de gama media
SELECT 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 marca
SELECT 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
• Trailhead
https://developer.salesforce.com/trailhead
• Código de la demo:
https://github.com/aazcona/simple-vehicles-store
Q & A
¿Preguntas?
Gracias

Essentials Madrid 2015 - Trabajando con APEX y SOQL

  • 1.
    Trabajando con Apexy SOQL Essentials Madrid – Dev Theatre, 28 Abril 2015
  • 2.
    Alba Azcona Salesforce Developerat FinancialForce.com @Alba_Arivas Linkedin: alba-azcona-rivas Speaker
  • 3.
    Agenda • Introducción • Característicasdel lenguaje APEX • ¿Qué es SOQL? • Operaciones DML • Aplicación práctica de APEX • ¿Cómo desarrollo en APEX? • Recapitulando • Próximos pasos • Preguntas
  • 4.
    Introducción • Un pocode 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ÓN DECLARATIVA (Point-and-click ) POR CÓDIGO UI Tabs Page Layouts … VisualForce Business Logic Formula Fields Validation Rules ... Apex Code
  • 5.
    Características del lenguajeAPEX • 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)
  • 6.
    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; } }
  • 7.
    ¿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 Citroen SELECT Name, Brand__r.Name FROM Car__c WHERE Brand__r.Name LIKE '%Citroen%' // Recuperar coches cuya marca es de gama media SELECT 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 marca SELECT Name, (SELECT Name FROM Cars__r) FROM Brand__c Car__c Brand__c N 1
  • 8.
    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;
  • 9.
    Aplicación práctica deAPEX • 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 – …
  • 10.
    ¿Cómo desarrollo enApex? • Developer Console • Force.com IDE (Eclipse plugin) • MavensMate (Sublime plugin) • Force.com CLI • …
  • 11.
    Recapitulando… • APEX esun 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.
  • 12.
    Próximos pasos • Obteneruna 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 • Trailhead https://developer.salesforce.com/trailhead • Código de la demo: https://github.com/aazcona/simple-vehicles-store
  • 13.
  • 14.

Notas del editor