Browsing category

SOQL

Como otimizar sua Query SOQL

Otimizar SOQL, o que eu ganho com isso? Um dos grandes desafios de qualquer desenvolvedor Salesforce é fazer com que seu código não atinja nenhum limite, mas como nem tudo são flores na vida, acabamos enfrentando esse problema mais cedo ou mais tarde. Há vários motivos que podem fazer a execução do seu código quebrar por atingir esses limites, alguns desses motivos são relacionados a queries SOQL, que podem estar demorando muito para executar ou trazer mais de 200 mil registros em uma única query, mas não se preocupe, estou escrevendo este artigo exatamente para mostrar formas de otimizar sua SOQL e evitar que estes erros ocorram. Como avaliar o custo da query SOQL Primeiro precisamos entender o que está sendo executado na nossa query e para isso utilizamos o query plan no developer console. Para habilitá-lo, basta abrir o Developer Console e ir no menu Help > Preferences e marcar a opção Enable Query Plan Depois, entre na aba Query Editor, coloque sua query e clique no botão Query Plan Temos agora um passo a passo da nossa query e aqui vai uma explicação simples do que é cada um desses campos: Cardinality: Quantos registros estão retornando naquela na […]

Estendendo componentes do Lightning

Se você já atuou em um grande projeto de Lightning, deve estar cansado de repetir o mesmo trecho de código toda vez que precisa interagir com uma Controller, não é mesmo? Então hoje quero te mostrar duas coisas legais, a primeira é o que o título do post diz, estender um componente do Lightning, e o que isso significa, isso significa que você pode aproveitar parte de um componente dentro de outro, mas fique tranquilo, isso fará sentido assim que começarmos a colocar a mão na massa, e segundo vamos fazer isso criando um componente que permitirá você fazer chamadas Apex com apenas 1 linha de código. Entendendo o problema Como eu disse antes, se você já trabalhou com grandes projetos em Lightning, muito provavelmente já precisou fazer uma chamada Apex para consumir dados do Salesforce, e se fez isso mais de uma vez, então você deve ter escrito o código abaixo algumas vezes, não é? var action = component.get(“c.getAccounts”); action.setParams(params); action.setCallback(this, function(response) { var state = response.getState(); if (state === “SUCCESS”) { var result = response.getReturnValue(); //do something with the result } else if (state === “INCOMPLETE”) { // wait, what? } else if (state === “ERROR”) { var […]

Melhore o desempenho usando o Platform Cache

Sempre que construímos grandes sistemas, o desempenho é um dos maiores vilões. As performances geralmente podem corresponder ao balanceamento de carga dos servidores, o tempo de resposta das páginas que construímos, e assim por diante! Quando trabalhamos na plataforma force.com, a maior parte desse trabalho pesado é cuidada pela própria plataforma, para o nosso alivio. No entanto, há certas coisas que podemos ajustar para melhorar ainda mais o desempenho, e um desses conceitos é o uso do Platform Cache. O que é um cache? tenha sempre em mente que Cache é um armazenamento temporário Primeira mente, tenha sempre em mente que Cache é um armazenamento temporário, e de uma forma geral é frequentemente usado para evitar acesso desnecessários em um banco de dados, vamos uma imaginar um cenário de uso, onde você armazena no seu banco de dados a Endpoint e Token para acessar um aplicação externa, se você imaginar uma página com muitos acessos e que a cada acesso é realizado uma chamada para uma aplicação externa, a cada acesso precisaríamos consultar os dados de acesso no banco de dados, o que consumiria muito recurso e tempo da plataforma, agora imagine ter essa informação sempre em memória e disponível para uso imediatamente sem depender de […]

Entendendo o uso do SOQL Locking Records

No post de hoje vamos falar sobre o SOQL Locking Records, imagine o cenário onde você precisa fazer o processamento em vários registros, e nesse pequeno intervalo de tempo, ninguém poderá modificar esse registro, para conseguirmos esse feito, precisamos usar o Locking Records, então vamos lá entender como isso funciona?   O que é Locking Records O Locking Records é uma forma de bloquear os registros do Salesforce em uma transação Apex, basicamente o Locking Records consiste na inclusão de duas palavras chaves em sua SOQL, dessa forma todos os registros resultantes da sua SOQL serão bloqueados e não poderão ser alterados até que a transação do Apex seja concluída. ao utilizar o FOR UPDATE você não poderá especificar um ORDER BY Dois pontos importantes aqui são, o primeiro é que não é necessário realizar o commit dos dados, se ocorrer um erro na transação Apex, todas as alterações serão desfeitas, e caso a transação termine sem erros, os registros serão comitados automaticamente. Outro ponto de atenção é que ao utilizar o FOR UPDATE você não poderá especificar um ORDER BY, talvez esse seja o ponto chave que dificulte a sua utilização, porém como a idea do Locking Records é garantir […]