URL Hack no Lightning Experience

Uma das principais novidades da última release Spring ‘20 foi o retorno da possibilidade de se utilizar URL Hack, esta técnica tanto utilizada nos tempos de Classic que não funcionava no Lightning (exceto com alguns workarounds) está oficialmente integrada ao Lightning e agora pode ser aplicada de maneira até mais fácil do que no Classic.

O que é a URL Hack?

URL Hack é a técnica de passar parâmetros através da URL. Essa técnica é muito utilizada para pré popular campos de um objeto com valores de outro.

Exemplo, estamos na tela de Conta e queremos criar um novo caso relacionado a essa Conta, nesse exemplo teríamos que criar um botão Novo Caso, adicioná-lo ao layout de Conta e nesse novo botão e que aplicarmos a URL Hack.

Como funcionava nos tempos de Classic

Nos tempos de Classic a coisa era complicada, primeiro tínhamos que buscar os Ids dos campos que queríamos pré popular, depois o Id do objeto que queríamos criar, criar um botão e depois montar a URL.

Era um processo trabalhoso, mas se você tiver interesse em ver os detalhes recomendo esse link que explica esse processo em detalhes.

De volta ao Lightning na Spring ‘20

Desde o surgimento do Lightning Experience não era possível utilizar a URL Hack, embora existem alguns workarounds, mas a Salesforce surpreendeu e tornou a URL Hack oficialmente incorporada ao Lightning. Vale ressaltar que só funciona para a criação de registros e não funciona na visão mobile, veja a nota da versão em detalhes aqui Salesforce Spring ’20 Release Notes – Navigate to a Record’s Create Page with Default Field Values

Como funciona?

Caso de uso: Precisamoso criar um caso relacionado à uma conta e pré popular os campos Account Name com o nome da conta que estou visualizando, Business Area com o valor do campo Industry da conta e Case Origin com o valor Phone, pois ele será utilizado apenas por atendentes do suporte telefônico.

1 – Criar o botão

Em Object Manager vá em Account -> Buttons, Links, and Actions -> New Button or Link

Preencha os detalhes do botão como na imagem a seguir:

Detalhes do botão

2 – Montar a URL

Pegamos a URL disponível no Release Notes e alteramos para a nossa necessidade conforme exemplo:

Exemplo de URL

Para exemplificar alguns detalhes, a parte inicial é bem parecida como na montagem da URL no Classic, a novidade fica por conta do defaultFiedValues que é a palavra-chave para a passagem de parâmetros. Depois passamos o API Name do campo que queremos preencher e podemos passar de valor o Merge Field ou até mesmo digitar algo como fiz no caso do campo Origin.

Destaco também a função URLENCODE que pega qualquer texto e transforme em um valor que possa ser utilizado em uma URL como no caso de palavras com espaços.

3 – Incluir o botão no layout

Em Object Manager vá em Account -> Page Layouts -> Account Layout

Clique em Buttons e arraste o novo botão para a área Custom Buttons do layout e clique em Salvar.

4 – Testando

Acesse uma conta na sua ORG e teste o botão. Veja que no nosso exemplo ele pré populou os campos Account Name, Business Area e Case Origin.

Criação de caso com campos pré populados

Pronto, agora é só terminar de preencher os detalhes do caso e salvar o registro.

Esse processo no Lightning ficou realmente bem mais fácil!

Outros Métodos

Como você deve imaginar existem alguns outros workarounds que reproduzem o efeito da URL Hack, esses métodos foram as alternativas criadas enquanto a Salesforce não disponibilizava uma forma nativa.

O primeiro método, introduzido por Brian Kwong em seu blog, utiliza uma Action que chama um Flow que por sua vez chama um Lightning Component. Embora pareça complexo, vale dar uma olhada no post onde ele explica o passo a passo, até porque esse método funciona no mobile diferentemente do novo método disponibilizado na Spring ‘20.

O outro método foi uma evolução do primeiro, criado pelo Douglas C. Ayers, ele compartilhou no github o projeto e também possui um post que vale a pena dar uma conferida. Nesse método ele tirou o Flow da jogada e utilizou apenas a Action que chama o Lightning Component.

 

Diogo Ramos

Salesforce Developer at Avanxo

Formado em Sistemas da Informação pela Anhembi Morumbi, iniciei minha carreira de desenvolvedor com Java e por conta da semelhança do Java com o Apex acabei caindo no mundo Salesforce em 2017 e cá estou desde então.

Posso dizer que me apaixonei rapidamente pela plataforma e por tudo que é possível fazer com ela. Muitos dizem que sou um viciado em Trailhead, pois tenho mais de 400 badges, além de 12 certificações, já eu digo que gosto de aprender algo novo todo dia.

Atualmente trabalho em consultoria atendendo grandes clientes, atuo fazendo tanto a parte de administração e customização como desenvolvimento.

Acompanhe meu Trailhead aqui.

 

 

LightningLightning ExperienceSpring '20Url Hack