Skip to main content

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.

Nota

Importante: El objetivo principal de este módulo es demostrar el flujo de trabajo del modelo de desarrollo de la organización. Este módulo no incluye un reto práctico. Sin embargo, comprendemos que los trailblazers no suelen quedarse al margen. Si intenta los pasos demostrados en este módulo, proporcionamos puntos de referencia (notas) para cuando sus instrucciones difieran de las de Ella y Juan. Conserve sus entornos sandbox para un trabajo de desarrollo “real”. Antes de comenzar, regístrese en una organización de Developer Edition o un Trailhead Playground para utilizar en lugar de cada entorno sandbox.

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

  1. Abra VS Code.
  2. En el menú, seleccione View | Command Palette (Ver > Paleta de comandos).
  3. En el cuadro de búsqueda de la paleta de comandos, ingrese sfdx project (Proyecto de SFDX).
  4. Seleccione SFDX: Create Project with Manifest (SFDX: Crear proyecto con manifiesto).
  5. Utilice el mismo nombre que empleó para el repositorio de GitHub, language-courses y, luego, haga clic en Enter (Ingresar).
  6. Haga clic en Crear proyecto.

Agregar archivos de proyecto al repositorio en GitHub

  1. En VS Code, abra el directorio del proyecto de DX y haga clic en el icono de Source Control (Control de fuentes) Icono de Control de fuentes.
  2. Haga clic en Initialize Repository (Iniciar repositorio).
  3. Pase el cursor sobre Changes (Cambios) y, luego, haga clic en + para implementar todos los cambios.
  4. Acepte la sucursal predeterminada en la que se confirmará el repositorio, como la principal.
  5. Ingrese un mensaje de confirmación y haga clic en el icono de Commit (Confirmar) Icono de Confirmar, marca de verificación.
  6. Haga clic en Publish Branch (Publicar sucursal).
  7. 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.

  1. 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 carpeta org-dev-ella. Cuando realice el trabajo de desarrollo de Juan, deberá clonar el repositorio en una carpeta org-dev-juan.
    1. Haga clic en Duplicar o descargar.
    2. Copie la URL de HTTPS.
  2. Desde la paleta de comandos de VS Code, seleccione Git: Clone (Git: Duplicar).
  3. 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.
  4. 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).
  5. Haga clic en Open Repository (Abrir repositorio).
  6. Desde la paleta de comandos, seleccione Git: Create Branch (Git: Crear sucursal).
  7. 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.

Nota

Si está siguiendo los pasos, utilice una organización de Developer Edition o un Trailhead Playground. En el paso 3, seleccione Project Default (Proyecto predeterminado) para utilizar “login.salesforce.com” como la URL de inicio de sesión.

  1. En el cuadro de búsqueda de la paleta de comandos, ingrese sfdx authorize (Autorizar SFDX).
  2. Seleccione SFDX: Autorizar una organización.
  3. Seleccione Sandbox para la URL de inicio de sesión.
  4. Ingrese un alias para el entorno de prueba, por ejemplo, dev_sandbox.
  5. 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.

  1. Desde Configuración, haga clic en la ficha Gestor de objetos.
  2. Haga clic en la opción Crear | Objeto personalizado situada en la esquina superior derecha.
  3. 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.
  4. En Plural Label (Etiqueta en plural), ingrese Language Course Instructors (Instructores del curso de idiomas).
  5. 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.
  6. Seleccione su estilo de ficha deseado (Ella selecciona presentador) y haga clic en Next (Siguiente) hasta que pueda guardar el objeto.
Nota

Sugerencia avanzada: También puede utilizar los comandos schema generate a fin de generar archivos de origen locales para objetos personalizados, campos, fichas y evento de plataforma nuevos. Para este módulo, recomendamos utilizar Setup (Configuración). Aun así, pruebe los comandos luego. Creemos que le gustarán.

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).

Nota

Si está siguiendo el proceso, Ella creó el objeto Language Course (Curso de idiomas) en otro módulo. En este módulo, se asume que este objeto ya existe en el entorno sandbox de desarrolladora de Ella. Cree este objeto personalizado antes de continuar:

  1. Desde Configuración, haga clic en la ficha Gestor de objetos.
  2. Haga clic en la opción Crear | Objeto personalizado situada en la esquina superior derecha.
  3. Para Etiqueta, ingrese Curso de idiomas. Tenga en cuenta que los campos Nombre de objeto y Nombre del registro se rellenan automáticamente.
  4. Para Etiqueta plural, ingrese Cursos de idiomas.
  5. 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.
  6. Seleccione su estilo de ficha deseado (Ella selecciona Chalkboard [Pizarra]) y haga clic en Next (Siguiente) hasta que pueda guardar el objeto. 
  1. Desde Configuración, vaya a Gestor de objetos | Curso de idiomas.
  2. Haga clic en Campos y relaciones. Observe que algunos campos ya están ahí, incluido un campo de nombre.
  3. Haga clic en Nuevo.
  4. En el tipo de datos, seleccione Master-Detail Relationship (Relación principal-detalle) y haga clic en Next (Siguiente).
  5. En Related To (Relacionado con), seleccione Language Course Instructor (Instructor del curso de idiomas) y, luego, haga clic en Next (Siguiente).
  6. Especifique lo siguiente:
    • Etiqueta de campo: Instructor del curso
    • Descripción: Profesor del curso de idiomas
  7. 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.

  1. En el proyecto de DX en el sistema de archivos local, cree una carpeta force-app.
  2. 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 directorio force-app/main/default/objectsEn VS Code, en el lado izquierdo, se muestra la nueva estructura de directorio, force-app/main/default/objects, creada después del comando source:retrieve. En el lado derecho, se muestra la ventana Terminal en la que se ejecutó el comando, además del resultado de CLI.

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.

  1. En VS Code, seleccione el icono de Source Control (Control de fuentes) Icono de Control de fuentes.
  2. Ingrese un comentario de confirmación y haga clic en el icono de Commit (Confirmar) Icono de confirmación.
  3. Haga clic en Yes (Sí) para agregar y confirmar los archivos.
  4. Desde la paleta de comandos de VS Code, seleccione Git: Push To (Git: Enviar a).
  5. Seleccione el repositorio de origen.

Revisar el código

Nota

Si está siguiendo los pasos, puede omitir esta sección.

  1. Cree una solicitud de extracción. En el repositorio de GitHub, haga clic en Compare & pull request (Solicitud de comparación y extracción).
  2. Asigne revisores. Ella le asigna a Juan las tareas de revisar y aprobar sus cambios.
  3. Ingrese un comentario para sus revisores.
  4. 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.

Nota

Si está siguiendo los pasos, realícelos en la carpeta que creó para el trabajo de desarrollo de Juan, como org-dev-juan. Utilice una nueva organización de Developer Edition o un Trailhead Playground para el entorno sandbox de desarrollador de Juan.

  1. Duplique el repositorio de GitHub.
  2. 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.
  3. Seleccione SFDX: Autorizar una organización.
  4. Seleccione Sandbox para la URL de inicio de sesión (test.salesforce.com).
  5. Ingrese un alias para el entorno de prueba, por ejemplo, dev_sandbox.
  6. Inicie sesión con el nombre de usuario y la contraseña de su entorno sandbox.
  7. 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

  1. En la sucursal juan_apex_trigger en VS Code, cree el directorio para colocar el desencadenador.
    1. Expanda la carpeta force-app.
    2. Haga clic con el botón derecho en la opción predeterminada y seleccione New Folder (Carpeta nueva).
    3. Ingrese triggers (desencadenadores).
  2. Haga clic con el botón derecho en la carpeta de desencadenadores y, luego, en SFDX: Create Apex Trigger (SFDX: Crear desencadenador de Apex).
  3. 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>
    }
  4. Guarde el archivo.
  5. 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.

  1. 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
    En VS Code, en el lado izquierdo, se muestra la nueva estructura de directorio, force-app/main/default/triggers, creada después del comando source:deploy para el desencadenador. En el lado derecho, se muestra la ventana Terminal en la que se ejecutó el comando, además del resultado de CLI.
  2. Juan verifica haber capturado todos los cambios y que estos funcionen en el entorno sandbox.
  3. 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.

¡Siga aprendiendo gratis!
Regístrese para obtener una cuenta y continuar.
¿Qué hay para usted?
  • Consiga recomendaciones personalizadas para sus objetivos profesionales
  • Practique sus aptitudes con retos prácticos y pruebas
  • Siga y comparta su progreso con empleadores
  • Póngase en contacto para recibir asesoramiento y oportunidades laborales