Mostrando postagens com marcador formula field. Mostrar todas as postagens
Mostrando postagens com marcador formula field. Mostrar todas as postagens

quarta-feira, 27 de junho de 2018

Transformando ID 15 caracteres para 18 caracteres - SFDC

Sabemos que os IDs de registros no Salesforce possuem 15 caracteres (ou dígitos). Porém você já deve ter percebido em algumas situações um ID com 18 caracteres entra em cena. 
Bem, o padrão da Salesforce são registros com 15 caracteres entre Números e Letras Maiúsculas e Minúsculas. Isto é, o ID dos registros no Salesforce é Case Sensitive.
Exemplo de ID de uma Conta com 15 caracteres:


001f100001Q5RgL

Porém, caso seja necessário integrar o Salesforce com outra ferramenta que não diferencie as letras maiúsculas e minúsculas na comparação, a Salesforce criou mais 3 dígitos verificadores no ID original que transforma o ID em Case Insensitive. Isto é, ignora letras maiúsculas e minusculas. Dessa forma, o exemplo acima, seria com 18 caracteres:


001f100001Q5RgLAAV

Dentro da plataforma Salesforce, as 2 versões (com 15 ou 18 caracteres) continuam Case Sensitive, porém esses 3 dígitos a mais diferenciam os IDs que poderiam vir a se repetir caso a comparação seja feita ignorando letras maiúsculas e minusculas, facilitando assim a integração com outras ferramentas. 

DICA:

  • Não tente usar os IDs (mesmo de 18) alterando o que for maiúsculo para minúsculo e vice-versa dentro do Salesforce. Não vai funcionar!
  • Não tente usar os IDs de 15 caracteres fora do Salesforce. Pode have duplicados (se for uma comparação Case Insensitive).


Agora que você já a diferença, veja como é simples criar um campo fórmula para transformar um ID de 15 para ID de 18:

Crie um campo fórmula com o tipo de retorno texto e adicione a função CaseSafeId:


CASESAFEID(Conta__r.id)


Agora é só salvar a fórmula e Voilà! Você tem o ID de 18 caracteres!



* Precisa de um suporte ou consultoria na criação de fórmulas no Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce. 


segunda-feira, 26 de dezembro de 2016

Dica rápida: Link da instância Salesforce em uma Fórmula

Caso precise do Link da instância da sua Org Salesforce, em uma fórmula, vai uma dica rápida para se ter esse link:

 LEFT($Api.Partner_Server_URL_260, FIND( '/services', $Api.Partner_Server_URL_260))  

Após essas instruções, basta concatenar o que deseja para formar sua URL com a instância Salesforce.

Essa era rapidinha ;)












terça-feira, 4 de outubro de 2016

Campo fórmula - Semana do ano

Hoje precisei criar um campo fórmula que me indicava se uma Oportunidade, no Salesforce, estava com data de fechamento para essa semana (semana atual). A forma mais fácil de fazer, ao meu ver, seria verificando se a semana (do ano), de fechamento era a mesma semana (do ano) da data atual. Após algumas pesquisas descobri que não há uma fórmula nativa no Salesforce que me desse a semana do ano. Então após algumas pesquisas cheguei nessa fórmula:


 MOD( FLOOR(( TODAY() - DATEVALUE("2006-01-01" )) / 7),52) + 1  

Essa fórmula me retorna a semana do ano, na data atual - TODAY(). Para retornar essa informação, ela diminui a data atual pela data de 01/01/2006 (ano em que o 1º dia do ano foi no domingo, porém poderia ser qualquer outro ano com essa característica) para retornar a quantidade de dias entre a data (01/01/2006) e a data atual. Em seguida divide por 7 (dias na semana) para calcular a quantidade de semanas no período. Por fim, pega o resto da divisão por 52 (que é a quantidade de semanas no ano). E esse resto mais 1 é exatamente a semana do ano.

Bem, na minha situação, criei uma fórmula, do tipo Caixa de seleção (boolean - verdadeiro ou falso), verificando se a semana da data de fechamento da Oportunidade no SFDC era a mesma da semana da data atual:


 (MOD(FLOOR( ( CloseDate - DATEVALUE("2006-01-01" ))/7),52) + 1 )   
 =   
 (MOD(FLOOR( ( TODAY() - DATEVALUE("2006-01-01" ))/7),52) + 1 )   

Outros anos que comecem no domingo, caso precise usar:

2012
2006
1995
1989
1984
1978
1967
1961
1956
1950
1939
1933
1928
1922
1911
1905

Bem, por hoje é apenas isso!



quinta-feira, 25 de agosto de 2016

Validação de CPF e CNPJ com regra de validação

Hoje vai uma dica rápida para criar uma regra de validação para validar um campo que contenha CPF ou CPNJ no Salesforce. Criamos para esse exemplo um campo cuja o nome de API é CNPJ_CPF__c, no objeto que desejo realizar a validação (Account - Conta, por exemplo).

Dei um nome para a regra de validação e na formula para validação, inseri o seguinte código:


   

 IF( LEN( CNPJ_CPF__c )= 14   
 ,   
 NOT(   
 OR(   
 LEN(CNPJ_CPF__c)=0,   
 AND( NOT(CNPJ_CPF__c = "00000000000000"),   
 MOD(MOD(11-MOD(VALUE(MID(CNPJ_CPF__c,1,1))*5+VALUE(MID(CNPJ_CPF__c,2,1))*4+VALUE(MID(CNPJ_CPF__c,3,1))*3+VALUE(MID(CNPJ_CPF__c,4,1))*2+VALUE(MID(CNPJ_CPF__c,5,1))*9+VALUE(MID(CNPJ_CPF__c,6,1))*8+VALUE(MID(CNPJ_CPF__c,7,1))*7+VALUE(MID(CNPJ_CPF__c,8,1))*6+VALUE(MID(CNPJ_CPF__c,9,1))*5+VALUE(MID(CNPJ_CPF__c,10,1))*4+VALUE(MID(CNPJ_CPF__c,11,1))*3+VALUE(MID(CNPJ_CPF__c,12,1))*2,11),11),10) =   
 VALUE(MID(CNPJ_CPF__c,13,1)),   
 MOD(MOD(11-MOD(VALUE(MID(CNPJ_CPF__c,1,1))*6+VALUE(MID(CNPJ_CPF__c,2,1))*5+VALUE(MID(CNPJ_CPF__c,3,1))*4+VALUE(MID(CNPJ_CPF__c,4,1))*3+VALUE(MID(CNPJ_CPF__c,5,1))*2+VALUE(MID(CNPJ_CPF__c,6,1))*9+VALUE(MID(CNPJ_CPF__c,7,1))*8+VALUE(MID(CNPJ_CPF__c,8,1))*7+VALUE(MID(CNPJ_CPF__c,9,1))*6+VALUE(MID(CNPJ_CPF__c,10,1))*5+VALUE(MID(CNPJ_CPF__c,11,1))*4+VALUE(MID(CNPJ_CPF__c,12,1))*3+VALUE(MID(CNPJ_CPF__c,13,1))*2,11),11),10) =   
 VALUE(MID(CNPJ_CPF__c,14,1))   
 )))   
 ,
 IF(LEN(CNPJ_CPF__c) < 11, TRUE, 
 NOT AND (CNPJ_CPF__c <> '00000000000',CNPJ_CPF__c <> '11111111111',   
 CNPJ_CPF__c <> '22222222222',CNPJ_CPF__c <> '33333333333',CNPJ_CPF__c <> '44444444444',CNPJ_CPF__c <> '55555555555',CNPJ_CPF__c <> '66666666666',CNPJ_CPF__c <> '77777777777',CNPJ_CPF__c <> '88888888888',CNPJ_CPF__c <> '99999999999',   
 IF ((MID(CNPJ_CPF__c , 10, 1) =   
 IF (MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*10)+   
 (VALUE(MID(CNPJ_CPF__c , 2, 1))*9)+   
 (VALUE(MID(CNPJ_CPF__c , 3, 1))*8)+   
 (VALUE(MID(CNPJ_CPF__c , 4, 1))*7)+   
 (VALUE(MID(CNPJ_CPF__c , 5, 1))*6)+   
 (VALUE(MID(CNPJ_CPF__c , 6, 1))*5)+   
 (VALUE(MID(CNPJ_CPF__c , 7, 1))*4)+   
 (VALUE(MID(CNPJ_CPF__c , 8, 1))*3)+   
 (VALUE(MID(CNPJ_CPF__c , 9, 1))*2)),11) < 2,'0',   
 TEXT(11 - MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*10)+   
 (VALUE(MID(CNPJ_CPF__c , 2, 1))*9)+   
 (VALUE(MID(CNPJ_CPF__c , 3, 1))*8)+   
 (VALUE(MID(CNPJ_CPF__c , 4, 1))*7)+   
 (VALUE(MID(CNPJ_CPF__c , 5, 1))*6)+   
 (VALUE(MID(CNPJ_CPF__c , 6, 1))*5)+   
 (VALUE(MID(CNPJ_CPF__c , 7, 1))*4)+   
 (VALUE(MID(CNPJ_CPF__c , 8, 1))*3)+   
 (VALUE(MID(CNPJ_CPF__c , 9, 1))*2)),11))   
 )),TRUE,FALSE),   
 IF ((MID(CNPJ_CPF__c , 11, 1) =   
 IF (MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*11)+   
 (VALUE(MID(CNPJ_CPF__c , 2, 1))*10)+   
 (VALUE(MID(CNPJ_CPF__c , 3, 1))*9)+   
 (VALUE(MID(CNPJ_CPF__c , 4, 1))*8)+   
 (VALUE(MID(CNPJ_CPF__c , 5, 1))*7)+   
 (VALUE(MID(CNPJ_CPF__c , 6, 1))*6)+   
 (VALUE(MID(CNPJ_CPF__c , 7, 1))*5)+   
 (VALUE(MID(CNPJ_CPF__c , 8, 1))*4)+   
 (VALUE(MID(CNPJ_CPF__c , 9, 1))*3)+   
 (VALUE(MID(CNPJ_CPF__c , 10, 1))*2)),11) < 2,'0',   
 TEXT(11 - MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*11)+   
 (VALUE(MID(CNPJ_CPF__c , 2, 1))*10)+   
 (VALUE(MID(CNPJ_CPF__c , 3, 1))*9)+   
 (VALUE(MID(CNPJ_CPF__c , 4, 1))*8)+   
 (VALUE(MID(CNPJ_CPF__c , 5, 1))*7)+   
 (VALUE(MID(CNPJ_CPF__c , 6, 1))*6)+   
 (VALUE(MID(CNPJ_CPF__c , 7, 1))*5)+   
 (VALUE(MID(CNPJ_CPF__c , 8, 1))*4)+   
 (VALUE(MID(CNPJ_CPF__c , 9, 1))*3)+   
 (VALUE(MID(CNPJ_CPF__c , 10, 1))*2)),11))   
 )),TRUE,FALSE)   
 )   
 )
 )


Coloquei a mensagem de "CPF ou CNPJ inválido!", preenchi onde eu gostaria que exibisse o erro e salvei.




Observação importante: Essa validação não permite a utilização pontos, hífens e barras na composição do CPF/CNPJ. Apenas números. Apesar disso, o campo criado é Texto. Agora nada de CPFs ou CNPJs inválidos na sua Org.

Agradeço ao Allan Pecli por me alertar e corrigir alguns itens nessa validação. Se alguém perceber algum problema e quiser colaborar, fique a vontade para me notificar. Valeu Allan!


* Está precisando de um suporte ou consultoria para customização de regras de validação da sua plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/




sábado, 14 de maio de 2016

Campo fórmula - Convertendo texto para número

Essa é uma dica rápida na criação de campos fórmula (formula fields) no Salesforce! 

Caso precise converter uma campo texto para numérico, na fórmula, utilize a função VALUE(texto):


 VALUE('05')  

Vamos criar uma formula com na Oportunidade. Pegaremos o valor total da oportunidade (Amount) e dividir por um campo que criamos (ValorTotal__c), que representa a quantidade de parcelas:


 2000 / VALUE(QuantidadeParcelas__c)  



segunda-feira, 9 de maio de 2016

Campo fórmula - Convertendo Lista de Opções para Texto

Essa é uma dica rápida para utilização de campo Lista de Opções em campos formula (formula fields) no Salesforce. Como é conhecido, ao tentar referenciar diretamente um campo Lista de Opções em uma fórmula, o Salesforce acusa um problema. Isto acontece porque o campo Lista de Opções armazena uma referência ao valor e não ele diretamente. Então precisamos converter esse valor para utilizar em nossas fórmulas. Conversão essa que não é necessária em códigos Apex.

Bem, para utilizar o campo Lista de Opções em uma fórmula, utilize a função TEXT(CampoListaOpcoes__c):


 TEXT(CampoListaOpcoes__c)  

Ou


 "Valor da Lista de Opções: " & TEXT(CampoListaOpcoes__c)