Desarrollar y probar cambios a nivel local
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Crear una rama y confirmar cambios en un repositorio de control de origen
- Autorizar un sandbox mediante Salesforce Extensions para VS Code.
- Recuperar cambios de un 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. Confirman los cambios en el repositorio de origen para identificar y combinar cualquier conflicto de personalización que surja antes de seguir.
Crear el repositorio de control de origen
El repositorio es el lugar en el que Juan organiza los archivos de origen para el proyecto de desarrollo. Juan crea un proyecto de Salesforce DX y lo agrega al repositorio.
Asigne al repositorio un nombre descriptivo que refleje bien su propósito. Puesto que es un proyecto de desarrollo interno, Juan crea un repositorio privado desde la cuenta empresarial de Zephyrus denominado language-courses
.
Crear un proyecto de Salesforce DX
- Abra VS Code.
- Seleccione View (Ver) | Command Palette (Paleta de comandos) en el menú.
- En el cuadro de búsqueda de la paleta de comandos, escriba
sdfx project
. - Seleccione SFDX: Create Project with Manifest (SDFX: Crear proyecto con manifiesto).
- Utilice el mismo nombre que tiene su repositorio de GitHub,
language-courses
y luego haga clic en Enter (Introducir). - Haga clic en Create Project (Crear proyecto).
Agregar archivos del proyecto en el repositorio de GitHub
- En VS Code, abra el directorio del proyecto de DX y haga clic en el icono de control de código fuente:
.
- Haga clic en Initialize Repository (Inicializar repositorio).
- Desplace el cursor por Changes (Cambios) y haga clic en + para organizar todos los cambios.
- Acepte la rama predeterminada en la que desea confirmar el repositorio, por ejemplo, "main".
- Escriba un mensaje de confirmación y haga clic en el icono de confirmación:
.
- Haga clic en Publish Branch (Publicar rama).
- Confirme el lugar en el que quiere publicarla.
Crear personalizaciones para requisitos nuevos
Calvin se ha reunido con el equipo de ventas para reunir nuevos requisitos para el próximo lanzamiento. El equipo de ventas quiere recibir avisos cuando se agregue o modifique un curso de idiomas y quiere saber también quién es el docente encargado de cada curso.
Juan cree que esta petición es una excelente manera de que el equipo se familiarice con el modelo de desarrollo de la organizaciones. Aunque sirve para gestionar escenarios de desarrollo mucho más complejos, este sencillo conjunto de pasos puede ayudar al equipo a conocer el flujo de trabajo del modelo.
La tarea de Ella es crear un objeto personalizado para el docente del curso de idiomas y vincularlo al registro del curso. Juan crea un desencadenador que envÃa una notificación por correo electrónico al alias del equipo de ventas. Estos son los pasos en cuestión:
Clonar el repositorio
En primer lugar, Ella clona el repositorio de GitHub y crea su propia rama.
- Vaya al repositorio que desee clonar, por ejemplo,
https://github.com/zephyrus/language-courses
.
Este repositorio no existe. Solo se utiliza a modo de ejemplo. Si tiene pensado seguir los pasos descritos, sustituya el repositorio de ejemplo por el que ha creado durante estos pasos. Además, tenga en cuenta que va a simular el trabajo de dos perfiles de desarrollador: el de Juan y el de Ella. Recomendamos crear dos directorios principales independientes para que las tareas de desarrollo estén bien diferenciadas. Por ejemplo, si va a realizar las tareas de desarrollo de Ella, debe clonar el repositorio en una carpeta denominadaorg-dev-ella
. Si va a realizar las tareas de desarrollo de Juan, debe clonar el repositorio en una carpeta denominadaorg-dev-juan
.- Haga clic en Clone or download (Clonar o descargar).
- Copie la URL HTTPS.
- En Command Palette (Paleta de comandos) en VS Code, seleccione Git: Clone (Git: Clonar).
- En Repository URL (URL de repositorio), pegue la URL en el repositorio y haga clic en Enter (Introducir). Ella clona el repositorio que ha creado Juan:
https://github.com/zephyrus/language-courses.git
. - En el sistema de archivos local, vaya al lugar donde quiera 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).
- En Command Palette (Paleta de comandos), seleccione Git: Create Branch (Git: Crear rama).
- Escriba el nombre de la rama. Ella asigna a su rama el nombre
ella-custom-object
. Ahora está trabajando en su propia rama.
Autorizar el sandbox e iniciar sesión en él
A continuación, Ella autoriza (es decir, inicia sesión) su sandbox de desarrollador mediante VS Code.
- En el cuadro de búsqueda de Command Pallete (Paleta de comandos), escriba
sdfx authorize
. - Seleccione SFDX: Authorize an Org (SDFX: Autorizar una organización).
- Seleccione Sandbox para la URL de inicio de sesión.
- Introduzca un alias para el sandbox, como
dev_sandbox
. - Inicie sesión con su nombre de usuario y contraseña del sandbox.
Crear los objetos personalizados
A continuación, Ella crea los objetos personalizados Language Course (Curso de idiomas) y Language Instructor (Docente de idiomas) en su sandbox de desarrollador.
- En Setup (Configuración), haga clic en la ficha Object Manager (Gestor de objetos).
- Haga clic en Create (Crear) | Custom Object (Objeto personalizado) en la esquina superior derecha.
- En Label (Etiqueta), escriba
Language Course Instructor
(Docente del curso de idiomas). Tenga en cuenta que los campos Object Name (Nombre de objeto) y Record Name (Nombre del registro) se rellenan automáticamente. - En Plural Label (Etiqueta plural), escriba
Language Course Instructors
(Docentes del curso de idiomas). - Marque la casilla Launch New Custom Tab Wizard (Iniciar el asistente de nueva ficha personalizada y haga clic en Save (Guardar).
- Seleccione el estilo de ficha que quiera (Ella elige la de presentador) y haga clic en Next (Siguiente) hasta que pueda guardar el objeto.
Definir el campo personalizado
A continuación, Ella define el campo del objeto personalizado en el objeto Language Course (Curso de idiomas) que hace referencia al objeto Language Course Instructor (Docente del curso de idiomas).
- Desde Setup (Configuración), vaya a Object Manager (Gestor de objetos) | Language Course (Curso de idiomas).
- Haga clic en Fields & Relationships (Campos y relaciones). Podrá observar que ya hay algunos campos, incluido un campo de nombre.
- Haga clic en New (Nuevo).
- Para el tipo de datos, seleccione Master-Detail Relationship (Relación principal-detalle) y haga clic en Next (Siguiente).
- En Related To (Relaciones), seleccione Language Course Instructor (Docente del curso de idiomas y haga clic en Next (Siguiente).
- Especifique lo siguiente:
- Field Label (Etiqueta de campo): Course Instructor (Docente del curso)
- Description (Descripción): Teacher for the language course (Docente que imparte el curso)
- Haga clic en Next (Siguiente) hasta que pueda guardar el campo.
Realizar un seguimiento de los cambios en una lista de cambios
Ella crea una lista de cambios para el proyecto con el fin de capturar los cambios.
Metadata Type (Tipo de metadatos) | Object (Objeto) | Change Type (Create, Update, Delete) (Tipo de cambio: crear, actualizar o eliminar) | Details (Detalles) |
---|---|---|---|
CustomObject | Language_Course_Instructor__c | Create (Crear) | Objeto para capturar el nombre de la persona que imparte el curso |
CustomField | Course_Instructor__c | Create (Crear) | Relación de principal-detalle con el objeto personalizado Language_Course__c |
Recuperar los cambios del sandbox de desarrollador
Ella recupera los cambios desde el sandbox en su proyecto local de DX. Puesto que Ella realiza un seguimiento de los cambios durante el proceso, sabe lo que debe recuperar desde el sandbox.
Como Ella recupera únicamente algunos componentes del sandbox, decide usar el terminal de VS Code para ejecutar el comando project retrieve start
de la CLI de Salesforce. En función del directorio predeterminado que se haya especificado en el proyecto de DX, la CLI colocará el origen 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 DC del sistema de archivos local, cree una carpeta
force-app
. - En el Terminal de VS Code, ejecute el comando de la CLI para recuperar el objeto personalizado y el campo personalizado nuevos:
--metadata
en lugar de--source-dir
porque--source-dir
permite recuperar solo archivos que ya existen en el sistema. Aparece el objeto personalizado en el directorioforce-app/main/default/objects
.
Ella utiliza
Confirmar los cambios en el repositorio de control del código fuente
Ella confirma los cambios en el repositorio y luego crea una solicitud de incorporación de cambios para informar a Juan de que ya puede revisar los cambios.
- En Visual Studio Code, seleccione el icono de control de código fuente
.
- Escriba un comentario de confirmación y haga clic en el icono de confirmación:
.
- Haga clic en Yes (SÃ) para añadir y confirmar los archivos.
- En Command Palette (Paleta comandos) en Visual Studio Code, seleccione Git: Push To (Git: Enviar cambios).
- Seleccione el repositorio de origen.
Revisar el código
- Cree una solicitud de incorporación de cambios. En el repositorio de GitHub, haga clic en Compare & pull request (Comparar y solicitar una incorporación de cambios).
- Asigne los revisores. Ella asigna la revisión a Juan y aprueba los cambios.
- Introduzca un comentario para los revisores.
- Haga clic en Create Pull Request (Crear solicitud de incorporación de cambios).
Después de que Juan revise y apruebe el código, Ella fusiona la solicitud de incorporación de cambios. Juan sabe que ya puede empezar a trabajar con el desencadenador.
Crear el desencadenador
El desencadenador avisa al equipo de ventas cuando se actualiza o añade un curso. Un desencadenador es un fragmento de código Apex que se ejecuta antes o después de que se inserten, actualicen o eliminen registros de un tipo determinado en la base de datos de Lightning Platform.
Juan clona el repositorio de GitHub que contiene el nuevo objeto personalizado y crea su propia rama. Después, crea el desencadenador y la prueba correspondiente en Visual Studio Code.
Implementar el repositorio del proyecto en el sandbox de desarrollo
En primer lugar, Juan implementa los cambios de Ella en el sandbox de desarrollo para que se sincronicen ambos entornos.
- Clone el repositorio de GitHub.
- En Visual Studio Code, seleccione Git: Create Branch (Git: Crear rama) y asigne un nombre a la rama. Juan asigna a la rama el nombre
juan_apex_trigger
. - Seleccione SFDX: Authorize an Org (SDFX: Autorizar una organización).
- Seleccione Sandbox para la URL de inicio de sesión (test.salesforce.com).
- Introduzca un alias para el sandbox, como
dev_sandbox
. - Inicie sesión con su nombre de usuario y contraseña del sandbox.
- Implemente los cambios de Ella en el sandbox de desarrollador. Haga clic con el botón derecho en la carpeta de objetos y seleccione SFDX: Deploy Source to Org (SFDX: Implementar código fuente en la organización). Juan también puede ejecutar el comando de Salesforce CLI en el Terminal.
Desarrollar el desencadenador
- En la rama
juan_apex_trigger
de Visual Studio Code, cree el directorio donde va a colocar el desencadenador.- Expanda la carpeta
force-app
. - Haga clic con el botón derecho en "default" (predeterminado) y seleccione New Folder (Nueva carpeta).
- Introduzca
triggers
.
- Expanda la carpeta
- Haga clic con el botón derecho en la carpeta "triggers" y haga clic en SFDX: Create Apex Trigger (Crear desencadenador de Apex).
- Escriba
LanguageCourseTrigger
para el nombre de desencadenador. Escriba el código del desencadenador. - Guarde el archivo.
- Cree una prueba para el desencadenador llamada TestLanguageCourseTrigger. Puesto que Juan es un desarrollador experimentado, quiere asegurarse de que se cumplan los requisitos de cobertura del código.
Implementar los cambios en el sandbox de desarrollo
Juan implementa el desencadenador para validarlo y compilarlo, y luego prueba que funciona correctamente con el nuevo objeto.
- En el Terminal de Visual Code Studio, haga clic con el botón derecho en la carpeta
triggers
y seleccione SFDX: Deploy Source to Org (SFDX: Implementar código fuente en la organización). Juan también puede ejecutar el comando de la CLI desde el Terminal. - Juan comprueba que ha capturado todos los cambios y que funcionan en el sandbox.
- Además, añade los cambios a la lista de cambios.
Metadata Type (Tipo de metadatos) | Object (Objeto) | Change Type (Create, Update, Delete) (Tipo de cambio: crear, actualizar o eliminar) | Details (Detalles) |
---|---|---|---|
CustomObject | Language_Course_Instructor__c | Create (Crear) | Objeto que sirve para capturar quién es el docente del curso |
CustomField | Course_Instructor__c |
Create (Crear) | Relación de principal-detalle con el objeto personalizado Language_Course__c |
ApexTrigger | LanguageCourseTrigger | Create (Crear) | Se envÃa un correo al equipo de ventas cuando se crea, actualiza o elimina el objeto Language_Course__c |
ApexClass | TestLanguageCourseTrigger | Create (Crear) | Cobertura de las pruebas de Apex del desencadenador |
Confirmar los cambios en el repositorio de control del código fuente
Juan confirma los cambios en el repositorio y crea una solicitud de incorporación de cambios. Ella revisa el código.
Planificar la próxima versión
Juan y Ella siguen el mismo proceso para futuras personalizaciones. Si desarrollan personalizaciones en VS Code, como el trabajo del desencadenador de Juan, las implementan en sus sandboxes de desarrollador para validarlas y probarlas.
Utilizan Setup (Configuración) para todo lo demás, de forma que puedan aprovechar los generadores, los asistentes y las interfaces declarativas. Además, recuperan los cambios del sandbox en sus sistemas locales de archivos. Confirman los cambios en el control del código fuente, crean una solicitud de incorporación de cambios y solicitan una revisión del código antes de fusionar los cambios en la rama maestra.