Tutorial para desarrolladores de Salesforce: Introducción a la programación de Salesforce



Este blog tutorial explica los diferentes conceptos de programación como visualforce y apex que debe conocer para comenzar su carrera como desarrollador de Salesforce.

¿Está aspirando a ser desarrollador de aplicaciones de software? ¿Quiere crear su propia aplicación en la plataforma Force.com? Si su respuesta a estas preguntas es afirmativa, definitivamente debería considerar convertirse en desarrollador de Salesforce.

En mis blogs anteriores, he hablado sobre , Certificaciones de Salesforce y también te mostró a crear una aplicación personalizada utilizando las opciones declarativas disponibles en Salesforce. En este blog, discutiré sobre las opciones programáticas disponibles en Salesforce para desarrollar su aplicación.





Arquitectura MVC

Antes de sumergirme en la creación de una aplicación utilizando Visualforce y Apex, primero hablaré sobre la arquitectura de Salesforce Model-View-Controller. A continuación se muestra un diagrama que describe la arquitectura Modelo-Vista-Controlador de Salesforce junto con los diferentes componentes de Salesforce.

mvc - desarrollador de salesforce - edureka



Modelo: El modelo son sus objetos de datos, campos y relaciones de Salesforce. Se compone de objetos estándar (cuenta, oportunidad, etc.) y personalizados (objetos que usted crea).

Ver: La vista representa la presentación de los datos, es decir, la interfaz de usuario. En Salesforce, la vista se compone de las páginas, componentes, diseños de página y pestañas de Visualforce.

Controlador: El controlador es el componente básico de la lógica de la aplicación real. Puede realizar acciones siempre que el usuario interactúe con visualforce.



Salesforce en acción

Para ser un desarrollador de Salesforce, primero debe saber cómo funcionan las aplicaciones de Salesforce. A continuación se muestra una imagen que le brinda una imagen completa de Salesforce en acción. El cliente o usuario solicita o proporciona información a la aplicación Salesforce. Por lo general, esto se hace mediante Visualforce. Esta información luego se pasa a la capa lógica de la aplicación, escrita en Apex. Dependiendo de la información, los datos se insertan o se eliminan de la base de datos. Salesforce también le brinda la opción de utilizar servicios web para acceder directamente a la lógica de la aplicación.

Un desarrollador de Salesforce puede abordar el desarrollo utilizando las opciones declarativas o programáticas. A continuación se muestra una imagen que le brinda detalles sobre los enfoques declarativos y programáticos disponibles en cada interfaz de usuario, lógica comercial y capa de modelo de datos. Para construir su interfaz de usuario, puede usar el enfoque declarativo que usa diseños de página y tipos de registros o usar un enfoque programático como páginas y componentes de Visualforce. Generalmente, debe usar el enfoque programático solo cuando no pueda lograr la interfaz de usuario necesaria usando el enfoque declarativo. Para desarrollar la capa de lógica empresarial de su aplicación, puede utilizar las opciones declarativas de Salesforce de flujo de trabajo, reglas de validación y procesos de aprobación o utilizar un enfoque programático como activadores, controladores y clases. Para acceder al modelo de datos, puede utilizar el enfoque declarativo utilizando objetos, campos y relaciones. También puede acceder al modelo de datos mediante programación utilizando la API de metadatos, la API REST y la API masiva.

Hemos visto cómo funcionan las aplicaciones de Salesforce, la arquitectura MVC utilizada para el desarrollo en Salesforce y los dos enfoques diferentes que están disponibles para un desarrollador de Salesforce. Ahora, permítanme hablar sobre Visualforce y Apex.

Visualforce

Para crear aplicaciones en la plataforma Salesforce, necesita saber cómo desarrollar la interfaz de usuario y escribir la lógica de la aplicación. Como desarrollador de Salesforce, puede desarrollar la interfaz de usuario utilizando Visualforce. Visualforce es el marco de la interfaz de usuario para la plataforma Force.com. De la misma forma que puede usar el marco javascript Angular-JS para crear interfaces de usuario para sus sitios web, puede usar Visualforce para diseñar y crear interfaces de usuario para sus aplicaciones de Salesforce.

Puede utilizar Visualforce siempre que necesite crear páginas personalizadas. Algunos ejemplos de situaciones en las que puede utilizar Visualforce son:

  • Para crear plantillas de correo electrónico
  • Desarrollar la interfaz de usuario móvil
  • Para generar PDF de datos almacenados en Salesforce
  • Para incrustarlos en sus diseños de página estándar
  • Para anular una página estándar de Salesforce
  • Desarrollar pestañas personalizadas para su aplicación

Una página de Visualforce consta de dos elementos principales:

  • Marcado de Visualforce: el marcado de Visualforce incluye las etiquetas de Visualforce, HTML, JavaScript o cualquier otro código habilitado para la web.
  • Un controlador de Visualforce: el controlador de Visualforce contiene las instrucciones que especifican lo que sucede cuando un usuario interactúa con un componente. El controlador de Visualforce está escrito utilizando el lenguaje de programación Apex.

Puede echar un vistazo a un código de página de Visualforce simple junto con los diferentes componentes a continuación:

A continuación, le he mostrado los pasos para escribir una página de Visualforce simple para mostrar países y sus valores de moneda:

Paso 1: Desde Configuración, ingrese Páginas de Visualforce en el cuadro Búsqueda rápida, luego seleccione Páginas de Visualforce y haga clic en Nuevo.

Paso 2: En el editor, agregue el siguiente código para mostrar el país y su valor de moneda:

Apéndice

Una vez que haya terminado de desarrollar la interfaz de usuario, como desarrollador de Salesforce, necesita saber cómo agregar lógica personalizada a su aplicación. Puede escribir código de controlador y agregar lógica personalizada a su aplicación utilizando el lenguaje de programación Apex. Apex es un lenguaje de programación orientado a objetos que le permite ejecutar declaraciones de control de flujo y transacciones en la plataforma Force.com. Si ha utilizado el lenguaje de programación Java antes, puede aprender fácilmente Apex. La sintaxis de Apex es un 70% similar a la de Java.

Puede utilizar Apex siempre que desee agregar lógica personalizada a su aplicación. Algunos ejemplos de situaciones en las que puede utilizar Apex son:

  • Cuando desee agregar servicios web y de correo electrónico a su aplicación
  • Cuando desee realizar procesos comerciales complejos
  • Cuando desee agregar reglas de validación complejas a su aplicación
  • Cuando desee agregar una lógica personalizada en operaciones como guardar un registro

A continuación se muestra una captura de pantalla del código Apex junto con sus diferentes componentes como declaración de bucle, declaración de flujo de control y consulta SOQL:

Ahora que hemos entendido qué es Apex y cuándo usarlo, permítanme profundizar en la programación de Apex.

Programación en Apex

Si ha entendido los conceptos descritos anteriormente, entonces se encuentra a la mitad de su viaje para convertirse en un desarrollador de Salesforce. En esta sección, profundizaré en Apex proporcionándole información sobre los diferentes tipos de datos y variables, diferentes formas de recuperar datos de la base de datos y mostrándole cómo escribir una clase y un método.

Tipos de datos y variables

Salesforce le ofrece 4 tipos de datos y variables diferentes. La siguiente tabla le proporciona información sobre cada uno de los 4 tipos de datos:

Tipos de datos y variables Descripción Ejemplo
PrimitivoLos tipos de datos primitivos en Salesforce incluyen booleano, fecha, entero, objeto, cadena y hora.Booleano isSunny = verdadero

Entero I = 1

String myString = 'Hola mundo'

sObjectssObject se refiere a cualquier objeto que se pueda almacenar en la base de datos.Cuenta a = nueva cuenta ()

MyCustomObj__c obj = nuevo MyCustomObj__c ()

ColeccionesApex tiene los siguientes tipos de colecciones:

  • Liza
  • Mapas
  • Conjuntos
Lista var_lst = nueva Lista ()

Set setOne = nuevo Set ()

Mapa var_map = nuevo mapa ()

EnumeracionesLas enumeraciones son tipos de datos abstractos con valores que adoptan un conjunto finito de identificadores.Enumeración pública Temporadas {Invierno, Primavera, Verano, Otoño}


SOQL y SOSL

El desarrollo de aplicaciones de software requiere que sepa cómo insertar y recuperar datos de bases de datos. En Salesforce, puede recuperar datos de las bases de datos mediante SOQL y SOSL. Si desea ser un desarrollador de Salesforce, debe conocer ambos lenguajes de consulta. Le he proporcionado una explicación detallada de estos idiomas a continuación:

  • SOQL son las siglas de Salesforce Object Query Language. Usando declaraciones SOQL, puede recuperar datos de la base de datos como una lista de sObjects, un solo sObject o un método Integer para contar. Puede pensar en SOQL como un equivalente de una consulta SELECT SOQL. He proporcionado un ejemplo de una consulta SOQL a continuación:

List accList = [SELECT ID, Name FROM Account WHERE Name = ”YourName”]

  • SOSL son las siglas de Salesforce Object Search Language. Puede utilizar sentencias SOSL para recuperar una lista de sObjects, donde cada lista contiene los resultados de la búsqueda para un tipo de sObject en particular. Puede pensar en SOSL como un equivalente a una consulta de búsqueda en una base de datos. He proporcionado un ejemplo de una consulta SOSL a continuación:

ListasearchList = [ENCONTRAR 'mapa *' EN TODOS LOS CAMPOS DE VUELTA Cuenta (Id, Nombre), Contacto, Oportunidad, Cliente potencial]

Puede usar SOQL cuando sepa en qué objeto residen los datos y usar SOSL cuando no sepa el nombre del objeto donde residen los datos.

Clases y métodos

Como en cualquier otro lenguaje de programación orientado a objetos, puede desarrollar clases y métodos usando Apex. Puede pensar en una clase como un plano con el que se crean y utilizan objetos individuales. Puede pensar en un método como un subprograma, que actúa sobre los datos y devuelve un valor. Le proporcioné la sintaxis para escribir una clase y un método a continuación:

Ahora le mostraré cómo agregar una clase y un método en Apex:

Paso 1: Desde la configuración, ingrese Apex Classes en QuickFind Box, luego seleccione Apex Classes y haga clic en New.

Paso 2: En el editor, agregue la siguiente definición de clase:

Clase pública HelloWorld {

marco basado en datos en selenio

}

Paso 3: Agregue una definición de método entre los corchetes de apertura y cierre de la clase:

Public static void helloWorldMethod (Country__c [] countries) {

Para (Country__c country: countries) {

country.currency_value__c * = 1.5

}

}

Etapa 4: Haga clic en Guardar y debería tener su clase completa como:

Clase pública HelloWorld {

Public static void helloWorldMethod (Country__c [] countries) {

Para (Country__c country: countries) {

country.currency_value__c * = 1.5

}

}

Puede utilizar la sintaxis y el ejemplo que se muestran arriba para desarrollar sus propias clases y métodos para su aplicación de Salesforce. Para convertirse en un desarrollador de Salesforce, necesita saber más que solo escribir clases y métodos. En las próximas secciones, discutiré temas que hacen que el desarrollo de aplicaciones en la plataforma Salesforce sea simple y fácil.

Disparadores

Todo desarrollador de Salesforce debe conocer el concepto de activadores de Salesforce. Es posible que haya encontrado desencadenadores anteriormente mientras trabajaba con otras bases de datos. Los activadores no son más que programas almacenados que se invocan cuando realiza acciones antes o después de cambios en los registros de Salesforce. Por ejemplo, los desencadenadores se pueden ejecutar antes de que se realice una operación de inserción o cuando se realice una operación de actualización. Hay dos tipos de desencadenantes:

  • Antes del gatillo - Puede utilizar los activadores anteriores para actualizar o validar los valores de registro antes de que se guarden en la base de datos.
  • Después del gatillo - Puede utilizar los desencadenadores posteriores para acceder a los valores de campo establecidos por el sistema y para afectar los cambios en otros registros.

Los disparadores se ejecutan antes o después de las siguientes operaciones:

  • Insertar
  • Actualizar
  • Eliminar
  • Vamos
  • Ups
  • Recuperar

Le mostraré cómo agregar un disparador en ápice agregando un disparador para el objeto Country que ha visto en la clase anterior:

Paso 1: Desde la configuración de administración de objetos para el país, vaya a Activadores y haga clic en Nuevo.

Paso 2: En el editor de disparadores, agregue la siguiente definición de disparador:

Activar HelloWorldTrigger en Country__c (antes de insertar) {

Country__c countries = Trigger.new

HelloWorld.helloWorldMethod (países)

}

El código anterior actualizará la moneda de su país antes de cada inserción en la base de datos.

Límites del gobernador

Es posible que sepa que Salesforce funciona en una arquitectura de múltiples inquilinos, esto significa que los recursos se comparten entre diferentes clientes. Para asegurarse de que ningún cliente monopolice los recursos compartidos, el motor de tiempo de ejecución de Apex hace cumplir estrictamente los límites reguladores. Si su código Apex alguna vez excede un límite, el gobernador esperado emite una excepción en tiempo de ejecución que no se puede manejar. Por lo tanto, como desarrollador de Salesforce, debe tener mucho cuidado al desarrollar su aplicación.

Operaciones masivas

Como desarrollador de Salesforce, siempre debe asegurarse de que su código mantenga los límites reguladores. Para asegurarse de que Apex se adhiera a los límites del regulador, debe utilizar el patrón de diseño de llamadas masivas. Una operación masiva se refiere a comprometer más de un registro cuando realiza una operación DML. Antes de realizar una operación DML, siempre debe asegurarse de agregar las filas a una colección. A continuación se muestra una imagen que le brinda una descripción completa del patrón de diseño de operación masiva.

DML y operaciones de datos

Ha visto anteriormente cómo recuperar datos de la base de datos mediante consultas SOQL y SOSL. Ahora echemos un vistazo a las diferentes declaraciones que puede utilizar para insertar datos en la base de datos de Salesforce. Para un desarrollador de Salesforce, es imprescindible saber qué pueden hacer estas declaraciones y cómo utilizarlas.

Declaración DML

Descripción
InsertarAgrega uno o más sObjects a los datos de su organización
ActualizarModifica uno o más registros de sObject existentes
UpsCrea nuevos registros y actualiza los registros de sObject
EliminarElimina uno o más registros de sObject existentes
RecuperarRestaura uno o más registros de sObject existentes
VamosFusiona hasta tres registros del mismo tipo de sObject en un solo registro

Visualforce y Apex

Ha recorrido un largo camino en su búsqueda para convertirse en desarrollador de Salesforce. A continuación, hablaré sobre cómo puede integrar su página de Visualforce y su código de ápice. Puede conectar su página de Visualforce y su código de ápice utilizando controladores y extensiones.

  • Controladores personalizados -Cuando desee que su página de Visualforce se ejecute completamente en modo de sistema, es decir, sin permisos y seguridad a nivel de campo, use un controlador personalizado.

  • Extensión del controlador -Cuando desee agregar nuevas acciones o funciones que amplíen la funcionalidad de un controlador estándar o personalizado, utilice una extensión de controlador.

En el siguiente código, le he mostrado cómo incluir un controlador personalizado en su página de Visualforce:

En el siguiente código, le he mostrado cómo incluir la extensión del controlador en su página de visualforce:

Manejo de excepciones

Si ha desarrollado aplicaciones antes, definitivamente se habría encontrado con excepciones. Una excepción es una condición especial que cambia el flujo normal de ejecución del programa. Por ejemplo, dividir un número por cero o acceder a un valor de lista que está fuera de los límites. Si no maneja estas excepciones, la ejecución del proceso se detiene y los DML se revertirán.

Como desarrollador de Salesforce, necesita saber cómo detectar estas excepciones y qué hacer una vez que las detecte. Para detectar excepciones, puede usar la construcción try, catch y finalmente. Una vez que haya detectado la excepción, puede manejarla de las formas que se mencionan a continuación:

Excepción Cómo manejarlo
DMLUse el método addError () en un registro o campo
VisualforceUtilice la clase ApexPages.message
Envío de un correo electrónico por excepciónPuede notificar al desarrollador por correo electrónico
Iniciar sesión en un objeto personalizadoPuede utilizar un método futuro para capturar un objeto personalizado

Hasta ahora, en este blog para desarrolladores de Salesforce, ha visto cómo desarrollar su interfaz de usuario usando Visualforce, ha visto cómo escribir lógica personalizada usando Apex y diferentes conceptos como disparadores, operaciones masivas y manejo de excepciones. Por último, pero no menos importante, echaremos un vistazo al marco de prueba de Salesforce.

Pruebas

Como desarrollador de Salesforce, necesita saber cómo probar el código que escribe. El desarrollo basado en pruebas es una buena forma de garantizar el éxito a largo plazo de su aplicación de software. Necesita probar su aplicación para que pueda validar que su aplicación funciona como se esperaba. Especialmente, si está desarrollando una aplicación para un cliente, probarla antes de entregar el producto final es muy importante. Apex le proporciona un marco de prueba que le permite escribir pruebas unitarias, ejecutar las pruebas, verificar los resultados de las pruebas y tener resultados de cobertura de código.

Puede probar su aplicación de dos formas:

  1. A través de la interfaz de usuario de Salesforce, esta forma de prueba es importante pero no captará todos los casos de uso de sus aplicaciones.
  2. Puede probar la funcionalidad a granel, se pueden pasar hasta 200 registros a través de su código utilizando la API de SOAP o el controlador de conjunto estándar de Visualforce

Las clases de prueba no envían datos a la base de datos y se anotan con @isTest. Le he mostrado cómo agregar una clase de prueba, agregando una clase de prueba a la clase HelloWorld a continuación:

@isTest

clase privada HelloWorldTestClass {

testMethod estático void validateHelloWorld () {

Country__c country = new Country__c (Nombre = ”India”, currency_value__c = 50.0)

cómo configurar classpath en java

Insertar país

country = [SELECT currency_value__c FROM Country WHERE Id = country.Id]

System.assertEquals (75, country.currency_value__c)

}

}

Espero que haya entendido todos los conceptos que necesita saber para ser un desarrollador de Salesforce. Para profundizar en más detalles, consulte nuestro que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Si tiene algún comentario, déjelo en el cuadro de comentarios a continuación.