Apex es un lenguaje de programación orientado a objetos desarrollado por Salesforce para el desarrollo de aplicaciones en su plataforma de gestión de relaciones con clientes (CRM).
Características de Apex:
Orientado a Objetos:
- Apex es un lenguaje de programación orientado a objetos, lo que significa que permite a los desarrolladores definir clases, interfaces y métodos.
Fuertemente Tipado:
- Apex es un lenguaje fuertemente tipado, lo que significa que las variables deben declararse con un tipo de dato específico y no se permite cambiar el tipo una vez declarado.
Sintaxis Similar a Java y C#:
- La sintaxis de Apex es similar a la de Java y C#, lo que facilita la adopción para desarrolladores familiarizados con estos lenguajes.
Integración Profunda con Salesforce:
- Apex está diseñado para integrarse estrechamente con la plataforma Salesforce, permitiendo a los desarrolladores interactuar con la base de datos de Salesforce y otros servicios de la plataforma.
Ejecución en la Nube:
- El código Apex se ejecuta en la infraestructura de Salesforce, lo que significa que los desarrolladores no necesitan preocuparse por la gestión de servidores o la infraestructura subyacente.
Eventos y Triggers:
- Apex permite definir triggers, que son fragmentos de código que se ejecutan automáticamente en respuesta a eventos específicos en la base de datos de Salesforce, como inserciones, actualizaciones o eliminaciones de registros.
Usos Principales de Apex:
Desarrollo de Aplicaciones Personalizadas:
- Los desarrolladores pueden crear aplicaciones personalizadas que se ejecutan en la plataforma Salesforce, utilizando Apex para la lógica del negocio y Visualforce o Lightning Components para la interfaz de usuario.
Automatización de Procesos:
- Apex se utiliza para automatizar procesos de negocio complejos que no pueden ser manejados por las herramientas de automatización de Salesforce como Process Builder o Flows.
Integración con Otros Sistemas:
- Apex permite integrar Salesforce con otros sistemas y servicios a través de APIs web, lo que facilita la comunicación y la sincronización de datos entre diferentes plataformas.
Manipulación de Datos:
- Apex proporciona capacidades avanzadas para manipular datos en la base de datos de Salesforce, incluyendo la creación, lectura, actualización y eliminación de registros.
Ejemplo. Calcular el número de pulsaciones de una persona. Los datos de entrada serán:
- Edad.
- Peso y
- Nombre.
public class HeartRateCalculator { // Método para calcular el número de pulsaciones por minuto public static Double calculateHeartRate(Integer age, Double weight) { // Aplicar la fórmula para calcular las pulsaciones Double heartRate = 210 - (0.5 * age) - (0.11 * weight); return heartRate; } // Método para ejecutar algunos cálculos de ejemplo public static void runExample() { // Datos de prueba Integer[] ages = new Integer[]{25, 30, 40, 35}; Double[] weights = new Double[]{70.0, 60.0, 80.0, 55.0}; String[] names = new String[]{"Juan", "Maria", "Pedro", "Ana"}; // Iterar sobre los datos de prueba y calcular las pulsaciones for (Integer i = 0; i < ages.size(); i++) { Double heartRate = calculateHeartRate(ages[i], weights[i]); System.debug('Nombre: ' + names[i] + ', Edad: ' + ages[i] + ', Peso: ' + weights[i] + ', Pulsaciones: ' + heartRate); } } }
A primera vista parece ser un código hecho en Java. Apex posee una sintaxis similar a ese lenguaje por lo que a los programadores Java no podría causarles mucha dificultad aprender a usarlo.
Tipos de Datos Primitivos
Integer:
- Representa números enteros. Ejemplo:
Integer age = 25;
- Representa números enteros. Ejemplo:
Double:
- Representa números de punto flotante de doble precisión. Ejemplo:
Double price = 19.99;
- Representa números de punto flotante de doble precisión. Ejemplo:
Long:
- Representa números enteros de mayor tamaño que
Integer
. Ejemplo:Long distance = 123456789L;
- Representa números enteros de mayor tamaño que
Decimal:
- Representa números decimales de alta precisión. Útil para cálculos financieros. Ejemplo:
Decimal salary = 12345.67;
- Representa números decimales de alta precisión. Útil para cálculos financieros. Ejemplo:
String:
- Representa una cadena de caracteres. Ejemplo:
String name = 'John Doe';
- Representa una cadena de caracteres. Ejemplo:
Boolean:
- Representa un valor de verdadero o falso. Ejemplo:
Boolean isActive = true;
- Representa un valor de verdadero o falso. Ejemplo:
Date:
- Representa una fecha. Ejemplo:
Date today = Date.today();
- Representa una fecha. Ejemplo:
Time:
- Representa una hora sin fecha. Ejemplo:
Time now = Time.now();
- Representa una hora sin fecha. Ejemplo:
Datetime:
- Representa una fecha y una hora. Ejemplo:
Datetime now = Datetime.now();
- Representa una fecha y una hora. Ejemplo:
ID:
- Representa un identificador único de un registro en Salesforce. Ejemplo:
ID recordId = '001D000000IRFMA';
- Representa un identificador único de un registro en Salesforce. Ejemplo:
Colecciones
List
List<String> names = new List<String>{'Alice', 'Bob', 'Charlie'};
Set
Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3};
Map
Map<String, Integer> nameToAge = new Map<String, Integer>{'Alice' => 30, 'Bob' => 25};
sObject
Account acc = new Account(Name = 'Acme Corporation');
Enumerations (Enum)
public enum Weekdays { Monday, Tuesday, Wednesday, Thursday, Friday } Weekdays today = Weekdays.Monday;
Classes
public class Person { public String name; public Integer age; public Person(String name, Integer age) { this.name = name; this.age = age; } } Person p = new Person('John Doe', 30);
Ejemplo. Uso de tipos en Apex.
public class Example { public static void runExample() { // Primitivos Integer age = 25; Double price = 19.99; String name = 'John Doe'; Boolean isActive = true; Date today = Date.today(); Time now = Time.now(); Datetime currentTime = Datetime.now(); ID recordId = '001D000000IRFMA'; // Colecciones List<String> names = new List<String>{'Alice', 'Bob', 'Charlie'}; Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3}; Map<String, Integer> nameToAge = new Map<String, Integer>{'Alice' => 30, 'Bob' => 25}; // sObject Account acc = new Account(Name = 'Acme Corporation'); // Enum public enum Weekdays { Monday, Tuesday, Wednesday, Thursday, Friday } Weekdays today = Weekdays.Monday; // Custom class public class Person { public String name; public Integer age; public Person(String name, Integer age) { this.name = name; this.age = age; } } Person p = new Person('John Doe', 30); // Debugging outputs System.debug('Age: ' + age); System.debug('Price: ' + price); System.debug('Name: ' + name); System.debug('Is Active: ' + isActive); System.debug('Today: ' + today); System.debug('Current Time: ' + currentTime); System.debug('Record ID: ' + recordId); System.debug('Names: ' + names); System.debug('Unique Numbers: ' + uniqueNumbers); System.debug('Name to Age Map: ' + nameToAge); System.debug('Account: ' + acc); System.debug('Today is: ' + today); System.debug('Person: ' + p.name + ', Age: ' + p.age); } }
Esto solo es un vistazo al lenguaje, en próximas entregas continuaremos con el tema.
Enlaces:
https://www.salesforce.com/mx/
No hay comentarios:
Publicar un comentario