En este post vamos a repasar algunos conceptos básicos de Apex en Salesforce.
Este contenido está dedicado para hacer repasos previos a un examen de certificación o a una entrevista técnica de trabajo. El formato que seguiremos será pregunta-respuesta. Pueden incluir esta información en flashcards para reforzar los conceptos que necesiten mejorar.
¿Tipos de Datos de Apex?
- Datos Primitivos
- Datos No Primitivos
¿Datos primitivos de Apex?
- Integer
- Boolean
- String
- Long
- Object
- Time
- Datetime
- Blob
- ID
¿Datos no primitivos de Apex?
- Colecciones: Mapas, Listas y Sets (Conjuntos).
- Enum: Conjunto de constantes.
- Objeto Class (Wrapper Class)
- sObjects
¿Cuáles son los Modificadores de Acceso de las clases y métodos de Apex?
- Global: Para referenciar a un método o clase afuera de la aplicación de Salesforce mediante llamadas SOAP o código Apex.
- Public: Para acceder a cualquier clase de Apex en la misma aplicación o namespace.
- Protected: Para hacer visible a una clase que hereda a otra clase de Apex.
- Private: Esta es por defecto. Para hacer visible a un método dentro de la misma clase de apex.
¿Para qué usar una Interfaz de Apex en Salesforce?
Para crear plantillas de una clase con los mismos métodos. Así podemos separar la lógica de la declaración de un método al implementarlo.
5 cosas sobre las Interfaces de Apex en Salesforce
- En la Interfaz sólo podemos declarar los métodos. Su implementación debe ser escrita en la clase que implementa a la interfaz.
- Para implementar una interfaz en una clase de Apex, usa la palabra reservada implements.
- Es posible implementar varias interfaces en una misma clase de Apex.
- Los modificadores de acceso en la implementación de los métodos de una Interfaz, sólo pueden ser Public o Global.
- No podemos instanciar un objeto de una interfaz.
¿Cuál es la característica principal de las relaciones SOQL en Salesforce?
Las relaciones SOQL pueden ser transversales, es decir, de padre a hijo y de hijo a padre.
¿2 tipos de relaciones SOQL?
- Child-to-parent: Se realizan utilizando el operador punto (.)
- Parent-to-child: Se realizan usando una sub-query. Por ejemplo: SELECT Name, (SELECT LastName FROM Contacts) FROM Account
¿2 Consideraciones sobre las relaciones transversales SOQL?
- El hijo de un objeto estándar, en una relación parent-to-child, debe estar en plural.
- Si el objeto es personalizado, usar __r en el hijo de la relación.
¿Qué es un Campo Polifórmico?
Es un campo que puede referenciar diferentes tipos de sObjetos. Por ejemplo: Los campos Who or What del objeto Task, Contact o Lead.
4 Cosas sobre los SOQL FOR LOOPS
- Son un método eficiente para gestionar largos conjuntos de datos.
- Sintáxis: for(Datatype var : [SOQL QUERY]) { //code }
- Si usamos una lista de sObjects, podemos procesar los registros en batches de 200.
- Son útiles para evitar el límite de heap size.
¿Cuándo usar la clase Database?
Usualmente para realizar operaciones DML incluyendo un proceso parcial. Es decir, permitiendo errores y gestionándolos en el proceso.
Sintáxis: Database.DMLStatement(records, allOrNone) //Si allOrNone es falso, se permite un proceso parcial.
¿4 operaciones de la clase Database de Apex en Salesforce?
- ConvertLead: Para convertir un lead en una cuenta de negocio, contacto o oportunidad mediante código.
- EmptyRecycleBin: Para eliminar permanentemente registros de la papelera (Recycle Bin).
- Rollback: Restaura la base de datos desde un punto (savepoint).
- SetSavePoint: Para crear una variable savepoint que nos permitirá hacer un rollblack a este punto.
Información Relacionada:
Si quieres aprender más sobre este tema, te invito a ver estos posts sobre Apex del Blog:
- Tipos de Datos en Apex
- Declarar Métodos en Apex
- Clases en Apex
- Controlar el Flujo de Apex
- Interfaces en Apex