Apex: descripción general
¿Qué es Apex?
Apex es un lenguaje propietario desarrollado por Salesforce.com. Según la definición oficial, Apex es un lenguaje de programación orientado a objetos fuertemente tipado que permite a los desarrolladores ejecutar las declaraciones de control de flujo y transacciones en el servidor de la plataforma Force.com junto con llamadas a la API de Force.com.
Tiene una sintaxis similar a Java y actúa como procedimientos almacenados de base de datos. Permite a los desarrolladores agregar lógica empresarial a la mayoría de los eventos del sistema, incluidos los clics en los botones, las actualizaciones de registros relacionados y Visualforce.pages.ApexEl código puede iniciarse mediante solicitudes de servicio web y desde desencadenantes en objetos. Apex se incluye en Performance Edition, Unlimited Edition, Enterprise Edition y Developer Edition.
Características de Apex como lenguaje
Analicemos ahora las características de Apex como lenguaje:
Integrado
Apex ha incorporado soporte para operaciones DML como INSERT, UPDATE, DELETE y también manejo de excepciones DML. Tiene soporte para el manejo de consultas SOQL y SOSL en línea que devuelve el conjunto de registros sObject. Estudiaremos sObject, SOQL, SOSL en detalle en capítulos futuros.
Java como la sintaxis y fácil de usar
Apex es fácil de usar ya que usa la sintaxis como Java. Por ejemplo, declaración de variable, sintaxis de bucle y declaraciones condicionales.
Fuertemente integrado con datos
Apex está enfocado en datos y diseñado para ejecutar múltiples consultas y declaraciones DML juntas. Emite múltiples declaraciones de transacciones en la base de datos.
Fuertemente mecanografiado
Apex es un lenguaje fuertemente tipado. Utiliza una referencia directa a objetos de esquema como sObject y cualquier referencia no válida falla rápidamente si se elimina o si tiene un tipo de datos incorrecto.
Entorno multiusuario
Apex se ejecuta en un entorno multiusuario. En consecuencia, el motor de tiempo de ejecución de Apex está diseñado para protegerse de cerca contra el código fuera de control, evitando que monopolice los recursos compartidos. Cualquier código que viole los límites falla con mensajes de error fáciles de entender.
Actualiza automáticamente
Apex se actualiza como parte de las versiones de Salesforce. No tenemos que actualizarlo manualmente.
Prueba fácil
Apex proporciona soporte integrado para la creación y ejecución de pruebas unitarias, incluidos los resultados de las pruebas que indican cuánto código se cubre y qué partes de su código pueden ser más eficientes.
¿Cuándo debe el desarrollador elegir Apex?
Apex debe usarse cuando no podemos implementar la compleja funcionalidad comercial utilizando las funcionalidades predefinidas y existentes listas para usar. A continuación, se muestran los casos en los que necesitamos utilizar apex sobre la configuración de Salesforce.
Aplicaciones de Apex
Podemos usar Apex cuando queramos:
Crear servicios Web integrando otros sistemas.
Cree servicios de correo electrónico para correo electrónico masivo o configuración de correo electrónico.
Realice una validación compleja sobre varios objetos al mismo tiempo y también una implementación de validación personalizada.
Cree procesos comerciales complejos que no sean compatibles con la funcionalidad o los flujos de flujo de trabajo existentes.
Cree lógica transaccional personalizada (lógica que ocurre en toda la transacción, no solo con un solo registro u objeto) como usar los métodos de la base de datos para actualizar los registros.
Realice alguna lógica cuando se modifique un registro o modifique el registro del objeto relacionado cuando haya algún evento que haya provocado el disparo del disparador.
Estructura de trabajo de Apex
Como se muestra en el diagrama a continuación (Referencia: Documentación para desarrolladores de Salesforce), Apex se ejecuta completamente bajo demanda Plataforma Force.com
Flujo de acciones
Hay dos secuencias de acciones cuando el desarrollador guarda el código y cuando un usuario final realiza alguna acción que invoca el código Apex como se muestra a continuación:
Acción del desarrollador
Cuando un desarrollador escribe y guarda código Apex en la plataforma, el servidor de aplicaciones de la plataforma primero compila el código en un conjunto de instrucciones que el intérprete de tiempo de ejecución de Apex puede entender y luego guarda esas instrucciones como metadatos.
Acción del usuario final
Cuando un usuario final activa la ejecución de Apex, al hacer clic en un botón o al acceder a una página de Visualforce, el servidor de aplicaciones de la plataforma recupera las instrucciones compiladas de los metadatos y las envía a través del intérprete en tiempo de ejecución antes de devolver el resultado. El usuario final no observa diferencias en el tiempo de ejecución en comparación con la solicitud de plataforma de aplicación estándar.
Dado que Apex es el lenguaje propietario de Salesforce.com, no es compatible con algunas funciones que sí admite un lenguaje de programación general. A continuación se muestran algunas funciones que Apex no admite:
No puede mostrar los elementos en la interfaz de usuario.
No puede cambiar la funcionalidad estándar proporcionada por SFDC y tampoco es posible evitar la ejecución de la funcionalidad estándar.
Tampoco es posible crear varios hilos, ya que podemos hacerlo en otros idiomas.
Comprensión de la sintaxis de Apex
El código Apex generalmente contiene muchas cosas con las que podríamos estar familiarizados en otros lenguajes de programación.
Declaración de variable
Como lenguaje fuertemente tipado, debe declarar cada variable con tipo de datos en Apex. Como se ve en el siguiente código (captura de pantalla a continuación), lstAcc se declara con el tipo de datos como Lista de cuentas.
Consulta SOQL
Esto se utilizará para recuperar los datos de la base de datos de Salesforce. La consulta que se muestra en la captura de pantalla a continuación está obteniendo datos del objeto Cuenta.
Declaración de bucle
Esta declaración de bucle se utiliza para iterar sobre una lista o para iterar sobre un fragmento de código durante un número específico de veces. En el código que se muestra en la captura de pantalla a continuación, la iteración será la misma que la cantidad de registros que tenemos.
Declaración de control de flujo
La instrucción If se utiliza para el control de flujo en este código. En función de cierta condición, se decide si se ejecuta o se detiene la ejecución de la pieza de código en particular. Por ejemplo, en el código que se muestra a continuación, verifica si la lista está vacía o contiene registros.
Declaración DML
Realiza la operación de inserción, actualización, actualización y eliminación de registros en los registros de la base de datos. Por ejemplo, el código que se proporciona a continuación ayuda a actualizar Cuentas con un nuevo valor de campo.
A continuación, se muestra un ejemplo de cómo se verá un fragmento de código de Apex. Vamos a estudiar todos estos conceptos de programación de Apex más a fondo en este tutorial.