¿Qué es Apex en Salesforce?
Apex es un lenguaje de programación orientado a objetos y fuertemente tipado desarrollado por Salesforce para construir Software como Servicio (SaaS) y Gestión de Relaciones con Clientes (CRM). Apex ayuda a los desarrolladores a crear aplicaciones SaaS de terceros y añadir lógica empresarial a los eventos del sistema proporcionando soporte de base de datos de back-end e interfaces cliente-servidor. Apex ayuda a los desarrolladores a añadir lógica empresarial a los eventos del sistema como clics de botón, actualizaciones de registros relacionados y páginas de Visualforce. Apex tiene una sintaxis similar a Java. Regístrese en Salesforce para aprender cómo funciona el CRM
Características del lenguaje de programación Apex
Aquí están las características importantes de Salesforce Apex:
1. Apex es un lenguaje insensible a mayúsculas y minúsculas.
2. Puede realizar operaciones DML como INSERT, UPDATE, UPSERT, DELETE en registros de sObject utilizando apex.
3. Puede consultar registros de sObject utilizando SOQL(salesforce object query language) y SOSL(salesforce object search language) en apex.
4. Le permite crear una prueba unitaria y ejecutarla para verificar la cobertura y eficiencia del código en apex.
5. Apex se ejecuta en un entorno multiinquilino y Salesforce ha definido algunos límites de gobernador que impiden que un usuario controle los recursos compartidos.
6. Cualquier código que sobrepase el límite de gobernador de Salesforce falla, aparece un error.
7. El objeto Salesforce puede ser utilizado como un tipo de dato en apex. Por ejemplo – Account acc = new Account();, aquí Account es un objeto estándar de Salesforce.
8. Apex se actualiza automáticamente con cada lanzamiento de Salesforce.
¿Cuándo debe el desarrollador elegir Apex?
El código Apex solo debe ser escrito si un escenario empresarial es demasiado complejo y no puede ser implementado utilizando la funcionalidad predefinida proporcionada por Salesforce. A continuación se presentan algunos escenarios en los que se necesita escribir código Apex:
1. Para crear servicios web que integren Salesforce con otras aplicaciones.
2. Para implementar validación personalizada en sobjects.
3. Para ejecutar lógica Apex personalizada cuando se realiza una operación DML.
4. Para implementar funcionalidad que no se puede implementar utilizando la funcionalidad de flujos y creadores de procesos existentes.
5. Para configurar servicios de correo electrónico, es necesario incluir el procesamiento de los contenidos, cabeceras y archivos adjuntos del correo electrónico utilizando código apex.
Estructura de trabajo de Apex
Ahora, en este tutorial de Apex, aprenderemos sobre la estructura de trabajo de Apex:
A continuación se muestra el flujo de acciones para un código apex:
Acción del desarrollador: Todo el código apex escrito por un desarrollador se compila en una serie de instrucciones que puede ser entendida por el intérprete de tiempo de ejecución de apex cuando el desarrollador guarda el código en la plataforma y estas instrucciones luego se guardan como metadatos en la plataforma.
Acción del usuario final: Cuando el evento del usuario ejecuta un código apex, el servidor de la plataforma obtiene las instrucciones compiladas de los metadatos y las ejecuta a través del intérprete de apex antes de devolver el resultado.
Estructura de trabajo de Apex
Sintaxis de Apex
Declaración de variable
Como apex es un lenguaje fuertemente tipado, es obligatorio declarar una variable con el tipo de dato en apex. Por ejemplo: contacto con = nuevo contacto(); aquí la variable con está declarada con contacto como tipo de dato.
Consulta SOQL
SOQL significa salesforce object query language. SOQL se utiliza para recuperar registros de sObject de la base de datos de Salesforce. Por ejemplo – Account acc = [seleccionar id, nombre de la cuenta Límite 1]; La consulta anterior recupera el registro de cuenta de la base de datos de Salesforce.
Declaración de bucle
La declaración de bucle se utiliza para iterar sobre los registros en una lista. El número de iteraciones es igual al número de registros en la lista. Por ejemplo: list<Account>listOfAccounts = [select id, name from account limit 100]; // iteración sobre la lista de cuentas for(Account acc: listOfAccounts){ //su lógica } En el fragmento de código anterior, listOfAccounts es una variable de tipo de lista.
Declaración de control de flujo
La declaración de control de flujo es beneficiosa cuando se desea ejecutar algunas líneas de código basadas en algunas condiciones. Por ejemplo: list<Account>listOfAccounts = [select id, name from account limit 100]; // ejecutar la lógica si el tamaño de la lista de cuentas es mayor que cero si(listOfAccounts.size() >0){ //su lógica }
Declaración DML
DML significa lenguaje de manipulación de datos. Las declaraciones DML se utilizan para manipular datos en la base de datos de Salesforce. Por ejemplo – Account acc = nueva cuenta(Nombre = ‘ Cuenta de prueba’); Insertar acc; //Declaración DML para crear un registro de cuenta.
Entorno de desarrollo de Apex
Ahora, en este tutorial de programación de Apex, aprenderemos sobre el entorno de desarrollo de Apex:
El código Apex se puede desarrollar tanto en el entorno de prueba y edición de desarrollador de Salesforce. Es una práctica recomendada desarrollar el código en el entorno de prueba y luego desplegarlo al entorno de producción.
Herramientas de desarrollo de código Apex:
Las siguientes son las tres herramientas disponibles para desarrollar código apex en todas las ediciones de Salesforce.
Consola de desarrolladores de Force.com
IDE de Force.com
Editor de código en la interfaz de usuario de Salesforce
Tipo de datos en Apex
Los siguientes son los tipos de datos admitidos por apex:
Primitivos
Integer, Double, Long, Date, Date Time, String, ID y Boolean se consideran tipos de datos primitivos.
Todos los tipos de datos primitivos se pasan por valor, no por referencia.
Colecciones
Tres tipos de colecciones están disponibles en Apex
Lista: es una colección ordenada de primitivos, sObjetos, colecciones u objetos de Apex basada en índices
Conjunto: una colección desordenada de primitivos únicos
Mapa: es una colección de claves primitivas únicas que se asignan a valores individuales que pueden ser primitivos, sObjetos, colecciones u objetos de Apex.
sObject Esto es un tipo de dato especial en Salesforce. Es similar a una tabla en SQL y contiene campos que son similares a columnas en SQL.
Enum Enum es un tipo de dato abstracto que almacena un valor de un conjunto finito de identificadores especificados.
Clases
Objetos Se refiere a cualquier tipo de dato compatible en Apex.
Interfaces de Apex
A continuación se muestran los especificadores de acceso admitidos por Apex:
Público
Este especificador de acceso da acceso a una clase, método, variable para ser utilizado por un apex dentro de un espacio de nombres.
Privado
Este especificador de acceso da acceso a una clase, método, variable para ser utilizado localmente o dentro de la sección de código en la que está definido.
Todos los métodos, variables que no tienen ningún especificador de acceso definido tienen el especificador de acceso predeterminado de privado.
Protegido
Este especificador de acceso da acceso a un método, variable para ser utilizado por cualquier clase interna dentro de la clase de Apex definida.
Global
Este especificador de acceso da acceso a una clase, método, variable para ser utilizado por un apex dentro de un espacio de nombres y fuera del espacio de nombres. Es una buena práctica no utilizar la palabra clave global hasta que sea necesario.
Palabras clave en Apex
Con compartir
Si una clase se define con esta palabra clave, entonces todas las reglas de intercambio se aplican al usuario actual y si esta palabra clave está ausente, entonces el código se ejecuta bajo el contexto del sistema.
Sin compartir
Si una clase se define con esta palabra clave, entonces todas las reglas de intercambio se aplican al usuario actual no están vigentes.
Estático
Una variable, Método definido con la palabra clave static se inicializa una vez y se asocia con la clase. Las variables estáticas, los métodos pueden ser llamados por el nombre de la clase directamente sin crear la instancia de una clase.
Final
Una constante, Método definido con la palabra clave final no puede ser anulado. Por ejemplo: public class myCls { static final Integer INT_CONSTAN = 10; } Si intenta anular el valor de esta variable INT_CONSTANTE, obtendrá una excepción – System.FinalException: La variable final ya ha sido inicializada.
Volver
Esta palabra clave devuelve un valor de un método. Por ejemplo: public String getName() { return ‘Prueba’ ; }
Nulo
Define una constante nula y puede ser asignada a una variable. Por ejemplo Boolean b = null;
Virtual
Si una clase se define con una palabra clave virtual, puede ser extendida y anulada.
Abstracto
Si una clase se define con la palabra clave abstracta, debe contener al menos un método con la palabra clave abstracta y ese método sólo debe tener una firma. Por ejemplo public abstract class MyAbstrtactClass { abstract Integer myAbstractMethod1(); }
String de Apex
Una cadena es un conjunto de caracteres sin límites de caracteres. Por ejemplo: String name=»Prueba»; Hay varios métodos integrados proporcionados por la clase String en salesforce. A continuación se muestran algunas de las funciones utilizadas con frecuencia y mayormente utilizadas:
abreviar(maxWidth)
Este método trunca una cadena a la longitud especificada y la devuelve si la longitud de la cadena dada es más larga…
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073