Skip to main content

Desenvolver e testar alterações localmente

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Criar uma ramificação e confirmar as alterações em um repositório de controle de origem.
  • Autorizar uma sandbox usando extensões do Salesforce para VS Code.
  • Recuperar alterações de uma sandbox.

Configurar um repositório de código

A equipe de desenvolvimento do Zephyrus Relocation Services hospeda seu código e analisa seu trabalho no GitHub. Eles confirmam as alterações no repositório de origem para identificar e mesclar eventuais conflitos de personalização antes de continuarem.

Nota

Importante: O principal objetivo deste módulo é demonstrar o fluxo de trabalho do modelo de desenvolvimento organizacional. Este módulo não tem desafios práticos. No entanto, entendemos que os Trailblazers não ficam sentados vendo a vida passar. Se você experimentar as etapas demonstradas neste módulo, forneceremos orientações (notas) quando suas instruções forem diferentes das de Ella e Juan. Deixe as suas sandboxes para um trabalho de desenvolvimento “real”. Antes de começar, inscreva-se em uma organização Developer Edition ou Trailhead Playground para usar no lugar de cada sandbox.

Criar o repositório de controle de origem

O repositório é onde Juan organiza os arquivos fonte do projeto de desenvolvimento. Então, Juan cria um projeto do Salesforce DX e adiciona-o ao repositório.

Nomeie o repositório com algo descritivo para refletir seu propósito. Por se tratar de um projeto de desenvolvimento interno, Juan cria um repositório privado usando a conta corporativa da Zephyrus chamado language-courses (cursos-de-idiomas).

Criar um projeto do Salesforce DX

  1. Abra o VS Code.
  2. No menu, selecione View | Command Palette (Exibir | Paleta de comandos).
  3. Na caixa de pesquisa da paleta de comandos, insira sfdx project (projeto sfdx).
  4. Selecione SFDX: Create Project with Manifest (SFDX: Criar projeto com manifesto).
  5. Use o mesmo nome do seu repositório GitHub, language-courses e clique em Enter.
  6. Clique em Create Project (Criar projeto).

Adicionar arquivos do projeto ao repositório do GitHub

  1. No VS Code, abra o diretório do projeto DX e clique no ícone Ícone Controle de origemSource Control (Controle de origem).
  2. Clique em Initialize Repository (Iniciar repositório).
  3. Passe o mouse sobre Changes (Alterações) e clique em + para preparar todas as alterações.
  4. Aceite a ramificação padrão na qual deseja confirmar o repositório, como main (principal).
  5. Insira uma mensagem de confirmação e clique no ícone Ícone Commit, marca de verificação Commit (Confirmação).
  6. Clique em Publish Branch (Publicar ramificação).
  7. Confirme onde você deseja publicar.

Criar personalizações para novos requisitos

Calvin se reuniu com a equipe de vendas para obter novos requisitos para o próximo lançamento. A equipe de vendas deseja ser notificada quando um curso de idioma for adicionado ou alterado e quer saber quem está ministrando cada curso.

Juan acha que essa solicitação é uma ótima maneira de a equipe se sentir confortável com o modelo de desenvolvimento organizacional. Embora possa lidar com cenários de desenvolvimento muito mais complexos, este conjunto simples de etapas pode ajudar a equipe a compreender o fluxo de trabalho do modelo.

A tarefa de Ella é criar um objeto personalizado para o instrutor do curso de idiomas e vinculá-lo ao registro do curso. Juan cria um acionador que envia um email de notificação para o alias da equipe de vendas. Estas são as etapas:

Clonar o repositório

Primeiro, Ella clona o repositório GitHub e cria sua própria ramificação.

  1. Vá para o repositório que deseja clonar, por exemplo, https://github.com/zephyrus/language-courses.
    Este repositório não existe. Destina-se apenas a fins ilustrativos. Se você planeja acompanhar, substitua o repositório de amostra criado nestas etapas. Além disso, você simulará o trabalho de duas personas de desenvolvedor, Juan e Ella. Sugerimos a criação de dois diretórios pais separados para manter o trabalho de desenvolvimento separado. Por exemplo, se você estiver fazendo o trabalho de desenvolvimento de Ella, clone o repositório em uma pasta org-dev-ella. Quando você estiver fazendo o trabalho de desenvolvimento de Juan, clone o repositório em uma pasta org-dev-juan.
    1. Clique em Clone or download (Clonar ou baixar).
    2. Copie a URL HTTPS.
  2. Na Paleta de comando no VS Code, selecione Git: Clone (Git: clonar).
  3. Em Repository URL (URL do repositório), cole a URL para o repositório, e clique em Enter (Inserir). Ella clona o repositório criado por Juan: https://github.com/zephyrus/language-courses.git.
  4. Em seu sistema de arquivos local, navegue até o local onde deseja colocar o repositório GitHub e clique em Select Repository Location (Selecionar local do repositório).
  5. Clique em Open Repository (Abrir repositório).
  6. Na Paleta de comando, selecione Git: Create Branch (Git: criar ramificação).
  7. Insira o nome da sua ramificação. Ella chama sua ramificação de ella-custom-object. Agora ela está trabalhando em sua própria ramificação.

Autorizar e fazer login na sandbox

Em seguida, Ella autoriza (faz login) em sua sandbox de desenvolvedor usando o VS Code.

Observação

Se você estiver acompanhando, use uma organização Developer Edition ou Trailhead Playground. Na etapa 3, selecione Project Default (Padrão do projeto) para usar login.salesforce.com como URL de login.

  1. Na caixa de pesquisa da paleta de comandos, insira sfdx authorize.
  2. Selecione SFDX: Authorize an Org (SFDX: Autorizar uma organização).
  3. Selecione Sandbox para a URL de login.
  4. Insira um alias para a sandbox, por exemplo, dev_sandbox.
  5. Faça login com seu nome de usuário e sua senha da sandbox.

Criar os objetos personalizados

Em seguida, Ella cria os objetos personalizados Language Course (Curso de idiomas) e Language Instructor (Instrutor de idiomas) em sua Developer Sandbox.

  1. Em Setup (Configuração), clique na guia Object Manager (Gerenciador de objetos).
  2. Clique em Create | Custom Object (Criar | Objeto personalizado) no canto superior direito.
  3. Em Label (Rótulo), insira Language Course Instructor (Instrutor de curso de idiomas). Os campos Object Name (Nome do objeto) e Record Name (Nome do registro) são preenchidos automaticamente.
  4. Em Plural Label (Rótulo no plural), insira Language Course Instructors (Instrutores de curso de idiomas).
  5. Marque a caixa Launch New Custom Tab Wizard (Iniciar Assistente da nova guia personalizada) e clique em Save (Salvar).
  6. Selecione seu estilo de tabela desejado (Ella escolhe Presenter), e clique em Next (Avançar) até salvar o objeto.
Observação

Dica de profissional: Você também pode usar os comandos de schema generate (geração de esquema) para gerar arquivos de origem locais para novos objetos, campos, guias e eventos de plataforma personalizados. Para este módulo recomendamos que você use Setup (Configuração), mas experimente os comandos mais tarde, achamos que você vai gostar deles.

Definir o campo personalizado

Em seguida, Ella define o campo de objeto personalizado no objeto Language Course (Curso de idiomas) que faz referência ao objeto Language Course Instructor (Instrutor do curso de idiomas).

Observação

Se você está acompanhando, Ella criou o objeto Language Course (Curso de idiomas) em outro módulo. Este módulo considera que este objeto já existe na sandbox do desenvolvedor de Ella. Crie este objeto personalizado antes de continuar:

  1. Em Setup (Configuração), clique na guia Object Manager (Gerenciador de objetos).
  2. Clique em Create | Custom Object (Criar | Objeto personalizado) no canto superior direito.
  3. Em Label (Rótulo), insira Language Course (Curso de idiomas). Os campos Object Name (Nome do objeto) e Record Name (Nome do registro) são preenchidos automaticamente.
  4. Em Plural Label (Rótulo de plural), insira Language Courses (Cursos de idiomas).
  5. Marque a caixa Launch New Custom Tab Wizard (Iniciar Assistente da nova guia personalizada) e clique em Save (Salvar).
  6. Selecione seu estilo de guia desejado (Ella escolhe Chalkboard) e clique em Next (Avançar) até salvar o objeto. 
  1. Em Setup (Configuração), vá até Object Manager | Language Course (Gerenciador de objetos | Curso de idiomas).
  2. Clique em Fields & Relationships (Campos e relacionamentos). Observe que alguns campos já estão lá, incluindo um campo de nome.
  3. Clique em New (Novo).
  4. Em Data Type (Tipo de dados), selecione Master-Detail Relationship (Relacionamento entre mestre e detalhes) e clique em Next (Avançar).
  5. Em Related To (Relacionado a), selecione Language Course Instructor (Instrutor de curso de idiomas), e clique em Next (Avançar).
  6. Preencha as seguintes informações:
    • Field Label (Rótulo do campo): Course Instructor (Instrutor do curso)
    • Description (Descrição): Teacher for the language course (Professor para o curso de idioma)
  7. Clique em Next (Avançar) até que você possa salvar o campo.

Acompanhar as alterações em uma lista de alterações

Ella cria uma lista de alterações para o projeto para capturar suas alterações.

Tipo de metadados Objeto Tipo de alteração (Criar, Atualizar, Excluir) Detalhes
CustomObject Language_Course_Instructor__c Criar Objeto para capturar o nome da pessoa que ministra o curso
CustomField Course_Instructor__c Criar Relacionamento entre mestre e detalhes com o objeto personalizado Language_Course__c

Recuperar as alterações da Sandbox do desenvolvedor

Ella recupera as alterações da sandbox para seu projeto DX local. Como Ella acompanha suas alterações ao longo do caminho, ela sabe o que recuperar da sandbox do desenvolvedor.

Como Ella recupera apenas alguns componentes da sandbox, ela decide usar o Terminal no VS Code para executar o comando project retrieve start (início de recuperação do projeto) da Salesforce CLI. Com base no diretório padrão especificado no projeto DX, a CLI coloca a fonte na pasta force-app. Como você não pode adicionar uma pasta vazia ao GitHub, Ella cria a pasta force-app no projeto DX em seu sistema de arquivos local.

  1. No projeto DX no sistema de arquivos local, crie uma pasta force-app.
  2. No Terminal do VS Code, execute o comando da CLI para recuperar o novo objeto personalizado e o novo campo personalizado:
    sf project retrieve start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c
    Ella usa --metadata em vez de --source-dir porque --source-dir pode recuperar apenas arquivos que já existem no sistema de arquivos. O objeto personalizado aparece no diretório force-app/main/default/objectsNo VS Code, o lado esquerdo mostra a nova estrutura de diretórios criada após o comando source:retrieve: force-app/main/default/objects. O lado direito mostra a janela do Terminal onde o comando foi executado, bem como a saída da CLI resultante.

Confirmar as alterações no repositório de controle de origem

Ella confirma suas alterações no repositório e, em seguida, cria uma solicitação pull para informar Juan que suas alterações estão prontas para revisão.

  1. No VS Code, selecione ícone Ícone Controle de origem Source Control (Controle de origem).
  2. Insira um comentário de confirmação e clique no ícone Ícone de confirmação Commit (Confirmação).
  3. Clique em Yes (Sim) para adicionar e confirmar os arquivos.
  4. Na Paleta de comando do VS Code, selecione Git: Push To (Git: enviar por push para).
  5. Selecione o repositório de origem.

Revisar o código

Observação

Se você estiver acompanhando, pode pular esta seção.

  1. Crie uma solicitação pull. No repositório GitHub, clique em Compare & pull request (Comparar e solicitação pull).
  2. Atribua os revisores. Ella designa Juan para revisar e aprovar suas alterações.
  3. Insira um comentário para os revisores.
  4. Clique em Create pull request (Criar solicitação pull).

Depois que Juan revisa e aprova o código, Ella mescla a solicitação pull. Juan sabe que pode começar seu trabalho de acionador.

Criar o acionador

O acionador notifica a equipe de vendas quando um curso é atualizado ou um novo curso é adicionado. Um acionador é um trecho de código do Apex executado antes ou depois de registros de um tipo específico serem inseridos, atualizados ou excluídos do banco de dados da plataforma Lightning.

Juan clona o repositório GitHub que contém o novo objeto personalizado, criando sua própria ramificação. Juan cria seu acionador e seu teste correspondente no VS Code.

Implantar o repositório do projeto na sandbox do desenvolvedor

Primeiro, Juan implanta as alterações de Ella em sua sandbox de desenvolvedor para que ambos os ambientes fiquem sincronizados.

Observação

Se você estiver acompanhando, execute estas etapas na pasta que você criou para o trabalho de desenvolvimento de Juan, como org-dev-juan. Use uma nova organização Developer Edition ou Trailhead Playground para a sandbox do desenvolvedor de Juan.

  1. Clone o repositório do GitHub.
  2. No VS Code, selecione Git: Create Branch (Git: criar ramificação) e forneça um nome para a ramificação. Juan nomeia sua ramificação como juan_apex_trigger.
  3. Selecione SFDX: Authorize an Org (SFDX: Autorizar uma organização).
  4. Selecione Sandbox para a URL de login (test.salesforce.com).
  5. Insira um alias para a sandbox, por exemplo, dev_sandbox.
  6. Faça login com seu nome de usuário e sua senha da sandbox.
  7. Implante as alterações de Ella para a sandbox do desenvolvedor dele. Clique com o botão direito do mouse na pasta de objetos e selecione SFDX: Deploy Source to Org (SFDX: Implantar origem na organização). Como alternativa, Juan pode executar o comando da Salesforce CLI no Terminal.
    sf project deploy start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c

Desenvolver o acionador

  1. Na ramificação juan_apex_trigger do VS Code, crie o diretório para colocar o acionador.
    1. Expanda a pasta force-app.
    2. Clique com o botão direito do mouse em Default (Padrão) e selecione New Folder (Nova pasta).
    3. Insira triggers (acionadores).
  2. Clique com o botão direito do mouse na pasta de acionadores e clique em SFDX: Create Apex Trigger (SDFX: criar acionador do Apex).
  3. Insira LanguageCourseTrigger como o nome do acionador. Insira o código para o acionador:
    trigger LanguageCourseTrigger on Language_Course__c (after insert, after update, after delete) {
    // <write your own notification code>
    }
  4. Salve o arquivo.
  5. Crie um teste para o acionador chamado TestLanguageCourseTrigger. Como desenvolvedor experiente, Juan garante que os requisitos de cobertura de código sejam atendidos.

Implantar as alterações na sandbox do desenvolvedor

Juan implanta o acionador para validá-lo e compilá-lo e, em seguida, testa se está funcionando corretamente com o novo objeto.

  1. No Terminal do VS Code, clique com o botão direito do mouse na pasta triggers e selecione SFDX: Deploy Source to Org (SFDX: Implantar origem na organização). Como alternativa, Juan pode executar o comando da CLI no Terminal.
    sf project deploy start --source-dir force-app/main/default/triggers
    No VS Code, o lado esquerdo mostra a nova estrutura de diretórios criada após o comando source:deploy para o acionador: force-app/main/default/triggers. O lado direito mostra a janela do Terminal onde o comando foi executado, bem como a saída da CLI resultante.
  2. Juan verifica se capturou todas as alterações e se elas funcionam na sandbox.
  3. Juan adiciona suas alterações à lista de alterações.
Tipo de metadados Objeto Tipo de alteração (Criar, Atualizar, Excluir) Detalhes
CustomObject Language_Course_Instructor__c Criar Objeto para capturar quem está ministrando o curso
CustomField Course_Instructor__c
Criar Relacionamento entre mestre e detalhes com o objeto personalizado Language_Course__c
ApexTrigger LanguageCourseTrigger Criar Envia um email para a equipe de vendas quando o objeto Language_Course__c é criado, atualizado ou excluído
ApexClass TestLanguageCourseTrigger Criar Cobertura do teste do Apex para o acionador

Confirmar as alterações no repositório de controle de origem

Juan confirma suas alterações no repositório e, em seguida, cria uma solicitação pull. Ella faz a revisão do código.

Planejar a próxima versão

Juan e Ella seguem o mesmo processo para personalizações futuras. Se eles desenvolverem personalizações no VS Code, como o trabalho de acionador de Juan, eles as implantarão em suas sandboxes de desenvolvedor para validação e teste.

Eles usam Setup (Configuração) para todo o resto; assim conseguem aproveitar criadores, assistentes e interfaces declarativas. E então eles recuperam essas alterações da sandbox para seus sistemas de arquivos locais. Confirmam suas alterações no controle de origem, criam uma solicitação pull e solicitam uma revisão de código antes de mesclar suas alterações na ramificação mestre.

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira