Automatização com o Data Loader pode ser uma das ferramentas mais poderosas que você vai utilizar no seu dia a dia, por isso aprender a utilizá-la pode fazer toda a diferença nas suas tarefas e forma de manipular os dados da sua organização, o Data Loader é uma ferramenta que entre muitas coisas te permite inserir, ler, atualizar e excluir registros em massa, vou te mostrar como tirar proveito disso hoje utilizando um computador com Windows para criar seus processos automatizados.
Se você ainda não sabe o que é o Data Loader, dê uma olhada nesse post que falei sobre como instalar e usar de maneira simples o Data Loader, se você ja conhece e deseja fazer uma automatização com o Data Loader, então você está no lugar certo, podemos tornar o Data Loader um integrador automático utilizando o Task Scheduler( Agendador de Tarefas), no windows podemos criar Arquivo.Bat (Arquivo em lotes) para executar de pequenas tarefas a processos complexos, e programas e feito isso podemos unir os 2 para agendar nossa Bat para que ela execute em determinados horários, com determinados parâmetros, é uma ferramenta simples mas ao mesmo tempo muito poderosa, agora que você sabe o que é o Bat, vamos ao que interessa?
1. Criptografando sua senha
- Já com o Data Loader Instalado antes de mais nada vamos precisar da senha do usuário criptografada, vá para a pasta do Data Loader *uma maneira simples é botão direito no atalho e escolher a opção Abrir local do arquivo*. Dentro da pasta, procure pela pasta “bin” dentro dela você encontrará um arquivo chamado “encrypt.bat” é ele quem vai criptografar a senha de acesso, copie o caminho da pasta bin.
- Abra o Prompt de Comandos “CMD”.
- Digite “cd caminho da pasta bin” onde está escrito caminho cole o caminho que copiou da pasta “bin” e pressione enter.
- Digite o comando “encrypt.bat -k dataloader”. Será gerado um arquivo chamado dataloader na pasta, ele vai ser o arquivo chave que garante que sua senha está correta
- Agora digite o comando”: encrypt.bat -e SenhaUsuario caminho\dataLoader.key”. Onde caminho seria o caminho onde está o arquivo que foi criado anteriormente é SenhaUsuario seria sua senha que ele vai criptografar. Se você fez tudo corretamente, será gerado um código com vários caracteres, copie é guarde esse código em um bloco de notas pois iremos utilizá-lo em breve.
2. Montagem do arquivo de configuração .XML
Agora vamos montar um arquivo XML, na documentação oficial você encontrará a função completa de todos os comandos, mas aqui vou te mostrar os principais, neste caso vamo extrair alguns campos presentes no objeto em Caso.
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="accountInsert" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false"> <description>Automatizando com o Data Loader</description> <property name="name" value="accountInsert"/> <property name="configOverrideMap"> <map> <entry key="sfdc.debugMessages" value="true"/> <entry key="sfdc.debugMessagesFile" value="C:\DLTest\Log\dataloader.log"/> <!--<entry key="sfdc.endpoint" value="https://login .salesforce.com"/> --> <entry key="sfdc.endpoint" value="https://test.salesforce.com"/> <entry key="sfdc.username" value="[email protected]"/> <entry key="process.encryptionKeyFile" value="c:\dataloader\bin\dataloader.key"/> <entry key="sfdc.timeoutSecs" value="600"/> <entry key="sfdc.loadBatchSize" value="200"/> <entry key="sfdc.entity" value="Case"/> <entry key="sfdc.extractionRequestSize" value="500"/> <entry key="sfdc.extractionSOQL" value="SELECT ID CreatedDate, CaseNumber, RecordType.Name FROM CASE WHERE CreateDate = YESTERDAY"/> <entry key="process.operation" value="extract"/> <entry key="process.mappingFile" value="C:\DLTest\Command Line\Config\case.sdl"/> <entry key="dataAccess.type" value="csvWrite"/> <entry key="dataAccess.name" value="C:\DLTest\In\case.csv"/> </map> </property> </bean> </beans>
Esse é o arquivo de configuração, base onde vamos alterar os principais comandos, você irá digitar sempre dentro das aspas do Value=”XXXX”
<bean id="idCase"/> //Nome do processo bem importante para chamarmos ele no arquivo.bat que será agendado <entry key="sfdc.endpoint" value="https://test.salesforce.com"/> //aqui colocamos a URL de acesso ao salesforce <entry key="sfdc.username" value=" "/> //coloque seu usuário <entry key="sfdc.password" value=" "/> //coloque sua senha criptografada <entry key="process.encryptionKeyFile" value="C:\dataloader\bin\dataloader.key"/> //coloque aquele arquivo chamado dataloader a extensão dele é .key <entry key="sfdc.entity" value="Case"/> //Qual objeto será utilizado <entry key="sfdc.extractionRequestSize" value="500"/> //Quantidade de registros <entry key="sfdc.extractionSOQL" value="SELECT ID CreatedDate, CaseNumber, RecordType.Name FROM CASE WHERE CreateDate = YESTERDAY" /> //aqui seria onde você vai dar o select se for uma extração de dados <entry key="process.operation" value="extract"/> //O tipo de operação no caso Extract <entry key="process.mappingFile" value="C:\dataloader\bin\mappingFile\CasesExportMap.sdl"/> //aqui seria o arquivo de mapeamento de campos. ele é montado igual o da imagem abaixo
Dentro dele, deve haver todos os campos que você irá extrair para o arquivo CSV ou que você vai utilizar para Inserir ou Atualizar, se preferir você pode criar um arquivo.txt é editar a extensão para .sdl
<entry key="dataAccess.type" value="csvWrite"/> //Aqui defimos oq ele vai fazer csvWrite ele vai escrever o resultado em um CSV quando vamos dar um Update ou um Insert seria um csvRead <entry key="dataAccess.name" value="C:\dataloader\bin\Saida\casosExportados.csv"/> //aqui colocamos o nome do arquivo que será gerado ou que será lido pelo Dataloader
3. Criação do arquivo .bat para sua primeira automatização com o Data Loader
Agora chegou a hora de criarmos o arquivo .bat que será executando no agendamento. Crie um arquivo de texto e digite dentro dele:
:run process ExportCasos"C:\dataloader\conf" idCase :end
Vermelho: Chamando o arquivo Process.Bat dentro da pasta bin
Azul: Nome do bat que acabou de criar
Verde: Caminho da pasta do dataloader/conf
Roxo: O nome do processo que você colocou dentro do seu arquivo .xml
4. Criar tarefa e agendar sua automatização com o Data Loader
Feito isso, a parte do data loader está tudo OK., agora vamos ao agendador de tarefas do Windows para agendar a automatização com o Data Loader usando o nosso arquivo .bat
- Pressione “Win+R” para abrir o Executar, digite taskschd.msc e clique em “OK” para abrir o Agendador de Tarefas. Outra opção é procurar por “Agendador de Tarefas” na pesquisa ou no menu Iniciar do Windows.
- Uma vez aberto o Agendador de Tarefas, clique no menu “Ação > Criar Tarefa Básica“.
- Digite um nome e uma descrição para a tarefa que você está criando.
- Selecione quando ela será executada. Você pode executá-la diariamente, semanalmente, mensalmente, uma única vez, ao inicializar o computador, ao fazer o logon ou quando um evento específico for registrado.Nessa etapa é algo importante, aqui você irá definir a frequência que será executado esse processo, *se for mais de uma vez por dia coloque diariamente depois de criado você consegue colocar mais Disparadores de Tarefa*
- Dependendo da opção escolhida, ele irá solicitar que você defina um horário e a taxa de repetição.
- Na tela seguinte, escolha a opção “Iniciar um programa“.
- Em seguida, clique em “Procurar…” e selecione o arquivo executável (.BAT) que criamos no passo anterior.
- Por último, clique em “Concluir“.
- Se quiser testar a tarefa criada, clique em “Biblioteca do Agendador de Tarefas” na janela principal, encontre a tarefa criada, clique com o botão direito nela e selecione “Executar”.
Algumas pessoas utilizam o antigo Informatica Cloud que é pago por transação, essa é uma alternativa a zero custo, o Data Loader permite ainda que você automatize tarefas como Insert, Update, Upsert, Delete e tudo mais que você pode fazer com o Data Loader, você pode automatizar usando um .bat, mas agora vou deixar a imaginação de vocês criarem os novos cenários.
Até o próximo post.
Alef Ribeiro
Salesforce Developer at Check21.com
Técnico em Programação de jogos digitais pela Universidade São Judas Tadeu e me formando em Analise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo.
Iniciei minha carreira de tecnologia com Desenvolvimento Front-end e de Game, em 2018 conheci a Salesforce onde mudei totalmente de carreira e estou focado em me tornar um Arquiteto Salesforce, atuei em diversos projetos desde sustentações classic até desenvolvimento em Lightning components para diversos clientes, onde fui de estagiário a pleno em menos de 1 ano.