Essentials Madrid 2015 - Trabajando con APEX y SOQL
-
Upload
alba-azcona-rivas -
Category
Software
-
view
68 -
download
0
Transcript of Essentials Madrid 2015 - Trabajando con APEX y SOQL
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