Skip to main content

Modificar registros com DML

Objetivos de aprendizagem

Depois de concluir esta unidade, você vai:

  • Compreender como usar a Grade de consulta no Console do desenvolvedor para manipular diretamente os registros de dados.
  • Entender como usar DML para manter os dados no banco de dados.
  • Ser capaz de identificar duas formas de escrever comandos DML.

Gerenciar dados no Console do desenvolvedor

Até agora, vimos como usar o Console do desenvolvedor para consultar dados usando SOQL e SOSL. Mas talvez você não tenha reparado que o painel Query Results mostrado no Console do desenvolvedor não mostra apenas os resultados; ele também funciona como grade de consulta. É possível clicar na grade de resultados e usar os botões abaixo dela para inserir, atualizar ou excluir dados.

Vamos tentar fazer isso.

  1. Em Configuração, selecione Seu nome > Console do desenvolvedor para abrir o Console do desenvolvedor.
  2. No Developer Console, clique na guia Editor de consulta no painel inferior.
  3. Exclua o código existente e insira o seguinte trecho:
    SELECT Id, Name, Industry FROM Account
    
  4. Clique em Executar. Os resultados da consulta mostram todas as contas da organização, junto com a contagem do total de linhas. Repare nesse valor.
  5. Clique em Insert Row. Uma nova linha é adicionada ao topo da grade.
  6. Clique duas vezes nessa nova linha para inserir um nome e um setor, mas deixe o valor de ID em branco.
  7. Clique em Save Rows. Observe que um valor é automaticamente exibido na coluna Id. Lembre-se: a ID é a chave primária e esse valor é gerado pelo sistema. Repare também que o total de linhas exibido ainda é o valor original.
  8. Clique em Refresh Grid. Você percebeu que a contagem do total de linhas aumentou em um? Nada mal essa ferramenta, não é?

Como desenvolvedores, sabemos que às vezes você precisa gerenciar os dados rapidamente e queremos garantir que esse processo é o mais fácil possível. Imaginamos que ele seja bem melhor do que digitar um demonstrativo INSERT, UPDATE ou DELETE.

Também é possível usar os botões no canto inferior direito dos resultados da consulta para acessar os registros diretamente no Salesforce. Vá em frente e faça o teste.

O que é DML?

Como você já aprendeu na primeira unidade, o Salesforce usa SOQL para consultar dados, mas quando se trata de gerenciar os dados, ele usa DML.

Como desenvolvedor .NET, você usa principalmente o SQL para consultar e gerenciar os dados; então, pode parecer estranho usar outra linguagem. Mas você descobrirá que trabalhar com os comandos de DML no Salesforce é muito mais fácil do que usar os equivalentes em SQL.

Como o Force.com está fortemente integrado, você pode ir direto ao ponto da manipulação de dados sem ter de se preocupar com o gerenciamento de uma fonte de dados. É por isso que é tão fácil trabalhar com o DML.

Demonstrativos DML

Confira a tabela abaixo para ver quais demonstrativos DML estão disponíveis. Alguns você provavelmente já conhece e o funcionamento deles é bem parecido com o que você esperaria. Para saber mais, consulte o Developer’s Guide.

Demonstrativo Descrição
inserir Insere um novo registro.
atualizar Atualiza um registro existente.
inserir e atualizar É uma operação especial que cria novos registros e atualiza os registros em uma única instrução. Essa operação usa um campo especificado para determinar a presença dos objetos existentes ou o campo de ID, caso nenhum campo seja especificado.
excluir Exclui um registro existente.
cancelar exclusão Restaura um ou mais dos registros existentes que estão na lixeira.
mesclar É outra operação especial que pode mesclar até três registros que pertençam ao mesmo tipo de objeto em um desses registros. Depois disso, exclui os outros registros e reassocia quaisquer registros relacionados.

Duas formas de executar DML

No Apex, é possível executar instruções DML de duas formas.

  • Usando a própria instrução: você já viu esse método na unidade de SOSL em que inserimos dados de conta e contato. Esse é o método mais fácil. Caso você não se lembre, veja abaixo um trecho de código da unidade SOSL. Uma única conta foi inserida usando a instrução DML insert.
    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    insert acct;
    
  • Usando os métodos de classe de banco de dados: a vantagem de usar o método de classe de banco de dados é que você tem acesso ao parâmetro opcional allOrNone para especificar se a operação pode ser parcialmente bem-sucedida. Quando esse parâmetro é definido como false, caso ocorra um erro num conjunto parcial de registros, os registros bem-sucedidos serão confirmados. Serão retornados erros referentes aos registros com falha. Além disso, com a opção de sucesso parcial, nenhuma exceção é gerada. Por exemplo, para criar uma conta com o parâmetro allOrNone definido como false e retornar as informações de êxito ou falha em uma matriz, o resultado ficaria desta forma.
    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    Database.SaveResult[] results = Database.insert(acct, false);
    

Quero saber mais

Por padrão, o parâmetro allOrNone é definido como true, o que significa que o método Database se comporta como seu equivalente em DML e gera uma exceção se uma falha é encontrada. Confira os documentos oficiais para saber mais.

Se quiser se tornar um astro do DML, curse o módulo Banco de dados e noções básicas do Apex. Ele contém mais informações sobre como inserir registros com sucesso parcial e como inserir registros relacionados.

Resources

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