Desarrollar y probar los cambios de forma local
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Crear una sucursal y confirmar los cambios en un repositorio de control de fuentes.
- Autorizar un entorno de prueba mediante Extensiones de Salesforce para VS Code.
- Recuperar cambios de un entorno sandbox.
Configurar un repositorio de código
El equipo de desarrollo de Zephyrus Relocation Services aloja su código y revisa su trabajo en GitHub. Los cambios se confirman en el repositorio de fuentes para identificar y combinar cualquier problema de personalización antes de continuar.
Crear el repositorio de control de fuentes
El repositorio es donde Juan organiza los archivos de fuentes del proyecto de desarrollo. Luego, Juan crea un proyecto de Salesforce DX y lo agrega al repositorio.
Asígnele un nombre descriptivo al repositorio que refleje su propósito. Como se trata de un proyecto de desarrollo interno, Juan crea un repositorio privado mediante la cuenta empresarial de Zephyrus llamado language-courses
.
Crear un proyecto de Salesforce DX
- Abra VS Code.
- En el menú, seleccione View | Command Palette (Ver > Paleta de comandos).
- En el cuadro de búsqueda de la paleta de comandos, ingrese
sfdx project
(Proyecto de SFDX). - Seleccione SFDX: Create Project with Manifest (SFDX: Crear proyecto con manifiesto).
- Utilice el mismo nombre que empleó para el repositorio de GitHub,
language-courses
y, luego, haga clic en Enter (Ingresar). - Haga clic en Crear proyecto.
Agregar archivos de proyecto al repositorio en GitHub
- En VS Code, abra el directorio del proyecto de DX y haga clic en el icono de Source Control (Control de fuentes) .
- Haga clic en Initialize Repository (Iniciar repositorio).
- Pase el cursor sobre Changes (Cambios) y, luego, haga clic en + para implementar todos los cambios.
- Acepte la sucursal predeterminada en la que se confirmará el repositorio, como la principal.
- Ingrese un mensaje de confirmación y haga clic en el icono de Commit (Confirmar) .
- Haga clic en Publish Branch (Publicar sucursal).
- Confirme dónde desea publicarla.
Crear personalizaciones para requisitos nuevos
Calvin se reunió con el equipo de Ventas a fin de recopilar los requisitos nuevos para el próximo lanzamiento. El equipo de Ventas desea recibir una notificación cuando se agregue o se modifique un curso de idiomas, y desea saber quién enseña cada curso.
Juan considera que esta solicitud es una buena forma de que el equipo se familiarice con el modelo de desarrollo de la organización. Si bien puede gestionar escenarios de desarrollo mucho más complejos, este conjunto de pasos sencillos puede ayudar al equipo a comprender el flujo de trabajo del modelo.
La asignación de Ella es crear un objeto personalizado para el instructor del curso de idiomas y vincularlo con el registro del curso. Juan crea un desencadenador que envía un email de notificación al alias del equipo de ventas. Los pasos son los siguientes:
Duplicar el repositorio
Primero, Ella clona el repositorio de GitHub y crea su propia sucursal.
- Diríjase al repositorio que desea clonar, por ejemplo,
https://github.com/zephyrus/language-courses
.
Este repositorio no existe; solo tiene fines ilustrativos. Si planea seguir los pasos, reemplace el repositorio de muestra que creó en estos pasos. Además, simulará el trabajo de dos perfiles de desarrollador, Juan y Ella. Sugerimos crear dos directorios principales diferentes para mantener separado su trabajo de desarrollo. Por ejemplo, si realiza el trabajo de desarrollo de Ella, debe clonar el repositorio en una carpetaorg-dev-ella
. Cuando realice el trabajo de desarrollo de Juan, deberá clonar el repositorio en una carpetaorg-dev-juan
.- Haga clic en Duplicar o descargar.
- Copie la URL de HTTPS.
- Desde la paleta de comandos de VS Code, seleccione Git: Clone (Git: Duplicar).
- En Repository URL (URL del repositorio), pegue la URL en el repositorio y haga clic en Enter (Ingresar). Ella clona el repositorio que Juan creó:
https://github.com/zephyrus/language-courses.git
. - En su sistema de archivos local, navegue a la ubicación en la que desea colocar el repositorio de GitHub y, luego, haga clic en Select Repository Location (Seleccionar ubicación del repositorio).
- Haga clic en Open Repository (Abrir repositorio).
- Desde la paleta de comandos, seleccione Git: Create Branch (Git: Crear sucursal).
- Ingrese el nombre de su sucursal. Ella le asigna el nombre
ella-custom-object
a su sucursal. Ahora, trabaja en su propia sucursal.
Autorizar e iniciar sesión en el entorno sandbox
A continuación, Ella autoriza su entorno sandbox de desarrolladora mediante (inicia sesión en él) VS Code.
- En el cuadro de búsqueda de la paleta de comandos, ingrese
sfdx authorize
(Autorizar SFDX). - Seleccione SFDX: Autorizar una organización.
- Seleccione Sandbox para la URL de inicio de sesión.
- Ingrese un alias para el entorno de prueba, por ejemplo,
dev_sandbox
. - Inicie sesión con el nombre de usuario y la contraseña de su entorno sandbox.
Crear objetos personalizados
Luego, Ella crea los objetos personalizados Language Course (Curso de idiomas) y Language Instructor (Instructor de idiomas) en su instancia de Developer Sandbox.
- Desde Configuración, haga clic en la ficha Gestor de objetos.
- Haga clic en la opción Crear | Objeto personalizado situada en la esquina superior derecha.
- En Label (Etiqueta), ingrese
Language Course Instructor
(Instructor del curso de idiomas). Tenga en cuenta que los campos Nombre de objeto y Nombre del registro se rellenan automáticamente. - En Plural Label (Etiqueta en plural), ingrese
Language Course Instructors
(Instructores del curso de idiomas). - Active la casilla Iniciar el asistente de nueva ficha personalizada después de guardar este objeto personalizado y, a continuación, haga clic en Guardar.
- Seleccione su estilo de ficha deseado (Ella selecciona presentador) y haga clic en Next (Siguiente) hasta que pueda guardar el objeto.
Definir el campo personalizado
A continuación, Ella define el campo de objeto personalizado en el objeto Language Course (Curso de idiomas) que hace referencia al objeto Language Course Instructor (Instructor del curso de idiomas).
- Desde Configuración, vaya a Gestor de objetos | Curso de idiomas.
- Haga clic en Campos y relaciones. Observe que algunos campos ya están ahí, incluido un campo de nombre.
- Haga clic en Nuevo.
- En el tipo de datos, seleccione Master-Detail Relationship (Relación principal-detalle) y haga clic en Next (Siguiente).
- En Related To (Relacionado con), seleccione Language Course Instructor (Instructor del curso de idiomas) y, luego, haga clic en Next (Siguiente).
- Especifique lo siguiente:
- Etiqueta de campo: Instructor del curso
- Descripción: Profesor del curso de idiomas
- Haga clic en Next (Siguiente) hasta que pueda guardar el campo.
Hacer un seguimiento de los cambios en una lista de cambios
Ella crea una lista de cambios para el proyecto con el fin de capturar sus cambios.
Tipo de metadatos | Objeto | Tipo de cambio (creación, actualización y eliminación) | Detalles |
---|---|---|---|
CustomObject | Language_Course_Instructor__c | Crear | Objeto para capturar el nombre de la persona que enseña el curso |
CustomField | Course_Instructor__c | Crear | Relación principal-detalle con el objeto personalizado Language_Course__c |
Recuperar los cambios del entorno sandbox de desarrollador
Ella recupera los cambios del entorno sandbox en su proyecto local de DX. Gracias a que Ella realiza un seguimiento de los cambios durante el proceso, sabe qué recuperar de su entorno sandbox de desarrolladora.
Como Ella recupera solo algunos componentes de su entorno sandbox, decide utilizar el Terminal en VS Code para ejecutar el comando project retrieve start
de Salesforce CLI. En función del directorio predeterminado especificado en el proyecto de DX, la CLI coloca la fuente en la carpeta force-app
. Como no se puede agregar una carpeta vacía en GitHub, Ella crea la carpeta force-app
en el proyecto de DX en su sistema de archivos local.
- En el proyecto de DX en el sistema de archivos local, cree una carpeta
force-app
. - En el Terminal de VS Code, ejecute el comando de CLI para recuperar el nuevo objeto personalizado y el campo personalizado:
sf project retrieve start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c
Ella utiliza--metadata
en lugar de--source-dir
porque--source-dir
solo puede recuperar archivos que ya existen en el sistema de archivos. El objeto personalizado aparece en el directorioforce-app/main/default/objects
.
Confirmar los cambios en el repositorio de control de fuentes
Ella confirma sus cambios en el repositorio y, luego, crea una solicitud de extracción para informar a Juan que sus cambios están listos para la revisión.
- En VS Code, seleccione el icono de Source Control (Control de fuentes) .
- Ingrese un comentario de confirmación y haga clic en el icono de Commit (Confirmar) .
- Haga clic en Yes (Sí) para agregar y confirmar los archivos.
- Desde la paleta de comandos de VS Code, seleccione Git: Push To (Git: Enviar a).
- Seleccione el repositorio de origen.
Revisar el código
- Cree una solicitud de extracción. En el repositorio de GitHub, haga clic en Compare & pull request (Solicitud de comparación y extracción).
- Asigne revisores. Ella le asigna a Juan las tareas de revisar y aprobar sus cambios.
- Ingrese un comentario para sus revisores.
- Haga clic en Create Pull Request (Crear solicitud de extracción).
Después de que Juan revisa y aprueba el código, Ella combina la solicitud de extracción. Juan sabe que puede comenzar su trabajo de desencadenador.
Crear el desencadenador
El desencadenador envía una notificación al equipo de Ventas cuando se actualiza un curso o se agrega uno nuevo. Un desencadenador es un fragmento de código Apex que se ejecuta antes o después de que se insertan, se actualizan o se eliminan los registros de un tipo determinado desde la base de datos de Lightning Platform.
Juan clona el repositorio de GitHub que contiene el nuevo objeto personalizado y, de esta forma, crea su propia sucursal. Juan crea su desencadenador y su prueba correspondiente en VS Code.
Implementar el repositorio del proyecto en el entorno sandbox de desarrollador
Primero, Juan implementa los cambios de Ella en su entorno sandbox de desarrollador para que ambos entornos estén sincronizados.
- Duplique el repositorio de GitHub.
- En VS Code, seleccione Git: Create Branch (Git: Crear sucursal) y, luego, asígnele un nombre a la sucursal. Juan le asigna el nombre
juan_apex_trigger
a su sucursal. - Seleccione SFDX: Autorizar una organización.
- Seleccione Sandbox para la URL de inicio de sesión (test.salesforce.com).
- Ingrese un alias para el entorno de prueba, por ejemplo,
dev_sandbox
. - Inicie sesión con el nombre de usuario y la contraseña de su entorno sandbox.
- Implemente los cambios de Ella en el entorno sandbox de desarrollador de él. Haga clic con el botón derecho en la carpeta de objetos y, luego, seleccione SFDX: Implementar fuente en organización. De forma alternativa, Juan puede ejecutar el comando de Salesforce CLI en el terminal.
sf project deploy start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c
Desarrollar el desencadenador
- En la sucursal
juan_apex_trigger
en VS Code, cree el directorio para colocar el desencadenador.- Expanda la carpeta
force-app
. - Haga clic con el botón derecho en la opción predeterminada y seleccione New Folder (Carpeta nueva).
- Ingrese
triggers
(desencadenadores).
- Expanda la carpeta
- Haga clic con el botón derecho en la carpeta de desencadenadores y, luego, en SFDX: Create Apex Trigger (SFDX: Crear desencadenador de Apex).
- Ingrese
LanguageCourseTrigger
como nombre del desencadenador. Ingrese el código para el desencadenador:trigger LanguageCourseTrigger on Language_Course__c (after insert, after update, after delete) { // <write your own notification code> }
- Guarde el archivo.
- Cree una prueba para el desencadenador llamada TestLanguageCourseTrigger. Como es un desarrollador con experiencia, Juan se asegura de que se cumplan los requisitos de cobertura de código.
Implementar los cambios en el entorno sandbox de desarrollador
Juan implementa el desencadenador para validarlo y compilarlo y, luego, prueba que funcione correctamente con el nuevo objeto.
- En el Terminal de VS Code, haga clic con el botón derecho en la carpeta
triggers
(desencadenadores) y seleccione SFDX: Implementar fuente en organización. De forma alternativa, Juan puede ejecutar el comando de CLI desde el terminal.sf project deploy start --source-dir force-app/main/default/triggers
- Juan verifica haber capturado todos los cambios y que estos funcionen en el entorno sandbox.
- Juan agrega sus cambios a la lista de cambios.
Tipo de metadatos | Objeto | Tipo de cambio (creación, actualización y eliminación) | Detalles |
---|---|---|---|
CustomObject | Language_Course_Instructor__c | Crear | Objeto para capturar quién enseña el curso |
CustomField | Course_Instructor__c |
Crear | Relación principal-detalle con el objeto personalizado Language_Course__c |
ApexTrigger | LanguageCourseTrigger | Crear | Envía un email al equipo de Ventas cuando el objeto Language_Course__c se crea, se actualiza o se elimina |
ApexClass | TestLanguageCourseTrigger | Crear | Cobertura de la prueba de Apex para el desencadenador |
Confirmar los cambios en el repositorio de control de fuentes
Juan confirma sus cambios en el repositorio y, luego, crea una solicitud de extracción. Ella realiza la revisión de código.
Planear el siguiente lanzamiento
Juan y Ella siguen el mismo proceso para futuras personalizaciones. Si desarrollan personalizaciones en VS Code, como el trabajo de desencadenador de Juan, las implementan en sus entornos sandbox de desarrollador para su validación y prueba.
Utilizan Setup (Configuración) para todo lo demás, de forma que puedan aprovechar los generadores, los asistentes y las interfaces declarativas. Luego, recuperan estos cambios del entorno sandbox en sus sistemas de archivos locales. Confirman sus cambios en el control de fuentes, crean una solicitud de extracción y solicitan una revisión de código antes de combinar sus cambios en la sucursal principal.