You are on page 1of 456

Princpios da plataforma Force.

com
Uma introduo ao desenvolvimento de aplicativos personalizados na nuvem
Verso 8
Outubro de 2013
De Phil Choi
Chris McGuire
Caroline Roth
Com contribuies de
Dave Carroll
Nick Tran
Andrea Leszek
Princpios da plataforma Force.com

Copyright 20002013 salesforce.com, inc. Todos os direitos reservados. Salesforce.com uma


marca registrada da salesforce.com, inc., assim como outros nomes e marcas. Outras marcas que
aparecem neste documento podem ser marcas comerciais de seus respectivos proprietrios.
Vrias marcas registradas mantidas por seus respectivos proprietrios.
Nenhuma parte desta publicao pode ser reproduzida, armazenada em um sistema de recuperao
ou transmitida, em qualquer forma ou por qualquer meio, eletrnico, mecnico, fotocpia, gravao
ou de outra forma, sem a autorizao prvia do editor.
ISBN: 978-0-9789639-3-4
Os princpios do Force.com uma introduo funcionalidade inata da plataforma Force.com. Este
manual conduz o leitor na criao de um aplicativo de recrutamento padro, inclusive esboando e
criando objetos do Force.com, modificando a aparncia da interface padro do Force.com, o esquema
de segurana do Force.com, colaborando com o Chatter, informando sobre seus dados e usando fluxos
de trabalho e aprovaes. Este livro tambm introduz o uso da funcionalidade externa de integrao
de pginas do Visualforce.
2 | Verso 8 | Prefcio
Contedo
Prefcio....................................................................................................1
Bem-vindo nuvem!.........................................................................................................1
Plataformas para computao em nuvem..............................................................2
Sobre este livro..................................................................................................................3
Pblico-alvo..........................................................................................................3
Contedo dos captulos.........................................................................................3
Selecionando o seu ambiente de desenvolvimento................................................5
Enviando comentrios..........................................................................................5
Sobre a Developer Force...................................................................................................6
Treinamento e certificao da Salesforce.com..................................................................6
Apresentando a plataforma Force.com........................................................7
Captulo 1: Apresentando a plataforma Force.com.............................7
Conceitos bsicos da interface de usurio de um aplicativo...................................9
Os benefcios de um aplicativo da plataforma Force.com...................................11
Aplicativos centrados em dados..............................................................12
Aplicativos colaborativos.........................................................................12
As tecnologias por trs de um aplicativo da plataforma Force.com.....................13
Uma arquitetura de multilocatrio..........................................................14
Um modelo de desenvolvimento orientado por metadados.....................15
APIs........................................................................................................16
Apex........................................................................................................17
Visualforce...............................................................................................17
Acesso mvel...........................................................................................18
O diretrio AppExchange.......................................................................19
Captulo 2: Sobre o aplicativo de recrutamento de amostra.........................21
Sobre a Universal Containers..........................................................................................22
Consideraes para o aplicativo de recrutamento...........................................................22
Construindo o aplicativo: nosso design...........................................................................23
Objetos personalizados........................................................................................23
Regras de segurana e compartilhamento...........................................................24
Verso 8 | Sumrio | i
Processos de aprovao e fluxo de trabalho.........................................................25
Relatrios e painis personalizados.....................................................................26
Visualforce..........................................................................................................27
Captulo 3: Revisando conceitos de bancos de dados..................................29
O que um banco de dados?..........................................................................................31
O que existe em um banco de dados?..............................................................................32
O que um banco de dados relacional?..........................................................................33
Resumo dos conceitos de banco de dados.......................................................................35
Captulo 4: Construindo um aplicativo simples.........................................37
Familiarizando-se com a rea Configurao (Setup)......................................................38
Introduo aos aplicativos...............................................................................................40
Experimente: Defina um aplicativo.....................................................................40
Observe o que fizemos........................................................................................43
Introduo aos objetos....................................................................................................44
O objeto personalizado Posio (Position)..........................................................45
Experimente: Defina o objeto personalizado Posio (Position)........................45
Introduo s guias.........................................................................................................50
Experimente: Defina a guia Posies (Positions)................................................50
Observe o que fizemos........................................................................................52
Familiarizando-se com as listas relacionadas e as pginas de detalhes de
configurao..............................................................................................................54
Introduo aos campos....................................................................................................57
Experimente: Adicione campos de texto.............................................................58
Experimente: Adicione campos de moeda..........................................................61
Experimente: Adicione campos de caixa de seleo............................................62
Experimente: Adicione campos de data..............................................................62
Observe o que fizemos....................................................................................................63
Testando nosso aplicativo simples em um dispositivo mvel..........................................64
Captulo 5: Aprimorando um aplicativo simples com Campos avanados,
Validao de dados e Layouts de pgina................................................67
Adicionando campos avanados......................................................................................68
Introduo s listas de opes.............................................................................68
Experimente: Adicione listas de opes..............................................................69
Introduo s dependncias de campo................................................................72
ii | Verso 8 | Sumrio
Experimente: Crie uma lista de opes dependente............................................72
Observe o que fizemos........................................................................................76
Introduo aos campos de frmula personalizada...............................................76
Calculando o tempo desde a abertura da posio................................................77
Experimente: Defina um campo de frmula personalizada "Dias em aberto
(Days Open)"................................................................................................79
Experimente: Fornea valores padro dinmicos aos campos.............................83
Observe o que fizemos........................................................................................84
Introduo s regras de validao....................................................................................85
Experimente: Defina uma regra de validao para o salrio mnimo e
mximo..........................................................................................................85
Experimente: Defina uma regra de validao para a data de fechamento...........88
Observe o que fizemos........................................................................................90
Faa um teste no celular..................................................................................................92
Introduo aos layouts de pgina....................................................................................93
Familiarizando-se com o editor de layout de pgina...........................................94
Experimente: Agrupe campos em uma nova seo.............................................96
Experimente: Adicione espaos entre os campos................................................99
Experimente: Edite as propriedades do campo.................................................100
Observe o que fizemos......................................................................................101
Testando nossos layouts de pgina em um dispositivo mvel...........................103
Introduo aos layouts compactos.................................................................................108
Captulo 6: Expandindo um aplicativo simples usando
relacionamentos................................................................................113
Introduo aos relacionamentos....................................................................................114
Apresentando os campos personalizados de relacionamento........................................115
Experimente: Relacione gerentes de contrataes e posies............................116
Observe o que fizemos......................................................................................117
Adicionando candidatos................................................................................................119
Experimente: crie o objeto Candidato (Candidate)..........................................119
Experimente: adicione campos ao objeto Candidato (Candidate)....................120
Experimente: Modifique as propriedades do layout da pgina Candidato
(Candidate).................................................................................................122
Observe o que fizemos......................................................................................123
Experimente: personalize os destaques do registro do candidato......................125
Verso 8 | Sumrio | iii
Observe o que fizemos......................................................................................125
Associando candidatos e posies aos formulrios de emprego....................................129
Experimente: Crie o objeto Formulrio de emprego (Job Application)............127
Experimente: adicione campos ao objeto Formulrio de emprego (Job
Application)................................................................................................128
Experimente: Personalize os destaques do registro Formulrio de emprego
(Job Application).........................................................................................129
Observe o que fizemos......................................................................................130
Introduo aos layouts de pesquisa...............................................................................132
Experimente: Adicione campos na caixa de dilogo de pesquisa do
candidato.....................................................................................................134
Experimente: Atualize layouts de pesquisa adicionais.......................................135
Gerenciando anlises de revises...................................................................................136
Experimente: crie o objeto Reviso (Review)....................................................137
Experimente: adicione campos ao objeto Reviso (Review)..............................138
Introduo aos campos de resumo de totalizao..............................................145
Experimente: Crie campos de resumo de totalizao........................................145
Experimente: Personalize a pgina do objeto Reviso (Review) e os layouts
de pesquisa..................................................................................................148
Experimente: Personalize os destaques do registro das revises........................150
Observe o que fizemos......................................................................................150
Criando um relacionamento do tipo muitos com muitos..............................................152
Experimente: crie o objeto Site de empregos (Employment Website)..............154
Experimente: adicione o campo URL ao objeto Site de empregos
(Employment Website)...............................................................................155
Experimente: crie o objeto Publicao de emprego (Job Posting).....................156
Experimente: adicione campos ao objeto Publicao de emprego (Job
Posting).......................................................................................................157
Personalizando listas relacionadas em relacionamento do tipo muitos com
muitos..........................................................................................................159
Experimente: personalize as listas relacionadas Posies (Positions) e Sites
de empregos (Employment Websites).........................................................159
Experimente: Personalize os destaques do registro para sites de empregos e
publicao de empregos...............................................................................161
Observe o que fizemos......................................................................................162
Juntando tudo...............................................................................................................162
iv | Verso 8 | Sumrio
Experimente: faa o download dos dados de amostra.......................................165
Experimente: use o Assistente de importao...................................................166
Captulo 7: Protegendo e compartilhando dados......................................169
Controlando o acesso aos dados no nosso aplicativo.....................................................171
Permisses necessrias para o Recrutador.........................................................171
Permisses necessrias para o Gerente de contratao......................................172
Permisses necessrias para o Entrevistador.....................................................174
Permisses necessrias para o Funcionrio padro............................................175
Ento, onde estamos agora?..............................................................................176
Conceitos de acesso aos dados......................................................................................177
Controlando o acesso aos objetos..................................................................................179
Introduo aos perfis.........................................................................................179
Perfis padro.....................................................................................................180
Introduo aos conjuntos de permisses...........................................................180
Conjuntos de permisses e perfis no aplicativo Recruiting...............................181
Experimente: Crie o perfil Recrutador (Recruiter)...........................................182
Experimente: Crie o perfil Funcionrio padro (Standard Employee)..............187
Experimente: Crie o conjunto de permisses Gerente de contratao (Hiring
Manager).....................................................................................................188
Experimente: Crie o conjunto de permisses Entrevistador (Interviewer)........194
Controlando o acesso aos campos.................................................................................196
Introduo segurana no nvel do campo.......................................................197
Segurana no nvel do campo no nosso aplicativo Recruiting...........................197
Experimente: Limite o acesso aos campos no perfil Funcionrio padro
(Standard Employee)...................................................................................198
Experimente: Verifique a segurana no nvel do campo nos conjuntos de
permisses...................................................................................................202
Controlando o acesso aos registros...............................................................................203
Introduo aos padres para toda a organizao...............................................203
Padres para toda a empresa no aplicativo Recruiting......................................203
Experimente: Configure os padres para toda a organizao............................206
Introduo s hierarquias de papis...................................................................208
Comparando papis, perfis e conjuntos de permisses......................................209
Hierarquia de papis no aplicativo Recruiting...................................................210
Experimente: Crie um usurio..........................................................................211
Experimente: Defina uma hierarquia de papis................................................212
Verso 8 | Sumrio | v
O que mais precisa ser compartilhado?.............................................................216
Introduo s regras de compartilhamento.......................................................216
Regras de compartilhamento no aplicativo Recruiting......................................217
Experimente: Defina um grupo pblico............................................................218
Experimente: Defina regras de compartilhamento............................................220
Introduo ao compartilhamento manual.........................................................223
Experimente: Defina uma regra de compartilhamento manual.........................223
Exibindo valores do campo e layouts de pgina de acordo com perfis..........................225
Experimente: Crie um tipo de registro..............................................................226
Juntando tudo...............................................................................................................230
Experimente: Crie mais usurios.......................................................................230
Experimente: Verifique se tudo est funcionando.............................................234
Delegando a administrao dos dados..........................................................................235
Sobrescrevendo o compartilhamento com as permisses de objeto...................236
Grupos de administrao delegada....................................................................237
Experimente: Defina o grupo de administrao do gerente de
recrutamento...............................................................................................238
Experimente: Verifique se a administrao delegada funciona..........................240
Resumindo....................................................................................................................242
Captulo 8: Colaborao com o Chatter...................................................243
Apresentando o Chatter...............................................................................................244
Rastreando campos em seus objetos..............................................................................244
Experimente: habilite o monitoramento de feeds em posies e formulrios
de emprego..................................................................................................245
Observe o que fizemos......................................................................................247
Seguindo registros.........................................................................................................248
Experimente: siga um registro de formulrio de emprego.................................248
Iniciando um ou dois grupos.........................................................................................250
Experimente: crie um grupo..............................................................................250
Apresentando as Notificaes.......................................................................................251
Experimente: ative as notificaes.....................................................................252
Observe o que fizemos......................................................................................252
Apresentando as aes do editor...................................................................................253
Experimente: crie uma ao global....................................................................254
Apresentando os layouts de ao...........................................................255
Experimente: adicione valores de campo predefinidos..........................257
vi | Verso 8 | Sumrio
Experimente: crie mais aes globais.....................................................258
Apresentando os layouts de editor globais........................................................259
Experimente: personalize um layout de editor global............................259
Observe o que fizemos..........................................................................260
Apresentando as aes especficas de objeto......................................................261
Experimente: crie uma ao especfica de objeto...................................262
Experimente: crie mais aes especficas de objeto................................263
Experimente: atribua aes especficas de objeto a layouts de pgina................265
Observe o que fizemos......................................................................................267
Resumindo....................................................................................................................269
Captulo 9: Usando fluxos de trabalho personalizados e processos de
aprovao..........................................................................................271
Introduo do fluxo de trabalho....................................................................................272
Introduo de regras de fluxo de trabalho.........................................................273
Apresentao das aes do fluxo de trabalho: Tarefas, atualizaes de campo
e alertas........................................................................................................274
Fluxo de trabalho em nosso aplicativo Recruiting.........................................................275
Criao de regras de fluxo de trabalho que atribuem tarefas.........................................276
Experimente: Crie a regra de fluxo de trabalho "Enviar carta de rejeio"........277
Experimente: Crie a tarefa de fluxo de trabalho "Enviar carta de rejeio".......280
Experimente: Crie a tarefa e a regra de fluxo de trabalho "Estender uma oferta
(Extend an Offer)"......................................................................................283
Observe o que fizemos......................................................................................284
Criao de uma regra de fluxo de trabalho que atualiza campos...................................286
Introduo de filas.............................................................................................286
Experimente: Crie uma fila para as posies.....................................................286
Experimente: Crie uma regra de fluxo de trabalho que atualize os campos.......289
Introduo de aes de fluxo de trabalho dependentes de tempo......................290
Experimente: Crie a tarefa de fluxo de trabalho dependente de tempo
"Notificar o gerente de contratao"............................................................291
Observe o que fizemos......................................................................................294
Criao de uma regra de fluxo de trabalho que envia alertas por email.........................295
Introduo aos modelos de email......................................................................295
Experimente: Crie um modelo de email...........................................................296
Experimente: Crie uma regra de fluxo de trabalho de nova posio..................299
Verso 8 | Sumrio | vii
Introduo de aprovaes..............................................................................................301
Planejamento para os processos de aprovao...................................................303
Experimente: Crie um modelo de email para aprovaes..................................303
Experimente: Crie um processo de aprovao...................................................304
Experimente: Crie etapas de aprovao.............................................................309
Experimente: Crie aes de aprovao..............................................................314
Experimente: Ative o nosso processo de aprovao...........................................317
Observe o que fizemos......................................................................................317
Resumindo....................................................................................................................322
Captulo 10: Analisando dados com relatrios e painis...........................323
Introduo aos relatrios...............................................................................................324
Formatos de relatrio........................................................................................325
Configurando o aplicativo Recruiting para relatrios........................................329
Experimente: Adicione a guia Relatrios (Reports)..............................329
Experimente: Crie uma pasta de relatrios do Recruiting.....................330
Criando um relatrio de resumo.......................................................................331
Experimente: Crie um relatrio de resumo...........................................332
Experimente: adicione colunas e filtros.................................................336
Experimente: Adicione um grfico de pizza..........................................338
Criando um relatrio de matriz.........................................................................340
Experimente: Crie um relatrio de matriz............................................341
Experimente: Adicione campos de resumo...........................................342
Experimente: adicione colunas e filtros.................................................344
Experimente: Adicione um grfico e o destaque condicional................346
Introduo aos painis..................................................................................................349
Experimente: Crie relatrios adicionais............................................................350
Experimente: Criar um painel...........................................................................354
Adicionando componentes do painel................................................................357
Experimente: Adicione um componente de grfico..............................358
Experimente: Adicione um componente de medidor............................359
Experimente: Adicione um componente de tabela................................360
Experimente: Adicione um componente de mtrica.............................361
Atualizando painis...........................................................................................364
Introduo aos painis mveis...........................................................................364
Introduo aos tipos de relatrios personalizados.........................................................366
Experimente: Crie um tipo de relatrio............................................................367
viii | Verso 8 | Sumrio
Observe o que fizemos..................................................................................................372
Captulo 11: Indo alm do desenvolvimento de aplicativos do tipo apontar
e clicar..............................................................................................373
Apresentando mash-ups e servios da Web..................................................................375
Apresentando o Visualforce..........................................................................................376
Apresentando o modo de desenvolvimento do Visualforce...............................378
Experimente: habilitando o modo de desenvolvimento do Visualforce.............379
Implementando o Mapa dos candidatos ......................................................................379
Experimente: crie uma pgina do Visualforce...................................................379
Experimente: escreva marcaes do Visualforce................................................381
Experimente: adicione o mapa nossa pgina do Visualforce...........................384
Experimente: adicione o mapa dos candidatos a layouts de pgina de
posio.........................................................................................................385
Experimente: habilite o mapa dos candidatos para dispositivos mveis............387
Experimente: teste o Mapa dos candidatos.......................................................388
Implementando o boto Atualizao de status em massa (Mass Update Status)..........389
Planejando o recurso Atualizao de status em massa (Mass Update
Status).........................................................................................................389
Experimente: crie a pgina Atualizao de status em massa (Mass Update
Status).........................................................................................................391
Entendendo a marcao Atualizao de status em massa (MassUpdateStatus)
do Visualforce..............................................................................................393
Experimente: crie um boto de lista personalizado...........................................397
Experimente: adicione um boto de lista personalizado a um layout de
pgina..........................................................................................................399
Experimente: teste o recurso Atualizao de status em massa (Mass Update
Status).........................................................................................................401
Captulo 12: Aprendendo mais...............................................................403
Developer Force............................................................................................................404
Opes de ajuda e treinamento.....................................................................................404
Multimdia....................................................................................................................405
Programa de parcerias AppExchange...........................................................................405
Qual a sua opinio?....................................................................................................406
Glossrio...............................................................................................407
Verso 8 | Sumrio | ix
ndice....................................................................................................431
x | Verso 8 | Sumrio
Prefcio
Como usurios da Internet, estamos familiarizados com as maneiras fascinantes, inovadoras,
criativas e s vezes engraadas com que ela mudou o modo que trabalhamos e nos divertimos.
Desde redes sociais e wikis e blogs, entre muito outros, fascinante observar a introduo de
inovaes que mudam a maneira como nos comunicamos e colaboramos uns com os outros.
Enquanto essas mudanas certamente influenciaram o modo trabalhamos com o contedo,
um conjunto semelhante de tecnologias e ideias baseadas na Internet est mudando como
construmos e trabalhamos com aplicativos empresariais. Enquanto os aplicativos empresariais
do passado exigiam centenas, se no milhes de dlares e s vezes anos de servios profissionais
para configurao e personalizao, as tecnologias oferecidas hoje em dia pela Internet facilitam
a criao, configurao e o uso de aplicativos empresariais de todos os tipos. De fato, a Internet
nos concedeu a capacidade de resolver novos tipos de problemas empresariais que, devido
complexidade ou aos custos, previamente no eram uma possibilidade.
Assim como as mudanas que moveram as tecnologias de publicao do papel para os bits nos
possibilitaram obter informaes sobre qualquer tpico imediatamente, as mudanas nas
tecnologias dos aplicativos nos permitem igualmente imaginar robustos aplicativos empresariais
para praticamente qualquer necessidade empresarial. Para timo, no? Agora voc deve estar
se perguntando: Mas como isso possvel?
Bem-vindo nuvem!
Essas novas maneiras de construir e executar aplicativo so possibilitadas pelo mundo da
computao em nuvem, no qual possvel acessar aplicativos (ou apps) atravs da Internet e
us-los como servios, em vez de como softwares executados em seu computador ou em salas
de servidor. Esse modelo j comum em aplicativos de consumo como emails ou
compartilhamento de imagens e em certos aplicativos empresariais, como o gerenciamento de
relacionamento com clientes (CRM).
Como a maioria dos aplicativos atuais so fornecidos atravs de um navegador da Web, cada
vez mais difcil dizer quais aplicativos so software tradicional e quais so executados na
nuvem. Assim como a Internet, os aplicativos executados na nuvem se tornaram to onipresentes
que quase todos os usurios empresariais interagem com pelo menos um deles, seja ele um
servio de email, um aplicativo de conferncias online ou um sistema de vendas.
Plataformas para computao em nuvem
Um novo recurso, a plataforma na nuvem, est tornando o processo de fornecer funcionalidades
para aplicativos ainda mais interessante. Cada vez mais, os aplicativos que funcionam na nuvem
se parecem menos como sites e mais como plataformas, o que significa que eles esto comeando
a usar Interfaces de programao de aplicativos (APIs), bibliotecas de cdigos e at mesmo
modelos de programao. Coletivamente, esses novos tipos de tecnologias de desenvolvimento
podem ser considerados como plataformas para executar aplicativos na nuvem.
De forma semelhante s plataformas tradicionais, as plataformas de computao em nuvem
fornecem ferramentas que permitem que os desenvolvedores usem funcionalidades existentes
para criar novidades. No entanto, como as ferramentas dessas plataformas so acessadas
livremente atravs da Internet em vez de atravs de um sistema operacional ou pacote instalado
em um computador local, os desenvolvedores no precisam se preocupar com a logstica de
criar um arquivo executvel que ser instalado no computador de um usurio. Qualquer pessoa
pode acessar e usar o aplicativo usando um navegador da Web!
As possibilidades apresentadas por este novo tipo de plataforma emergiram rapidamente,
incentivadas pela popularidade dos mash-ups, que so sites ou aplicativos que combinam
ferramentas de diversas plataformas de computao em nuvem para criar novas funcionalidades.
Algumas das ferramentas de plataformas de computao em nuvem usadas nos mash-ups
atuais incluem inovaes como a API de pesquisa do Google, que permite que os
desenvolvedores usem esse poderoso mecanismo de pesquisa em seus aplicativos, as APIs do
eBay para criao de listagens e leiles ou o sistema da Amazon.com, que permite criar vitrines
virtuais completas. Por exemplo, qualquer site ou aplicativo atual de bens imobilirios usa os
servios de mapas do Google ou Yahoo!. Isso ilustra como atualmente essas novas APIs so
frequentemente usadas junto com plataformas de sistemas operacionais, servidores de aplicativos
e bancos de dados tracionais.
2 | Verso 8 | Prefcio
Sobre este livro
Este livro lhe apresenta a Force.com, que a plataforma da salesforce.com para construir e
executar aplicativos empresariais na nuvem.
Para ilustrar as tecnologias disponveis na plataforma Force.com e demonstrar como fcil
criar seus prprios aplicativos empresariais usando a plataforma, este livro o guia ao longo do
processo de criao de um novo aplicativo de recrutamento executado na nuvem. Para
acompanhar esse processo de criao voc no precisar aprender nenhuma linguagem de
programao ou acessar complexos documentos de configuraes. Em vez disso, basta usar
ferramenta do tipo apontar e clicar em uma interface da Web, seguindo as fceis instrues
passo a passo do livro.
Nota: Deseja obter uma verso online deste livro? Acesse
http://wiki.developerforce.com/page/Force_Platform_Fundamentals.
Pblico-alvo
Este livro pode ser facilmente entendido por qualquer pessoa desde um usurio empresarial
at um desenvolvedor profissional. No entanto, para obter os melhores resultados, recomenda-se
que o leitor seja familiar com conceitos bsicos de Internet e bancos de dados, tais como tabelas
e campos.
Enquanto o livro foca principalmente em usar as funcionalidades declarativas do tipo apontar
e clicar da plataforma Force.com, o captulo Indo alm do desenvolvimento de aplicativos do
tipo apontar e clicar na pgina 373 lhe apresenta s ferramentas de programao da interface
de usurio da plataforma. Para compreender completamente esse captulo, recomenda-se que
voc tenha familiaridade com HTML e JavaScript. No entanto, todos os cdigos necessrios
so fornecidos, assim mesmo que voc no seja um desenvolvedor com experincia, ainda poder
seguir as instrues visando obter uma melhor compreenso a respeito do que pode ser feito
com a plataforma Force.com.
Contedo dos captulos
Caso j tenha familiaridade com a plataforma Force.com, voc pode simplesmente ler
diretamente os captulos nos quais tem mais interesse:
Verso 8 | Prefcio | 3
Descrio Captulos
Aprenda sobre as tecnologias por trs da
plataforma Force.com, incluindo o diretrio
AppExchange.
Apresentando a plataforma Force.com
Aprenda sobre o aplicativo de recrutamento
que construiremos neste livro e a empresa
fictcia para a qual o aplicativo ser construdo.
Sobre o aplicativo de recrutamento de amostra
Revise conceitos de bancos de dados como
tabelas, registros, campos, chaves e
relacionamentos.
Revisando conceitos de bancos de dados
Crie o primeiro objeto personalizado em nosso
aplicativo de recrutamento e adicione diversos
campos bsicos.
Construindo um aplicativo simples
Adicione listas de opes, listas de opes
dependentes, regras de validao e campos de
Aprimorando um aplicativo simples com
Campos avanados, Validao de dados e
Layouts de pgina frmulas a objetos personalizados, e depois
edite o layout da pgina de detalhes do objeto.
Adicione mais cinco objetos personalizados
ao nosso aplicativo de recrutamento e
Expandindo um aplicativo simples usando
relacionamentos
associe-os uns com os outros usando
relacionamentos.
Defina regras para quem pode ler, criar, editar
e excluir registros no aplicativo.
Protegendo e compartilhando dados
Ative o Chatter para sua organizao para que
os usurios possam acompanhar informaes
importantes para eles.
Colaborao com Chatter
Defina regras de fluxo de trabalho e processos
de aprovao que atribuem tarefas, atualizam
Usando fluxos de trabalho personalizados e
processos de aprovao
campos e enviam emails quando certos
critrios so atendidos.
Crie relatrios personalizados, grficos e
painis que fornecem uma viso geral dos
dados de recrutamento aos usurios.
Analisando dados com relatrios e painis
Aprenda a usar o Visualforce para estender a
funcionalidade da plataforma criando um
Indo alm do desenvolvimento de aplicativos
do tipo apontar e clicar
mash-up com o Yahoo! Maps e adicionando
4 | Verso 8 | Prefcio
Descrio Captulos
uma ferramenta para atualizao em massa
dos registros.
Saiba onde voc pode obter mais informaes
sobre o desenvolvimento na plataforma.
Aprendendo mais
Procure a definio de qualquer termo com o
qual voc no tem familiaridade.
Glossrio
Nota: Este livro contm diversas capturas de tela. Como a Force.com uma plataforma
em constante desenvolvimento, as capturas de tela podem variar levemente em relao
ao que voc ver em sua tela, porm no se preocupe! Essas diferenas devero so
pequenas e no afetaro seu entendimento do sistema.
Selecionando o seu ambiente de
desenvolvimento
Para seguir os exerccios neste livro, voc precisar de uma conta no Salesforce. Se voc j
um cliente do Salesforce, possvel usar um sandbox Force.com. Um sandbox uma cpia da
sua organizao, que pode ser usada para testar configuraes e treinar usurios sem comprometer
dados em sua organizao de produo. As verses Salesforce Enterprise, Unlimited e
Performance Editions vm com um sandbox gratuito. Usurios de outras edies podem usar
a Developer Edition para fazer os exerccios.
Se voc no tenha familiaridade com o Salesforce ou caso no queira usar um sandbox, acesse
developer.force.com e cadastre uma conta gratuita do Developer Edition. A Developer Edition
uma verso totalmente funcional do Salesforce, que voc pode usar para desenvolver aplicativos
do Salesforce. Como a verso gratuita, h limites quanto quantidade de usurios, largura
de banda e armazenamento permitidos, porm ela ainda assim inclui todos os recursos do
Salesforce. Ao se cadastrar, voc tambm automaticamente passa a faze parte da comunidade
cada vez maior de desenvolvedores da plataforma Force.com, com membros de todo o mundo.
Enviando comentrios
Voc tem alguma pergunta ou comentrio sobre algo neste livro? Sugestes de tpicos que
voc gostaria que fossem abordados em futuras verses? Acesse os fruns de discusso do
Developer Force em community.salesforce.com/sforce?category.id=developers
e deixe sua opinio! Ou envie um email diretamente para developerforce@salesforce.com.
Verso 8 | Prefcio | 5
Sobre a Developer Force
A Developer Force uma comunidade de desenvolvedores que constroem e personalizam
aplicativos que funcionam na nuvem e so desenvolvidos usando a plataforma Force.com. Os
membros da Developer Force tm acesso a uma vasta gama de recursos, incluindo cdigos de
amostra, kits de ferramentas, uma comunidade online de desenvolvedores e ambientes de teste
necessrios para a construo dos aplicativos. O site da Developer Force inclui uma verso
online deste livro e contm informaes sobre o evento Dreamforce, que realizamos anualmente
para os desenvolvedores da plataforma Force.com. Se voc precisar de mais informaes, quiser
fazer perguntas, est procurando uma amostra ou um kit de ferramentas, ou simplesmente
deseja obter mais detalhes sobre o desenvolvimento da plataforma Force.com, tudo isso pode
ser encontrado na Developer Force.
Para obter mais informaes sobre os recursos disponveis no site da Developer Force, acesse
developer.force.com e revise o captulo Aprendendo mais.
Treinamento e certificao da
Salesforce.com
Diversos exemplos deste livro foram fornecidos pelo Treinamento e certificao da salesforce.com
e foram retirados de cursos ministrados por especialistas e disponveis em todo o mundo. Os
cursos de Treinamento e certificao da Salesforce.com possibilitam obter experincia prtica
com a plataforma Force.com e com os aplicativos do Salesforce, bem como o preparam para
obter a certificao da Salesforce. Registre-se nos cursos em www.salesforce.com/training.
6 | Verso 8 | Prefcio
Apresentando a plataforma Force.com
Captulo 1
Apresentando a plataforma Force.com
A Force.com uma plataforma para criar e implementar
aplicativo em nuvem de ltima gerao. Como no h
Tpicos:
Conceitos bsicos da
interface de usurio de um
aplicativo
necessidade de gerenciar ou comprar servidores ou software,
voc pode se concentrar totalmente em desenvolver
aplicativos que incluem funcionalidade integradas sociais
Os benefcios de um
aplicativo da plataforma
Force.com
e mveis, processos empresariais, relatrios e pesquisas. Os
aplicativos funcionam em um servio comprovadamente
seguro, capaz de efetuar dimensionamentos, ajustes e fazer
o back up de dados automaticamente.
As tecnologias por trs de
um aplicativo da
plataforma Force.com
Por que usar a Force.com?
Comprovado: mais de 100.000 empresas confiam na
Force.com, incluindo muitos lderes de setor. Essas
empresas construram mais de 220.000 aplicativos que
funcionam em datacenters altamente seguros e de alto
nvel, com recursos de back up, failover e recuperao
de desastres, bem como um tempo de operao recorde,
excedendo 99,9%. Voc pode visualizar dados sobre o
desempenho do sistema em tempo real em
trust.salesforce.com.
gil: a Force.com exige codificao mnima. Crie seus
aplicativos bloco a bloco usando nossas ferramentas
visuais e nossa biblioteca de componentes. Simplifique
o desenvolvimento com ambientes do tipo sandbox e
integre seus aplicativos usando APIs livres.
Social: trabalhe de forma mais eficiente com seus
colegas usando sua prpria rede social segura. A
Force.com inclui componentes pr-integrados como
feeds, perfis, conversas, atualizaes e
compartilhamento de arquivos. Todos os componentes
esto disponveis atravs da API REST, que pode ser
facilmente integrada em qualquer aplicativo
personalizado.
Mvel: crie aplicativos naturalmente mveis usando
um banco de dados seguro em nuvem com APIs
altamente estveis. Ou crie aplicativos de navegadores
otimizados para dispositivos mveis, usando nossa
estrutura de UI e HTML5 para suportar qualquer
dispositivo com uma base de cdigo. Tambm possvel
misturar aplicativos nativos e em HTML, obtendo
assim as melhores vantagens de ambas as abordagens.
A plataforma Force.com conta com o que voc precisa
para criar aplicativos para dispositivos mveis.
8 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
Conceitos bsicos da interface de usurio de um
aplicativo
Voc e seus usurios podem acessar o Salesforce atravs de duas interfaces: o site completo do
Salesforce, acessado atravs de um computador, e o aplicativo mvel. Ao longo de todo este
guia, abordaremos diversas tarefas e veremos o impacto delas em ambos os ambientes. Se voc
nunca usou o Salesforce, recomendamos efetuar login e passar algum tempo se familiarizando
tanto com o site completo quanto com o aplicativo mvel. A maioria das edies do Salesforce
(incluindo a Developer Edition) contam com um aplicativo bsico de Vendas do Salesforce,
assim comearemos por esse aplicativo. A interface dessas tarefas tem muito em comum com
a interface dos aplicativo que planejamos criar.
Nota: Ainda no se inscreveu para receber a Developer Edition? Acesse
www.developerforce.com/events/regular/registration.php.
Figura 1: Os aplicativos da plataforma Force.com incluem guias, formulrios e links
Como voc pode ver ao comear a explorar a interface, h alguns elementos-chave que formam
as bases do aplicativo de Vendas e da maioria dos aplicativos criados com a plataforma.
Guias
Ao longo da parte superior do aplicativo encontra-se um conjunto de guias, as quais
segmentam o aplicativo em diferentes partes. Cada guia corresponde a um tipo de objeto,
como uma conta ou contato, e dentro de cada guia voc pode realizar aes em registros
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 9
especficos do tipo da guia em questo. Por exemplo, ao clicar na guia Contas (Accounts),
voc pode criar um novo registro para a conta Acme. Voc tambm pode editar contas
existentes ou usar o modo de exibio de lista (list view) para filtrar listas de contas de acordo
com determinados critrios. A maioria do trabalho de desenvolvimento do aplicativo gira
em torno da criao de guias e da definio dos dados e comportamentos que suportam
tais guias.
Campos
Dentro de cada registro encontra-se uma seleo de campos, que a forma como a
plataforma Force.com armazena e organiza as informaes. Por exemplo, um registro de
contato inclui campos como Sobrenome (Last Name), Telefone residencial
(Home Phone), Cidade de correspondncia (Mailing City), Ttulo
(Title), Data de nascimento (Birthdate), Reporta-se a (Reports To),
e Account (Conta). Ao desenvolver um novo aplicativo, voc pode personalizar os
campos exibidos para um determinado tipo de registro, como para registros de contatos,
bem como o modo que eles so organizados. Em um aplicativo da plataforma Force.com,
os usurios inserem informaes em campos editveis em uma pgina de edio e visualizam
essas informaes em campos somente leitura em uma pgina de detalhes.
Links
Por fim, como os aplicativos da plataforma Force.com so fornecidos por meio de um
navegador da Web, eles usam links para proporcionar navegao aos dados relacionados.
Por exemplo, na pgina de detalhes de uma conta, h links para registros relacionados,
como os contatos que pertencem conta e o usurio de vendas que gerencia a conta.
Outros links o levam a registros visitados recentemente e reas do aplicativo onde os
usurios podem definir preferncias pessoais. Os links fornecem recursos de navegao
dentro de um aplicativo e para sites externos.
Agora vamos dar uma olhada em como esses elementos so exibidos em um contexto mvel,
como o Salesforce1. Ainda podemos ver as colees de dados e, ao tocar nos links, podemos
acessar o registro indicado ou site externo. No entanto, no existem guias no aplicativo mvel.
Itens do menu
Em vez de guias, os usurios mveis acessam os objetos a partir de itens no menu de
navegao. Assim como uma guia, cada item do menu na seo Recente (Recent)
corresponde a um tipo de objeto, como uma conta ou contato. Os objetos so exibidos
com base em quais objetos voc visualizou ou trabalhou recentemente. Tocar em Mostrar
mais (Show more) exibe todos os objetos disponveis com base em seu perfil e suas
permisses. Ao tocar em um desses itens, como Contas (Accounts), voc pode criar um
novo registro ou visualizar os registros que visitou recentemente. Para editar um registro
existente, primeiro necessrio tocar no registro para abri-lo.
10 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
Itens do menu tambm incluem Tarefas (Tasks), Painis (Dashboards), Feed, etc., a
maioria dos quais discutiremos futuramente neste guia.
Figura 2: Os aplicativos da plataforma Force.com em dispositivos mveis incluem
itens do menu, formulrios e links
Os benefcios de um aplicativo da plataforma
Force.com
Para entender melhor ao que a plataforma mais adequada, iremos alm dos elementos
principais (guias, campos e links) e veremos os tipos de aplicativos que esses elementos
possibilitam. Dois grandes benefcios comeam a entrar em foco quando voc observa os
aplicativos da plataforma Force.com: eles so centrados em dados e colaborativos.
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 11
Aplicativos centrados em dados
Como a plataforma centrada em torno de um banco de dados, ela permite que voc crie
aplicativos centrados em dados. Um aplicativo centrado em dados um aplicativo baseado em
informaes estruturadas e consistentes como as encontradas em um banco de dados ou arquivo
XML. Voc pode encontrar aplicativos centrados em dados em diversos locais, desde bancos
de dados pequenos em computadores pessoais como Microsoft Access ou FileMaker at sistemas
enormes, executados em sistemas de gerenciamento de bancos de dados como Oracle ou
MySQL. Diferentemente de aplicativos criados com base em dados no estruturados, como
documentos de texto simples ou arquivos HTML, aplicativos centrados em dados facilitam o
controle, acesso e gerenciamento dos dados.
Por exemplo, considere um exerccio como tentar determinar o total de vendas de determinado
ms a partir de um conjunto de contratos feitos no Microsoft Word em contraste com um
conjunto de contratos em um simples banco de dados. Enquanto levaremos um longo tempo
para abrir cada documento do Word, encontrar o total do contrato e somar todos eles, se esses
dados estiverem armazenados em um banco de dados de um aplicativo centrado em dados,
podemos obter o mesmo resultado de forma mais eficiente fazendo uma nica solicitao.
Enquanto a maioria das pessoas no precisa de um aplicativo centrado em dados para rastrear
no mais do que contatos, fotos ou msicas, empresas de todos os tamanhos precisam
constantemente fazer solicitaes e agregar grandes quantidades de dados para tomar rpidas
decises empresariais. Como resultado, a natureza centrada em dados da Force.com a torna a
plataforma perfeita para construir e armazenar aplicativos empresariais.
Aplicativos colaborativos
Como a plataforma pode ser acessada por vrios usurios ao mesmo tempo, ele permite que
voc crie aplicativos colaborativos. Um aplicativo colaborativo um aplicativo com dados e
servios compartilhados por vrios usurios em diferentes locais. Diferentemente de formas
mais tradicionais de software, que so instaladas em um nico computador e dificilmente
acessadas a distncia, os aplicativos colaborativos da plataforma podem ser acessados a partir
de qualquer lugar do mundo usando somente um navegador da Web. Isso facilita os trabalho
em equipe em atividades como vendas de produtos, gerenciamento de projetos e contratao
de funcionrios.
Alm do fcil acesso por meio de um navegador da Web, diversos recursos integrados da
plataforma tambm facilitam uma produtiva colaborao em grupo:
Use o modelo de compartilhamento e segurana da plataforma para controlar precisamente
o acesso de um usurio a diferentes dados.
12 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
Use as regras de fluxo de trabalho para automaticamente atribuir tarefas, atualizar dados
ou enviar alertas de email quando certos eventos empresarias ocorrerem, com a criao de
um novo registro ou uma mudana no valor de um campo de registro.
Use os processos de aprovao para definir uma sequncia de eventos necessria para que
um registro seja aprovado, incluindo quem precisa aprov-lo em cada etapa.
De forma coletiva, esses recursos fornecem uma estrutura para compartilhar aplicativos entre
grupos, divises e corporaes inteiras sem abandonar o controle administrativo de dados
sensveis.
As tecnologias por trs de um aplicativo da
plataforma Force.com
Agora que j falamos sobre os tipos de aplicativos que a plataforma pode construir, vamos
revisar algumas das tecnologias que existem por trs da plataforma. Essas tecnologias tm uma
enorme influncia na compatibilidade e na experincia de desenvolvimento com a plataforma.
Tabela 1: Principais tecnologias por trs da plataforma
Descrio Tecnologia
Um modelo de aplicativo onde todos os usurios e aplicativos
compartilham uma infraestrutura e uma base de cdigo comuns e
nicas.
Arquitetura de
multilocatrio
Um modelo de desenvolvimento de aplicativo que permite que
aplicativos sejam definidos como projetos declarativos, sem nenhum
Modelo de
desenvolvimento
cdigo necessrio. Modelos de dados, objetos, formulrios, fluxos de
trabalho, entre outros, so definidos por metadados.
orientado por
metadados
Diversas interfaces de programao de aplicativos (APIs) fornecem
acesso direito a todos os dados armazenados na Force.com a praticar
de praticamente qualquer plataforma e linguagem de programao.
Acesso da API
A API SOAP e a API REST integram os dados de sua
organizao com outros aplicativos.
A API em massa RESTful (disponvel tambm usando o Data
Loader) carrega e exclui grandes quantidades de registros.
A API de metadados gerencia personalizaes em sua organizao
(tambm disponvel usando a Ferramenta de migrao da
Force.com).
A API REST do Chatter acessa feeds e dados sociais do Chatter.
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 13
Descrio Tecnologia
A API de streaming fornece notificaes que refletem alteraes
de dados em sua organizao
A primeira linguagem de programao sob demanda do mundo, que
funciona na nuvem nos servidores da plataforma Force.com.
Apex
Uma estrutura para criar interfaces de usurio ricas em recursos para
aplicativos na nuvem.
Visualforce
Com os aplicativos mveis da Salesforce, voc pode acessar aplicativos
personalizados construdos usando as ferramentas de desenvolvimento
Acesso mvel
do tipo apontar e clicar da plataforma Force.com. Seus usurios podem
acessar esses aplicativos atravs de dispositivos mveis e voc no
precisa aprender nenhuma linguagem de programao.
Um diretrio da Web com centenas de aplicativos da Force.com
disponveis para que os usurios da Salesforce revisem, experimentem,
Diretrio
AppExchange
deixem comentrios e/ou instalem. Os desenvolvedores podem enviar
seus aplicativos para listagem no diretrio AppExchange caso queiram
compartilh-los com a comunidade.
Uma arquitetura de multilocatrio
Em uma arquitetura de multilocatrio, todos os usurios compartilham a mesma infraestrutura
e a mesma verso da plataforma Force.com. Em contraste com verses de locatrios nicos,
como aplicativos empresariais do tipo cliente-servidor ou servidores de email, as arquiteturas
de multilocatrio liberam as atualizaes automaticamente e simultaneamente para todos os
usurios. Como consequncia, ningum precisa se preocupar em comprar seus prprios
equipamentos de hardware e software ou certificar-se de que seus aplicativos sempre tm as
ltimas atualizaes instaladas.
Alm da plataforma Force.com, diversos aplicativos populares e de consumo tambm usam
arquiteturas de multilocatrio, incluindo eBay, My Yahoo! e Google Gmail. A arquitetura de
multilocatrio permite que esses aplicativos tenham um baixo custo, sejam rapidamente
implementados e estejam abertos a rpidas inovaes, que so exatamente as qualidades pelas
quais a salesforce.com se tornou conhecida.
14 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
Figura 3: Aplicativos multilocatrios, sob demanda e que funcionam na nuvem
A arquitetura de multilocatrio da plataforma tambm influencia como os desenvolvedores
usam a plataforma para criar novos aplicativos. Especificamente, ela define um claro limite
entre a plataforma e os aplicativos que funcionam na plataforma. Esse limite importante pois
permite que os aplicativos definam seus prprios componentes sem comprometer a
funcionalidade da plataforma principal ou dos dados armazenados por outros usurios.
Um modelo de desenvolvimento orientado por
metadados
A plataforma Force.com usa um modelo de desenvolvimento orientado por metadados para ajudar
os desenvolvedores a obterem uma maior produtividade durante a criao dos aplicativos. Isso
significa que a funcionalidade bsica de um aplicativo, ou seja, as guias, formulrios e links,
so definidos como metadados em um banco de dados em vez de possurem cdigos embutidos
em forma de uma linguagem de programao. Quando um usurio acessa um aplicativo atravs
da plataforma Force.com, ela renderiza os metadados do aplicativo na interface usada pelo
usurio.
Como resultado do desenvolvimento orientado por metadados, os desenvolvedores de aplicativos
da plataforma Force.com trabalham em um nvel de abstrao muito mais alto do que
trabalhariam se estivessem usando Java ou C#, assim como esto protegidos contra preocupaes
sobre detalhes de sistema de baixo nvel, os quais so manipulados automaticamente pela
plataforma. Ao mesmo tempo, os desenvolvedores da plataforma Force.com tambm podem
aproveitar recursos avanados que a plataforma fornece como padro.
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 15
Personalizar os metadados do seu aplicativo pode parecer complicado no comeo, mas como
voc poder ver neste livro, a interface de usurio da plataforma torna esse procedimento muito
fcil. Qualquer pessoa familiar com o uso de um navegador da Web se acostumar rapidamente,
mesmo se no souber nenhuma linguagem de programao.
Dica: Os desenvolvedores podem usar a API de metadados da Force.com para gerenciar
de forma programtica a configurao de seus aplicativos. A API de metadados da
Force.com fornece uma alternativa para a interface de usurio da plataforma, permitindo
que os desenvolvedores modifiquem diretamente os arquivos XML que controlam os
metadados de suas organizaes. Os desenvolvedores tambm podem usar a API de
metadados para migrar alteraes de configuraes entre organizaes e criar suas
prprias ferramentas para gerenciar metadados de aplicativos e organizaes. Consulte
o Force.com Metadata API Developer's Guide (Guia do desenvolvedor da API de
metadados do Force.com) para obter mais informaes.
Embora primeira vista o desenvolvimento orientado por metadados possa parecer algo
esotrico, ele segue o mesmo modelo usado por navegadores da Web. Em vez de possuir cdigos
embutidos para definir uma pgina da Web em uma linguagem de programao de formato
livre, o autor de uma pgina da Web primeiro define a pgina como HTML, que por si
mesmo um tipo de metadado. Quando um usurio solicita uma pgina, o navegador da Web
renderiza a pgina usando os metadados fornecidos nas marcas HTML. Embora a combinao
HTML/navegador no conceda aos autores tantas capacidades de formatao quanto eles
teriam se usassem uma ferramenta de publicao regular, ela simplifica o trabalho de publicao
de contedo visando alcanar um pblico maior e aumentando a produtividade geral do autor
da pgina da Web.
Da mesma forma, a plataforma Force.com simplifica muito o trabalho de construir aplicativos
e aumenta a produtividade geral dos desenvolvedores. E, da mesma forma que pginas que
usam JavaScript ou Flash para adicionar funcionalidade a pginas HTML, a plataforma
Force.com tambm fornece maneiras para que desenvolvedores mais avanados adicionem
funcionalidades personalizadas aos aplicativos.
APIs
O modelo de desenvolvimento orientado por metadados da plataforma permite que os
desenvolvedores de aplicativos construam rapidamente diversas funcionalidades com as
ferramentas fornecidas pela plataforma. No entanto, s vezes os desenvolvedores de aplicativos
desejam modificar os dados reais em um aplicativo e usar servios de terceiros para criar
comportamentos personalizados para os aplicativos. Para fazer, eles podem usar diversas APIs
para efetuar uma integrao com a plataforma. O principal conjunto de APIs inclui as APIs
API SOAP e API REST da Force.com, a API em massa, API de streaming e API de
16 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
metadados. Voc pode chamar essas APIs a partir de uma grande variedade de linguagens de
clientes. Alm disso, kits de ferramentas esto disponveis para facilitar a integrao. Para obter
mais informaes, consulte Qual API devo usar? na Ajuda do Salesforce.
Nossas APIs fornecem maneiras simples, eficiente e abertas de acessar de forma programtica
os dados e capacidades de qualquer aplicativo que funciona na plataforma. Elas permitem que
os programadores acessem e manipulem os aplicativos a partir de qualquer localizao de
servidor, usando qualquer linguagem de programao que suporte servios da Web, como Java,
PHP, C# ou .NET. Para obter mais informaes, consulte
http://wiki.developerforce.com/page/Integration.
Apex
Como voc deve esperar da empresa que forneceu a primeira plataforma de computao em
nuvem do mundo, a salesforce.com tambm introduziu a primeira linguagem de programao
para computao em nuvem do mundo, a Apex. A Apex, cuja sintaxe semelhante Java, a
mais popular linguagem de programao para aplicativos da Web, funciona nos servidores da
plataforma Force.com. A Apex foi desenvolvida especificamente para a construo de aplicativos
empresariais visando gerenciar dados e processos dentro do grande contexto da plataforma
Force.com. A linguagem fornece uma abordagem unicamente eficiente e produtiva para criar
funcionalidades e lgicas, permitindo que os desenvolvedores concentrem-se apenas nos
elementos especficos de seus aplicativos e deixem o resto do trabalho para a plataforma
Force.com.
A maior parte deste livro visa leitores que no sabem codificar, assim a Apex vai alm do escopo
do que aqui discutiremos. No entanto, caso queira, voc pode aprender tudo sobre a linguagem
em wiki.developerforce.com/page/Apex.
Visualforce
O carro-chefe de qualquer bom aplicativo empresarial uma boa interface de usurio, que seja
fcil de usar, eficiente e se adeque exatamente a tarefas, usurios e dispositivos envolvidos com
o aplicativo. O Visualforce uma estrutura completa para criar tais interfaces de usurio,
permitindo construir e fornecer qualquer tipo de interao e design de interface do usurio
inteiramente na nuvem. As interfaces de usurio construdas com a Visualforce podem melhorar
a aparncia da plataforma Force.com ou substitu-la por um estilo completamente nico e um
conjunto de sofisticadas interaes. Como a marcao do Visualforce renderizada em HTML,
os desenvolvedores podem usar marcas do Visualforce junto com HTML, JavaScript, Flash,
ou quaisquer outros cdigos que funcionam em pginas HTML na plataforma. E isso somente
o comeo: voc tambm pode usar pginas do Visualforce para combinar dados provenientes
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 17
de mltiplos objetos da plataforma Force.com ou integrar dados de servios da Web em seus
aplicativos, como discutimos em Indo alm do desenvolvimento de aplicativos do tipo apontar
e clicar na pgina 373.
Acesso mvel
Conforme os principais pontos de acesso Internet mudam de computadores e laptops para
smartphones e tablets, os aplicativos que no fornecem acesso mvel a dados importantes
rapidamente se tornaro obsoletos. No deixe que seu aplicativo seja atropelado pela revoluo
mvel! Em vez disso, use o aplicativo Salesforce1 ou Salesforce Classic para fornecer as
personalizaes da Force.com a seus usurios mveis.
Como decidir qual aplicativo mvel usar? O Salesforce1 e o Salesforce Classic so aplicativos.
As verses para download desses aplicativos podem ser instaladas em dispositivos mveis e
usam as funcionalidades nativas de tais dispositivos. Ao efetuarem login em um dispositivo
mvel, os usurios podem acessar e atualizar seus dados por meio de uma interface especialmente
desenvolvida para telas de dispositivos mveis. Ambos os aplicativos permitem que voc trabalhe
com a maioria dos objetos de Vendas padres, alguns objetos de Servio padres e todos os
objetos personalizados.
Salesforce1
Os administradores no precisam criar configuraes especiais para que os usurios mveis
acessem os dados de suas organizaes. Aquilo que os usurios podem visualizar
controlado pelos perfis e pelas permisses de usurio, e o aplicativo respeita quaisquer
personalizaes feitas no site completo do Salesforce. Alm disso, este aplicativo inclui
o Chatter, o que permite que seus usurios trabalhem em equipe de forma dinmica.
O Salesforce1 compatvel com Apple

iPhones

e iPads

, bem como com telefones


que usam Android

. Caso sua empresa proba a instalao de aplicativos baixados da


Internet em dispositivos de propriedade da empresa, o Salesforce1 tambm pode ser
acessado atravs de um navegador da Web para dispositivos mveis.
Salesforce Classic
Os administradores criam configuraes mveis para determinar dados do Salesforce,
pginas Visualforce e outros elementos que seus usurios mveis podem acessar. Alm
disso, o Salesforce Classic armazena um subconjunto de dados no dispositivo para fornecer
acesso offline aos usurios quando uma conexo wireless no estiver disponvel e sincroniza
esses dados com a Force.com quando a conexo for restabelecida.
O Salesforce Classic compatvel com Apple iPhones e iPods touch

, smartphones
BlackBerry

e tablets e smartphones Android.


18 | Verso 8 | Chapter 1: Apresentando a plataforma Force.com
Quando estiver pronto para oferecer compatibilidade com dispositivos mveis para seu aplicativo,
consulte o Guia de administrao de aplicativos do Salesforce1 ou o Guia de implementao do
Salesforce Classic.
O diretrio AppExchange
A ltima tecnologia que diferencia a plataforma Force.com de outras plataformas o
AppExchange. O AppExchange um diretrio da Web, no qual aplicativos construdos na
plataforma Force.com esto disponveis para navegao, demonstrao, reviso e instalao
para clientes do salesforce.com. Os desenvolvedores podem enviar seus aplicativos para listagem
no diretrio AppExchange caso queiram compartilh-los com a comunidade.
Para aproveitar completamente os benefcios do AppExchange, faa um pequeno tour em
http://sites.force.com/appexchange. L voc poder conhecer centenas de aplicativos
empolgantes e inovadores que existem atualmente, incluindo gerenciamento de folha de
pagamento, integrao telefnica, pesquisas de servio e suporte, painis de adoo, entre
muitos outros. Alguns desses aplicativos foram criados na prpria salesforce.com, porm a
maioria deles foi desenvolvida por parceiros e desenvolvedores individuais que optaram por
usar as vantagens da plataforma Force.com.
Verso 8 | Chapter 1: Apresentando a plataforma Force.com | 19
Captulo 2
Sobre o aplicativo de recrutamento de
amostra
O objetivo deste livro demonstrar como fcil criar
aplicativos eficientes e multifacetados, os quais so capazes
Tpicos:
Sobre a Universal
Containers
de resolver problemas empresariais comuns. Para fazer isso,
percorreremos as etapas necessrias para criar um aplicativo
Consideraes para o
aplicativo de recrutamento
simples para uma empresa imaginria chamada Universal
Containers.
Construindo o aplicativo:
nosso design Assim como diversas empresas que cresceram rapidamente,
a Universal Containers vem passando por alguns problemas
relacionados ao rpido crescimento, especialmente no
departamento de Recursos humanos. Neste livro, ns
construiremos um aplicativo de recrutamento para a
empresa, o qual permitir substituir as tradicionais planilhas
do Microsoft Excel e documentos do Microsoft Word por
um aplicativo disponvel sob demanda.
Ao concluirmos a construo do aplicativo de recrutamento
neste livro, voc dever se sentir confiante o suficiente para
construir um aplicativo personalizado na nuvem, que atenda
s necessidades de sua empresa. Vamos comear!
Sobre a Universal Containers
Primeiramente vamos aprender um pouco mais sobre nossa empresa imaginria, a Universal
Containers.
A Universal Containers uma fornecedora internacional de contineres em rpido crescimento.
A empresa produz todos os tipos de contineres desde simples caixas de correio e embalagens
para equipamentos personalizados at contineres para grandes navios de carga. Alm disso, a
Universal Containers desenvolve e mantm seu prprio software para facilitar o design dos
vrios tipos de contineres. Como tal, a Universal Containers conta com um grupo muito
diversificado de funcionrios, incluindo profissionais de operaes e fbricas, engenheiros de
software e design, contadores e equipes de recursos humanos e legais.
Historicamente, o departamento de Recursos humanos utiliza documentos do Microsoft Word
e planilhas do Microsoft Excel para gerenciar os processos de recrutamento e contratao de
novos funcionrios. No entanto, ao longo dos dois ltimos trimestres, tornou-se evidente o
fato de que a menos que esse processo seja substitudo por um mais colaborativo, seguro e
escalvel, o departamento no ser capaz de atender aos objetos de contratao para o ano fiscal.
A Universal Containers precisa assim de um aplicativo centralizado, que possa reunir os processos
de recrutamento e contratao. Foi exatamente para resolver esse problema que eles nos
contrataram. Para resolver o problema, aproveitaremos a conta da empresa no Salesforce e
construiremos um aplicativo de recrutamento na plataforma Force.com. Ns apresentaremos
a Universal Containers ao mundo da computao em nuvem!
Consideraes para o aplicativo de
recrutamento
Depois de se encontrar com Megan Smith, vice-presidente de Recursos humanos da Universal
Containers, definimos alguns requisitos para o novo aplicativo de recrutamento. O aplicativo
precisa:
Monitorar posies em todos os estgios do processo, de posies abertas at posies
preenchidas ou fechadas.
Monitorar todos os candidatos a posies especficas, incluindo o status desses candidatos
(se eles fizeram uma triagem via telefone, tm entrevistas agendas, foram rejeitados ou
contratados, recusaram uma oferta que foi apresentada, etc.).
Monitorar publicaes de trabalhos em outros sites de empregos como o Monster.com.
Permitir que os funcionrios publiquem opinies a respeito dos candidatos que eles
entrevistaram.
22 | Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra
Fornecer segurana para os dados de recrutamento para que eles no sejam visualizados,
editados ou excludos indevidamente por funcionrios que no deveriam ter acesso.
Informar automaticamente o recrutador relevante sobre as prximas etapas que devem ser
realizadas quando uma deciso for realizada a respeito de um candidato.
Informar automaticamente todos os funcionrios a respeito de novas posies que foram
publicadas.
Certificar-se de que uma nova vaga de trabalho tem aprovao executiva antes ser ativada.
Incluir relatrios que forneam aos usurios uma viso geral do status de recrutamento.
Permitir que os recrutadores mapeiem as localizaes de todos os candidatos a uma posio
com o objetivo de melhor compreender as despesas de deslocamento.
Facilitar a realizao de diversas tarefas ao mesmo tempo, como rejeitar vrios formulrios
de emprego ao mesmo tempo.
Publicar posies abertas automaticamente no site pblico da Universal Containers.
Um aplicativo que atenda a esses requisitos aumentar muito a eficincia dos processos de
contratao e recrutamento da Universal Containers.
Construindo o aplicativo: nosso design
Vamos dar uma olhada nas diferentes partes da plataforma Force.com que usaremos para
implementar o aplicativo de recrutamento da Universal Containers. Nos prximos captulos,
ns aprenderemos sobre todos esses tpicos de forma mais detalhada, porm, por enquanto,
esta rpida apresentao lhe dar uma ideia do que vem pela frente.
Objetos personalizados
Os objetos personalizados so os componentes nativos que modelam os dados que precisamos
armazenar no nosso aplicativo de recrutamento. De modo semelhante a uma tabela de um
banco de dados, um objeto personalizado composto de diversos campos, os quais armazenam
informaes como o nome do candidato ou o salrio mximo para uma determinada posio.
No entanto, diferentemente de tabelas tradicionais de bancos de dados, ns no precisamos
escrever nenhum SQL para criar objetos personalizados. Usando somente recursos do tipo
apontar e clicar na plataforma, podemos criar quantos objetos quisermos.
Em nosso aplicativo de recrutamento, criaremos seis objetos personalizados para monitorar
dados relacionados ao recrutamento:
Posio
Candidato
Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra | 23
Formulrio de emprego
Reviso
Publicao de emprego
Site de empregos
A maioria desses objetos ser exibida como guias no nosso aplicativo e itens de menu no
Salesforce1. Quando um usurio clicar em uma das guias, ele ter acesso a instncias individuais
do objeto especfico, conforme exibido na imagem a seguir.
Figura 4: Guias do aplicativo de recrutamento
Um dos eficientes recursos de um objeto personalizado o fato de que ele pode estabelecer
relacionamentos com outros objetos do sistema. Por exemplo, sempre que um entrevistador
fizer uma reviso e inseri-la no sistema, ns queremos associ-la ao formulrio de emprego do
candidato entrevistado. Novamente ns no precisamos escrever nenhum SQL para fazer isso.
Graas plataforma, bastam alguns cliques do mouse para definir um relacionamento.
Regras de segurana e compartilhamento
Outra funo importante que precisaremos incluir em nossos aplicativos a capacidade de
restringir o acesso a dados que certos usurios no devero visualizar, porm sem evitar que
outros usurios realizem seus trabalhos de forma efetiva. Ns implementaremos essa funo
usando um grupo de componentes que reunimos em um nico termo: regras de segurana e
compartilhamento.
Com as regras de segurana e compartilhamento, primeiramente especificaremos quais objetos
personalizados um usurio em particular poder criar, visualizar ou editar (por exemplo,
Candidato e Posio) e, a seguir, quais instncias desses objetos devero estar acessveis (por
24 | Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra
exemplo, os registros para o candidato John Smith ou a posio de Gerente de vendas snior).
Controlar os dados com os amplos recursos da segurana em nvel de objeto ou com os recursos
mais detalhados da segurana em nvel de registro nos proporcionar grande eficincia e
flexibilidade para controlar o que os usurios podem e no podem visualizar.
Processos de aprovao e fluxo de trabalho
Trs dos nossos requisitos envolvem a automao de processos de negcios, como enviar um
email de alerta a um recrutador sempre que o status de um formulrio de emprego for alterado
e enviar novas aberturas de trabalho para aprovao executiva. Mais uma vez, a plataforma
Force.com facilita a implementao desses requisitos de forma nativa com os componentes de
processos de aprovao e fluxo de trabalho integrados.
Os processos de aprovao e fluxo de trabalho permitem a criao de lgicas de negcios
baseadas em regras:
As regras de fluxo de trabalho podem atribuir tarefas a usurios, atualizar campos ou enviar
alertas por email.
Os processos de aprovao permitem que os usurios enviem registros sensveis como novos
contratos ou ordens de compra a outros usurios para aprovao.
Por exemplo, em nosso aplicativo de recrutamento, podemos criar uma regra de fluxo de trabalho
que ativa um evento sempre que o status de um formulrio de emprego foi alterado para Recusar
(Reject) ou Estender uma Oferta (Extend an Offer), conforme ilustrado abaixo.
Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra | 25
Figura 5: Fluxo de trabalho quando o status de um formulrio de emprego foi alterado
Quando um gerente de contratao decide estender ou recusar a oferta, alterar o status do
formulrio ativar a tarefa correta que dever ser atribuda ao recrutador da posio em questo.
Com base na deciso do gerente de contratao, o recrutador realizar a tarefa seguinte mais
adequada.
De forma semelhante, podemos definir um processo de aprovao automtico, que envia todas
as novas posies para aprovao da gerncia responsvel. Se a posio for aprovada, o status
muda automaticamente para Aberto - Aprovado (Open - Approved) e os recrutadores podem
iniciar o processo de contratao. Se a posio for recusada, o status muda automaticamente
para Fechado - No aprovado (Closed - Not Approved) e a posio no ser preenchida.
Relatrios e painis personalizados
Por fim, precisamos fornecer aos usurios uma maneira de inspecionar o status de todos os
candidatos e posies no programa de recrutamento da Universal Containers. Os gerentes
precisam analisar detalhes a respeito do desempenho de cada recrutador, enquanto os executivos
desejam obter um viso geral de alto nvel a respeito de como os departamentos esto se saindo
em relao aos objetivos.
26 | Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra
Ns podemos atender a essas necessidades usando os relatrios e painis. Usando o criador de
relatrios, podemos criar relatrios detalhados com filtros, destaques condicionais, subtotais e
grficos. Com o criador de painel, podemos criar rapidamente um painel com at 20
componentes diferentes em uma nica pgina.
Visualforce
Poderemos usar ferramentas do tipo apontar e clicar para satisfazer quase todos os casos de uso
do nosso aplicativo de recrutamento. No entanto, h alguns casos de uso, como o mapeamento
das localizaes dos candidatos e a publicao de posies no site pblico de empregos da
Universal Containers, que exigiro o uso da Visualforce, que a linguagem de marcao da
plataforma Force.com, a qual possibilita a construo de interfaces de usurio personalizadas
e sofisticadas para aplicativos. No abordaremos esses casos de uso at o ltimo captulo e,
quando fizermos isso, este livro fornecer todos os cdigo necessrios.
Embora ainda no tenhamos entrado nos detalhes sobre como tudo isso funcionar, voc
provavelmente j deve ter notado o quo flexvel e eficiente a plataforma Force.com pode ser
ao criar um aplicativo personalizado.
No prximo captulo, comearemos criando o nosso primeiro objeto personalizado.
Aprenderemos rapidamente como funciona a interface da plataforma e em pouco tempo voc
j estar construindo componentes de aplicativos de forma fcil e rpida. Com uma plataforma
to fcil de usar, no h como no se tornar um especialista!
Verso 8 | Chapter 2: Sobre o aplicativo de recrutamento de amostra | 27
Captulo 3
Revisando conceitos de bancos de dados
Agora que j apresentamos a eficincia da plataforma
Force.com e aprendemos sobre os requisitos do aplicativo
Tpicos:
O que um banco de
dados?
de recrutamento que vamos construir, vamos falar um
pouco sobre os bancos de dados e sobre por que um
O que existe em um banco
de dados?
entendimento bsico dos conceitos de bancos de dados
pode ajud-lo a compreender o potencial completo da
O que um banco de
dados relacional?
plataforma e tornar o desenvolvimento do seu aplicativo
muito mais fcil.
Resumo dos conceitos de
banco de dados Como voc j sabe, a arquitetura subjacente da plataforma
Force.com inclui um banco de dados no qual seus dados
so armazenados. Isso significa que todas as informaes
inseridas so armazenadas no banco de dados e extradas
desse mesmo banco de dados quando visualizadas no
aplicativo.
Historicamente, as empresas precisavam comprar, construir
e manter seus prprios bancos de dados e infraestruturas
de TI para distribuir e garantir o funcionamento de seus
aplicativos. A computao em nuvem usada na plataforma
Force.com uma alternativa a esse mtodo e facilita o
processo de construir e distribuir seu aplicativo, quer seja
voc uma empresa ou um desenvolvedor individual. Parte
da simplicidade do modelo de computao em nuvem
que as responsabilidades tcnicas de manter e executar
todos os equipamentos de hardware e os softwares
necessrios so da empresa que fornece o servio (neste
caso a salesforce.com), permitindo assim que voc
concentre-se no desenvolvimento de seu aplicativo.
Vale a pena apontar que embora seus dados estejam
armazenados em um banco de dados e um entendimento
bsico do conceito de bancos de dados seja til, voc no
precisa ser um desenvolvedor de bancos de dados para
construir um aplicativo na plataforma. Ns no faremos
nenhum tipo de programao tradicional de bancos de
dados ao longo do desenvolvimento do nosso aplicativo.
30 | Verso 8 | Chapter 3: Revisando conceitos de bancos de dados
O que um banco de dados?
Em termos simples, um banco de dados uma coleo organizada de informaes. Exemplos
comuns incluem uma lista telefnica, um catlogo de biblioteca, um diretrio de funcionrios,
um catlogo de msicas em formato MP3 ou, no caso do nosso aplicativo de recrutamento,
informaes sobre as posies abertas na empresa, os candidatos a essas posies e os gerentes
responsveis por contratar os funcionrios para cada posio.
Tipicamente, voc usa um banco de dados para coletar informaes sobre pessoas, coisas ou
conceitos que so importantes para voc e qualquer projeto em que voc est trabalhando. Na
linguagem padro dos bancos de dados, a categoria de pessoa, coisa ou conceito sobre os quais
voc deseja armazenar informaes chamada de entidade, embora na terminologia padro da
plataforma Force.com nos referimos a isso como objeto.
Em um banco de dados, cada entidade representada por uma tabela. Uma tabela de banco
de dados simplesmente uma lista de informaes, apresentadas com linhas e colunas, sobre
a pessoa, coisa ou conceito que voc deseja rastrear. Assim, em uma lista telefnica, voc pode
ter uma tabela para armazenar informaes sobre residncias e outra tabela para armazenar
informaes sobre empresas. Em um catlogo de biblioteca, voc pode ter uma tabela para
armazenar informaes sobre livros e outra para armazenar informaes sobre autores.
Em nosso aplicativo de recrutamento, usaremos uma tabela para armazenar informaes sobre
posies abertas, uma para armazenar informaes sobre os candidatos a essas posies e por
fim outra tabela para armazenar informaes sobre os gerentes de contratao. (Nosso aplicativo
de recrutamento ter mais do que isso, porm trataremos disso futuramente).
Em termos simples, um objeto da plataforma Force.com semelhante a uma tabela de banco
de dados no sentido que h um objeto separado para cada pessoa, coisa ou conceito sobre os
quais voc deseja coletar informaes. No entanto, um objeto da plataforma Force.com na
realidade algo bem mais complexo do que isso, pois a funcionalidade total da plataforma
encontra-se atrs de cada objeto. Todos os objetos contam automaticamente com recursos
integrados como interfaces de usurio, modelos de compartilhamento e segurana, processos
de fluxo de trabalho, entre outros. Voc aprender sobre esses recursos ao longo do restante
deste livro.
Nota: Conforme apresentamos os conceitos de banco de dados, objeto e tabela
sero usados de forma intercambivel devido ao fato de serem muito semelhantes.
Lembre-se apenas de que um objeto da plataforma Force.com mais do que uma
simples tabela de banco de dados.
Verso 8 | Chapter 3: Revisando conceitos de bancos de dados | 31
importante entender que uma nica tabela de banco de dados ou um nico objeto da
plataforma Force.com deve conter somente um tipo de informao. Voc no deve colocar
todas as informaes em uma nica tabela, ou seja, no armazene posies, candidatos e gerentes
de contratao todos no mesmo local. Isso no somente constitui um design ruim para um
banco de dados, como tambm no permite relacionar objetos entre si. Por exemplo, se todos
os seus dados estiverem na mesma tabela, como voc saber quais candidatos se inscreveram
para quais posies ou quais gerentes so responsveis por quais posies?
Conforme definimos nosso aplicativo importante nos lembrarmos disso e nos perguntar Que
tipo de informaes precisamos armazenar?. Podemos separar nossas informaes em categorias
distintas de modo que cada objeto contenha somente um tipo de pessoa, coisa ou conceito? As
respostas a essas questes nos orientaro conforme projetamos a estrutura do nosso aplicativo.
O que existe em um banco de dados?
Como j mencionamos, uma tabela de um banco de dados apresenta informaes organizadas
em linhas e colunas. Vamos dar uma olhada em como um tabela de posies pode se parecer:
Figura 6: Informaes sobre posies em uma tabela
Cada linha da tabela representa as informaes sobre uma instncia especfica do objeto, por
exemplo, a posio de Recrutador ou a posio de Engenheiro de SW. Na terminologia padro
da plataforma Force.com, chamamos isso de registro. Para cada objeto que voc deseja rastrear
em seu aplicativo, voc ter mltiplos registros para representar cada item individual sobre o
qual voc est armazenando informaes. comum os usurios que comearam a usar a
plataforma recentemente confundir os significados de objeto e registro. Para tornar seu processo
32 | Verso 8 | Chapter 3: Revisando conceitos de bancos de dados
de desenvolvimento muito mais fcil, lembre-se de que um objeto uma categoria de
informaes, como uma posio ou candidato, enquanto um registro uma nica instncia de
um objeto, como Engenheiro SW.
Nota: Como informao adicional, saiba que a plataforma inclui um conjunto
integrado de objetos disponvel logo que voc comea a us-la, os quais so chamados
de objetos padro. Um exemplo de objeto padro o objeto Usurio (User), que
armazena informaes sobre todos os usurios do aplicativo, como nossos gerentes de
contratao. Voc tambm pode criar seus prprios objetos para armazenar informaes
exclusivas ao seu aplicativo. Esses objetos so chamados de objetos personalizados. Os
objetos padres e personalizados no so completamente diferente. A diferena bsica
entre eles que um pr-construdo para voc enquanto o outro voc mesmo deve
construir. Futuramente, quando voc comear a construir seu aplicativo, entraremos
em mais detalhes sobre esse assunto.
Agora vamos dar uma olhada nas colunas da tabela. Cada coluna lista um tipo especfico de
informao como Ttulo da posio (Position Title) ou Salrio mximo (Max Pay). Essas
informaes so chamadas de campos. Cada objeto tem um conjunto de campos usados para
inserir informaes sobre registros especficos. Para cada campo em uma tabela, um nico item
de dados que voc insere, como Recursos humanos na rea funcional, chamado de valor de
dados.
Assim como os objetos, os campos podem ser de dois tipos: padres e personalizados. Os
campos padres so aqueles integrados nativamente na plataforma e automaticamente
adicionados para voc. Os campos personalizados so aqueles que voc define para armazenar
informaes especficas exclusivas ao seu aplicativo. Basicamente no h diferena entre campos
padres e personalizados. Ambos so simplesmente colunas em uma tabela do banco de dados.
Futuramente, quando voc comear a construir seu aplicativo, entraremos em mais detalhes
sobre os campos padres e personalizados.
O que um banco de dados relacional?
Agora que temos algumas informaes armazenadas no banco de dados, o que podemos fazer
com isso? Podemos facilmente criar uma lista de posies usando o Microsoft Excel ou outro
software de planilhas. Para cada posio, podemos listar o gerente de contratao em um campo
chamado Gerente de contratao (Hiring Manager), como:
Verso 8 | Chapter 3: Revisando conceitos de bancos de dados | 33
Figura 7: Informaes da posio com campo Gerente de contratao (Hiring Manager)
E se um gerente de contratao for responsvel por mais de uma posio? Voc precisar ter
registros duplicados para o mesmo gerente de contratao para poder capturar cada posio
para a qual o gerente de contratao responsvel, como:
Figura 8: Informaes da posio com gerentes de contratao duplicados
Esse tipo de design no bom para um banco de dados! Usando essa abordagem, os dados so
repetidos de forma desnecessria. Alm disso, no temos como capturar informaes adicionais
sobre nossos gerentes de contratao, como seus endereos de email ou nmeros de telefone.
Se tentarmos adicionar informaes sobre quais candidatos esto se inscrevendo em quais
posies, voc pode imaginar como nossa simples tabela rapidamente se tornar extremamente
complexa e praticamente impossvel de gerenciar.
Como j mencionamos, o ideal criar objetos ou tabelas separados para cada pessoa, coisa ou
conceito que voc deseja rastrear. Uma maneira mais eficiente de modelar nossa situao seria
criar um objeto para as posies, um para os candidatos e um para os gerentes de contratao.
Felizmente, a plataforma tem um objeto padro que poderemos usar para representar nossos
gerentes de contratao, o objeto Usurio (User).
Depois que nossos dados estiverem separados em objetos distintos, podemos relacionar
facilmente os objetos entre si. assim que funciona o banco de dados relacional! Um
relacionamento uma associao entre duas ou mais tabelas. Por exemplo, podemos relacionar
posies com gerentes de contratao para sabermos por quais posies cada gerente de
contratao responsvel.
34 | Verso 8 | Chapter 3: Revisando conceitos de bancos de dados
Figura 9: Posies relacionadas com gerentes de contratao
De um ponto de vista tcnico, cada tabela em um banco de dados relacional tem um campo
em que o valor de dados identifica exclusivamente o registro. Esse campo chamado de chave
principal. A chave principal uma das partes que define o relacionamento. A outra parte a
chave estrangeira. Uma chave estrangeira um campo cujo valor equivalente chave principal
de outra tabela. Voc pode considerar uma chave estrangeira como uma cpia da chave principal
de outra tabela. O relacionamento feito entre duas tabelas pela correspondncia dos valores
da chave estrangeira em uma tabela com os valores da chave principal em outra.
As chaves principais e estrangeiras so fundamentais ao conceito dos relacionamentos, pois
permitem que as tabelas estabeleam relaes umas com as outras. Quando comear a criar seu
aplicativo, no ser necessrio pensar muito sobre chaves principais e estrangeiras. O conceito
importante que voc precisa entender aqui que em um banco de dados relacional, os objetos
so relacionados uns com os outros atravs do uso de campos comuns que definem esses
relacionamentos.
Resumo dos conceitos de banco de dados
Neste ponto, estamos prontos para entrar na criao de nosso aplicativo de recrutamento.
Porm, primeiro vamos recapitular o que aprendemos sobre os bancos de dados.
Independentemente se esse foi seu primeiro contato com bancos de dados ou se voc j tem
experincia com o desenvolvimento de bancos de dados e est comeando agora a usar a
plataforma Force.com, os pontos importantes a serem lembrados so:
Um banco de dados uma coleo organizada de informaes.
Verso 8 | Chapter 3: Revisando conceitos de bancos de dados | 35
Uma tabela de banco de dados armazena informaes sobre um nico tipo de pessoa, coisa
ou conceito, como uma posio de trabalho. Na plataforma Force.com, usamos o termo
objeto (embora um objeto seja muito mais do isso, como veremos futuramente).
Uma linha do banco de dados, ou registro nos termos da plataforma Force.com, representa
uma nica instncia de um objeto, como a posio de Engenheiro SW.
Um campo armazena uma informao particular em um registro.
Os relacionamentos definem conexes entre dois objetos e os objetos so relacionados entre
si atravs do uso de campos comuns.
Agora que j abordamos todos os conceitos necessrios, vamos comear a construir nosso
primeiro objeto!
36 | Verso 8 | Chapter 3: Revisando conceitos de bancos de dados
Captulo 4
Construindo um aplicativo simples
Assim como os livros de programao tradicionais que
primeiro ensinam como criar um programa "Ol Mundo"
Tpicos:
Familiarizando-se com a
rea Configurao (Setup)
antes de ensinar coisas mais complicadas, neste captulo
vamos criar uma verso simples do aplicativo Recruiting
Introduo aos aplicativos
somente para demonstrar como fcil trabalhar com a
Introduo aos objetos
plataforma Force.com. Ao longo do caminho, vamos nos
Introduo s guias
voltar para a interface de usurio da plataforma (local no
Familiarizando-se com as
listas relacionadas e as
qual faremos a maior parte do nosso trabalho) e vamos
aprender a criar e configurar nosso primeiro objeto
pginas de detalhes de
configurao
personalizado. Ainda que fceis e simples, as tarefas que
concluirmos sero a primeira etapa no desenvolvimento de
Introduo aos campos um aplicativo Recruiting repleto de recursos. Ento vamos
nessa! Observe o que fizemos
Testando nosso aplicativo
simples em um dispositivo
mvel
Familiarizando-se com a rea Configurao
(Setup)
Como vamos passar a maior parte do nosso tempo trabalhando na rea Configurao (Setup)
da plataforma, primeiro vamos nos familiarizar com ela e como acess-la.
A rea Configurao (Setup) um lugar para criao e personalizao de aplicativos e para
administrao e monitoramento de organizaes e usurios, tudo em um nico lugar. Ns
vamos realizar praticamente todas as tarefas necessrias para criar nosso aplicativo na rea
Configurao (Setup), ento a maioria das sees de teste do livro comear com uma instruo
como "Em Configurao (Setup), clique em Criar (Create) > Aplicativos (Apps). Essa uma
forma mais breve de dizer o seguinte:
1. Dependendo das configuraes da sua organizao, voc acessar a rea Configurao
(Setup) de uma das seguintes formas. Olhe o cabealho na parte superior da pgina.
Se voc localizar Configurao (Setup) no cabealho, clique nele.
Se no localizar Configurao no ttulo, clique no seu nome e depois selecione
Configurao.
2. Quando estiver na rea Configurao (Setup), ver um menu no lado esquerdo da
pgina. Nesse menu, clique em Criar (Create) > Aplicativos (Apps).
O link final a ser clicado (neste exemplo, Aplicativos (Apps)) depender da tarefa que voc
est executando, mas essa a ideia geral.
38 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Figura 10: A rea Configurao (Setup)
Assim como as outras partes do aplicativo, a rea Configurao (Setup) composta por uma
barra de guias, uma barra lateral de navegao e uma janela principal.
A barra de guias composta das mesmas guias que so exibidas no aplicativo normal. Basta
clicar em uma das guias para sair da rea Configurao (Setup) e acessar a guia no aplicativo
principal.
A barra lateral de navegao inclui listas expansveis de todas as ferramentas que esto
disponveis na rea Configurao (Setup). As ferramentas incluem opes para definio,
manuteno e personalizao da sua organizao, bem como criao, expanso e
gerenciamento de aplicativos.
Os links de navegao e as ferramentas de configurao selecionadas so exibidos na janela
principal.
Dica: Como voc ir desenvolver aplicativos no Force.com, talvez queira tornar a
rea Configurao (Setup) a pgina de apresentao padro ao efetuar login. Para
fazer isso:
1. Na parte superior da pgina, clique na seta para baixo prxima ao seu nome.
No menu abaixo do seu nome, selecione Minhas configuraes (My
Settings) ou Configurao (Setup), independentemente de qual opo for
exibida.
2. No painel esquerdo, selecione um dos seguintes:
Verso 8 | Chapter 4: Construindo um aplicativo simples | 39
Se voc clicou em Minhas configuraes (My Settings), selecione
Display e layout (Display & Layout) > Personalizar minhas pginas
(Customize My Pages).

Se voc clicou em Configurao, selecione Minhas informaes pessoais


> Informaes pessoais e, em seguida, clique em Editar.
3. Selecione Tornar Configurao minha pgina de apresentao padro
(Make Setup My Default Landing Page).
4. Clique em Salvar.
Agora que conhecemos o que estamos vendo, vamos comear a criar nosso aplicativo simples.
Introduo aos aplicativos
O que devemos fazer primeiro? Ao criar um aplicativo de software, a primeira coisa que deve
ser feita criar um projeto para armazenar todos os cdigos que vamos escrever. Com a
plataforma Force.com, a primeira coisa que precisamos fazer criar um novo aplicativo.
Assim como um projeto de programao, um aplicativo um pouco mais do que um continer
para todos os objetos, guias e outras funcionalidades que vamos criar como parte do nosso
aplicativo Recruiting. Ele composto apenas por um nome, um logotipo e um conjunto
organizado de guias. Os aplicativos mais simples contm apenas uma guia a guia Incio
(Home) e um logotipo padro. Assim que criarmos mais guias no restante deste livro, as
adicionaremos ao aplicativo.
Agora vamos comear criando um aplicativo simples. Faa login na sua conta do Salesforce
para acompanhar o processo!
Nota: Como a plataforma est em constante evoluo, as capturas de tela deste livro
podem no exatamente iguais ao contedo exibido na sua tela. Essas mudanas devem
ser mnimas e no devem afetar a sua compreenso.
Experimente: Defina um aplicativo
1. Abra um navegador e acesse www.salesforce.com.
2. Clique em Efetuar login no Salesforce (Log in to Salesforce).
3. Insira o nome do usurio e a senha.
4. Em Configurao, clique em Criar > Aplicativos.
40 | Verso 8 | Chapter 4: Construindo um aplicativo simples
5. Se uma pgina inicial for exibida, basta clicar em Continuar (Continue).
Nota: Muitas partes do aplicativo possuem essas pginas iniciais para ajudar
voc a entender o que voc pode fazer na plataforma. Se no desejar visualizar
determinada pgina novamente, basta selecionar No exibir esta pgina
novamente (Don't show me this page again).
Bem-vindo pgina de lista de aplicativos! Como a maioria das ferramentas de configurao,
a pgina inicial da ferramenta de aplicativos composta por uma lista de todos os aplicativos
que esto ativados no momento para sua organizao. Dependendo da edio que voc est
usando ou tem instalada do AppExchange, provavelmente ter alguns aplicativos padro listados
aqui.
Beyond the Basics
Existem duas formas de criar um aplicativo. O boto Incio rpido (Quick Start) cria um
aplicativo com um objeto personalizado e uma guia associada. Com o boto Novo (New),
voc cria um aplicativo com um logotipo, adiciona guias existentes e especifica a visibilidade
do aplicativo para os perfis. Neste livro usaremos o boto Novo (New), mas fique vontade
para testar o boto Incio rpido (Quick Start) posteriormente.
6. Clique em Novo. O assistente Novo aplicativo personalizado (New Custom App)
ser exibido.
7. No campo Rtulo do aplicativo (App Label), insira Recruiting.
O rtulo do aplicativo o nome que representa nosso aplicativo no menu de aplicativos do
Force.com que exibido na parte superior direita de todas as pginas. Os usurios podem usar
esse menu para alternar entre os aplicativos.
Observe que uma barra vertical vermelha exibida esquerda do campo Rtulo (Label).
Essa barra vermelha indica que voc deve fornecer um valor para esse campo para poder salvar
seu trabalho. Se voc no inserir um valor no campo e tentar prosseguir, uma mensagem de
erro ser exibida.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 41
Figura 11: Campos obrigatrios destacados em vermelho
8. Clique com o mouse dentro do campo Nome do aplicativo (App Name).
O nome do aplicativo usado pelos desenvolvedores para identificar o aplicativo ao escrever o
cdigo para a plataforma Force.com. No faremos nada neste livro que use o nome do aplicativo,
mas como o campo obrigatrio, ele precisa ser preenchido. Felizmente, quando um valor
inserido no campo Rtulo do aplicativo (App Label), o mesmo valor deve ser exibido
automaticamente no campo Nome do aplicativo (App Name). Se isso no acontecer,
insira Recruiting no campo Nome do aplicativo (App Name).
9. No campo Descrio (Description), insira Gerencia posies,
candidatos e formulrio de empregos e rastreia publicaes
de emprego em sites de emprego (Manage positions,
candidates, and job applications, and track job postings
on employment websites).
10. Clique em Avanar.
A prxima tela no assistente Novo aplicativo personalizado (New Custom App) permite a
especificao do arquivo de imagem que ser usado no logotipo do aplicativo. Sempre que o
aplicativo for selecionado no menu de aplicativos do Force.com, esse logotipo ser exibido no
canto superior esquerdo de todas as pginas. Como estamos apenas criando um aplicativo
simples, aceite o logotipo padro que foi fornecido. Ele poder ser alterado depois.
11. Clique em Avanar.
Como j mencionamos, um aplicativo um continer para uma coleo organizada de guias e
esta etapa do assistente Novo aplicativo personalizado (New Custom App) permite a
especificao das guias que queremos incluir no nosso novo aplicativo. A lista Guias
disponveis (Available Tabs) exibe as guias padro e personalizadas que esto
disponveis para seleo e a lista Guias selecionadas (Selected Tabs) exibe as guias
que j esto includas, na ordem que elas devem ser exibidas. Voc ver uma guia, a guia Incio
(Home), foi includa no nosso aplicativo por padro. Isso porque a guia Incio (Home)
obrigatria em todos os aplicativos e deve sempre estar na primeira posio; no entanto, voc
42 | Verso 8 | Chapter 4: Construindo um aplicativo simples
pode usar o menu suspenso Guia de apresentao padro (Default Landing
Tab) para selecionar qual guia deve ser exibida primeiro quando o aplicativo abrir.
Novamente, como estamos apenas criando um aplicativo simples, vamos aceitar os valores
padro e prosseguir. Faremos a adio de guias depois.
12. Clique em Avanar.
Agora que definimos alguns recursos bsicos do nosso aplicativo, voc pode estar se perguntando
o que ainda precisa ser feito no assistente Novo aplicativo personalizado (New Custom App)
no deveramos ter acabado? Ainda falta uma etapa essencial: precisamos definir os usurios
que podem acessar nosso aplicativo.
Nesta etapa do assistente Novo aplicativo personalizado (New Custom App), podemos escolher
os perfis de usurio que devem ter acesso ao aplicativo. Aprenderemos mais sobre perfis no
captulo Protegendo e compartilhando dados na pgina 169. Por hora, apenas compreenda que
cada usurio atribudo a um perfil e os perfis controlam quais aplicativos os usurios atribudos
ao perfil podem visualizar.
13. Marque a caixa de seleo Visvel (Visible) ao lado dos perfis Usurio padro
(Standard User) e Administrador do sistema (System Administrator).
14. Clique em Salvar.
Pronto!
Observe o que fizemos
Agora que voltamos pgina da lista de aplicativos, vamos ver o que acabamos de fazer. Em
primeiro lugar, agora temos uma nova entrada na lista de aplicativos nosso aplicativo
Recruiting! Ele aparece na lista na mesma ordem que ser exibido no nosso menu de aplicativos
do Force.com. Na verdade, vamos verificar o menu de aplicativo do Force.com agora.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 43
Figura 12: Menu do aplicativo Force.com
Dica: Se quiser alterar a posio do nosso aplicativo nesse menu, faa isso na pgina
da lista de aplicativos clicando em Reordenar (Reorder) e reorganize os aplicativos
disponveis conforme desejado.
Agora selecione o menu Recruiting no menu e veja o que acontece nosso aplicativo abre
com uma nica guia Incio (Home)! Ns criamos a guia Incio (Home) do aplicativo Recruiting
e o adicionamos ao menu de aplicativos do Force.com. Comear simples assim.
Voc ver que a abordagem que estamos usando aqui iterativa: criamos parte do aplicativo,
verificamos o que fizemos e adicionamos o item ao aplicativo. Essa sequncia reflete o fato de
que estamos guiando voc nas etapas de criao de um aplicativo neste livro e voc descobrir
que esse processo iterativo comum na criao de aplicativos em geral na plataforma Force.com.
No decorrer deste livro, voc tambm perceber que diferente dos projetos de codificao
tradicionais, nosso aplicativo est sempre funcional. No existe fase de construo ou compilao,
e como resultado voc quase nunca precisar procurar erros de sintaxe ou outros erros de
digitao. Na verdade, com esse aplicativo simples com uma guia, voc j pode utilizar todas
as funcionalidades integradas da plataforma, incluindo pesquisa, eventos de calendrio e tarefas,
preferncias do usurio e uma interface do usurio familiar.
Introduo aos objetos
Agora que nosso aplicativo est funcional (mas um pouco entediante), vamos deixar ele mais
interessante com a criao do nosso primeiro objeto.
Conforme mencionado no ltimo captulo, um objeto muito semelhante a uma tabela de
banco de dados na plataforma Force.com. A plataforma fornecida com diversos objetos
44 | Verso 8 | Chapter 4: Construindo um aplicativo simples
padro, como contatos, contas e casos, que suportam aplicativos padro como Salesforce Sales
e Salesforce Call Center. Ns tambm podemos definir objetos personalizados que permitem
o armazenamento de informaes especficas do nosso aplicativo Recruiting.
Independentemente de serem padro ou personalizados, os objetos da plataforma Force.com
no s fornecem uma estrutura para o armazenamento de dados como so a base dos elementos
da interface que permitem que os usurios interajam com os dados como as guias, o layout dos
campos em uma pgina e as listas de registros relacionados. Como qualquer objeto pode
corresponder a uma guia e uma coleo ordenada de guias cria um aplicativo, os objetos
compem o corao de qualquer aplicativo criado com a plataforma.
Devido importncia dos objetos personalizados eles so diretamente responsveis pela
aparncia, pelo comportamento e pela experincia do nosso aplicativo a forma como usamos
os objetos personalizados essencial para a criao de um aplicativo bem-sucedido. O design
do modelo de dados do aplicativo o fator que mais contribui para o sucesso ou a falha do
aplicativo.
J falamos bastante sobre objetos. Agora vamos definir um!
O objeto personalizado Posio (Position)
O primeiro objeto personalizado que vamos criar para o aplicativo Recruiting reflete uma tarefa
tpica de recrutamento: descrever uma posio. Os recrutadores na Universal Containers
precisam controlar todas as posies abertas, como Desenvolvedor snior, Engenheiro de vendas
ou Especialista em benefcios. Eles precisaro acessar facilmente todas as posies no sistema
por meio de uma guia e incluir determinadas informaes para cada posio, como o salrio
mnimo e mximo, o local da posio e seu gerente de contratao. Nos termos da plataforma
Force.com, vamos criar um objeto personalizado, criar uma guia personalizada para esse objeto
e definir alguns campos personalizados.
Experimente: Defina o objeto personalizado
Posio (Position)
Para criar o objeto personalizado Posio (Position), vamos voltar rea Configurao (Setup).
1. Em Configurao, clique em Criar > Objetos.
2. Na pgina Objetos personalizados (Custom Objects), clique em Novo objeto
personalizado (New Custom Object).
Verso 8 | Chapter 4: Construindo um aplicativo simples | 45
Diferente da definio de um aplicativo personalizado, que fizemos usando o assistente Novo
aplicativo personalizado (New Custom App), a definio de um objeto personalizado feita
em uma nica pgina. Voc ver que a plataforma usa assistentes ou pginas isoladas dependendo
da quantidade de informaes que precisam ser especificadas.
Figura 13: Pgina de definio do objeto personalizado
3. No campo Rtulo (Label), insira Posio (Position).
4. No campo Rtulo no plural (Plural Label), insira Posies
(Positions).
5. O campo Nome do objeto (Object Name) configurado como Posio
(Position). Deixe como est.
O Rtulo (Label) e o Rtulo no plural (Plural Label) de um objeto personalizado
so o que os usurios visualizam em todos os elementos da interface do usurio relacionados
ao objeto, como a guia do objeto ou os cabealhos dos resultados de pesquisa. Os rtulos do
objeto funcionam melhor como substantivos e o rtulo no plural sempre usado para rotular
a guia de um objeto personalizado (se voc criar uma guia para o seu objeto).
O valor em Nome do objeto (Object Name) de um objeto personalizado representa o
nome exclusivo do objeto que ser usado para referenci-lo em outras reas da plataforma,
como frmulas e pginas do Visualforce. Esse valor gerado automaticamente com base no
valor inserido no campo Rtulo (Label), exceto que todos os espaos e pontuaes so
substitudos por caracteres de sublinhado. Falaremos mais sobre frmulas e Visualforce neste
livro. Por ora, lembre-se de que o valor do Nome do objeto (Object Name) deve ser
exclusivo para todos os objetos definidos na sua organizao.
46 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Nota: Na plataforma, o campo Nome do objeto (Object Name) armazenado
com __c anexado no final do nome como um sufixo (por exemplo, Position__c).
Isso identifica o objeto como um objeto personalizado.
6. No campo Descrio (Description), insira Este objeto armazena
informaes sobre as posies de emprego abertas na empresa
(This object stores information about the open job
positions at our company).
7. Em Configurao da Ajuda sensvel ao contexto
(Context-Sensitive Help Setting), aceite os valores padro. Se no futuro
voc quiser fornecer uma documentao de ajuda personalizada aos seus usurios
sobre esse objeto, poder escolher a opo Abrir uma janela usando um
Visualforce personalizado (Open a window using a custom
Visualforce).
8. No campo Nome do registro (Record Name), insira Ttulo da posio
(Position Title).
O Nome do registro (Record Name) o rtulo do campo que identifica os registros de
posio individuais no sistema. Um objeto personalizado no pode ser salvo sem esse campo
de identificao.
9. Na lista suspensa Tipo de dados (Data Type), selecione Texto (Text).
A lista suspensa Tipo de dados (Data Type) permite a seleo do tipo de valor usado
para esse campo de identificao: Texto (Text) ou Numerao automtica (Auto-Number).
Alguns objetos, como Posies (Positions) ou Contas (Accounts), podem ser identificados
com um campo de texto, pois sempre sero um nome de uma posio ou conta disponvel.
Outros objetos, como o Caso (Case) (usado em aplicativos de Call Center padro) so mais
difceis de identificar com um nico campo de texto, ento so definidos com uma numerao
automtica.
Dica: Sempre que possvel, use texto como o tipo de dados de um campo de
identificao, pois dessa forma os usurios podem identificar mais facilmente um
registro especfico ao visualizar uma lista com diversos registros.
Para ilustrar como os rtulos do nome do registro e do objeto personalizado trabalham juntos
no aplicativo, vamos avanar um pouco para visualizar o local no qual cada rtulo ser exibido
aps definirmos nosso objeto personalizado Posio (Position), sua guia e um nico registro
de posio Desenvolvedor snior (Sr. Developer).
Verso 8 | Chapter 4: Construindo um aplicativo simples | 47
Figura 14: Rtulos do nome do registro e do objeto personalizado
Vamos em frente.
10. Na rea Recursos opcionais (Optional Features), marque as caixas de seleo
Permitir relatrios (Allow Reports), Permitir atividades (Allow
Activities) e Rastrear histrico de campos (Track Field
History).
Essas trs caixas de seleo ativam algumas funcionalidades realmente avanadas.
Permitir relatrios
A seleo dessa opo disponibiliza os dados dos registros de posio para fins de relatrio.
A plataforma fornecida com diversos relatrios padro e os usurios podem criar
relatrios personalizados usando um construtor de relatrio simples, porm avanado.
(Para obter mais informaes sobre relatrios, consulte o captulo Analisando dados com
relatrios e painis na pgina 323.)
Permitir atividades
A seleo dessa opo permite que os usurios associem tarefas e compromissos de
calendrio agendados a uma posio especfica. Por exemplo, um usurio pode criar uma
tarefa, como "Atualizar intervalo de salrio da posio Desenvolvedor snior", e especificar
atributos como prioridade, data de vencimento e status. Em seguida, o usurio poder
executar a tarefa ou atribu-la. (Para obter mais informaes sobre tarefas, consulte o
tpico "Viso geral das atividades" na Ajuda do Salesforce.)
Rastrear histrico de campos
A seleo dessa opo permite que a plataforma rastreie automaticamente as edies nos
registros de posio, como quem alterou o valor de um campo, quando ele foi alterado e
o valor do campo antes e depois da edio. Dados de histrico esto disponveis para a
48 | Verso 8 | Chapter 4: Construindo um aplicativo simples
gerao de relatrios, de modo que os usurios possam criar facilmente relatrios de trilha
de auditoria quando esse recurso estiver ativado. (Para saber como selecionar quais dados
sero rastreados, consulte o tpico "Rastreando o histrico de campos de objetos
personalizados" na Ajuda do Salesforce.)
Em geral, selecione essas opes se houver alguma chance de elas serem teis para qualquer
objeto personalizado que voc estiver definindo.
11. Na rea Status de implantao (Deployment Status), selecione Implantado
(Deployed).
Nota: Essa etapa presume que voc est trabalhando em um ambiente de
desenvolvimento. Se voc no estiver trabalhando em um ambiente de
desenvolvimento e no quiser que os usurios visualizem o objeto Posio
(Position) aps voc clicar em Salvar (Save), selecione Em
desenvolvimento (In Development). A configurao do status como
Em desenvolvimento (In Development) oculta os registros de
posio de todos os usurios, exceto os usurios com permisso de usurio
Personalizar aplicativo (Customize Application) (ou seja, praticamente todo
mundo que no um administrador do sistema).
12. Na rea Opes de criao do objeto (Object Creation Options), marque as caixas
de seleo Adicionar a lista relacionada Notas e anexos (Notes
& Attachments) ao layout de pgina padro (Add Notes &
Attachments related list to default page layout) e Iniciar
Assistente de nova guia personalizada depois de salvar esse
objeto personalizado (Launch New Custom Tab Wizard after
saving this custom object).
Essas duas opes estaro disponveis somente quando voc estiver criando um objeto
personalizado. Quando voc retornar para editar os detalhes do seu objeto personalizado, elas
no sero exibidas. Mas o que elas fazem?
A ativao de notas e anexos para um objeto significa que voc poder anexar documentos
externos em qualquer registro de posio, da mesma forma que voc adiciona um arquivo
PDF ou uma foto como um anexo em um email. uma funcionalidade muito til, ento
selecione-a.
A inicializao do assistente de nova guia personalizada faz exatamente o que o nome diz
um atalho para iniciar o assistente de guia logo aps a gravao do objeto Posio
(Position), o que economizar alguns cliques.
Tudo certo? V em frente e salve seu objeto personalizado Posio (Position) agora.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 49
Isso tudo! Conforme prometido, o assistente de nova guia exibido no lugar da lista de objetos
personalizados que normalmente exibida. Vamos parar um pouco para analisar porque devemos
definir uma guia para nosso objeto Posio (Posio). O que as guias tm de bom?
Introduo s guias
Se voc estiver familiarizado com a plataforma Force.com, sabe que ao clicar nas guias voc
navega pelo aplicativo. As guias so como o ponto de partida para a exibio, a edio e a
insero de informaes de um objeto especfico. Quando voc clica em uma guia na parte
superior da pgina, a pgina inicial correspondente desse objeto exibida. Por exemplo, ao
clicar na guia Contas (Accounts), a pgina inicial da guia Contas (Accounts) exibida
fornecendo acesso a todos os registros de conta que esto definidos na sua organizao. Clique
no nome de um registro de conta especfico e voc visualizar todas as informaes do registro
na sua pgina de detalhes associada.
Umas das caractersticas importantes da construo de um aplicativo com a plataforma que
voc pode criar guias personalizadas que parecem e se comportam exatamente como as guias
dos objetos padro que so fornecidos. Com isso, todas as personalizaes que voc fizer sero
totalmente transparentes para seus usurios finais, e como desenvolvedor, voc no ter nenhum
trabalho adicional para configurar o aplicativo dessa forma! Vamos ver quanto tempo levamos
para criar uma guia para o objeto Posio (Position).
Experimente: Defina a guia Posies (Positions)
Para criar uma guia personalizada para o objeto Posio (Position), vamos usar o assistente
Nova guia de objeto personalizado (New Custom Object Tab) que foi aberto para ns quando
clicamos em Salvar (Save) aps a definio do objeto. No entanto, caso tenha se esquecido de
selecionar a opo Iniciar Assistente de nova guia personalizada depois
de salvar esse objeto personalizado (Launch New Custom Tab Wizard
after saving this custom object) ou se estiver retornando para trabalhar em um
projeto salvo, no se preocupe! O assistente pode ser iniciado de outra forma.
1. Em Configurao, clique em Criar > Guias.
2. Na rea de guias do objeto personalizado, clique em Novo (New).
Fcil. Agora que estamos na mesma pgina, vamos comear a trabalhar usando o assistente.
3. Na lista suspensa Objeto (Object), selecione Posio (Position).
Se o assistente foi iniciado logo aps a definio do objeto personalizado, o objeto Posio
(Position) foi automaticamente selecionado.
50 | Verso 8 | Chapter 4: Construindo um aplicativo simples
4. Clique no cone Estilo de guia (Tab Style) para iniciar o Seletor de
estilo da guia (Tab Style Selector) conforme mostrado na captura de tela a seguir.
Cada objeto que exibido como uma guia deve ter um esquema de cor e um cone exclusivos.
Esse esquema de cor o que identifica o objeto no apenas na sua guia, mas tambm em
diferentes lugares na interface do usurio, como em listas relacionadas e resultados de pesquisa.
Figura 15: Pgina de configurao da guia do objeto personalizado e Seletor de estilo
da guia (Tab Style Selector)
No Seletor de estilo da guia (Tab Style Selector), voc pode escolher uma cor e um cone
predefinidos ou criar esses itens. Para simplificar as coisas, vamos selecionar um estilo existente.
5. Clique no link Ocultar valores usados em outras guias (Hide values which are used
on other tabs) para garantir a escolha de um estilo exclusivo.
6. Clique em qualquer caixa colorida para escolher um cone e um esquema de cores.
Deixe a lista suspensa Link personalizado da pgina inicial (Splash Page
Custom Link) definida como --Nenhum (None)--. Aprenderemos mais sobre links
personalizados no captulo Indo alm do desenvolvimento de aplicativos com o recurso apontar
e clicar na pgina 373.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 51
7. No campo Descrio (Description), insira Um esquema de cores e
guia para o objeto personalizado Posio (Position) (A tab
and color scheme for the Position custom object).
8. Clique em Avanar.
9. Clique em Avanar (Next) novamente para aceitar a visibilidade padro do perfil do
usurio.
Assim como controlamos o acesso ao aplicativo Recruiting selecionando perfis do usurio no
assistente Novo aplicativo personalizado (New Custom App), podemos controlar o acesso
guia Posies (Positions) selecionando perfis do usurio aqui. Aprenderemos mais sobre perfis
do usurio e o que eles fazem no captulo Protegendo e compartilhando dados na pgina 169.
Por enquanto, basta voc saber que a aceitao dos valores padro tornar a guia visvel para
todos os usurios.
10. Desmarque todas as caixas de seleo de Incluir guia (Include Tab), exceto
a caixa do aplicativo Recruiting.
Nesta etapa, estamos fornecendo acesso guia Posies (Positions) somente para as pessoas
que tm acesso ao aplicativo Recruiting. Se o usurio no tiver interesse em assuntos relacionados
a recrutamento, provavelmente no precisar visualizar essa guia.
11. Marque a caixa de seleo Anexar guia s personalizaes pessoais
existentes dos usurios (Append tab to users' existing
personal customizations).
Se voc no selecionar essa opo, os usurios que personalizaram a exibio da guia no
visualizaro imediatamente a guia Posies (Positions). Alm disso, se voc j criou uma guia
e no ativou essa opo, precisar primeiro excluir a guia existente e depois recri-la com essa
opo ativada para ativar a exibio automtica da guia aos usurios existentes. Que trabalho!
Ento faa um favor a si mesmo e sempre mantenha essa opo selecionada.
12. Clique em Salvar.
Quando a pgina atualizar, voc notar que a guia Posies (Positions) foi automaticamente
includa ao lado da guia Incio (Home) na parte superior da pgina.
Observe o que fizemos
Para apreciar de verdade o que criamos at agora com bem poucos cliques, vamos dar uma
olhada no que fizemos.
1. Primeiro, clique na guia Posies (Positions) para exibir a pgina inicial da guia
Posies (Positions), conforme mostrado na captura de tela a seguir. A lista est vazia
52 | Verso 8 | Chapter 4: Construindo um aplicativo simples
porque ainda no criamos nenhum registro, mas voc j pode ver como essa pgina
se tornar a via de acesso para exibio, criao, edio e excluso de todas as posies
que criarmos no nosso aplicativo Recruiting. Ela semelhante pgina inicial de
guia de qualquer outro objeto padro.
Figura 16: Pgina inicial da guia Posies (Positions)
2. Agora, verifique o contedo da lista suspensa Criar novo... (Create New...) na barra
lateral esquerda. Conforme prometido, nosso objeto personalizado foi totalmente
incorporado na plataforma com os outros objetos padro como Evento (Event) e
Tarefa (Task). E o usurio final nunca saber que a guia Posies (Positions) foi
criada com um objeto personalizado, pois ela exibida juntamente com os objetos
padro.
3. Selecione Posio (Position) na lista suspensa Criar novo... (Create New...) ou clique
em Novo (New) na pgina inicial da guia Posies (Positions). Voil a pgina
de edio da Posio (Position)! Infelizmente nossa posio ainda no possui muitos
espaos para dados. No momento, tudo o que temos o campo Ttulo da
posio (Position Title) (o identificador do registro) e o campo
Proprietrio (Owner), um campo padro que exibido em todos os objetos
para identificar o usurio que criou o objeto.
4. Clique em Cancelar (Cancel). No faz muito sentido criar um registro de posio
com praticamente nenhum dado interessante. Ns precisamos de mais campos! E
certamente isso que faremos a seguir. Mas primeiro vamos acessar o objeto
personalizado Posio (Position) para verificar os itens disponveis em uma pgina
de detalhes do objeto personalizado na rea Configurao (Setup).
5. Observe o cone de seta ( ) no lado direito da pgina. Clique nele para abrir o menu
de acesso rpido do Force.com. Ao criar aplicativos, o menu de acesso rpido facilita
a alternncia entre os registros do objeto e as pginas de configurao. Esse menu
exibido nas pginas de listas e na pgina de detalhe do registro de todos os objetos,
ento voc acessar facilmente as pginas de configurao de um objeto e suas guias,
campos, etc. Voc ter a chance de testar o menu de acesso rpido em instantes.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 53
Figura 17: Menu de acesso rpido do Force.com
Nota: Voc consegue visualizar esse menu porque tem a permisso
"Personalizar aplicativo (Customize Application)", que permite a criao
de aplicativos, objetos, guias e campos. Os usurios que no criam aplicativos,
como os usurios com o perfil Usurio padro (Standard User), no
visualizaro esse menu.
Familiarizando-se com as listas relacionadas
e as pginas de detalhes de configurao
Voc deve se lembrar de quando apresentamos o conceito de objetos que aprendemos:
Independentemente de serem padro ou personalizado, os objetos da plataforma Force.com
no s fornecem uma estrutura para o armazenamento de dados como so a base dos elementos
da interface que permitem que os usurios interajam com os dados como as guias, o layout dos
campos em uma pgina e as listas de registros relacionados." Se voc estiver acompanhando
com ateno, deve estar se perguntando por que no definimos nenhum campo (alm do campo
de identificao do ttulo da posio) ou elemento da interface do usurio (alm da guia Posies
(Position)) quando criamos o objeto Posio (Position). Se os campos e os elementos da interface
do usurio so uma parte da definio do objeto personalizado, em que local vamos defini-los?
Acontece que a plataforma Force.com diferencia a criao inicial de certos componentes dos
detalhes relacionados a esses componentes. Em outras palavras, as informaes que visualizamos
quando definimos ou editamos um objeto personalizado so diferentes das informaes que
visualizamos quando exibimos um objeto personalizado que j foi definido. Vamos voltar
pgina de lista do objeto personalizado para ver como essa diferena refletida na interface da
plataforma.
54 | Verso 8 | Chapter 4: Construindo um aplicativo simples
1. Em Configurao, clique em Criar > Objetos.
Voltamos pgina de lista do objeto personalizado. Voc pode ver que a linha de Posio
(Position) possui trs links que podem ser clicados.
Editar
Esse link nos redireciona para a pgina de edio do objeto personalizado na qual
definimos o objeto Posio (Position).
Del
Esse link exclui o objeto personalizado e todos os registros, guias, relatrios ou outros
componentes associados ao objeto.
Posio
Esse link nos redireciona para a pgina de detalhes do objeto personalizado do objeto
Posio (Position).
Figura 18: Pgina de lista do objeto personalizado: links Editar (Edit), Excluir (Delete)
e Detalhe (Detail)
J nos familiarizamos com a pgina de edio quando definimos o objeto Posio (Position) e
certamente no queremos excluir nosso objeto. Ento vamos abrir a pgina de detalhes para
ver o que podemos fazer nela.
2. Clique em Posio (Position).
Como voc pode ver, a pgina de edio do objeto personalizado que preenchemos quando
definimos o objeto Posio (Position) era somente a ponta do iceberg. As duas reas superiores
da pgina de detalhes da Posio (Position) incluem todas as informaes que especificamos
originalmente, mais alguns campos padro que a plataforma inclui com todos os objetos. Abaixo
Verso 8 | Chapter 4: Construindo um aplicativo simples | 55
dessas reas existem diversos agrupamentos adicionais de dados que permitem a execuo de
outras coisas com o objeto Posio (Position).
Nos termos da plataforma Force.com, esses agrupamentos de dados so chamados de listas
relacionadas e so muito responsveis pelo carter avanado da plataforma. Uma lista relacionada
uma lista de registros ou outros componentes que esto associados ao item que estamos
visualizando. As listas relacionadas so exibidas no aplicativo principal e nas reas Configurao
(Setup) e representam um relacionamento entre os itens que so exibidos na lista relacionada
e o objeto ou registro que estamos visualizando na rea de detalhes. Aprenderemos muito mais
sobre relacionamentos no captulo Expandindo o aplicativo simples usando relacionamentos
na pgina 113, mas por enquanto, voc s precisa entender que qualquer coisa que seja exibida
na lista relacionada de um objeto est diretamente relacionada ao objeto em questo.
Agora que descobrimos o local no qual podemos continuar personalizando o objeto personalizado
Posio (Position), vamos usar as listas relacionadas Campos e relacionamentos personalizados
(Custom Fields & Relationships) para criar mais alguns campos no nosso objeto Posio
(Position).
Figura 19: pgina de detalhes Objeto personalizado (Custom Object) do objeto Posio
(Position)
56 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Introduo aos campos
Estamos prontos para adicionar mais campos ao objeto personalizado Posio (Position), mas
antes vamos conversar um pouco sobre o que um campo e como ele se encaixa no mundo da
plataforma do Force.com.
Como mencionamos no captulo anterior, um campo como uma coluna do banco de dados.
A principal caracterstica de um campo o seu tipo de dados alguns campos guardam valores
de texto, enquanto outros guardam valores de moeda, porcentagens, nmeros de telefone,
endereos de email ou datas. Alguns campos tm a aparncia de caixas de seleo, enquanto
outros so listas suspensas ou pesquisas no registro nos quais o usurio pode fazer uma seleo.
O tipo de dados de um campo controla a forma como o campo ser exibido na interface do
usurio e como os dados inseridos no campo sero armazenados na plataforma. Para termos
uma noo melhor da aparncia do campo, vamos dar uma olhada em como o objeto Posio
(Position) ser exibido e nos tipos de campos personalizados que vamos criar para o objeto:
Verso 8 | Chapter 4: Construindo um aplicativo simples | 57
Figura 20: Campos do objeto personalizado Posio (Position)
Existem diversos campos aqui que precisamos definir, uns mais complicados do que outros.
Para simplificar, vamos criar os campos de texto simples, moeda, caixa de seleo e data.
Criaremos campos mais complicados de frmula personalizada e lista de opes no captulo
Aprimorando o aplicativo simples com campos avanados, validao de dados e layouts de
pgina na pgina 67.
Experimente: Adicione campos de texto
Primeiro vamos definir alguns campos de texto. Ns j criamos um campo de texto bsico para
Ttulo da posio (Position Title) quando definimos o objeto personalizado
Posio (Position). Analisando nossa captura de tela, os nicos campos de texto que restam
so os campos de texto abaixo do cabealho Descrio (Description). Vamos comear definindo
o campo Descrio do emprego (Job Description).
58 | Verso 8 | Chapter 4: Construindo um aplicativo simples
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
Sempre que voc criar um campo personalizado, sua primeira providncia ser escolher um
tipo de dados na pgina de seleo do tipo de dados.
A plataforma permite a seleo de diferentes tipos de campos de texto.
Os campos de texto bsico permitem que os usurios insiram qualquer combinao de letras
e nmeros em uma nica linha com at 255 caracteres.
Os campos de rea de texto tambm tem uma limitao de 255 caracteres, mas eles permitem
os retornos de linha para que o texto possa ser formatado em linhas separadas.
Os campos de texto longo permitem a insero de at 32.768 caracteres em linhas separadas.
Os campos de texto complexo permitem que o usurio insira at 32.768 caracteres de texto
formatado, incluindo imagens e hiperlinks.
Os campos de texto criptografado permitem que o usurio insira qualquer combinao de
letras e nmeros que ser armazenada no formato criptografado, com at 175 caracteres.
Como as descries do emprego podem ser longas, vamos escolher uma rea de texto longo.
4. Escolha o tipo de dados rea de texto (longo) (Text Area (Long)) e
clique em Avanar (Next).
Dica: Considere cuidadosamente o tipo de dados escolhido para cada campo
personalizado, pois aps sua definio, nem sempre uma boa ideia alter-lo
posteriormente. Consulte o tpico "Observaes sobre a alterao de tipos de campo
personalizado" na Ajuda do Salesforce para obter detalhes.
A segunda pgina do assistente de campo personalizado permite a insero de detalhes sobre
o campo de rea de texto longo. Os campos exibidos nesta etapa dependem do tipo de dados
selecionado na pgina anterior.
5. No campo Rtulo do campo (Field Label), insira Descrio do
emprego (Job Description).
Assim como os outros rtulos que vimos na plataforma at agora, o Rtulo do campo
(Field Label) especifica o texto que exibido quando o campo renderizado na interface
do usurio. Observe que quando inserimos um valor em Rtulo do campo (Field Label),
o Nome de campo (Field Name) preenchido automaticamente pelo mesmo texto, mas
com os espaos e as pontuaes substitudos por caracteres de sublinhado. O valor do Nome
de campo (Field Name) um nome exclusivo usado para referenciar o campo durante a
criao de uma frmula personalizada ou o uso da API.
Verso 8 | Chapter 4: Construindo um aplicativo simples | 59
Nota: Na plataforma, o campo Nome do campo (Field Name) armazenado
com __c anexado no final do nome como um sufixo (por exemplo,
Job_Description__c). Isso identifica o campo como um campo personalizado.
O campo Comprimento (Length) permite a restrio do nmero mximo de caracteres
permitido. Como no obtemos nenhum tipo de benefcio com essa restrio, deixe o valor
configurado como 32.768.
6. No campo Comprimento (Length), insira 32.768.
7. No campo N de linhas visveis (# Visible Lines), insira 3.
Esse campo nos permite especificar o tamanho da exibio da caixa de texto na pgina.
8. Nos campos Descrio (Description) e Texto de ajuda (Help Text),
insira Descrio detalhada do emprego e de suas
responsabilidades (High-level description of the job and
its duties).
Enquanto a descrio exibida apenas nos detalhes do campo personalizado em Configurao
(Setup), esse texto de ajuda exibido nas pginas de edio e de detalhes do registro quando
o usurio passa o mouse sobre o rtulo do campo. Seu objetivo auxiliar o usurio a preencher
o campo corretamente. A adio de um texto de ajuda em um campo opcional, mas ser uma
boa ideia se voc tiver campos que podem confundir os usurios.
No existe um valor padro bvio para um campo de texto, ento deixe o campo Valor
padro (Default Value) em branco.
9. Clique em Avanar.
A terceira pgina do assistente de campo personalizado permite a restrio do acesso ao campo
para determinados perfis de usurio. Aprenderemos mais sobre perfis e segurana no nvel do
campo no captulo Protegendo e compartilhando dados na pgina 169, ento agora, simplesmente
aceite os valores padro.
10. Clique em Avanar.
A ltima pgina do assistente permite a insero automtica do nosso campo no layout de
pgina da Posio (Position). Novamente, vamos aprender sobre layouts de pgina no prximo
captulo, ento agora, simplesmente aceite os valores padro.
11. Clique em Salvar e Novo (Save & New).
Em vez de clicar em Salvar (Save) e retornar pgina de detalhes do objeto Posio (Position),
clique em Salvar e novo (Save & New) para economizar alguns cliques e finalizar os outros
campos de rea de texto necessrios. Eis o que voc precisa saber para defini-los.
60 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Tabela 2: Campos de rea de texto longo do objeto Posio (Position)
Valor padro N de linhas
visveis
Comprimento Rtulo de campo Tipo de dados
Deixe no
especificado
3 32,768 Responsabilidades
(Responsibilities)
rea de texto
(longo)
Deixe no
especificado
3 32,768 Habilidades
necessrias (Skills
Required)
rea de texto
(longo)
Deixe no
especificado
3 32,768 Requisitos
educacionais
(Educational
Requirements)
rea de texto
(longo)
Agora que j ganhamos experincia com os campos de texto, vamos criar mais alguns campos
de outros tipos. Voc ver que com poucas excees, todos eles so muito parecidos.
Experimente: Adicione campos de moeda
Para controlar o intervalo de salrio de uma posio, precisamos adicionar dois campos de
moeda: Salrio mnimo (Min Pay) e Salrio mximo (Max Pay). Observe que
diferente de alguns campos, depois de definirmos esses campos como campos de moeda, no
ser possvel alterar o tipo.
A definio de um campo de moeda praticamente igual definio de um campo de texto,
com pequenas diferenas.
O Comprimento (Length) de um campo de moeda na verdade corresponde ao nmero
de dgitos esquerda do ponto decimal. Um campo Casas decimais (Decimal
Places) adicional define o nmero de dgitos que devem ser exibidos direita.
Na pgina Detalhes (Details) do assistente, uma nova caixa de seleo chamada
Obrigatrio (Required) exibida. Selecione essa opo se quiser forar o usurio a
inserir um valor nesse campo durante a criao de uma posio.
Voc j est familiarizado com todos os outros itens, ento v em frente e use o assistente de
campo personalizado para definir os seguintes campos:
Verso 8 | Chapter 4: Construindo um aplicativo simples | 61
Tabela 3: Campos de moeda do objeto Posio (Position)
Valor padro Obrigatrio Casas
decimais
Comprimento Rtulo de
campo
Tipo de
dados
Deixe no
especificado
Deixe
desmarcado
2 7 Salrio
mnimo
Moeda
Deixe no
especificado
Deixe
desmarcado
2 7 Salrio
mximo
Moeda
Experimente: Adicione campos de caixa de
seleo
Estes so fceis. O objeto Posio (Position) requer alguns campos de caixa de seleo: um
para indicar se a posio requer viagem e outros quatro para indicar as linguagens de
programao necessria. Por padro, esses valores devem ser desmarcados. (Observe que da
mesma forma que nos campos de moeda, depois de definir um campo como caixa de seleo,
no ser possvel alterar seu tipo.)
Use o assistente de campo personalizado para definir os campos a seguir.
Tabela 4: Campos de caixa de seleo do objeto Posio (Position)
Valor padro Rtulo de campo Tipo de campo
Desmarcado Exige viagem Caixa de seleo
Desmarcado Java Caixa de seleo
Desmarcado JavaScript Caixa de seleo
Desmarcado C# Caixa de seleo
Desmarcado Apex Caixa de seleo
Experimente: Adicione campos de data
Por fim, antes de encerrarmos este captulo, vamos adicionar trs campos de data ao aplicativo
Recruiting para controlar a data de abertura da posio, a data de fechamento da posio e a
data limite para preenchimento da posio. Os campos de data so excelentes, pois incluem
62 | Verso 8 | Chapter 4: Construindo um aplicativo simples
automaticamente uma interface de calendrio pop-up na qual os usurios podem selecionar
uma data sem digitar outro recurso integrado que podemos aproveitar no nosso aplicativo
sem nenhum trabalho adicional!
Vamos usar novamente o assistente de campo personalizado para definir os seguintes campos:
Tabela 5: Campos de data do objeto Posio (Position)
Valor padro Obrigatrio Rtulo de campo Tipo de campo
Deixe no
especificado
Desmarcado Data de abertura Data
Deixe no
especificado
Desmarcado Contratar em Data
Deixe no
especificado
Desmarcado Data de fechamento Data
Observe o que fizemos
Definimos campos de texto, moeda, caixa de seleo e data para o objeto Posio (Position).
Vamos analis-los acessando a guia Posies (Positions) e clicando em Novo (New).
Verso 8 | Chapter 4: Construindo um aplicativo simples | 63
Figura 21: Campos do objeto Posio (Position)
Veja quantos campos j criamos! Os campos foram adicionados na pgina na ordem que foram
criados, e provavelmente vamos querem ajustar o layout depois, mas eles so totalmente
funcionais. No foi fcil?
Testando nosso aplicativo simples em um
dispositivo mvel
Voc se lembra do aplicativo mvel que mencionamos? O Salesforce1 faz parte da organizao
Salesforce e apresenta todos nossos dados e personalizaes em uma interface do usurio
amigvel para dispositivos mveis. Isso significa que tudo o que fazemos no site completo ser
refletido automaticamente nesse aplicativo mvel, dessa forma os usurios tero acesso s
informaes sempre que necessrio, independentemente de onde estiverem! Isso ser
especialmente til para nossos recrutadores, que s vezes tm de viajar para encontrar os melhores
candidatos para as posies abertas da Universal Containers. Vamos ver como a guia Posies
(Positions) e seus campos so exibidos no dispositivo mvel.
64 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Antes de comear, certifique-se de que possui acesso ao Salesforce1. Voc pode fazer isso com
um aplicativo para download ou no aplicativo do navegador mvel.
Para usar o aplicativo para download, acesse www.salesforce.com/mobile e selecione
a plataforma adequada para seu dispositivo para fazer o download do Salesforce1 diretamente
no seu dispositivo.
Para usar o aplicativo do navegador mvel, acesse login.salesforce.com a partir do
seu navegador mvel. O site da Salesforce reconhecer que voc est efetuando o acesso
por meio de um dispositivo mvel e redirecionar voc para o aplicativo do navegador mvel
Salesforce1.
1. Abra o Salesforce1 no seu dispositivo mvel.
2. Insira suas credenciais do Salesforce e toque em Efetuar login no Salesforce (Log
in to Salesforce).
Observe que no existe uma guia de incio. Com nossa configurao atual, a primeira coisa que
exibida ao usurio o primeiro item no menu de navegao. Veremos novamente como
selecionar qual pgina deve ser exibida quando o usurio abrir o Salesforce1 pela primeira vez
no captulo Analisando dados com relatrios e painis na pgina 323.
3. Toque em para abrir o menu de navegao.
Agora uma boa hora para conversarmos sobre como os aplicativos e as guias funcionam no
Salesforce1. Ns aprendemos que cada guia representada por meio de um item de menu na
seo Recentes (Recent) do menu de navegao do Salesforce1. Aplicativos do Salesforce, como
o aplicativo de Vendas ou um aplicativo personalizado, no so exibidos no Salesforce1 porque
o aplicativo mvel identifica os registros utilizados com mais frequncia. Em vez de usar o
menu de aplicativos do Force.com para personalizar as guias visualizadas com frequncia, os
itens de pesquisa inteligente na seo Recentes (Recent) so reordenados com base no histrico
do usurio de objetos recentes. Como nossa organizao nova e ainda no inclumos nenhum
dado, visualizamos somente os objetos padro: contas, casos, contatos, arquivos, leads e
oportunidades.
No vemos nosso objeto personalizado nessa lista, ento vamos ver a lista completa de itens
de pesquisa inteligente.
4. Toque em Mostrar mais (Show More).
5. Toque em Posies (Positions).
6. Toque em Novo (New) para ver como nossos campos so exibidos no Salesforce1.
Assim como no site completo, todos os campos que criamos esto aqui e podemos facilmente
criar uma posio usando nosso dispositivo mvel. Isso significa que no precisamos duplicar
nosso esforo para criar uma experincia mvel agradvel para nossos usurios. Ela simplesmente
funciona!
Verso 8 | Chapter 4: Construindo um aplicativo simples | 65
Figura 22: Pgina Criar posio (Create Position) no Salesforce1
Novamente, bem-vindo ao poder da plataforma Force.com. Primeiro ns criamos um aplicativo
Recruiting com uma nica guia Incio (Home), em seguida criamos o objeto Posio (Position)
e sua guia e agora adicionamos alguns campos, tudo isso em menos de 15 minutos de cliques.
Do comeo at o final, sempre tivemos um aplicativo totalmente funcional e no precisamos
gastar nenhum segundo compilando ou depurando nosso "cdigo"!
No prximo captulo, vamos melhorar ainda mais nosso aplicativo Recruiting simples
adicionando alguns campos um pouco mais complexos, definido regras de validao para ajudar
a manter nossos dados limpos e movendo os campos de lugar em um layout de pgina para os
usurios localizarem e inserirem as informaes necessrias mais facilmente. Vamos em frente!
66 | Verso 8 | Chapter 4: Construindo um aplicativo simples
Captulo 5
Aprimorando um aplicativo simples com
Campos avanados, Validao de dados e
Layouts de pgina
No ltimo captulo, ns iniciamos nosso aplicativo
Recruiting definindo o objeto personalizado Posio
Tpicos:
Adicionando campos
avanados
(Position), a guia e diversos campos simples. Essa verso
simples do nosso aplicativo tem a mesma aparncia de
Introduo s regras de
validao
qualquer outra pgina da plataforma Force.com e
conseguimos cri-la em questo de minutos.
Faa um teste no celular
Neste captulo, vamos aprimorar a guia Posies
(Positions): primeiro vamos definir mais alguns campos
Introduo aos layouts de
pgina
avanados, em seguida vamos definir algumas regras de
Introduo aos layouts
compactos
validao para assegurar que nossos dados permaneam
limpos e por fim vamos mover nossos campos em um layout
de pgina. Essas adies ajudaro a modificar a pgina de
detalhes da guia Posies (Positions) de uma interface de
usurio deselegante e simples para algo avanado e com
uso intuitivo. Ento mos obra!
Adicionando campos avanados
Nesta seo, vamos rever o assistente de campo personalizado para criar campos com
funcionalidades mais sofisticadas: listas de opes, listas de opes dependentes e campos que
usam frmulas personalizadas. Veremos como a interface do usurio da plataforma nos guia
na configurao desses campos mais complicados.
Introduo s listas de opes
Quando visualizamos a aparncia desejada da pgina Posies (Positions), vimos que diversos
campos foram especificados com listas suspensas. Nos termos da plataforma Force.com, esses
campos so chamados de listas de opes e so compostos de diversas opes predefinidas que
podem ser selecionadas pelo usurio.
Existem dois tipos de listas de opes: uma lista de opes padro, na qual o usurio pode
selecionar somente uma opo, e uma lista de opes de seleo mltipla, na qual o usurio
pode selecionar diversas opes ao mesmo tempo. No objeto Posio (Position), precisamos
definir listas de opes padro para o local, o status, o tipo de emprego, a rea funcional e o
nvel do emprego da posio.
Figura 23: Campo de lista de opes Local (Location)
68 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Experimente: Adicione listas de opes
Vamos acompanhar a criao do campo de lista de opes Local (Location). Em seguida,
assim como no captulo anterior, forneceremos as informaes necessrias para voc criar os
outros campos por conta prpria.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Lista de opes (Picklist) e clique em Avanar
(Next).
5. Na caixa de texto Rtulo do campo (Field Label), insira Local
(Location).
6. Na rea de texto grande logo abaixo, insira os seguintes valores de lista de opes,
cada um na sua prpria linha:
So Francisco, CA (San Francisco, CA)
Austin, TX
Boulder, CO
Londres, Inglaterra (London, England)
Nova Iorque, NY (New York, NY)
Mumbai, ndia (Mumbai, India)
Sydney, Austrlia (Sydney, Australia)
Tquio, Japo (Tokyo, Japan)
7. Marque a caixa de seleo Usar o primeiro valor como o padro (Use
first value as default value).
Essa opo permite o preenchimento do campo com o valor padro. Ao selecionar o campo,
ele preenchido com o primeiro valor especificado na lista de valores de lista de opes possveis.
Caso contrrio, o campo ficar com o padro Nenhum (None) em todos os novos registros de
posio. Como a maioria das posies na Universal Containers est localizada na sede em So
Francisco, CA, esse deve ser o valor padro.
8. Aceite todas as outras configuraes padro para segurana no nvel do campo e
layouts de pgina.
9. Clique em Salvar e Novo (Save & New).
fcil! Agora especifique as listas de opes restantes de acordo com a tabela abaixo:
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 69
Tabela 6: Valores da lista de opes de Status, Tipo, rea funcional e Nvel do emprego
Usar primeiro
valor como
padro?
Classificar
em ordem
alfabtica?
Lista de opes Rtulo de
campo
Tipo de
dados
Sim No Nova posio (New Position)
Aprovao pendente (Pending
Approval)
Status Lista de
opes
Aberto - Aprovado (Open -
Approved)
Fechada - Preenchida (Closed
- Filled)
Fechado - No aprovado
(Closed - Not Approved)
Fechada - Cancelada (Closed
- Canceled)
No No Perodo integral (Full Time)
Meio perodo (Part Time)
Tipo Lista de
opes
Estgio (Internship)
Contratado (Contractor)
No Sim Finanas
Recursos humanos
rea
funcional
Lista de
opes
Tecnologia da informao
Operaes de revenda
Armazenamento
Diversos
No Sim FN-100
FN-200
Nvel do
emprego
Lista de
opes
70 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Usar primeiro
valor como
padro?
Classificar
em ordem
alfabtica?
Lista de opes Rtulo de
campo
Tipo de
dados
FN-300
FN-400
HR-100
HR-200
HR-300
HR-400
IT-100
IT-200
IT-300
IT-400
RO-100
RO-200
RO-300
RO-400
WH-100
WH-200
WH-300
WH-400
MC-100
MC-200
MC-300
MC-400
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 71
Introduo s dependncias de campo
Agora que criamos todas essas listas de opes, responda a esta pergunta: Quantas vezes voc
clicou em uma lista suspensa e encontrou uma quantidade muito grande de valores para seleo?
Por exemplo, voc precisa selecionar Uruguai em uma lista de pases que possui todos os pases
do mundo. Isso significa que voc precisa rolar a lista para baixo at os pases que comeam
com a letra U. Que trabalheira!
Felizmente, o pessoal que criou a plataforma Force.com tambm j passou por isso, ento eles
disponibilizaram uma ferramenta para nos ajudar a evitar esse problema com nossos campos
de lista de opes: dependncias de campo.
As dependncias de campo so filtros que permitem a alterao do contedo de uma lista de
opes com base no valor de outro campo. Por exemplo, em vez de exibir todos os valores de
Pas em uma nica lista de opes, podemos limitar os valores exibidos com base no valor de
outro campo, como Continente. Assim, os usurios conseguem localizar o pas adequado de
forma mais rpida e fcil.
Os campos de lista de opes podem ser campos de controle ou campos dependentes. Um campo
de controle controla os valores disponveis em um ou mais campos dependentes correspondentes.
Um campo dependente exibe valores com base no valor selecionado no seu campo de controle
correspondente. No exemplo anterior, a lista de opes Continente o campo de controle e a
lista de opes Pas o campo dependente.
Experimente: Crie uma lista de opes
dependente
Analisando as listas de opes que criamos, fica bvio que nossos usurios podem ficar frustrados
com o tamanho da nossa lista de opes Nvel do emprego (Job Level). Vamos deixar
nossos usurios felizes tornando o campo Nvel do emprego (Job Level) em um campo
dependente da lista de opes rea funcional (Functional Area). Fazendo isso,
nossos usurios visualizaro apenas os quatro valores de nvel do emprego relevantes ao selecionar
um departamento na lista de opes rea funcional (Functional Area):
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Dependncias de campo (Field Dependencies).
4. Clique em Novo.
72 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
5. Na lista suspensa Campo de controle (Controlling Field), selecione rea
funcional (Functional Area).
6. Na lista suspensa Campo dependente (Dependent Field), selecione Nvel
do emprego (Job Level).
7. Clique em Continuar.
Uma matriz de dependncias de campo exibida com todos os valores no campo de controle
na linha do cabealho superior e os valores do campo dependente listados nas colunas abaixo.
Para cada valor possvel do campo de controle, precisamos incluir os valores que devem ser
exibidos na lista de opes dependente quando o valor de controle for selecionado. Na matriz
de dependncias de campo, o destaque em amarelo mostra quais valores do campo dependente
esto includos na lista de opes de um valor do campo de controle especfico.
Figura 24: Matriz de dependncias de campo
Para incluir um valor do campo dependente, basta clicar duas vezes nele. Para excluir um valor
dependente da lista, clique duas vezes nele novamente.
Por exemplo, vamos fazer um teste incluindo os valores que devem ser exibidos na lista de
opes Nvel do emprego (Job Level) sempre que a opo Finanas (Finance) for
selecionada na lista de opes rea funcional (Functional Area):
8. Na coluna Finanas (Finance), clique duas vezes em FN-100, FN-200, FN-300 e
FN-400.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 73
Esses quatro campos agora devem estar destacados em amarelo na coluna Finanas
(Finance).
Em vez de clicar duas vezes em todos os valores de Nvel do emprego (Job Level),
podemos usar SHIFT + clique para selecionar um intervalo de valores ou CTRL + clique para
selecionar diversos valores ao mesmo tempo. Quando os valores estiverem destacados em azul,
clique em Incluir valores (Include Values) para inclu-los ou em Excluir valores (Exclude
Values) para exclu-los. Vamos testar.
9. Na coluna Recursos Humanos (Human Resources), clique em HR-100 e pressione
e mantenha pressionada a tecla SHIFT enquanto clica em HR-400.
10. Clique em Incluir valores (Include Values).
Agora temos valores selecionados para as colunas Finanas (Finance) e Recursos Humanos
(Human Resources)!
11. Continue destacando os valores adequados para todas as colunas restantes, conforme
descrito na tabela a seguir.
Dica: Para obter todos os valores que voc precisa modificar nesta etapa, ser necessrio
clicar em Anterior (Previous) ou Prxima (Next) para visualizar as colunas adicionais.
Tabela 7: Matriz de dependncias dos campos rea funcional (Functional Area) e Nvel do
emprego (Job Level)
Nvel do emprego
(Campo de lista de opes dependente)
rea funcional
(Campo de lista de opes de controle)
FN-100
FN-200
Finanas
FN-300
FN-400
HR-100
HR-200
Recursos humanos
HR-300
HR-400
74 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Nvel do emprego
(Campo de lista de opes dependente)
rea funcional
(Campo de lista de opes de controle)
IT-100
IT-200
Tecnologia da informao
IT-300
IT-400
RO-100
RO-200
Operaes de revenda
RO-300
RO-400
WH-100
WH-200
Armazenamento
WH-300
WH-400
MC-100
MC-200
Diversos
MC-300
MC-400
12. Clique em Visualizar (Preview) para testar os resultados em uma pequena janela
pop-up.
13. Clique em Salvar.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 75
Observe o que fizemos
Agora que criamos todas essas listas de opes, vamos acessar novamente a guia Posies
(Positions) para visualizar o que temos at o momento.
1. V para a guia Posies (Positions).
2. Clique em Novo.
3. Na lista de opes rea funcional (Functional Area), selecione Finanas
(Finance).
4. Abra a lista de opes Nvel do emprego (Job Level).
Figura 25: Campos dependentes da lista de opes
Os usurios do aplicativo Recruiting ficaro muito felizes por no terem mais que trabalhar
com uma lista de opes longa e onerosa. Agora vamos adicionar um campo ainda mais avanado
e complexo do que uma lista de opes dependente: um campo de frmula personalizada.
Introduo aos campos de frmula personalizada
Neste momento, todos os campos que ns definimos tm uma coisa em comum eles exigem
a insero de um valor pelo usurio. Campos como esse so muito teis para armazenar e
recuperar dados, mas no seria excelente se pudssemos definir um campo "inteligente"? Ou
seja, e se pudssemos definir um campo que analise as informaes inseridas no sistema e nos
informe algo novo?
Felizmente, os campos de frmula personalizada permitem isso. Assim como voc pode usar um
programa de planilhas como o Microsoft Excel para definir clculos e mtricas especficos para
os seus negcios, podemos usar campos de frmula personalizada para definir clculos e mtricas
que so especficos para o aplicativo Recruiting.
Por exemplo, no nosso objeto Posio (Position), j criamos campos para o salrio mnimo e
mximo. Se a Universal Containers fornecesse um bnus anual com base no salrio, poderamos
criar um campo de frmula personalizada que calculasse automaticamente a bonificao mdia
que uma pessoa contratada para essa posio deveria receber.
76 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Como faramos esse clculo usando uma planilha? As colunas na planilha representariam os
campos que definimos no objeto Posio (Position) e cada linha da planilha representaria um
registro de posio diferente. Para criar um clculo, devemos inserir uma formula em uma
coluna nova para calcular a mdia dos valores de Salrio mnimo (Min Pay) e Salrio
mximo (Max Pay) em uma linha e multiplicar essa linha pela porcentagem de bnus padro.
Dessa forma, poderamos determinar o bnus mdio de todos os registros de posio na nossa
planilha.
As frmulas personalizadas funcionam de forma muito semelhante. Pense na frmula
personalizada com uma frmula de planilha que pode referenciar outros valores no mesmo
registro de dados, executar clculos com eles e retornar um resultado. No entanto, em vez de
usar referncias de clula, voc usa campos de mesclagem, que atuam como espaos reservados
para dados que sero substitudos pelas informaes dos seus registros, pelas informaes do
usurio ou pelas informaes da empresa. E em vez de digitar campos, operadores e funes,
voc clica para selecion-los.
O resultado operacional que qualquer pessoa pode aprender a criar campos de frmula de
forma rpida e fcil. E, como acontece com todas as ferramentas da plataforma, a experincia
do modelo de entrega de computao em nuvem fica mais fcil. Voc pode criar uma frmula,
exibir os resultados e alterar a frmula quantas vezes forem necessrias! Os dados subjacentes
nunca so afetados.
Dica: Para obter mais informaes sobre a criao de frmulas personalizadas, acesse
http://www.salesforce.com/us/developer/docs/usefulFormulaFields/.
Calculando o tempo desde a abertura da posio
Vamos analisar outro campo de frmula personalizada que podemos criar para o objeto Posio
(Position) um campo de frmula personalizada que calcula o tempo desde a abertura da
posio. Para fazer isso, vamos primeiro pensar sobre a lgica que devemos usar para definir o
campo e depois podemos passar para o processo de criao do campo no aplicativo Recruiting.
Vamos pensar sobre os dados que precisamos para fazer esse clculo: precisamos saber a data
atual e a data que a posio foi criada. Se pudssemos subtrair essas datas, teramos o nmero
de dias que a posio est aberta. Felizmente, fcil obter esses dois valores.
Para a data atual, podemos usar a funo TODAY() integrada na plataforma. TODAY()
retorna a data de hoje.
Para a data que a posio foi aberta, podemos usar o campo Data de abertura (Open
Date) que definimos no ltimo captulo.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 77
Ao usar campos em frmulas, voc no pode se referir ao campo pelo seu nome. Voc precisa
se referir ao campo pelo seu nome do campo de mesclagem, tambm chamado de nome da
API. O formato do nome da API geralmente o nome do campo, mas com sublinhados em
vez de espaos. Para campos personalizados, o nome da API possui um sufixo com dois
sublinhados e a letra "c", da seguinte forma: Open_Date__c. Essa conveno de nomenclatura
na plataforma ajuda a diferenciar campos padro e campos personalizados.
Dica: Voc no precisa memorizar os nomes da API dos campos que deseja usar em
frmulas. Basta usar o seletor de campos no editor de frmulas para inserir os campos
e a plataforma inserir automaticamente o nome da API. Se voc quiser saber o nome
da API de um campo especfico e no estiver usando o editor de frmulas, exiba a
pgina de detalhes do campo.
Agora que temos nossas duas datas, queremos subtra-las: TODAY() - Open_Date__c.
Mesmo que as datas sejam de meses ou anos diferentes, a plataforma sofisticada o suficiente
para saber como tratar todas as complexidades desse clculo nos bastidores. Ns precisamos
apenas fornecer as datas e a plataforma far todo o resto.
At aqui tudo bem, mas ainda temos um problema e se a posio j estiver fechada? Nossa
frmula somente funcionar se presumirmos que a posio ainda est aberta. No entanto, aps
o fechamento da posio, o valor da frmula continuar a aumentar todos os dias, uma vez que
TODAY() fica cada dia mais distante da Data de abertura (Open Date) original. Se
quisermos, podemos usar o campo Data de fechamento (Close Date) na frmula em
vez de TODAY() aps o fechamento de uma posio. Como podemos fazer isso?
Novamente, podemos explorar a ampla biblioteca de funes da plataforma. A funo IF()
permite a execuo de um teste e retorna valores diferentes dependendo do resultado do teste.
A sintaxe da funo IF() a seguinte:
IF(logical_test,
value_if_true,
value_if_false)
Na parte logical_test, vamos testar se o campo Data de fechamento (Close Date)
possui um valor se sim, a posio certamente est fechada. Vamos testar isso com uma
terceira funo integrada: ISBLANK(). ISBLANK() analisa um campo e retorna verdadeiro
se ele no tiver um valor e falso se ele tiver um valor. Agora nossa frmula est assim:
IF( ISBLANK( Close_Date__c ) ,
value_if_true,
value_if_false)
78 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Substituindo value_if_true e value_if_false pelas outras frmulas que conversamos,
criamos nossa frmula completa.
IF( ISBLANK( Close_Date__c ) ,
TODAY() - Open_Date__c ,
Close_Date__c - Open_Date__c )
timo! Nossa frmula calcula o nmero de dias desde a abertura da posio, independentemente
do status atual da posio. Agora vamos definir um campo para a frmula no objeto Posio
(Position).
Experimente: Defina um campo de frmula
personalizada "Dias em aberto (Days Open)"
Vamos comear criando o campo de frmula da mesma forma que criamos os outros campos
personalizados.
1. A guia Posies (Positions), clique no para abrir o menu de acesso rpido (caso
ele j no esteja aberto).
2. Passe o mouse sobre Exibir campos (View Fields) e clique em Novo (New).
Figura 26: Abrindo o assistente Novo campo personalizado (New Custom
Field) a partir do menu de acesso rpido
3. Selecione o tipo de dados Frmula (Formula) e clique em Avanar (Next).
A Etapa 2 do assistente Novo campo personalizado (New Custom Field) ser exibida.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 79
Figura 27: Etapa 2 do assistente de campo de frmula personalizada
4. No campo Rtulo do campo (Field Label), insira Dias em aberto
(Days Open).
5. Selecione o tipo de retorno de frmula Nmero (Number).
Nesse caso, estamos subtraindo campos de data, mas queremos o resultado como um valor
numrico regular.
6. Altere o valor Casas decimais (Decimal Places) para 0 e clique em Avanar
(Next).
Agora chegou a hora de inserir os detalhes da nossa frmula.
7. Clique na guia Frmula avanada (Advanced Formula), conforme mostrado na
captura de tela a seguir.
80 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Figura 28: Editor de campo de frmula personalizada
Queremos usar a guia Frmula avanada (Advanced Formula) para acessar as funes integradas
da plataforma por meio da lista Funes (Functions) direita.
8. Na lista Funes (Functions), clique duas vezes em IF.
Nossa frmula agora se parece com:
IF(logical_test, value_if_true, value_if_false)
Agora vamos definir o teste lgico:
9. Exclua logical_test da frmula, mas deixe o cursor no local.
10. Na lista Funes (Functions), clique duas vezes em ISBLANK.
11. Exclua expression da funo ISBLANK que acabou de inserir, mas deixe o cursor
no local.
12. Clique no boto Inserir campo (Insert Field). Duas colunas sero exibidas em uma
sobreposio.
13. Na coluna da esquerda, selecione Posio (Position).
14. Na coluna direita, selecione Data de fechamento (Close Date).
15. Clique em Inserir.
Voc notou que no precisou se lembrar de usar o nome da API do campo Data de
fechamento (Close Date)? A plataforma fez isso para voc quando inseriu o valor. Nossa
frmula agora se parece com:
IF( ISBLANK( Close_Date__c ) , value_if_true, value_if_false)
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 81
Agora vamos especificar o valor se nosso teste lgico tiver um resultado verdadeiro:
16. Exclua value_if_true da frmula, mas deixe o cursor no local.
17. Pressione ENTER no seu teclado e depois espao 10 vezes.
A adio do retorno de linha e dos espaos facilitou a leitura da frmula por outras pessoas.
18. Na lista Funes (Functions), clique duas vezes em TODAY.
19. Clique no boto Inserir operador (Insert Operator) e selecione Subtrair (Subtract).
20. Clique no boto Inserir campo (Insert Field).
21. Na coluna da esquerda, selecione Posio (Position).
22. Na coluna direita, selecione Data de abertura (Open Date).
23. Clique em Inserir.
Estamos quase terminando sua frmula agora est assim:
IF( ISBLANK( Close_Date__c ) ,
TODAY() - Open_Date__c , value_if_false)
Por fim, vamos especificar o valor se nosso teste lgico tiver um resultado falso:
24. Exclua value_if_false da frmula, mas deixe o cursor no local.
25. Pressione ENTER no seu teclado e depois espao 10 vezes.
26. Clique no boto Inserir campo (Insert Field).
27. Na coluna da esquerda, selecione Posio (Position).
28. Na coluna direita, selecione Data de fechamento (Close Date) e clique em
Inserir (Insert).
29. Clique em Inserir operador (Insert Operator) e selecione Subtrair (Subtract).
30. Clique no boto Inserir campo (Insert Field).
31. Na coluna da esquerda, selecione Posio (Position).
32. Na coluna direita, selecione Data de abertura (Open Date) e clique em
Inserir (Insert).
Nossa frmula agora corresponde ao nosso original:
IF( ISBLANK( Close_Date__c ) ,
TODAY() - Open_Date__c ,
Close_Date__c - Open_Date__c )
Agora que conclumos as etapas do procedimento, note que ns apenas digitamos a frmula
que criamos na ltima seo. No entanto, o uso do editor de frmulas muito mais simples,
pois voc no precisa se lembrar da sintaxe da funo ou dos nomes da API dos campos e
objetos. Vamos prosseguir e concluir esse campo:
82 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
33. Clique em Verificar sintaxe (Check Syntax) para verificar a frmula em busca de
erros.
34. Selecione Tratar campos em branco como em branco (Treat blank
fields as blanks) e clique em Avanar (Next).
35. Aceite todos os padres de layout de pgina e segurana em nvel de campo restantes.
36. Clique em Salvar.
37. Na pgina Campos de posies (Positions Fields), role para baixo at a seo Campos
e relacionamentos personalizados (Custom Fields & Relationships) da posio.
38. Clique em Editar (Editar) ao lado do novo campo Dias em aberto (Days Open).
39. Na caixa de texto Descrio (Description), insira O nmero de dias
que a posio est (ou ficou) aberta (The number of days
a position has been (or was) open).
40. Adicione uma descrio opcional no Texto de ajuda (Help Text), se desejar.
41. Clique em Salvar.
Experimente: Fornea valores padro dinmicos
aos campos
Ns tambm podemos usar frmulas personalizadas para fornecer valores padro dinmicos
aos campos. Alguns campos, como a caixa de seleo Exige viagem (Travel Required)
ou a lista de opes Local do emprego (Job Location), possuem valores padro que
se aplicam a todas as situaes, mas existem outros campos com padres que no so definidos
to facilmente. Por exemplo, na Universal Containers, os recrutadores geralmente devem
preencher uma posio em at 90 dias aps sua abertura. No podemos escolher uma nica
data que ser sempre 90 dias aps a abertura de uma posio, mas podemos definir uma frmula
personalizada que use a data de criao da posio e some 90 dias. A plataforma nos permite
especificar essa frmula como o valor padro do campo Contratado por (Hire By):
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Editar (Edit) ao lado do campo Contratado por (Hire
By).
4. Ao lado da caixa de texto Valor padro (Default Value), clique em Exibir
editor de frmulas (Show Formula Editor).
Parece familiar? Ele semelhante ao editor que usamos para definir o campo de frmula
personalizada Dias em aberto (Days Open).
5. Na lista Funes (Functions), clique duas vezes em TODAY.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 83
6. Clique no boto Inserir operador (Insert Operator) e selecione Adicionar (Add).
7. Insira 90.
Sua frmula de valor padro deve ser:
TODAY() + 90
8. Clique em Salvar.
Simples assim! Agora, para finalizar os campos na guia Posies (Positions), vamos configurar
o valor padro do campo Data de abertura (Open Date) como o dia que o registro
criado. Para fazer isso, siga essas etapas novamente, mas use TODAY() como o Valor padro
(Default Value).
Observe o que fizemos
Vamos acessar novamente a guia Posies (Positions) para ver o que fizemos.
1. Clique na guia Posies (Positions).
2. Clique em Novo.
Nosso campo de frmula Dias em aberto (Days Open) no exibido na pgina de edio
da Posio (Position) isso porque ele um campo de frmula e no exige nenhuma entrada
do usurio para exibio. No entanto, podemos ver que os campos Data de abertura
(Open Date) e Contratado por (Hire By) j possuem valores padro: Data de
abertura (Open Date) deve ser a data atual e Contratado por (Hire By) 90 dias
depois. Podemos alterar esses valores conforme desejado.
Para visualizar o campo Dias em aberto (Days Open), precisamos definir nosso primeiro
registro de posio. Faremos isso agora.
3. Insira os valores desejados para definir sua nova posio. No final, voc dever inserir
um valor para o campo obrigatrio Ttulo da posio (Position Title).
4. Clique em Salvar.
A nova posio ser exibida em sua prpria pgina de detalhes do registro. Na parte inferior
da pgina, observe o campo de frmula Dias em aberto (Days Open) logo acima do
campo Criado por (Created By). Ele deve ter o valor 0, pois acabamos de criar a posio.
Se quiser visualizar a alterao do valor, edite o registro e configure o campo Data de
abertura (Open Date) para uma semana antes. Isso no perfeito?
84 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Introduo s regras de validao
Agora que definimos todos os campos que queremos no objeto Posio (Position), vamos ver
se conseguimos articular algumas regras sobre os dados que devem ser inseridos nesses campos.
Os recrutadores e gerentes de contratao da Universal Containers so pessoas brilhantes, mas
qualquer pessoa est sujeita a cometer erros ao preencher um formulrio e um bom aplicativo
deve identificar os erros bvios.
Por exemplo, faria sentido o valor do campo Salrio mnimo (Min Pay) ser superior ao
valor do campo Salrio mximo (Max Pay)? Ou o campo Data de fechamento
(Close Date) estar em branco se o campo Status estiver definido como Fechada -
Preenchida (Closed - Filled) ou Fechada Reprovada (Closed Not Approved)? Certamente
no. Ns podemos identificar esses tipos de erros no nosso aplicativo com outro recurso
integrado da plataforma: regras de validao.
As regras de validao verificam se os dados inseridos pelo usurio no nosso aplicativo cumprem
os padres que voc especificou. Se o padro no for cumprido, a regra de validao impedir
a gravao do registro e uma mensagem de erro definida por voc ser exibida ao lado do campo
problemtico ou na parte superior da pgina de edio. Agora vamos criar algumas regras de
validao para o aplicativo Recruiting.
Dica: Voc pode encontrar diversas regras de validao de amostra na Ajuda do
Salesforce.
Experimente: Defina uma regra de validao para
o salrio mnimo e mximo
Na nossa primeira regra de validao, vamos comear com o bsico: O Salrio mnimo
(Min Pay) nunca deve ser superior ao Salrio mximo (Max Pay).
1. A guia Posies (Positions), clique no para abrir o menu de acesso rpido (caso
ele j no esteja aberto).
2. Passe o mouse sobre Exibir regras de validao (View Validation Rules) e clique
em Novo (New).
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 85
Figura 29: Pgina Edio da regra de validao (Rule Edit Page)
3. Na caixa de texto Nome da regra (Rule Name), insira Min_Pay_Rule.
O nome de uma regra de validao no pode incluir espaos, mas se voc se esquecer disso, a
plataforma transformar os espaos em sublinhados (_) para voc.
4. Marque a caixa de seleo Ativar.
Essa caixa de seleo especifica se a regra de validao deve comear a funcionar assim que for
salva. Como essa regra bem simples e vamos test-la em instantes, faz sentido ativar a regra
agora.
5. Na caixa de texto Descrio (Description), insira O salrio mnimo
nunca deve ser superior ao salrio mximo (Min Pay should
never exceed Max Pay).
Agora vamos definir a parte principal da nossa regra de validao: a condio de erro. Se voc
teve um dj vu quando visualizou a rea Frmula de condio de erro (Error Condition
Formula) da pgina, no se preocupe! Assim como os valores de campos padro e campos de
frmula, a regra de validao pode usar diversas operaes e funes integradas para definir
uma condio de erro com resultado verdadeiro ou falso para determinar se os dados so vlidos.
Quando essa condio considerada verdadeira, uma mensagem de erro exibida e o registro
no pode ser salvo.
86 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Ns queremos que nossa condio de erro seja verdadeira sempre que o Salrio mnimo
(Min Pay) for superior ao Salrio mximo (Max Pay), ento vamos usar o editor de
frmulas para especificar isso agora:
6. Clique no boto Inserir campo (Insert Field). Assim como no editor de campo de
frmula, duas colunas sero exibidas em uma sobreposio.
7. Na coluna da esquerda, selecione Posio (Position).
8. Na coluna direita, selecione Salrio mnimo (Min Pay).
9. Clique em Inserir.
10. Clique no boto Inserir operador (Insert Operator) e selecione Maior que (Greater
Than).
11. Clique no boto Inserir campo (Insert Field) novamente.
12. Na coluna da esquerda, selecione Posio (Position).
13. Na coluna direita, selecione Salrio mximo (Max Pay).
14. Clique em Inserir.
Agora temos uma frmula de condio de erro com a seguinte aparncia:
Min_Pay__c > Max_Pay__c
Agora s precisamos especificar a mensagem de erro que ser exibida quando a condio de
erro for verdadeira.
15. Na caixa de texto Mensagem de erro (Error Message), insira O pagamento
mnimo no pode ser superior ao pagamento mximo (Min Pay
cannot exceed Max Pay).
16. Ao lado do campo Local do erro (Error Location), selecione a opo
Parte superior da pgina (Top of Page).
Dica: Se determinada regra exigir que o usurio revise o valor de diversos campos,
melhor posicionar a mensagem de erro na parte superior da pgina, pois voc no sabe
quais campos o usurio precisar alterar.
17. Clique em Salvar.
fcil! Agora que nos familiarizamos com uma regra de validao simples, vamos definir uma
regra de validao um pouco mais complexa.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 87
Experimente: Defina uma regra de validao para
a data de fechamento
Na nossa prxima regra de validao, vamos assegurar que o campo Data de fechamento
(Close Date) tenha um valor sempre que o campo Status estiver definido como Fechada
- Preenchida (Closed - Filled) ou Fechada Reprovada (Closed Not Approved).
A parte mais difcil dessa regra de validao definir a frmula de condio de erro. Ao definir
uma condio como essa, muitas vezes mais fcil pensar na condio em termos lgicos
primeiro e depois converter essa lgica nas funes e nos operadores que so fornecidos no
editor de frmulas. Nesse caso, a condio de erro ser verdadeira sempre que:
Close Date is Not Specified
AND
(Status is "Closed - Filled" OR
"Closed - Not Approved")
Vamos comear com a primeira parte: "Data de fechamento no especificada." Para converter
isso em termos que o editor de frmulas compreende, precisaremos usar a funo ISBLANK()
novamente. Como talvez voc se lembre da definio do campo de frmula personalizada Dias
em aberto (Days Open), a funo ISBLANK() analisa um nico campo ou expresso e
retorna um indicador verdadeiro sempre que o campo no contiver um valor. Ento, lembrando
que precisamos usar o nome do campo interno do campo Data de fechamento (Close
Date) na nossa frmula, Data de fechamento no especificada se transforma em:
ISBLANK( Close_Date__c )
Agora, vamos descobrir como converter "Status 'Fechada - Preenchida (Closed - Filled)'."
Para testar valores de lista de opes, precisaremos usar outra funo: ISPICKVAL().
ISPICKVAL() analisa o valor e o nome de um campo de lista de opes e retorna um indicador
verdadeiro sempre que esse valor estiver selecionado. Ento "Status 'Fechada - Preenchida
(Closed - Filled)'" se transforma em:
ISPICKVAL( Status__c , "Closed - Filled")
Dica: Ao trabalhar com listas de opes em frmulas, converta-as em texto usando
a funo ISPICKVAL() ou a funo TEXT(). Por exemplo, para verificar o valor de
uma lista de opes usando a funo TEXT(), use TEXT(Status__c) = Closed
- Filled.
88 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Agora precisamos apenas juntar essas converses, o que podemos fazer usando uma combinao
das funes && e ||. As duas funes avaliam um nmero ilimitado de expresses, mas &&
retornar verdadeiro se todas as expresses forem verdadeiras enquanto || retornar verdadeiro
se qualquer expresso for verdadeira. Por exemplo:
exp1 && exp2 && exp3
retorna verdadeiro quando exp1, exp2 e exp3 so todas verdadeiras. De forma semelhante,
exp1 || exp2 || exp3
retorna verdadeiro quando qualquer uma das expresses exp1, exp2 ou exp3 verdadeira.
Combine essas funes com nossas outras converses de expresso e obtenha nossa frmula de
condio de erro completa:
ISBLANK(Close_Date__c) &&
(ISPICKVAL(Status__c , "Closed - Filled") ||
ISPICKVAL(Status__c , "Closed - Not Approved"))
Ufa! Agora podemos definir rapidamente nossa segunda regra de validao usando essa frmula:
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Regras de validao, clique em Novo.
4. Na caixa de texto Nome da regra (Rule Name), insira Close_Date_Rule.
5. Marque a caixa de seleo Ativar.
6. Na caixa de texto Descrio (Description), insira O campo Data de
fechamento (Close Date) deve estar especificado quando o
Status estiver definido como "Fechada - Preenchida (Closed
- Filled)" ou "Fechada Reprovada (Closed Not Approved)"
(Close Date must be specified when Status is set to 'Closed
- Filled' or 'Closed - Not Approved').
7. Na rea Frmula de condio de erro (Error Condition Formula), insira a seguinte
frmula:
ISBLANK(Close_Date__c) &&
(ISPICKVAL(Status__c , "Closed - Filled") ||
ISPICKVAL(Status__c , "Closed - Not Approved"))
8. Clique em Verificar sintaxe (Check Syntax) para verificar se o formato da frmula
est correto.
9. Na caixa de texto Mensagem de erro (Error Message), insira O campo
Data de fechamento (Close Date) deve estar especificado
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 89
quando o Status estiver definido como "Fechada (Closed)"
(Close Date must be specified when Status is set to
'Closed')
10. Ao lado do campo Local do erro (Error Location), selecione a opo
Campo (Field) e selecione Data de fechamento (Close Date) na lista
suspensa.
11. Clique em Salvar.
Observe o que fizemos
Acesse novamente a guia Posies (Positions) para testar as regras de validao que acabamos
de criar.
1. Clique na guia Posies (Positions).
2. Clique em Novo.
Primeiro tente definir uma posio nova com um valor de Salrio mnimo (Min Pay)
superior ao valor do Salrio mximo (Max Pay).
3. Especifique qualquer valor para o campo obrigatrio Ttulo da posio
(Position Title).
4. No campo Salrio mnimo (Min Pay), insira 80.000.
5. No campo Salrio mximo (Max Pay), insira 40.000.
6. Clique em Salvar.
Voc viu o que aconteceu? Uma mensagem de erro personalizada foi exibida exatamente como
qualquer outra mensagem de erro no aplicativo!
90 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Figura 30: Mensagem de erro de uma regra de validao
Agora vamos testar outra regra de validao:
7. No campo Salrio mnimo (Min Pay), insira 40.000.
8. No campo Salrio mximo (Max Pay), insira 80.000.
9. Na lista suspensa Status, selecione Fechada Reprovada (Closed Not Approved).
10. Clique em Salvar.
Nossa segunda regra de validao acionada, pois no especificamos um valor para Data de
fechamento (Close Date). Depois que fazemos isso, o registro pode ser salvo
normalmente.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 91
Faa um teste no celular
Antes de prosseguirmos, vamos analisar como nossos campos novos so exibidos em um
dispositivo mvel.
1. Inicie o Salesforce1 no seu dispositivo mvel. Se solicitado, faa login.
2. Toque em para abrir o menu de navegao e toque em Posies (Positions). Se
no visualizar a opo Posies (Positions) na lista de itens, lembre-se de tocar em
Mostrar mais (Show More).
3. Toque em Novo (New) para criar um registro de posio.
Assim como quando criamos campos pela primeira vez para o objeto Posio (Position), todos
os nossos campos avanados so exibidos no Salesforce1 automaticamente. Verifique se todos
os campos avanados funcionam como o esperado.
Figura 31: Listas de opes dependentes e regras de validao no Salesforce1
Todos os nossos campos avanados estaro em ordem se:
Conseguirmos atualizar o Nvel do emprego (Job Level) somente aps selecionar
um valor para rea funcional (Functional Area)
92 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
No visualizarmos o campo de frmula Dias em aberto (Days Open)
O campo Data de abertura (Open Date) j estiver preenchido com a data de hoje
O campo Contratado por (Hire By) j estiver preenchido com a data daqui a 90
dias
O campo Salrio mnimo (Min Pay) de uma posio no for superior ao campo
Salrio mximo (Max Pay)
O Status de uma posio no for Fechada - Preenchida (Closed - Filled) ou Fechada
Reprovada (Closed Not Approved) se a Data de fechamento (Close Date) estiver
em branco
Ns tambm queremos verificar se o campo Dias em aberto (Days Open) est
funcionando de acordo com o planejado, e como criamos uma posio quando verificamos
nossos campos no site completo, podemos analisar esse registro existente.
4. Toque em Cancelar (Cancel) para retornar lista de registros de posio recentes.
5. Toque no registro de posio que acabamos de criar.
6. Role para baixo at visualizar Dias em aberto (Days Open).
Veremos que, assim como no site completo, o campo Dias em aberto (Days Open)
exibe o nmero de dias desde a Data de abertura (Open Date): 0.
A guia Posies (Positions) agora est totalmente funcional, com algumas regras de validao
para garantir que os usurios no cometam certos enganos. Mas os campos esto nos locais
desejados? Os campos que devem ter valores esto marcados como obrigatrios? Na prxima
seo, faremos um ajuste fino no objeto personalizado Posio (Position) modificando seu
layout de pgina.
Introduo aos layouts de pgina
Depois de definir todos esses campos e regras de validao, agora temos um objeto personalizado
Posio (Position) totalmente funcional. No entanto, a aparncia dele no est muito boa
todas as reas de texto longo esto na parte superior e difcil l-lo no navegador do computador.
Imagine ento como ser a leitura em um dispositivo mvel! Precisamos mover alguns itens
de lugar para facilitar a vida dos nossos usurios. Podemos fazer isso personalizando o layout
de pgina do objeto Posio (Position).
Um layout de pgina controla a posio e a organizao dos campos e listas relacionadas que
esto visveis para os usurios quando um registro exibido. Os layouts de pgina tambm nos
ajudam a controlar a visibilidade e a capacidade de edio dos campos em um registro. Ns
podemos configurar campos como somente leitura ou ocultos e podemos controlar quais campos
exigem a insero de um valor pelo usurio.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 93
Os layouts de pgina so ferramentas poderosas para a criao de uma excelente experincia
para os usurios, mas no podemos nos esquecer de uma regra importante: os layouts de pgina
nunca devem ser usados para restringir o acesso a dados confidenciais que um usurio no deve visualizar
ou editar. Mesmo sendo possvel ocultar um campo em um layout de pgina, os usurios ainda
conseguem acessam esse campo em outras partes do aplicativo, como em relatrios ou por meio
da API. (Aprenderemos mais sobre a segurana em todas as partes do aplicativo em Protegendo
e compartilhando dados na pgina 169.)
Agora veremos se conseguimos organizar os campos no objeto Posio (Position) de forma
mais amigvel ao usurio.
Familiarizando-se com o editor de layout de
pgina
A plataforma Force.com possui duas ferramentas de arrastar e soltar para editar os layouts de
pgina: o editor de layout de pgina original e o editor avanado de layout de pgina.
O editor avanado de layout de pgina fornece todas as funcionalidades do editor original, mas
com itens adicionais, incluindo uma interface WYSIWYG intuitiva e a capacidade de
personalizao do espao entre os campos nos seus layouts. Como o editor avanado de layout
de pgina ativado por padro, usaremos esse editor para editar os layouts de pgina neste
livro.
Nota: O editor avanado de layout de pgina no funciona com alguns navegadores
antigos. Se no quiser atualizar seu navegador, mude para o editor de layout de pgina
original em Configurao (Setup) clicando em Personalizar (Customize) > Interface
do usurio (User Interface) e desmarcando a opo Ativar editor avanado
de layout de pgina (Enable Enhanced Page Layout Editor); no
entanto, se voc usar o editor de layout de pgina original, as opes na tela no
correspondero aos procedimentos deste livro e voc no conseguir personalizar o
espao entre os campos nos seus layouts.
Vamos testar o uso do editor de layout de pgina para editar o layout de pgina do objeto
Posio (Position):
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo a Layout de posio (Position Layout).
94 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Bem-vindo ao editor de layout de pgina! Como voc pode ver, este editor diferente dos
editores que j usamos em outras reas da plataforma. Isso porque estamos projetando uma
interface do usurio e precisamos visualizar a aparncia da nossa pgina enquanto estamos
trabalhando. Antes de continuar, vejamos uma orientao rpida de como essa pgina est
configurada.
Figura 32: Editor de layout de pgina
O editor de layout de pgina composto por uma paleta na parte superior da tela e por um
layout de pgina abaixo da paleta. A paleta contm os elementos da interface do usurio que
esto disponveis para adio no layout da pgina, incluindo campos, botes, links e listas
relacionadas. Para adicionar um desses elementos da interface do usurio ao layout de pgina,
basta selecionar a categoria qual o elemento pertence na coluna esquerda da paleta e arrastar
o elemento da paleta para o layout de pgina. Para remover um elemento da interface do usurio
do layout de pgina, arraste-o do layout de pgina para o lado direito da paleta ou passe o
mouse sobre o elemento que deseja remover e clique em . Uma barra de ferramentas acima
da paleta fornece diversas funes, como as funes de salvar e exibir suas alteraes.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 95
Agora que sabemos o que estamos vendo, vamos reorganizar os campos da melhor forma para
os usurios.
Experimente: Agrupe campos em uma nova
seo
Vamos comear a modificar nosso layout de pgina definindo uma nova seo para as
informaes de salrio. Em um layout de pgina, uma seo simplesmente uma rea na qual
podemos agrupar campos similares abaixo de um cabealho adequado. Isso facilita a identificao
e a insero rpida de informaes em um registro rapidamente, especialmente se o objeto tiver
um nmero grande de campos:
1. Na paleta, selecione a categoria Fields (Campos).
2. Arraste o elemento da interface do usurio Seo (Section) da paleta para o local
logo acima da seo Informaes do sistema (System Information) no layout de
pgina.
Quando voc arrasta uma seo nova para o layout de pgina, a janela de pop-up Propriedades
da seo (Section Properties) exibida.
3. Na caixa de texto Nome da seo (Section Name), insira Remunerao
(Compensation).
O campo Nome da seo (Section Name) controla o texto que exibido como o cabealho
da seo.
4. Na rea Exibio do cabealho da seo ativada (Display Section Header On),
selecione Pgina de detalhes (Detail Page) e Editar pgina (Edit
Page).
A exibio do cabealho nas pginas de detalhe e edio ajuda os usurios a entenderem o
contexto das informaes durante a visualizao ou a edio da posio.
5. Na lista suspensa Layout, selecione 2 colunas (2-Column).
Essa opo nos permite escolher se queremos que os campos na nossa seo sejam organizados
em uma ou duas colunas. A opo padro com duas colunas, a opo mais comum. No
entanto, se a seo contiver campos de rea de texto, o layout com uma coluna recomendado,
pois fornece mais espao para a exibio na pgina.
6. Na lista suspensa Ordem da tecla Tab (Tab-key Order), selecione
Esquerda-Direita (Left-Right).
96 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Essa configurao controla a direo na qual o cursor do usurio ir se mover quando a tecla
Tab for usada para navegar de um campo para outro.
7. Clique em OK.
Agora temos uma nova seo para Remunerao logo acima da seo Informaes do sistema
(System Information)! Agora adicione os campos Salrio mnimo (Min Pay) e Salrio
mximo (Max Pay):
8. Pressione e mantenha a tecla CTRL pressionada, clique nos campos Salrio
mnimo (Min Pay) e Salrio mximo (Max Pay) na seo Informaes
(Information) e arraste-os para a nova seo Remunerao (Compensation) conforme
mostrado.
Figura 33: Adicionando campos seo Remunerao (Compensation)
O pressionamento da tecla CTRL permite a seleo de diversos elementos da interface do
usurio individuais com o mouse. Alternativamente, o pressionamento da tecla SHIFT permite
a seleo de um grupo de elementos.
Agora que conclumos o processo de criao da seo, vamos criar mais duas sees. Durante
a criao, talvez voc precise rolar a tela para cima e para baixo para visualizar todo o layout,
dependendo do tamanho da sua tela. Se voc precisar rolar a pgina, a paleta tambm se mover,
o que facilita a adio de elementos da interface do usurio mesmo na parte inferior do layout
da pgina.
9. Crie uma seo Descrio (Description) com uma coluna abaixo da seo
Remunerao (Compensation) e arraste os itens Descrio do emprego (Job
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 97
Description), Responsabilidades (Responsibilities), Habilidades
necessrias (Skills Required) e Requisitos educacionais
(Educational Requirements) para a seo.
10. Crie uma coluna Linguagens necessrias (Required Languages) de duas colunas logo
abaixo da seo Descrio (Description) e arraste os itens Apex, C#, Java e
JavaScript para a seo.
Enquanto trabalha, observe que os campos adicionados ao layout de pgina ficam cinza na
paleta, mas o elemento da interface do usurio Seo (Section) no. Isso porque os campos
podem ser exibidos somente uma vez em cada pgina, mas o elemento da interface do usurio
Seo (Section) pode ser reutilizado para voc criar quantas sees desejar.
Dica: Se cometer algum erro durante a edio do layout de pgina, use os atalhos
CTRL + Z e CTRL + Y para desfazer e refazer seus movimentos, respectivamente.
A barra de ferramentas tambm contm os botes Refazer (Redo) e Desfazer (Undo).
Enquanto movimentamos os campos, vamos reorganizar a seo Informaes (Information)
para ela ficar mais legvel.
11. Organize a primeira coluna da seo Informaes (Information) da seguinte forma:
Ttulo da posio
Status
Tipo
rea funcional
Nvel do emprego
Exige viagem
Criado por
12. Organize a segunda coluna da seo Informaes (Information) da seguinte forma:
Proprietrio
Local
Data de abertura
Contratar em
Data de fechamento
Dias abertos
Modificado pela ltima vez por
Agora ficou muito melhor nossos campos esto organizados e ficou mais fcil localizar todas
as informaes necessrias.
98 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
No entanto, a seo Informaes (Information) ainda est com a aparncia um pouco
condensada. Felizmente, o editor de layout de pgina permite a adio de espaos em branco
para separar os campos na seo, o que melhora ainda mais a leitura da seo.
Experimente: Adicione espaos entre os campos
Ao projetar um layout de pgina, voc geralmente quer destacar determinados campos em uma
seo. Uma forma fcil e eficiente de fazer isso inserindo espaos em branco entre os campos.
Por exemplo, na seo Informaes (Information), a insero de espaos em branco entre a
primeira linha de cada coluna chama a ateno do usurio para as informaes mais importantes
da seo, o ttulo e o proprietrio da posio. Tambm podemos usar espaos em branco acima
da linha inferior em cada coluna para separar os campos Criado por (Created By) e
ltima modificao feita por (Last Modified By) das informaes crticas da
posio. Vamos fazer um teste!
1. Selecione a categoria Campos (Fields).
2. Arraste o elemento da interface do usurio Espao em branco (Blank Space) da paleta
at o layout de pgina logo abaixo do campo Ttulo da posio (Position
Title).
Figura 34: Arrastando e soltando espaos em branco em um layout de pgina
Assim como o elemento da interface do usurio Seo (Section), o elemento da interface do
usurio Espao em branco (Blank Space) nunca fica cinza quando arrastado para o layout da
pgina, pois pode ser reutilizado quantas vezes voc quiser.
3. Na paleta, selecione o elemento da interface do usurio Espao em branco (Blank
Space) e arraste-o para baixo do campo Proprietrio (Owner).
4. Adicione mais dois espaos em branco ao layout de pgina, um acima do campo
Criado por (Created By) e o outro acima do campo ltima modificao
feita por (Last Modified By).
Antes de prosseguir, saiba que se voc sair acidentalmente do layout de pgina antes de salvar
seu trabalho, suas alteraes sero perdidas. Em vez de confiar na sorte, vamos salvar
rapidamente o trabalho que fizemos at agora.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 99
5. Clique em Salvar rapidamente (Quick Save) na barra de ferramentas acima da paleta
ou pressione CTRL + S se preferir usar atalhos de teclado.
O recurso de gravao rpida permite que voc salve suas alteraes e continue editando o
layout de pgina. Voc tambm pode clicar em Salvar (Save) na barra de ferramentas, mas isso
faz com que voc retorne pgina na qual acessou o editor de layout de pgina. Ainda precisamos
fazer uns pequenos ajustes no layout de pgina, ento no queremos sair do editor de layout
de pgina agora.
Experimente: Edite as propriedades do campo
Acabamos de usar o editor de layout de pgina para organizar o layout da pgina da Posio
(Position) de forma lgica e de fcil leitura, mas o editor de layout de pgina apresenta outra
funcionalidade importante alm do design da apresentao dos dados podemos us-lo para
determinar quais campos so obrigatrios e quais so somente leitura:
Se um campo for obrigatrio, o usurio no conseguir criar um registro de posio sem
especificar um valor.
Se um campo for somente leitura, o usurio que visualizar a pgina de edio do registro
de posio no conseguir alterar o seu valor.
Os campos obrigatrios so marcados um asterisco vermelho ( ) e os campos somente leitura
so marcados com um cone de cadeado ( ).
Cuidado: Ainda que seja possvel fazer essas alteraes no layout de pgina, no se
esquea do que avisamos anteriormente! Os layouts de pgina nunca devem ser usados
como a nica forma de restringir o acesso a dados confidenciais que um usurio no
deve visualizar ou editar. Isso porque os layouts de pgina controlam somente as
pginas de detalhes e edio de um registro; eles no controlam o acesso a esses campos
em nenhuma outra parte da plataforma.
Neste momento, no temos nenhum campo que precise ser somente leitura, mas queremos
que o intervalo de salrio seja sempre definido para todas as posies, ento vamos tornar os
campos Salrio mnimo (Min Pay) e Salrio mximo (Max Pay) obrigatrios.
Com isso concluiremos o nosso objeto Posio (Position)!
Para tornar os campos Salrio mnimo (Min Pay) e Salrio mximo (Max Pay)
obrigatrios, precisamos editar as propriedades de cada campo:
1. No editor de layout de pgina, clique duas vezes no campo Salrio mnimo (Min
Pay) ou selecione o cone de ferramenta ( ) ao lado do nome do campo.
100 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
A janela pop-up exibida permite a edio das propriedades do campo Salrio mnimo
(Min Pay). Podemos configurar o campo como somente leitura ou obrigatrio. Se no
quisermos que um usurio visualize o campo Salrio mnimo (Min Pay) de forma
nenhuma, podemos simplesmente tir-lo do layout e da paleta. No momento, ns queremos
que ele fique visvel, ento vamos deix-lo no seu local atual.
2. Marque a caixa de seleo Obrigatrio (Required) e clique em OK.
3. Repita essas etapas para o campo Salrio mximo (Max Pay).
4. Clique em Salvar (Save) para concluir a personalizao do layout de pgina.
Viva! Conclumos o layout de pgina do objeto Posio (Position).
Observe o que fizemos
Parabns. Criamos um aplicativo Recruiting simples que rastreia os detalhes sobre as posies
abertas de uma organizao. Vamos verificar o que fizemos acessando novamente a guia Posies
(Positions) e clicando em Novo (New). Com as alteraes que fizemos no nosso layout de
pgina, a pgina de edio da Posio (Position) agora tem a seguinte aparncia:
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 101
Figura 35: Verso final do layout da posio
Vamos analisar a pgina de detalhes da Posio (Position) antes de prosseguirmos. Para fazer
isso, precisamos criar uma posio. Preencha os campos obrigatrios e clique em Salvar (Save).
Se rolarmos at a parte inferior da pgina de detalhes da Posio (Position), visualizaremos
algumas listas relacionadas. Como ainda no personalizamos as listas relacionadas que so
exibidas nas posies, a plataforma exibe os seguintes itens padro: Atividades abertas (Open
Activities), Histrico de atividades (Activity History) e Notas e anexos (Notes & Attachments).
No momento, todas as listas esto vazias. Para ver como esses itens so exibidos, vamos adicionar
uma tarefa.
1. Na lista relacionada Atividades abertas (Open Activities), clique em Nova tarefa
(New Task).
Observe que alguns campos j esto preenchidos. A plataforma fez algumas suposies com
base nos fatos para determinar a quem a tarefa deve ser atribuda, o status e a urgncia da tarefa.
Alm disso, como adicionamos a tarefa por meio da lista relacionada em uma posio, a
102 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
plataforma presumiu corretamente que queremos associar a tarefa posio. Por ora, no altere
os valores padro desses campos.
2. Em Assunto (Subject), insira Publicar posio online (Post
position online).
3. Em Data de vencimento (Due Date), selecione a data de amanh.
4. Clique em Salvar.
Voltando pgina de detalhes da nossa posio, vemos que a lista relacionada Atividades abertas
(Open Activities) contm a tarefa que acabamos de criar. Na lista, podemos abrir a tarefa
relacionada para visualizar mais detalhes, fazer alteraes ou marc-la como concluda.
Testando nossos layouts de pgina em um
dispositivo mvel
Agora que criamos um layout de pgina bem organizado e sabemos que ele funciona no site
Salesforce completo, vamos verificar como ele funciona no nosso dispositivo mvel.
1. Inicie o Salesforce1 no seu dispositivo mvel e faa login.
2. No menu de navegao, toque em Mostrar mais (Show More) > Posies
(Positions).
3. Toque em Novo (New).
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 103
Figura 36: Sees Remunerao (Compensation) e Descrio (Description) no
Salesforce1
Assim como quando testamos nossos campos avanados anteriormente neste captulo, nossas
modificaes para organizar melhor os campos so refletidas no Salesforce1.
Agora vamos analisar a posio que acabamos de criar no site completo para ver como os
registros salvos so exibidos em um dispositivo mvel.
4. Toque em Cancelar (Cancel).
5. Toque na posio que acabamos de criar.
No Salesforce1, ns vemos duas exibies, que podem ser alternadas passando o dedo para a
direita e para a esquerda. Existe uma terceira exibio, mas ela no ficar disponvel at ativermos
o rastreamento de feeds no Colaborando com o Chatter na pgina 243 ento fique atento!
Introduo pgina de detalhes do registro
Nossa exibio atual a pgina de detalhes do registro, que inclui todas as informaes que so
exibidas acima de uma lista relacionada ou de um carto mvel no editor de layout de pgina.
Felizmente, todos os campos que adicionamos so suportados, mas esteja ciente de que o
Salesforce1 no suporta campos personalizados de rich text area.
104 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Figura 37: Pgina de detalhes do registro de um registro de posio
Beyond the Basics
Como nosso layout de pgina possui poucos campos, ele deve ser Ok para um usurio
mvel. Mas, para referncia futura, sempre considere os dispositivos diferentes nos quais
seus usurios acessaro esses layouts de pgina. Layouts com um nmero muito grande de
campos, como mais de 100, dificultaro a insero e localizao de informaes pelos
usurios. Voc deve otimizar todos os layouts de pgina para o usurio mvel ou criar
layouts de pgina especficos para os usurios mveis. Para obter informaes sobre outras
boas prticas, consulte o Salesforce1 App Admin Guide.
Introduo pgina de informaes relacionadas do registro
Passe o dedo uma vez para a esquerda para visualizar as informaes relacionadas ao registro.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 105
Figura 38: Pgina de informaes relacionadas para um Registro de posio
Diferente do site completo, que exibe os detalhes de cada lista relacionada, o Salesforce1 exibe
apenas os nomes das listas relacionadas. Podemos tocar em qualquer lista relacionada para
exibir os registros relacionados. Como sabemos que a lista relacionada Atividades abertas (Open
Activities) possui um item a tarefa que acabamos de criar vamos verificar essa lista
relacionada.
Toque em Atividades abertas (Open Activities) para exibi-la. Na pgina Atividades abertas
(Open Activities), vemos a tarefa que criamos no site completo. Para obter mais informaes
sobre a tarefa, podemos tocar no item para visualizar os detalhes do registro da tarefa.
Introduo aos cartes mveis
E no s isso! Tambm podemos adicionar cartes mveis pgina de informaes relacionadas
do registro. Existem dois tipos de cartes mveis que podem ser adicionados pgina de
informaes relacionadas: cartes de pesquisa relacionados e cartes de pgina do Visualforce.
Cartes de pesquisa relacionados
Os cartes de pesquisa relacionados so exibidos quando voc adiciona um campo da
categoria Pesquisas expandidas (Expanded Lookups) seo Cartes mveis (Mobile
Cards) no editor avanado de layout de pgina. Todos esses campos possuem um
relacionamento de pesquisa com outro registro.
106 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Cartes de pgina do Visualforce
Os cartes de pgina do Visualforce exibem pginas do Visualforce que foram ativadas
para os aplicativos mveis do Salesforce. Se voc no estiver familiarizado com o
Visualforce, no se preocupe. Falaremos sobre ele em Indo alm do desenvolvimento de
aplicativos com o recurso apontar e clicar na pgina 373.
Ns no temos nenhuma pgina do Visualforce para adicionar pgina de informaes
relacionadas, mas temos algumas pesquisas expandidas! Vamos adicionar uma agora.
1. No site completo do Salesforce, abra o layout de pgina para Posies (Positions).
2. Na paleta, selecione a categoria Pesquisas expandidas (Expanded Lookups).
3. Arraste o item ltima modificao feita por (Last Modified By)
para a seo Cartes mveis (Mobile Cards).
4. Clique em Salvar.
Figura 39: Uma pesquisa expandida na seo Cartes mveis (Mobile Cards)
Precisamos apenas saber o ltimo usurio que modificou nosso registro de posio, mas
importante saber que os cartes mveis seguem a ordem estabelecida no editor de layout de
pgina aqui e as listas relacionadas sempre so exibidas aps os cartes mveis. Alm disso, os
cartes mveis somente so exibidos no Salesforce1.
5. No Salesforce1, abra o registro de posio novamente.
O carto de pesquisa expandida que adicionamos agora exibido na parte superior da pgina
de informaes relacionadas, identificando o ltimo usurio que modificou o registro.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 107
Figura 40: Pgina de informaes relacionadas com uma pesquisa expandida
Parece que est tudo em ordem! Executando apenas algumas tarefas em Configurao (Setup),
criamos um objeto com uma guia, adicionamos campos personalizados e organizamos os campos
em um layout de pgina. Conclumos nosso aplicativo simples e agora estamos prontos para
criar o aplicativo Recruiting mais complexo que descrevemos.
Introduo aos layouts compactos
Agora que verificamos a aparncia dos layouts de pgina no Salesforce1, vamos conversar sobre
outra forma de personalizar nossos dados do Salesforce para que sejam exibidos em um
dispositivo mvel. Os layouts compactos so usados para exibir de imediato os campos-chave de
um registro. Usando layouts compactos, podemos indicar quais campos devem ser exibidos em
uma rea de destaque do registro. Esses layouts foram projetados com os dispositivos mveis
com tela sensvel ao toque em mente, nos quais o espao limitado e os usurios precisam
localizar informaes importantes rapidamente.
Ns podemos personalizar os campos que sero destacados personalizando o layout compacto
do objeto. No entanto, a criao de um layout compacto personalizado no obrigatria. Se
no criarmos um, o Salesforce1 usar um layout compacto padro do sistema predefinido e
somente leitura. Para objetos personalizados, esse padro do sistema inclui o nome do registro.
108 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
No caso do nosso objeto Posio (Position), o layout compacto padro do sistema exibe Ttulo
da posio (Position Title).
Experimente: Crie um layout compacto
Vamos fornecer mais contexto nos destaques aos nossos usurios mveis.
1. No site completo do Salesforce, em Configurao (Setup), clique em Criar (Create)
> Objetos (Objects).
2. Clique em Posio (Position).
3. Na lista relacionada Layouts compactos (Compact Layouts), clique em Novo (New).
4. Em Rtulo (Label), insira Posio (Position). Pressione a tecla TAB
para preencher automaticamente o campo Nome (Name).
Agora vamos selecionar os campos que queremos incluir no layout compacto. Ns podemos
incluir at dez campos, mas somente quatro campos sero exibidos nos destaques do registro
em um dispositivo mvel. Observe que a lista de campos disponveis no contm todos os
campos que criamos para o objeto Posio (Position). Somente os tipos de campos que so
suportados em layouts compactos so exibidos aqui. Os layouts compactos no suportam reas
de texto, reas de texto longo, rich text areas e listas de opes de seleo mltipla.
Tambm importante saber que se um usurio no tiver a segurana no nvel de campo de um
campo que est includo em um layout compacto, o usurio no ver o valor do campo no layout
compacto. Por exemplo, se incluirmos o campo Salrio mnimo (Min Pay) nesse layout
compacto e um usurio sem acesso a esse campo visualizar um registro de posio no seu celular,
o layout compacto exibir um valor em branco no campo Salrio mnimo (Min Pay).
Figura 41: Pgina de edio do layout compacto para posies
5. Selecione os campos a seguir para o layout compacto e clique no boto Adicionar
(Add). Voc pode selecion-los e inclu-los individualmente ou selecionar todos os
campos ao mesmo tempo usando CTRL + clique.
Contratar em
Nvel do emprego
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 109
Ttulo da posio
Status
6. Usando os botes Para cima (Up) ou Para baixo (Down), ajuste a lista de forma que
os campos fiquem na seguinte ordem: Ttulo da posio (Position Title),
Status, Contratado por (Hire By), Nvel do emprego (Job Level).
7. Clique em Salvar.
Experimente: Atribua o layout compacto principal
Antes de esse layout compacto ser exibido no nosso dispositivo mvel, precisamos atribu-lo
aos nossos usurios. Diferente dos layouts de pgina, que permitem a atribuio de um layout
diferente para cada perfil, o layout compacto aplicado para todos os usurios. Agora atribua
esse novo layout compacto para os usurios visualizarem outros campos alm do ttulo da
posio.
1. Clique em Atribuio de layout compacto.
2. Na lista suspensa Layout compacto principal (Primary Compact
Layout), selecione Posio (Position).
3. Clique em Salvar.
Agora vamos test-lo no nosso dispositivo mvel. As alteraes que fizemos devem ser
imediatamente refletidas no Salesforce1.
1. Inicie o Salesforce1 e faa login, se necessrio.
2. No menu de navegao, toque em Mostrar mais (Show More) > Posies
(Positions).
3. Toque em uma posio recente para abri-la.
Beyond the Basics
Se tiver tipos de registro associados a um objeto, voc pode substituir a atribuio de layout
compacto principal e atribuir layouts compactos especficos para diferentes tipos de registro.
Se no definir substituies de tipo de registro, todos os tipos de registro usaro o layout
compacto primrio do objeto por padro.
Para obter mais informaes sobre layouts compactos e tipos de registro, consulte o tpico
"Atribuindo layouts compactos a tipos de registro" na Ajuda do Salesforce.
Observe o que fizemos
Como voc pode ver, agora os destaques do registro exibem os campos que selecionamos no
nosso layout compacto personalizado. Agora, alm do ttulo da posio, visualizamos seu status,
quando ela deve ser preenchida e o tipo do emprego.
110 | Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados
e Layouts de pgina
Observe que o Ttulo da posio (Position Title) o campo dominante. Ele o
campo principal. Ao criar seu layout compacto personalizado, lembre-se de que o primeiro
campo na lista Campos selecionado (Selected Fields) ser o campo principal nos destaques.
Figura 42: Pgina de detalhes do registro com o layout compacto personalizado
As coisas vo ficar ainda mais interessantes no prximo captulo. Vamos adicionar mais alguns
objetos personalizados para controlar itens como candidatos, formulrios de emprego e revises
e vamos aprimorar ainda mais o aplicativo Recruiting definindo como nossos objetos esto
relacionados. Antes que voc perceba, teremos um aplicativo da web incrivelmente poderoso
totalmente implementado com apenas alguns cliques na plataforma.
Verso 8 | Chapter 5: Aprimorando um aplicativo simples com Campos avanados, Validao de dados e
Layouts de pgina | 111
Captulo 6
Expandindo um aplicativo simples usando
relacionamentos
At o momento fizemos muitas coisas: criamos o aplicativo
de recrutamento e construmos um objeto personalizado
Tpicos:
Introduo aos
relacionamentos
Posio (Position) totalmente funcional com uma guia e
diversos tipos de campos. Isso um bom comeo, mais h
mais a fazer!
Apresentando os campos
personalizados de
relacionamento
Ter apenas um objeto em nosso aplicativo de recrutamento
e uma festa somente com um convidado, ou seja, nada Adicionando candidatos
interessante! Precisamos convidar mais pessoas para a Associando candidatos e
posies aos formulrios
de emprego
festa criando objetos personalizados que representam
candidatos, formulrios de emprego, revises e, ainda mais
importante, precisamos criar relacionamentos entre eles.
Introduo aos layouts de
pesquisa Assim como uma festa no divertida quando voc no
conhece nenhum convidado, um aplicativo no eficiente
Gerenciando anlises de
revises
a menos que os objetos estejam vinculados uns com os
outros. Esse ser o foco deste captulo, assim, sem mais
delongas, vamos comear!
Criando um
relacionamento do tipo
muitos com muitos
Juntando tudo
Introduo aos relacionamentos
O que um relacionamento e por que eles so importantes para seu aplicativo? Assim como
um relacionamento pessoal uma associao bidirecional entre duas pessoas, em relao a
dados relacionais, um relacionamento uma associao entre dois objetos. Sem relacionamentos,
ns poderamos criar a quantidade desejada de objetos personalizados, mas no seria possvel
associ-los.
Por exemplo, aps criar um objeto Posio (Position) e um objeto Formulrio de emprego (Job
Application), teramos diversas informaes sobre uma posio especfica e diversas informaes
sobre um candidato especfico que se candidatou posio, mas no teramos como visualizar
as informaes do formulrio de emprego ao consultar o registro da posio e nem como
visualizar as informaes sobre a posio ao consultar o registro do formulrio de emprego.
Isso no est certo!
Com relacionamentos, ns podemos fazer essa conexo e exibir os dados de outros registros
de objeto relacionados em uma pgina de detalhes especfica do registro. Por exemplo, aps
definirmos um relacionamento entre os objetos Posio (Position) e Formulrio de emprego
(Job Application), o registro de posio poder ter uma lista relacionada de todos os formulrios
de emprego dos candidatos que se candidataram posio e o registro de formulrio de emprego
poder ter um link para as posies nas quais o candidato est se candidatando. Dessa forma,
as "pessoas" na "festa" do nosso aplicativo Recruiting passam a conhecer outros candidatos e
o aplicativo fica um pouco mais interessante.
114 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Figura 43: Os relacionamentos permitem a exibio das informaes de outros registros
de objeto na pgina de detalhes do registro
Apresentando os campos personalizados
de relacionamento
Como aprendemos em Revisando conceitos de bancos de dados na pgina 29, podemos definir
um relacionamento entre dois objetos usando campos comuns. Na plataforma, podemos definir
relacionamentos entre objetos criando um campo personalizado de relacionamento, que associa
um objeto a outro. Um campo de relacionamento um campo personalizado em um registro
de objeto, que contm um link para outro registro. Quando colocamos um campo personalizado
de relacionamento em um objeto, estamos efetivamente criando um relacionamento do tipo
muitos para um entre o objeto no qual encontra-se o campo relacionamento e o outro objeto.
H diferentes tipos de campos de relacionamento, cada um deles com diferentes implicaes.
O tipo mais simples e flexvel o campo de relacionamento de pesquisa, que cria um simples
relacionamento entre dois objetos. Por exemplo, se colocarmos um campo de relacionamento
de pesquisa em um objeto Formulrio de emprego (Job Application) que faz referncia a
registros de posio, muitos registros de formulrios de emprego podero ser relacionados a
um nico registro de posio. Isso refletir tanto com um novo campo Posio (Position)
em um registro de formulrio de emprego e com uma nova lista relacionada de formulrios de
emprego no registro de posio. Tambm possvel inserir mltiplos campos de relacionamento
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 115
de pesquisa em um nico objeto, o que significa que nosso objeto Formulrio de emprego (Job
Application) tambm pode apontar para um objeto Candidato (Candidate).
O segundo tipo de campo de relacionamento, o relacionamento entre mestre e detalhes, um
pouco mais complicado, porm oferece mais capacidades. Os relacionamentos entre mestre e
detalhes criam relacionamentos especiais do tipo pai e filho entre objetos: o objeto no qual voc
cria o campo de relacionamento entre mestre e detalhes o filho ou detalhe, e o objeto
referenciado no campo o pai ou mestre. Em um relacionamento entre mestre e detalhes, a
propriedade e o compartilhamento dos registros dos detalhes so determinados pelo registro
mestre, e quando voc exclui o registro mestre, todos os seus registros de detalhes tambm so
automaticamente excludos. Campos de relacionamento entre mestre e detalhes so sempre
necessrios em registros de detalhes e depois de definir o valor de um campo de relacionamento
entre mestre e detalhes voc no poder mais alter-lo.
Quando usar um relacionamento entre mestre e detalhes? Quando voc tem um objeto cujo
significado derivado de outro objeto. Por exemplo, digamos que voc tenha um objeto
personalizado Reviso (Review), que contenha a opinio de um entrevistador sobre um
formulrio de emprego. Se voc excluir um registro de formulrio de emprego, voc
provavelmente desejar que todos os seus registros de reviso tambm sejam excludos, uma
vez que revises de algo que no existe no so nada teis. Nesse caso, voc precisar criar um
relacionamento entre mestre e detalhes no objeto personalizado Reviso (Review) com o objeto
Formulrio de emprego (Job Application) como o objeto mestre.
esse tipo de procedimento que faremos neste captulo. Vamos comear com um exemplo
rpido e fcil sobre como colocar um campo Gerente de contratao (Hiring
Manager) em nosso objeto Posio (Position). Criaremos um relacionamento do tipo muitos
para um entre o objeto Posio (Position) e o objeto padro Usurio (User), fornecido com
todas as organizaes, refletindo o fato de que um gerente de contratao pode ser responsvel
por diversas posies ao mesmo tempo. A seguir, criaremos mais alguns objetos e
implementaremos um relacionamento mais complexo envolvendo posies, formulrios de
emprego, candidatos e revises.
Experimente: Relacione gerentes de contrataes
e posies
Em nosso primeiro relacionamento, vamos associar um gerente de contratao a uma posio
colocando um campo de relacionamento de pesquisa no objeto Posio (Position). O campo
de pesquisa permitir que os usurios selecionem o gerente de contratao para a posio
escolhendo um dos usurios do aplicativo Recruiting.
116 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Por exemplo, se o Mario Ruiz, nosso recrutador, quiser definir o Phil Katz como o gerente de
contratao da posio Especialista em benefcios (Benefits Specialist), ele poder fazer isso
clicando no cone de pesquisa ( ) ao lado do campo de relacionamento de pesquisa que vamos
criar. Seu nome aparecer na pgina de detalhes da Posio (Position).
Para criar o campo de relacionamento de pesquisa que far isso, precisamos voltar para a j
familiar pgina de detalhes do objeto Posio (Position).
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione Relacionamento de pesquisa (Lookup Relationship) e clique
em Avanar (Next).
5. Na lista suspensa Relativo a (Related To), selecione Usurio (User) e clique
em Avanar (Next).
Como j mencionado, Usurio (User) um objeto padro fornecido para todas as organizaes
na plataforma. Ele contm informaes sobre todas as pessoas que usam o aplicativo na sua
organizao.
6. Na caixa de texto Rtulo do campo (Field Label), insira Gerente de
contratao (Hiring Manager). Quando voc mover o cursor, a caixa de
texto Nome do campo (Field Name) ser preenchida automaticamente com
Hiring_Manager.
7. Clique em Avanar.
8. Aceite as opes padro nas duas etapas restantes do assistente.
9. Clique em Salvar.
Observe o que fizemos
Agora volte para a guia Posies (Positions) e clique em Novo (New). A pgina de edio da
Posio (Position) inclui um novo campo de pesquisa Gerente de contratao (Hiring
Manager)! Se voc clicar no cone de pesquisa ao lado desse campo ( ), poder pesquisar
todos os usurios do aplicativo Recruiting e selecionar um como o gerente de contratao. O
nome desse usurio ser exibido no registro da posio.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 117
Figura 44: Relacionamento de pesquisa do gerente de contratao
Como voc pode ver, a configurao desse relacionamento simples entre posies e usurios
simples. E voc ver que a configurao de relacionamentos em geral muito fcil.
As coisas comeam a ficar um pouco mais complicadas quando criamos relacionamentos que
no representam um relacionamento simples de muitos para um. Veremos um exemplo disso
em alguns instantes. Agora, vamos criar um objeto personalizado para candidatos para que
possamos criar mais alguns relacionamentos no nosso aplicativo Recruiting.
Beyond the Basics
Voc sabia que pode usar o Criador de esquemas para visualizar os detalhes do seu esquema
e incluir e editar rapidamente objetos e campos de relacionamento?
Digamos que voc est tendo dificuldades para visualizar como a pesquisa do Gerente de
contratao (Hiring Manager) est relacionada com os objetos Posio (Position) e Usurio
(User). O Criador de esquemas fornece um ambiente dinmico que permite a visualizao
dos detalhes do campo, como se o campo obrigatrio, e mostra como os objetos padro
e personalizados esto conectados por meio de relacionamentos de pesquisa e entre mestre
e detalhes. No Criador de esquemas, voc pode ampliar e girar, editar as propriedades de
um objeto e clicar duas vezes em um campo para edit-lo.
Para obter mais informaes, consulte o tpico "Trabalhando com o criador de esquemas"
na Ajuda do Salesforce.
118 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Adicionando candidatos
Vamos adicionar um objeto personalizado Candidato (Candidate) ao nosso aplicativo para que
possamos gerenciar as informaes sobre os nossos candidatos. Tambm adicionaremos campos
ao objeto, modificaremos as propriedades do layout da pgina, adicionaremos um layout
compacto e criaremos um registro de candidato. Como o processo de criao do objeto
personalizado Candidato (Candidate) praticamente idntico ao processo que usamos para
criar o objeto personalizado Posio (Position), faremos isso de modo muito rpido.
Experimente: crie o objeto Candidato (Candidate)
Para criar nosso objeto personalizado Candidato (Candidate), em Configurao (Setup), clique
em Criar objetos (Create > Objects), Novo objeto personalizado (New Custom Object) e
preencha a pgina de acordo com a seguinte tabela.
Tabela 8: Valores para definio do objeto Candidato (Candidate)
Valor Campo
Candidato Rtulo
Candidatos Rtulo no plural
Candidato Nome do objeto
Representa um candidato que pode se
candidatar a uma ou mais posies
Descrio
Abra a janela padro Ajuda e treinamento
(Help & Training) do Salesforce
Configurao da Ajuda sensvel ao contexto
Nmero do candidato Nome do registro
Numerao automtica Tipo de dados
C-{00000} Formato de exibio
00001 Nmero inicial
Sim Permitir relatrios
Sim Permitir atividades
Sim Rastrear histrico de campos
Implantado Status de implantao
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 119
Valor Campo
Sim Adicionar a lista relacionada Notas e anexos
(Notes & Attachments) ao layout de pgina
padro (Add Notes & Attachments related
list to default page layout)
Sim Iniciar Assistente de nova guia personalizada
depois de salvar esse objeto personalizado
Para criar a guia Candidatos (Candidates), selecione um Estilo de guia (Tab Style)
na primeira etapa do assistente e aceite todos os valores padres at chegar pgina Adicionar
aos aplicativos personalizados (Add to Custom Apps). Nessa pgina, selecione somente o
aplicativo de recrutamento e clique em Salvar (Save).
O aplicativo de recrutamento agora tem trs guias: Incio (Home), Posies (Positions) e
Candidatos (Candidates). Agora vamos adicionar alguns campos personalizados ao objeto
Candidato (Candidate).
Experimente: adicione campos ao objeto
Candidato (Candidate)
Para criar campos personalizados no objeto Candidato (Candidate), em Configurao (Setup),
clique em Criar (Create) > Objetos (Objects) e depois em Candidato (Candidate) para
visualizar a pgina de detalhes. Na lista relacionada Campos e relacionamentos personalizados
(Custom Fields & Relationships), use o boto Novo (New) para criar campos personalizados
de acordo com a seguinte tabela. Sempre que necessrio, indicamos valores adicionais que
precisam ser inseridos. Caso contrrio, basta aceitar os valores padres.
Uma diferena que voc notar nos campos do objeto Candidato (Candidate) que trs deles
(Nome [First Name], Sobrenome [Last Name] e Email) estaro com a opo ID
externo (External ID) selecionada. Essa opo possibilita que os valores desses campos
seja indexados para pesquisa a partir da barra lateral do aplicativo. Caso no selecionarmos
esses valores como IDs externos, s poderemos pesquisar registros com base no campo Nmero
do candidato (Candidate Number). Definir o campo Email como ID externo tambm
nos ajudar a importar dados, como veremos mais adiante neste captulo.
120 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Tabela 9: Campos personalizados do objeto Candidato (Cadidate).
Outros valores Rtulo de campo Tipo de dados
Comprimento: 50
ID externo: Selecionado
Nome Texto
Comprimento: 50
ID externo: Selecionado
Sobrenome Texto
Telefone Telefone
ID externo: Selecionado Email Email
Comprimento: 50 Rua Texto
Comprimento: 50 Cidade Texto
Comprimento: 50 Estado/provncia Texto
Comprimento: 15 CEP/Cdigo postal Texto
Comprimento: 50 Pas Texto
Comprimento: 50 Empregador atual Texto
Comprimento: 2
Casas decimais: 0
Anos de experincia Nmero
Comprimento: 9 CPF Texto
Valores da lista de opes: Educao Lista de opes
Diploma HS
BA/BS
MA/MS/MBA
Ph.D.
Ps Doutorado
Padro: Marcado Atualmente empregado Caixa de seleo
Padro: Marcado Cidado dos EUA Caixa de seleo
Padro: Desmarcado Visto necessrio Caixa de seleo
Celular Telefone
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 121
Outros valores Rtulo de campo Tipo de dados
Fax Telefone
Experimente: Modifique as propriedades do
layout da pgina Candidato (Candidate)
Agora iremos organizar todos os nossos campos no layout da pgina e marcar alguns campos
como obrigatrios. Para isso, vamos at a pgina de layout da pgina Candidato (Candidate).
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Candidato (Candidate).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit) ao
lado de Layout do candidato (Candidate Layout).
4. Crie trs novas sees de duas colunas abaixo da seo Informaes (Information):
Endereo (Address), Emprego (Employment) e Detalhes adicionais (Additional
Details). Arraste os campos adequados, conforme mostrado na imagem Layout da
pgina do objeto Candidato (Candidate) e no se esquea de clicar em Salvar
rapidamente (Quick Save) para salvar seu trabalho durante o processo.
5. Configure os campos Nome (First Name), Sobrenome (Last Name) e Email
como campos obrigatrios da seguinte forma:
a. Use CTRL + clique para selecionar os trs campos obrigatrios.
b. Clique duas vezes na seleo.
c. Marque a caixa de seleo Obrigatrio (Required) na linha
Selecionar tudo (Select All) e clique em OK.
6. Clique em Salvar.
O layout da pgina Candidato (Candidate) deve ter uma aparncia similar captura de tela a
seguir.
122 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Figura 45: Layout da pgina do objeto Candidato (Candidate)
Observe o que fizemos
Esta uma rpida maneira de verificar se voc fez tudo corretamente.
1. Clique na guia Candidatos (Candidates).
2. Clique em Novo.
3. Crie um novo registro para um candidato chamado Ethan Tran em So Francisco.
4. Insira um valor para cada um dos campos necessrios. O Salesforce no verificar o
endereo de email inserido no campo Email neste momento, assim voc pode inserir
um email fictcio.
5. No campo Cidade (City), insira So Francisco.
6. Clique em Salvar.
Qual a aparncia do layout da pgina? Os campos esto nos locais desejados?
Caso a aparncia da pgina no esteja correta e voc precise fazer ajustes, clique no link Editar
layout (Edit Layout) no canto superior direito.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 123
Figura 46: Link Editar layout (Edit Layout)
O link Editar layout (Edit Layout) o leva diretamente ao editor do layout da pgina e permite
que voc altere a pgina que est visualizando no momento.
Experimente: personalize os destaques do
registro do candidato
Para finalizar o objeto, vamos ajudar nossos usurios mveis adicionando alguns campos aos
destaques do registro. No momento, o nico campo exibido nos destaques o nmero do
candidato, o que no muito til. Queremos que os destaques forneam rapidamente as
informaes sobre os candidatos que os nossos usurios mveis precisam. Alguns pontos de
dados teis podem ser a localizao e o nvel de especialidade do candidato.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Candidato (Candidate).
3. Na lista relacionada Layouts compactos (Compact Layouts), clique em Novo (New).
4. D um nome para o layout compacto e mova os campos para Campos disponveis
(Available Fields) de modo que eles apaream na seguinte ordem.
Sobrenome
Cidade
Educao
Anos de experincia
5. Clique em Salvar.
Lembre-se de atribuir rapidamente o nosso novo layout compacto como o layout compacto
principal para os candidatos.
124 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
6. Clique em Atribuio de layout compacto.
7. Clique em Editar atribuio.
8. Na lista suspensa, selecione o layout compacto que voc acabou de criar.
9. Clique em Salvar.
Observe o que fizemos
Agora vamos dar uma olhada em como um registro de candidato exibido em nosso dispositivo
mvel.
1. Inicie o Salesforce1 e efetue login caso solicitado.
2. No menu de navegao, toque em Mostrar mais (Show More > Candidatos
(Candidates).
3. Toque em C-00001.
Figura 47: Destaques do registro personalizado para C-00001
Os destaques do registro incluem algumas informaes, porm dois dos campos esto em
branco. O motivo que quando criamos o registro na seo passada, preenchemos somente os
campos necessrios (Nome [First Name], Sobrenome [Last Name] e Email) e Cidade
(City). Vamos preencher os outros campos para que possamos visualizar o layout compacto
funcionado completamente!
4. Deslize para esquerda para acessar a pgina de detalhes do registro.
5. Toque em Editar (Edit).
6. Preencha alguns dos campos vazios. Voc pode adicionar mais, porm pelo menos
certifique-se de que Educao (Education) e Anos de experincia (Years
of Experience) estejam preenchidos.
7. Toque em Salvar (Save).
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 125
Figura 48: Destaques do registro personalizado para C-00001 com todos os campos
preenchidos
Se voc conseguir criar um novo registro de candidato e visualizar os valores corretos nos
destaques, vamos seguir em frente para o objeto Formulrio de emprego (Job Application)!
Associando candidatos e posies aos
formulrios de emprego
Nosso aplicativo consegue rastrear candidatos e posies, mas h um elemento essencial ausente:
como sabemos quais candidatos esto interessados em quais posies? Podemos criar campos
de relacionamento de pesquisa no objeto Candidato (Candidate) que permitam que os
recrutadores especifiquem as posies nas quais o candidato est interessado, mas e se quisermos
rastrear informaes adicionais, como se o candidato j tem uma entrevista agendada para uma
dessas posies? Alm disso, no seria interessante se o recrutador pudesse armazenar as cartas
de apresentao que os candidatos elaboram especificamente para cada posio ao se candidatar?
Ns podemos cumprir esses requisitos com um objeto personalizado Formulrio de emprego
(Job Application) que armazene os dados da candidatura de um candidato individual em uma
nica posio. Cada vez que o candidato quiser se candidatar a uma posio, o recrutador
poder criar um registro do formulrio de emprego que contenha o nome do candidato e a
posio a qual ele est se candidatando, alm da carta de apresentao que o candidato pode
ter enviado especificamente para a posio. Os recrutadores tambm podero indicar o status
da candidatura do candidato, como se o candidato j tem uma entrevista agendada ou se a
candidatura foi rejeitada. Aps a criao do objeto Formulrio de emprego (Job Application)
e seus campos, faremos algumas alteraes pequenas nos objetos Posio (Position), Candidato
(Candidate) e Formulrio de emprego (Job Application) para que cada registro de posio
exiba os nomes dos candidatos que se candidataram posio e cada registro de candidato exiba
o nome das posies as quais o candidato se candidatou.
126 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Experimente: Crie o objeto Formulrio de
emprego (Job Application)
A essa altura, voc j profissional nisso! Para criar o objeto personalizado Formulrio de
emprego (Job Application), em Configurao (Setup), clique em Criar (Create) > Objetos
(Objects), clique em Novo objeto personalizado (New Custom Object) e preencha a pgina
de acordo com a tabela a seguir.
Tabela 10: Valores para definio do objeto Formulrio de emprego (Job Application)
Valor Campo
Formulrio de emprego Rtulo
Formulrios de emprego Rtulo no plural
Job_Application Nome do objeto
Representa a candidatura a uma posio de
um candidato
Descrio
Abra a janela padro Ajuda e treinamento
(Help & Training) do Salesforce
Configurao da Ajuda sensvel ao contexto
Nmero do formulrio de emprego Nome do registro
Numerao automtica Tipo de dados
JA-{00000} Formato de exibio
00001 Nmero inicial
Sim Permitir relatrios
Sim Permitir atividades
Sim Rastrear histrico de campos
Implantado Status de implantao
Sim Adicionar a lista relacionada Notas e anexos
(Notes & Attachments) ao layout de pgina
padro (Add Notes & Attachments related
list to default page layout)
Sim Iniciar Assistente de nova guia personalizada
depois de salvar esse objeto personalizado
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 127
Para criar a guia Formulrios de emprego (Job Applications), selecione um Estilo de guia
(Tab Style) na primeira etapa do assistente e no modifique os valores padro at chegar
na pgina Adicionar aos aplicativos personalizados (Add to Custom Apps). Nessa pgina,
selecione apenas o aplicativo Recruiting e clique em Salvar (Save).
Em instantes, iremos associar o objeto Formulrio de emprego (Job Application) aos objetos
Posio (Position) e Candidato (Candidate).
Experimente: adicione campos ao objeto
Formulrio de emprego (Job Application)
Aqui est outro procedimento que fizemos diversas vezes antes, porm dessa vez precisamos
definir apenas quatro campos personalizados em vez dos quase vinte campos que construmos
para o objeto Candidato (Candidate). Precisaremos adicionar um campo de texto para a carta
de apresentao do candidato, um campo de lista de opes para que possamos monitorar o
status do formulrio, e dois campos de relacionamentos de pesquisa, os quais criaro
relacionamentos entre o objeto Formulrio de emprego (Job Application) e o os objetos Posio
(Position) e Candidato (Candidate).
Embora esses campos sejam praticamente idnticos aos que criamos anteriormente, voc notar
ao configurar os campos de relacionamento de pesquisa que h uma nova etapa no assistente
de campo personalizado, a Etapa 6: adicionar listas relacionadas personalizadas. Nessa etapa do
assistente voc poder especificar um cabealho para a lista relacionada Formulrios de emprego
(Job Applications), que ser exibido nas pginas de detalhes Candidato (Candidate) e Posio
(Position).
Por que essa etapa no estava presente anteriormente quando criamos o campo de pesquisa
Gerente de contratao (Hiring Manager)? O motivo que o objeto Usurio (User)
nico: ele no contm nenhum guia e no possvel adicionar listas relacionadas a ele. A
plataforma sabe disso e assim deixe de fora a etapa de lista relacionada sempre que algum
adiciona um campo de relacionamento de pesquisa que faz referncia ao objeto Usurio (User).
Agora que j entendemos essa pequena diferena, vamos concluir os campos do formulrio de
emprego. Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects)e, por fim,
em Formulrio de emprego (Job Application) para visualizar a pgina de detalhes. Na lista
relacionada Campos e relacionamentos personalizados (Custom Fields & Relationships), use
o boto Novo (New) para criar campos personalizados de acordo com a seguinte tabela. Sempre
que necessrio, indicamos valores adicionais que precisam ser inseridos. Caso contrrio, basta
aceitar os valores padres.
128 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Tabela 11: Adicione campos personalizados ao objeto Formulrio de emprego (Job
Application)
Outros valores Rtulo de campo Tipo de dados
Relacionado a: Candidato
Rtulo da lista relacionada: Formulrios de
emprego
Candidato Relacionamento de
pesquisa
Relacionado a: Posio
Rtulo da lista relacionada: Formulrios de
emprego
Posio Relacionamento de
pesquisa
Comprimento: 32,768
# de linhas visveis: 6
Carta de apresentao rea de texto (longo)
Valores da lista de opes: Status Lista de opes
Novo
Revisar currculo
Triagem via telefone
Entrevistas agendas
Estender uma oferta
Contratado
Rejeitado
Usar primeiro valor como valor padro:
Selecionado
Experimente: Personalize os destaques do
registro Formulrio de emprego (Job
Application)
Como temos apenas alguns campos, no precisamos nos preocupar com a personalizao do
layout da pgina. Contudo, uma boa hora para personalizar o layout compacto.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Formulrio de emprego (Job Application).
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 129
3. Na lista relacionada Layouts compactos (Compact Layouts), use o boto Novo (New)
para criar um layout compacto com os seguintes campos. Insira um nome no Rtulo
(Label) e use os botes Cima (Up) e Baixo (Down) para fazer o ajuste de acordo
com a ordem.
Nmero do formulrio de emprego
Status
Candidato
Posio
4. Clique em Salvar (Save) e configure o novo layout compacto como o layout compacto
principal para formulrios de emprego.
Observe o que fizemos
Pronto! Se voc clicar na nova guia Formulrios de emprego (Job Applications) e clicar em
Novo (New), voc ver o campo de pesquisa Candidato (Candidate), o campo de pesquisa
Posio (Position), a carta de apresentao do candidato e o campo de lista de opes
Status.
Figura 49: Campos personalizados na pgina de edio do Formulrio de emprego
(Job Application)
130 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
No se esquea de iniciar o Salesforce1 para visualizar o novo layout compacto em ao. Agora
os usurios mveis conseguiro visualizar detalhes importantes sem ter que rolar uma lista de
campos.
Figura 50: Destaques do registro de um registro de Formulrio de emprego (Job
Application)
Mas isso no tudo! Como ns criamos alguns relacionamentos de pesquisa, as pginas de
detalhes do registro do candidato e da posio agora tm uma nova lista relacionada aos
formulrios de emprego. E a pgina de detalhes do Formulrio de emprego (Job Application)
inclui links para os registros do candidato e da posio referenciados. Os trs objetos agora
esto relacionados e associados!
Figura 51: Links do Formulrio de emprego (Job Application) aos dados da posio e
do candidato
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 131
Antes de prosseguirmos, vejamos se conseguimos melhorar um pouco mais a usabilidade do
nosso aplicativo para que nossos usurios no precisem identificar os candidatos e os formulrios
de emprego pelo nmero ao clicar no boto de pesquisa na pgina de edio do Formulrio de
emprego (Job Application) ou ao visualizar a lista relacionada de Formulrios de emprego (Job
Applications) nas pginas de detalhes do Candidato (Candidate) ou da Posio (Position).
Introduo aos layouts de pesquisa
Por padro, todas as listas relacionadas e caixas de dilogo de pesquisa que resultam de novos
relacionamentos, como os que definimos neste captulo, exibem somente o nmero ou nome
do registro. Por exemplo, se voc criar um formulrio de emprego, pode achar a caixa de dilogo
Candidato (Candidate) um pouco enigmtica, pois o nico campo listado o Nmero do
candidato (Candidate Number). Voc provavelmente esperava visualizar os campos
Nome (First Name), Sobrenome (Last Name) e campos adicionais, conforme mostrado
na captura de tela a seguir.
Figura 52: Pesquisa padro do Candidato (Candidate) no objeto Formulrio de emprego
(Job Application)
Da mesma forma, as listas relacionadas de Formulrios de emprego (Job Applications) nas
pginas de detalhes da Posio (Position) e do Candidato (Candidate) exibem somente o
132 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
nmero do formulrio de emprego. Seria muito mais til se essas listas relacionadas tambm
inclussem o nome ou a posio do candidato associado.
Para corrigir esses problemas, podemos incluir campos nos layouts de pesquisa para os objetos
que definimos. Os layouts de pesquisa so grupos classificados de campos que so exibidos
quando um registro apresentado em um contexto especfico, como nos resultados de uma
pesquisa, uma caixa de dilogo de pesquisa ou uma lista relacionada. Com a incluso de campos,
ns podemos fornecer mais informaes aos usurios e ajud-los a localizar registros mais
rapidamente.
A lista relacionada de Layouts de pesquisa (Search Layouts) na pgina de detalhes do objeto
personalizado o local no qual esses conjuntos de campos devem ser modificados. Em
Configurao (Setup), clique em Criar (Create) > Objetos (Objects) e selecione o objeto
Candidato (Candidate). Voc ver que os layouts de pesquisa disponveis incluem:
Tabela 12: Layouts de pesquisa disponveis
Descrio Nome do layout
Os resultados de pesquisa originados da pesquisa da barra lateral
esquerda do aplicativo ou da pesquisa avanada.
Resultados da
pesquisa
Os resultados da caixa de dilogo de pesquisa originados do clique no
ao lado de um campo de pesquisa em uma pgina de edio.
Caixas de dilogo de
pesquisa
Os resultados da caixa de dilogo de pesquisa originados do clique no
ao lado de um campo de pesquisa com um tipo de dados de telefone
em uma pgina de edio.
Caixas de dilogo de
pesquisa de telefone
(Lookup Phone
Dialogs)
A lista de registros recentes que exibida na pgina inicial de uma
guia e nas listas relacionadas na pgina de detalhes de outro objeto.
Guia Candidatos
(Candidates)
Este layout no usado para a especificao de campos. Use-o para
especificar os botes que so exibidos na pgina de exibio de lista
de um objeto.
Exibio de lista dos
candidatos
(Candidates List
View)
Os filtros que podem ser aplicados aos resultados da pesquisa. Campos de filtros de
pesquisa
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 133
Experimente: Adicione campos na caixa de
dilogo de pesquisa do candidato
Vamos adicionar campos na caixa de dilogo de pesquisa do candidato:
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Candidato (Candidate).
3. Na lista relacionada de Layouts de pesquisa (Search Layouts), clique em Editar
(Edit) ao lado do layout Caixas de dilogo de pesquisa (Lookup Dialogs).
A pgina Editar layout de pesquisa (Edit Search Layout) inclui uma lista dos campos disponveis
para o objeto Candidato (Candidate). Voc pode escolher at dez campos para incluir na caixa
de dilogo de pesquisa e classific-los da forma que desejar, exceto o campo de nmero ou
nome exclusivo do objeto (como o Nmero do candidato (Candidate Number)), que
deve ser listado primeiro.
4. Mova os campos a seguir para a caixa Campos selecionados (Selected Fields) abaixo
de Nmero do candidato (Candidate Number):
Nome
Sobrenome
Cidade
Estado/provncia
Telefone
5. Clique em Salvar.
Pronto! Para fazer um teste, volte para a guia Formulrios de emprego (Job Applications) e
clique em Novo (New). Clique no cone de pesquisa ao lado do campo Candidato
(Candidate) e veja que agora a caixa de dilogo muito mais til.
134 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Figura 53: Pesquisa de candidato modificada no objeto Formulrio de emprego (Job
Application)
Experimente: Atualize layouts de pesquisa
adicionais
Agora que ns atualizamos um layout de pesquisa para consultas, o restante ser fcil. Use a
lista relacionada de Layouts de pesquisa (Search Layouts) na pgina de detalhes do objeto
personalizado para modificar outros layouts de pesquisa conforme descrito na tabela a seguir.
Tabela 13: Layouts de pesquisa adicionais
Incluir estes campos Layout de pesquisa Objeto
Candidato
Nmero do candidato Resultados da pesquisa
Guia Candidatos (Candidates) Nome
Sobrenome
Cidade
Estado/provncia
Telefone
Candidato
Nmero do candidato Campos de filtros de pesquisa
Nome
Sobrenome
Educao
Anos de experincia
Cidade
Estado/provncia
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 135
Incluir estes campos Layout de pesquisa Objeto
Pas
Atualmente empregado
Posio
Ttulo da posio Resultados da pesquisa
Caixas de dilogo de pesquisa Local
rea funcional Guia Posies (Positions)
Campos de filtros de pesquisa Nvel do emprego
Tipo
Gerente de contratao
Status
Data de abertura
Data de fechamento
Formulrio de
emprego
Nmero do formulrio de
emprego
Resultados da pesquisa
Caixas de dilogo de pesquisa
Candidato
Guia Formulrios de emprego
(Job Applications) Posio
Campos de filtros de pesquisa Status
Data de criao
Nome do proprietrio (Owner
First Name)
Sobrenome do proprietrio
(Owner Last Name)
Agora iremos criar outro objeto personalizado para fornecer aos nossos gerentes de contratao
e entrevistadores um lugar para eles inserirem seus comentrios sobre os formulrios de emprego.
Gerenciando anlises de revises
Os entrevistadores, recrutadores e gerentes de contratao precisam ser capazes de criar revises
para registrar seus comentrios sobre o formulrio de emprego de cada candidato e avaliar se
o candidato adequado para a posio. Eles tambm precisam visualizar as revises feitas por
outras pessoas. Para que nossos usurios possam executar essas tarefas, precisamos criar um
objeto personalizado Reviso (Review) e relacion-lo ao objeto Formulrio de emprego (Job
Application).
136 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
O objeto Reviso (Review) possui um relacionamento de muitos para um com o objeto
Formulrio de emprego (Job Application) porque um formulrio de emprego pode ter uma ou
mais revises associadas a ele. Uma lista relacionada no registro do formulrio de emprego ir
exibir as revises associadas, representando o lado "muitos" do relacionamento.
Figura 54: Relacionamento de muitos para um da Reviso com o Formulrio de emprego
No entanto, em vez de criar esse relacionamento com um campo de relacionamento de pesquisa,
iremos usar um campo de relacionamento entre mestre e detalhes. O relacionamento entre
mestre e detalhes faz sentido nesse caso porque as revises perdem seu significado quando esto
fora do contexto de um formulrio de emprego, ento queremos que as revises sejam excludas
automaticamente quando o formulrio de emprego relacionado for excludo.
Experimente: crie o objeto Reviso (Review)
Para criar o objeto Reviso (Review), em Configurao (Setup), clique em Criar objetos (Create
> Objects), Novo objeto personalizado (New Custom Object) e preencha a pgina de acordo
com a seguinte tabela.
Tabela 14: Valores para definio do objeto Reviso (Review)
Valor Campo
Reviso Rtulo
Revises Rtulo no plural
Reviso Nome do objeto
Representa a avaliao de um entrevistador a
respeito de um candidato especfico
Descrio
Abra a janela padro Ajuda e treinamento
(Help & Training) do Salesforce
Configurao da Ajuda sensvel ao contexto
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 137
Valor Campo
Nmero da reviso Nome do registro
Numerao automtica Tipo de dados
R-{000000} Formato de exibio
000001 Nmero inicial
Sim Permitir relatrios
Sim Permitir atividades
Sim Rastrear histrico de campos
Implantado Status de implantao
Sim Adicionar a lista relacionada Notas e anexos
(Notes & Attachments) ao layout de pgina
padro (Add Notes & Attachments related
list to default page layout)
No Iniciar Assistente de nova guia personalizada
depois de salvar esse objeto personalizado
Observe que no iniciamos o assistente de guia desta vez. As revises no precisam de uma
guia prpria pois podem ser acessadas atravs de uma lista relacionada na pgina de detalhes
Formulrio de emprego (Job Application). Ao criar um objeto com uma guia, o plataforma
fornece acesso aos registros desse objeto em diversos locais e no somente na guia, como em
resultados de pesquisa e na lista Itens recentes (Recent Items) exiba na rea da barra lateral de
todas as pginas. Como a maioria dos usurios do aplicativo de recrutamento no precisar
visualizar as revises a menos que isso esteja includo no contexto de um formulrio de emprego,
ns no precisaremos criar uma guia separada para eles.
Agora vamos finalizar os campos personalizados no objeto Reviso (Review).
Experimente: adicione campos ao objeto Reviso
(Review)
Vamos comear adicionando o campo de relacionamento entre mestre e detalhes, que far a
relao do nosso objeto Reviso (Review) com o objeto Formulrio de emprego (Job
Application). Para criar o campo de relacionamento entre mestre e detalhes, acesse a pgina
de detalhes do objeto Reviso (Review).
138 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione Relacionamento entre mestre e detalhes (Master-Detail
Relationship)e clique em Avanar (Next).
5. Na lista suspensa Relacionado a, selecione Formulrio de emprego (Job
Application) e clique em Avanar (Next).
6. Clique na caixa de texto Rtulo do campo (Field Label) para preench-la
automaticamente com o nome de campo Job_Application.
7. Deixe o boto de opo Leitura/Gravao (Read/Write) selecionado.
Essa configurao de compartilhamento impede que usurios criem, editem ou excluam uma
reviso a menos que eles tambm possam criar, editar e excluir o formulrio de emprego
associado. Aprenderemos sobre compartilhamento e segurana no prximo captulo.
8. Clique em Avanar.
9. Aceite as configuraes padres nas trs etapas restantes do assistente.
10. Clique em Salvar.
Seu relacionamento entre mestre e detalhes est pronto!
Beyond the Basics
Voc sabia que pode criar relacionamentos entre mestre e detalhes com vrios nveis? Com
os relacionamentos entre mestre e detalhes de vrios nveis voc pode criar relatrios que
totalizam dados provenientes de todos os nveis do modelo de dados e acionar excluses
em cascata quando um registro mestre for excludo.
Digamos que voc queira que os registros de reviso e formulrio de um candidato sejam
excludos quando um gerente de contratao excluir esse candidato. Voc pode criar um
novo campo de relacionamento entre mestre e detalhes que relaciona o objeto Formulrio
de emprego (Job Application) com o objeto Candidato (Candidate). Como os objetos
Reviso (Review) e Formulrio de emprego (Job Application) j esto relacionados um ao
outro por meio de um relacionamento entre mestre e detalhes, o resultado final um
relacionamento de vrios nveis no qual o objeto Candidato (Candidate) o mestre, o
objeto Formulrio de emprego (Job Application) o detalhe e o objeto Reviso (Review)
o subdetalhe.
Agora que o relacionamento entre mestre e detalhes est funcionando, vamos pensar sobre os
outros tipos de campos que seriam teis para pessoas que visualizarem um registro de reviso.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 139
Provavelmente os usurios desejaro visualizar o nome do candidato e a posio para qual a
reviso est sendo feita. Podemos criar um relacionamento de pesquisa para os objetos Posio
(Position) e Candidato (Candidate) e ento solicitar que os revisores insiram esses campos ao
criar os registros de reviso, no entanto, o que ocorrer se eles usarem valores incorretos? Alm
disso, no seria melhor se esses campos fossem de alguma forma preenchidos automaticamente?
Para resolver esse problema, usaremos a sinergia das frmulas e relacionamentos para criar
frmulas de objetos cruzados. As frmulas de objetos cruzados ligam dois ou mais objetos atravs
de referncias a campos de mesclagem de registros relacionados. Isso significa que as frmulas
do objeto Reviso (Review) podero acessar campos do objeto Formulrio de emprego (Job
Application) e as frmulas do objeto Formulrio de emprego (Job Application) podero acessar
campos dos objetos Posio (Position) e Candidato (Candidate). Iremos ainda mais um passo
adiante e criaremos campos de frmulas no objeto Reviso (Review) que ligam o objeto
Formulrio de emprego (Job Application) a campos de referncia nos objeto Posio (Position)
e Candidato (Candidate). Voc rapidamente descobrir que usar dados relacionados muito
mais fcil do que parece!
Vamos comear criando um campo de frmula no objeto Reviso (Review) que faz referncia
ao ttulo da posio no registro do formulrio de emprego pai da reviso.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Frmula (Formula) e clique em Avanar (Next).
5. No campo Rtulo de campo (Field Label), insira Posio (Position).
Ao mover o cursor, o caixa de texto Nome do campo (Field Name) ser
automaticamente preenchida com Posio (Position).
6. Selecione o tipo de retorno de frmula Texto (Text) e clique em Avanar (Next).
7. Clique no boto Inserir campo (Insert Field).
A tela adicional Inserir campo (Insert Field) ser exibida conforme abaixo.
140 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Figura 55: Tela adicional Inserir campo (Insert Field)
8. Selecione Reviso (Review) na primeira coluna.
Ao selecionar Reviso (Review), a segunda coluna exibe todos os campos do objeto Reviso
(Review), bem como seus objetos relacionados, os quais so identificados por um sinal de maior
do que (>). Observe que os campos Criado por (Created By) e Modificado pela
ltima vez por (Last Modified By) tambm contm sinais de maior do que (>). O
motivo disso que eles so campos de pesquisa para o objeto Usurio (User).
9. Selecione Formulrio de emprego > (Job Application >) na segunda
coluna. A terceira coluna exibe os campos do objeto Formulrio de emprego (Job
Application).
10. Selecione Posio > (Position >) na terceira coluna. A quarta coluna exibe
os campos do objeto Posio (Position).
Certifique-se de selecionar Posio > (Position >) (com o sinal de maior do que) e no
Posio (Position). A opo com o sinal de maior do que o objeto Posio (Position),
enquanto que a opo sem o sinal o campo de pesquisa Posio (Position) no objeto
Formulrio de emprego (Job Application). Na maioria dos casos, as frmulas que acessam
campos de pesquisa retornam um ID de registro criptografado. Em vez disso, queremos que
nossa frmula retorne o ttulo da posio.
11. Selecione Ttulo da posio (Position Title) na quarta coluna.
12. Clique em Inserir.
Sua frmula agora se parece com:
Job_Application__r.Position__r.Name
A frmula estende-se ao formulrio de emprego relacionado da reviso
(Job_Application__r), depois para a posio relacionada do formulrio de emprego
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 141
(Position__r), e por fim faz referncia ao ttulo da posio (Name). Observe que cada parte
da frmula separada por um ponto e que o nome do relacionamento consiste do objeto
relacionado seguido de um __r.
13. Clique em Avanar.
14. Aceite todos os padres de layout de pgina e segurana em nvel de campo restantes.
15. Clique em Salvar.
Isso conclui nosso primeiro campos de frmula de objetos cruzados. Vamos tentar criar outro
campo! Desta vez, adicionaremos um campo de frmula de objetos cruzados em nosso objeto
Reviso (Review), que exibir o nome e o sobrenome do candidato sendo revisado. Alm disso,
usaremos tambm a funo HYPERLINK para que os usurios possam acessar o registro do
candidato clicando no campo.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Frmula (Formula) e clique em Avanar (Next).
5. No campo Rtulo de campo (Field Label), insira Candidato
(Candidate). Ao mover o cursor, o caixa de texto Nome do campo (Field
Name) ser automaticamente preenchida com Candidato (Candidate).
6. Selecione o tipo de retorno de frmula Texto (Text) e clique em Avanar (Next).
7. Na lista Funes (Functions), clique duas vezes em HYPERLINK.
A funo HYPERLINK permite que voc crie um hyperlink para qualquer URL ou registro no
Salesforce. O texto do hyperlink pode ser diferente da URL, o que til neste caso, pois
queremos que o hyperlink exiba o nome e o sobrenome do candidato, enquanto a URL aponta
para o registro do candidato.
8. Exclua a parte url da funo HYPERLINK que voc acabou de inserir, porm deixe
o cursor no local.
9. Clique no boto Inserir campo (Insert Field) e selecione Reviso > (Review
>), Formulrio de emprego > (Job Application >), Candidato >
(Candidate >), ID do registro > (Record ID) e clique em Inserir (Insert).
O Salesforce ir gerar um ID nico para cada um dos registros. Inserindo o ID do registro do
candidato na funo HYPERLINK, estamos possibilitando que o campo frmula localize e crie
um link para o registro do candidato.
10. Exclua a parte friendly_name da funo HYPERLINK, porm deixe o cursor no
local.
142 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
11. Clique no boto Inserir campo (Insert Field) e selecione Reviso > (Review
>), Formulrio de emprego > (Job Application >), Candidato >
(Candidate >), Nome (First Name) e clique em Inserir (Insert).
12. Insira um espao, clique no boto Inserir operador (Insert Operator) e selecione
Concatenar (Concatenate).
O operador Concatenar (Concatenate) insere um caractere de unio (&) na frmula e une os
valores em cada um dos lados do caractere. Neste caso, usaremos o operador Concatenar
(Concatenate) para unir o nome e o sobrenome do candidato em um nico campo, mesmo
estando eles armazenados em campos separados no objeto Candidato (Candidate). O operador
Concatenar (Concatenate) tambm permite inserir um espao entre o nome e o sobrenome,
como veremos na prxima etapa.
13. Insira outro espao e, a seguir, digite um espao em branco entre aspas, da seguinte
forma:
" "
Isso adicionar um espao em branco aps o nome do candidato.
14. Insira um espao, clique no boto Inserir operador (Insert Operator) e selecione
Concatenar (Concatenate) mais uma vez para adicionar um segundo caractere de
unio (&) frmula.
15. Clique no boto Inserir campo (Insert Field) e selecione Reviso > (Review
>), Formulrio de emprego > (Job Application >), Candidato >
(Candidate >), Sobrenome (Last Name) e clique em Inserir (Insert).
16. Exclua a parte [ target ] da funo HYPERLINK. Esse um parmetro opcional,
que no necessrio para nossas frmulas.
17. Clique em Verificar sintaxe (Check Syntax) para verificar a frmula em busca de
erros. A frmula final dever se parecer com:
HYPERLINK
( Job_Application__r.Candidate__r.Id ,
Job_Application__r.Candidate__r.First_Name__c
&
" "
&
Job_Application__r.Candidate__r.Last_Name__c )
18. Clique em Avanar.
19. Aceite todos os padres de layout de pgina e segurana em nvel de campo restantes.
20. Clique em Salvar.
Ufa! Desta vez tivemos um pouco mais de trabalho, porm conseguimos melhorar
tremendamente a usabilidade do nosso aplicativo, o que voc ver em alguns instantes quando
testarmos as alteraes no objeto Reviso (Review). No entanto, antes de comearmos os testes,
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 143
vamos adicionar rapidamente mais dois campos simples para finalizar nosso objeto Reviso
(Review). Precisamos de um campo de rea de texto para a avalio do revisor e um campo de
nmero, no qual o revisor poder atribuir uma nota ao candidato.
Em Configurao (Setup), clique em Criar objetos (Create > Objects) e selecione o objeto
Reviso (Review). Use o boto Novo (New) na lista relacionada Campos e relacionamentos
personalizados (Custom Fields & Relationships) para criar os campos personalizados restantes
de acordo com a seguinte tabela. Sempre que necessrio, indicamos valores adicionais que
precisam ser inseridos. Caso contrrio, aceite os valores padres.
Tabela 15: Adicione campos personalizados ao objeto Reviso (Review)
Outros valores Rtulo de campo Tipo de dados
Comprimento: 32,768
# de linhas visveis: 6
Avaliao rea de texto (longo)
Comprimento: 1
Sempre exija um valor neste
campo para salvar um registro.
Classificao Nmero
Texto de ajuda: Insira uma
nota de 1 a 5 para o
candidato.
Ao terminar, adicione uma rpida regra de validao para garantir que o campo Classificaes
(Ratings) aceite somente nmeros de 1 a 5. Isso manter nosso sistema de classificao das
revises consistente em toda a organizao.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Regras de validao, clique em Novo.
4. Na caixa de texto Nome da regra (Rule Name), insira Rating_Scale_Rule.
5. Marque a caixa de seleo Ativar.
6. Na caixa de texto Descrio (Description), insira As classificaes
precisam ser de 1 a 5.
7. Insira a seguinte frmula de condio de erro:
(Rating__c <1 || Rating__c > 5)
144 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Esta frmula impede que o registro seja salvo se o valor do campo Classificao
(Rating) for menor do que 1 ou maior do que 5.
8. Na caixa de texto Mensagem de erro (Error Message), insira
Classificao invlida. As classificaes precisam ser de
1 a 5.
9. Prximo ao campo Local do erro (Error Location), selecione o boto de
opo Campo (Field) e depois a Classificao (Rating) na lista suspensa.
10. Clique em Salvar.
Nosso objeto Reviso (Review) est completo! Acrescentamos diversos recursos que ajudaro
os usurios a acessar os dados de que eles precisam para avaliar os formulrios de emprego. H
mais uma melhoria necessria para simplificar o processo de reviso dos formulrios de emprego.
Para implement-la, precisaremos retornar ao objeto Formulrio de emprego (Job Application)
e aproveitar um dos benefcios que ganhamos usando o relacionamento entre mestre e detalhes.
Introduo aos campos de resumo de totalizao
O sistema de classificao que ns criamos no objeto Reviso (Review) permite que os usurios
visualizem rapidamente a opinio de cada revisor sobre a compatibilidade do candidato com a
posio. Cada opinio individual importante, mas seria ainda melhor visualizar essas
classificaes compiladas de uma forma que resumisse a classificao geral do candidato. Por
exemplo, no seria excelente termos um campo Classificao geral (Total Rating)
em cada registro de Formulrio de emprego (Job Application) que mostrasse a soma de todas
as classificaes de reviso do formulrio de emprego?
A boa notcia que isso possvel! Um campo de resumo de totalizao simples no objeto
Formulrio de emprego (Job Application) pode resumir os dados de um conjunto de registros
de detalhes relacionados e exibir automaticamente o resultado em um registro mestre. Use
campos de resumo de totalizao para exibir a soma, o valor mnimo ou o valor mximo de um
campo em uma lista relacionada ou a contagem de registros de todos os registros listados em
uma lista relacionada.
Experimente: Crie campos de resumo de
totalizao
Comece a criar seu campo de resumo de totalizao da mesma forma que voc cria qualquer
outro campo personalizado:
1. Em Configurao, clique em Criar > Objetos.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 145
2. Clique em Formulrio de emprego (Job Application).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Resumo de totalizao (Roll-Up Summary) e
clique em Avanar (Next).
Ao criar um campo em um objeto que no o mestre em um relacionamento entre mestre e
detalhes, o tipo de dados Resumo de totalizao (Roll-Up Summary) no est
disponvel. Isso porque os campos de resumo de totalizao esto disponveis apenas no objeto
mestre em um relacionamento entre mestre e detalhes.
5. No campo Rtulo do campo (Field Label), insira Classificao geral
(Total Rating). Quando voc mover o cursor, a caixa de texto Nome do campo
(Field Name) ser preenchida automaticamente com Total_Rating.
6. Clique em Avanar.
7. Na lista suspensa Objeto resumido (Summarized Object), selecione Revises
(Reviews).
8. Em Selecionar tipo de totalizao (Select Roll-Up Type), selecione SOMA (SUM).
9. Na lista suspensa Campo a agregar (Field to Aggregate), selecione
Classificao (Rating).
10. Deixe a opo Todos os registros devem ser includos no clculo
(All records should be included in the calculation) selecionada
e clique em Avanar (Next).
11. Aceite todos os padres de layout de pgina e segurana em nvel de campo restantes.
12. Clique em Salvar.
Agora nossos registros de formulrio de emprego agregam as classificaes das suas revises
relacionadas. Esses dados podem ser um pouco enganosos, pois alguns formulrios de emprego
podem ter mais revises do que outros. Seria mais til se pudssemos visualizar a mdia de
classificao.
Os campos de resumo de totalizao no permitem o clculo da mdia de valores, mas voc
pode us-los em frmulas que permitem. Vamos criar um segundo campo de resumo de
totalizao no objeto Formulrio de pesquisa (Job Application) e criar um campo de frmula
simples que use os dois campos de resumo de totalizao para calcular a mdia de classificao.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Formulrio de emprego (Job Application).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Resumo de totalizao (Roll-Up Summary) e
clique em Avanar (Next).
146 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
5. No campo Rtulo do campo (Field Label), insira Nmero de revises
(Number of Reviews). Quando voc mover o cursor, a caixa de texto Nome
do campo (Field Name) ser preenchida automaticamente com
Number_of_Reviews.
6. Clique em Avanar.
7. Na lista suspensa Objeto resumido (Summarized Object), selecione Revises
(Reviews).
8. Em Selecionar tipo de totalizao (Select Roll-Up Type), selecione CONTAR
(COUNT).
No ser necessrio especificar um Campo a agregar (Field to Aggregate) dessa
vez porque estamos apenas contando o nmero de registros de detalhes relacionados e no
estamos interessados em nenhum campo especfico.
9. Deixe a opo Todos os registros devem ser includos no clculo
(All records should be included in the calculation) selecionada
e clique em Avanar (Next).
10. Aceite todos os padres de layout de pgina e segurana em nvel de campo restantes.
11. Clique em Salvar.
Os dois campos de resumo de totalizao esto criados agora. Vamos criar um campo de frmula
chamado Mdia de classificao (Average Rating) que divida o valor do primeiro
campo de resumo de totalizao pelo valor do segundo campo de resumo de totalizao.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Formulrio de emprego (Job Application).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione o tipo de dados Frmula (Formula) e clique em Avanar (Next).
5. No campo Rtulo do campo (Field Label), insira Mdia de
classificao (Average Rating). Quando voc mover o cursor, a caixa
de texto Nome do campo (Field Name) ser preenchida automaticamente com
Average_Rating.
6. Selecione o tipo de retorno de frmula Nmero (Number) e clique em Avanar
(Next).
7. Clique no boto Inserir campo (Insert Field).
8. Selecione Formulrio de emprego (Job Application) >, Classificao
geral (Total Rating) e clique em Inserir (Insert).
9. Clique no boto Inserir operador (Insert Operator) e selecione Dividir
(Divide).
10. Clique novamente no boto Inserir campo (Insert Field).
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 147
11. Selecione Formulrio de emprego (Job Application) >, Nmero de
revises (Number of Reviews) e clique em Inserir (Insert). Sua frmula
deve ter a seguinte aparncia:
Total_Rating__c / Number_of_Reviews__c
12. Clique em Avanar.
13. Aceite as opes padro nas etapas restantes do assistente.
14. Clique em Salvar.
Isso encerra todos os campos e relacionamentos que precisamos para gerenciar nossas revises.
Agora vamos organizar rapidamente a apresentao dos nossos campos e testar todos os itens
que criamos.
Experimente: Personalize a pgina do objeto
Reviso (Review) e os layouts de pesquisa
Primeiro, vamos atualizar o layout da pgina do objeto Reviso (Review) de forma que o campo
de texto Avaliao (Assessment) fique em uma seo de uma coluna do mesmo nome.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit) ao
lado de Layout da reviso (Review Layout).
4. Arraste uma seo nova logo abaixo da seo Informaes do sistema (System
Information). A caixa de dilogo Propriedades da seo (Section Properties) abrir.
5. Nomeie a seo como Avaliao (Assessment) e configure-a para conter
uma coluna.
6. Arraste os campos Avaliao (Assessment) e Classificao (Rating)
para a seo Avaliao (Assessment).
7. Clique em Salvar.
Agora, vamos configurar os layouts de pesquisa de Reviso (Review) de forma que as revises
sejam sempre exibidas com o formulrio de emprego, a posio e o candidato associados.
1. Na lista relacionada Layouts de pesquisa (Search Layouts) na pgina de detalhes do
objeto Reviso (Review), clique em Editar (Edit) ao lado das caixas de dilogo de
pesquisa e inclua os campos a seguir:
Nmero da reviso
Classificao
148 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Formulrio de emprego
Candidato
Posio
Data de criao
2. Repita o processo para o layout Campos de filtros de pesquisa (Search Filter Fields).
Para atualizar a lista relacionada Revises (Reviews) que aparece na pgina de detalhes do
Formulrio de emprego (Job Application), teremos que editar a lista relacionada diretamente
no layout da pgina de Formulrio de emprego (Job Application). Isso diferente de quando
adicionamos campos na lista relacionada Formulrio de emprego (Job Application) nas pginas
de detalhes da posio e do candidato porque o objeto Reviso (Review) no possui uma guia
associada, portanto no possui um layout de pesquisa da guia. Lembre-se: o layout de pesquisa
da guia responsvel pelos campos que so exibidos na lista da pgina inicial da guia e pelos
campos padro que so exibidos nas listas relacionadas nas pginas de detalhes de outro objeto.
Nota: O layout de pesquisa da guia ser responsvel pelos campos no layout da lista
relacionada somente se as propriedades da lista relacionada no forem modificadas
nos layouts de pgina de outro objeto. Por exemplo, se voc modificar as propriedades
da lista relacionada Formulrio de emprego (Job Application) no layout de pgina da
Posio (Position), essas modificaes iro sempre substituir as especificaes de
campo do layout de pesquisa da guia Formulrio de emprego (Job Application).
Como o objeto Reviso (Review) no possui um layout de pesquisa da guia, ns temos que
configurar esses campos de outra forma.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Formulrio de emprego (Job Application).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit) ao
lado de Layout do formulrio de emprego (Job Application Layout).
4. No layout de pgina do Formulrio de emprego (Job Application), localize a lista
relacionada Revises (Reviews) e clique cone de ferramenta ( ) para editar suas
propriedades.
5. Na caixa de dilogo Propriedades da lista relacionada (Related List Properties), inclua
os campos a seguir na caixa Campos selecionados (Selected Fields):
Nmero da reviso
Classificao
Candidato
Posio
Data de criao
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 149
6. Na lista suspensa Classificar por (Sort By), selecione Nmero da reviso
(Review Number).
7. Clique em OK.
8. Clique em Salvar (Save) na pgina de edio do layout de pgina.
Experimente: Personalize os destaques do
registro das revises
Agora, vamos criar um layout compacto personalizado para fornecer mais contexto quando os
usurios mveis visualizarem os registros de reviso.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Revisar (Review).
3. Na lista relacionada Layouts compactos (Compact Layouts), use o boto Novo (New)
para criar um layout compacto com os seguintes campos. Insira um nome no Rtulo
(Label) e use os botes Cima (Up) e Baixo (Down) para fazer o ajuste de acordo
com a ordem.
Nmero da reviso
Classificao
Candidato
Criado por
4. Clique em Salvar (Save) e configure o novo layout compacto como o layout compacto
principal para revises.
Observe o que fizemos
timo! Vamos visualizar o que ns fizemos:
1. Clique na guia Formulrios de emprego (Job Applications) e selecione um registro
ou crie um registro, caso ainda no tenha criado.
Dica: Ao usar as caixas de dilogo de pesquisa Candidato (Candidate) e Posio
(Position) durante a criao de um registro de formulrio de emprego, observe que
elas exibem apenas os registros visualizados recentemente por padro. Voc pode
localizar registros adicionais usando a caixa de pesquisa, que retorna os registros
baseados nos campos Nmero do candidato (Candidate Number) e Ttulo
da posio (Position Title) respectivamente.
150 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Use o caractere curinga * com outros caracteres para aprimorar os resultados da pesquisa.
Por exemplo, a pesquisa de C* retorna todos os registros de candidato. De forma
semelhante, a pesquisa de *e retorna todos os registros de posio que incluem a letra
'e' no ttulo.
Aps a criao do formulrio de emprego, observe que a lista relacionada Revises (Reviews)
agora exibida na pgina de detalhes do Formulrio de emprego (Job Application). Isso acontece
porque ns relacionamos o objeto Reviso (Review) ao objeto Formulrio de emprego (Job
Application) com um relacionamento entre mestre e detalhe.
2. Na lista relacionada Revises (Reviews), clique em Nova reviso (New Review) para
criar uma reviso.
Voc viu como a plataforma preencheu automaticamente o nmero do formulrio de emprego
na pgina de edio da reviso? Esse um dos pequenos, mas importantes, benefcios do uso
da plataforma para a criao de aplicativos como este. Alm da facilidade de criao de links e
relacionamentos entre objetos, a plataforma antecipa o que estamos fazendo e nos ajuda a
concluir a tarefa com a menor quantidade de cliques possvel.
3. Preencha os campos na reviso e clique em Salvar (Save).
Observe que o nome do candidato e o ttulo da posio so exibidos na pgina de detalhes da
reviso. Se voc clicar no nome do candidato, o registro do candidato ser exibido.
Antes de prosseguirmos, vamos verificar como a reviso que ns criamos exibida no Salesforce1
com o layout compacto.
1. No Salesforce1, abra o menu de navegao e toque em Mostrar mais (Show More)
> Formulrios de emprego (Job Applications).
2. Toque em JA-00001 para abrir o registro de formulrio de emprego que acabamos
de criar.
3. Arraste para visualizar a pgina de informaes relacionadas.
4. Toque no carto de visualizao Revises (Reviews) para visualizar todas as revises
associadas ao aplicativo.
5. Toque em R-000001 para abrir o registro de reviso.
Toque, ou clique, se estiver no site completo, nos outros itens do aplicativo, criando mais
posies, formulrios de emprego, candidatos e revises. Bem legal, n? Nossos dados esto
todos interconectados e nossas edies nos layouts de pesquisa permitem a visualizao dos
detalhes de diversos objetos relacionados de uma s vez.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 151
Criando um relacionamento do tipo muitos
com muitos
Nosso aplicativo Recruiting agora possui alguns relacionamentos de muitos para um. Mas e se
ns precisssemos criar um relacionamento de muitos para muitos? Por exemplo: e se ns
tivssemos um objeto que armazena informaes sobre diversos sites de emprego e quisssemos
rastrear quais posies ns publicamos nesses sites? Isso exigiria um relacionamento de muitos
para muitos pois:
Uma posio poderia ser publicada em muitos sites de emprego.
Um site de emprego poderia listar muitas posies.
Agora vamos comear a usar nossa criatividade. Em vez de criar um campo de relacionamento
no objeto Posio (Position) com um link direto para o objeto Site de emprego (Employment
Website), ns podemos criar um link usando um objeto de juno. O objeto de juno um
objeto personalizado com dois relacionamentos entre mestre e detalhes. Ele a chave para a
criao de um relacionamento de muitos para muitos.
No nosso aplicativo, vamos criar um objeto de juno chamado Publicao de emprego (Job
Posting). A publicao de emprego se encaixa no espao entre as posies e os sites de emprego.
Uma posio pode ser publicada muitas vezes e um site de emprego pode ter muitas publicaes
de emprego, mas uma publicao de emprego sempre representa uma publicao sobre uma
nica posio em um nico site de emprego. Essencialmente, o objeto Publicao de emprego
(Job Posting) possui um relacionamento de muitos para um com os objetos Posio (Position)
e Site de emprego (Employment Website), e nesses relacionamentos de muitos para um, ns
teremos um relacionamento de muitos para muitos entre os objetos Posio (Position) e Site
de emprego (Employment Website).
Dica: Em muitos aplicativos, a nica funo de um objeto de juno relacionar dois
objetos, ento geralmente faz sentido nomear o objeto de juno com um nome que
indique a associao ou o relacionamento que ele cria. Por exemplo, se voc desejar
usar um objeto de juno para criar um relacionamento de muitos para muitos entre
erros e casos, voc poder nomear o objeto de juno como AssociaoErroCaso.
Vejamos um cenrio tpico na Universal Containers. Existem posies em aberto para um
Gerente de projeto e um Desenvolvedor snior. A posio Gerente de projeto publicada
somente no site Monster.com, mas a posio Desenvolvedor snior mais difcil de ser
preenchida, ento ela publicada nos sites Monster.com e Dice. Cada vez que uma posio
publicada, um registro de publicao de emprego rastreia a publicao. Como possvel visualizar
152 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
no diagrama a seguir, uma posio pode ser publicada muitas vezes e ambas as posies podem
ser publicadas no mesmo site de emprego.
Figura 56: Usando um objeto Publicao de emprego (Job Posting) para criar um
relacionamento de muitos para muitos entre posies e sites de emprego
Em um banco de dados relacional, cada registro de publicao de emprego uma linha na
tabela Publicao de emprego (Job Posting) composta por uma chave estrangeira para um
registro de posio e uma chave estrangeira para um registro do site de emprego. O diagrama
de entidades e relacionamentos a seguir mostra esse relacionamento.
Figura 57: Diagrama de entidades e relacionamentos dos objetos Posio (Position),
Publicao de emprego (Job Posting) e Site de emprego (Employment Website)
Consequentemente, para definirmos um relacionamento de muitos para muitos entre os objetos
Posio (Position) e Site de emprego (Employment Website), precisaremos criar um objeto
Publicao de emprego (Job Posting) com os campos a seguir:
Um relacionamento Posio (Position) entre mestre e detalhes
Um relacionamento Site de emprego (Employment Website) entre mestre e detalhes
Vamos comear.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 153
Experimente: crie o objeto Site de empregos
(Employment Website)
Para criar nosso objeto personalizado Site de empregos (Employment Website), em
Configurao (Setup), clique em Criar objetos (Create > Objects), Novo objeto personalizado
(New Custom Object) e preencha a pgina de acordo com a seguinte tabela.
Tabela 16: Valores para definio do objeto Site de empregos (Employment Website)
Valor Campo
Site de empregos Rtulo
Sites de empregos Rtulo no plural
Marcado Comea com som de vogal
Employment_Website Nome do objeto
Informaes sobre um site de empregos em
particular
Descrio
Abra a janela padro Ajuda e treinamento
(Help & Training) do Salesforce
Configurao da Ajuda sensvel ao contexto
Nome do site de empregos Nome do registro
Texto Tipo de dados
Marcado Permitir relatrios
Marcado Permitir atividades
Marcado Rastrear histrico de campos
Implantado Status de implantao
Marcado Adicionar a lista relacionada Notas e anexos
(Notes & Attachments) ao layout de pgina
padro (Add Notes & Attachments related
list to default page layout)
Marcado Iniciar Assistente de nova guia personalizada
depois de salvar esse objeto personalizado
154 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Para criar a guia Site de empregos (Employment Website), selecione um Estilo de guia
(Tab Style) na primeira etapa do assistente e aceite todos os valores padres at chegar
pgina Adicionar aos aplicativos personalizados (Add to Custom Apps). Nessa pgina, selecione
apenas o aplicativo Recruiting e clique em Salvar (Save).
Vamos finalizar o objetivo Site de empregos (Employment Website) adicionando alguns campos
personalizados.
Experimente: adicione o campo URL ao objeto
Site de empregos (Employment Website)
Obviamente, o objeto Site de empregos (Employment Website) precisa armazenar o endereo
na Web do site de empregos. Usaremos o tipo de dados de URL neste campo. Desse modo,
quando os usurios clicarem no campo, a URL ser aberto em uma nova janela do navegador.
Alm da URL, como a maioria dos sites de emprego cobram por publicao, precisamos
acompanhar quais so os custos de publicao, bem como nosso oramento mximo para a
publicao no site.
Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects)e, por fim, em Site
de empregos (Employment Website) para visualizar a pgina de detalhes. Na lista relacionada
Campos e relacionamentos personalizados (Custom Fields & Relationships), use o boto Novo
(New) para criar trs campos personalizados de acordo com a seguinte tabela. Sempre que
necessrio, indicamos valores adicionais que precisam ser inseridos ao criar os campos. Caso
contrrio, basta aceitar os valores padres.
Tabela 17: Adicione trs campos personalizados ao objeto Site de empregos (Employment
Website)
Outros valores Rtulo de campo Tipo de dados
Obrigatrio Endereo da Web URL
Comprimento: 5
Casas decimais: 2
Preo por publicao Moeda
Obrigatrio
Comprimento: 6
Casas decimais: 2
Oramento mximo Moeda
Obrigatrio
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 155
Experimente: crie o objeto Publicao de
emprego (Job Posting)
Agora hora de criarmos o nosso objeto de juno Publicao de emprego (Job Posting)! Em
Configurao (Setup), clique em Criar objetos (Create > Objects), Novo objeto personalizado
(New Custom Object) e preencha a pgina de acordo com a seguinte tabela.
Tabela 18: Valores para definio do objeto Publicao de emprego (Job Posting)
Valor Campo
Publicao de emprego Rtulo
Publicaes de emprego Rtulo no plural
Job_Posting Nome do objeto
Representa o objeto de juno entre uma
posio e um site de empregos
Descrio
Abra a janela padro Ajuda e treinamento
(Help & Training) do Salesforce
Configurao da Ajuda sensvel ao contexto
Nmero da publicao de emprego Nome do registro
Numerao automtica Tipo de dados
JP-{00000} Formato de exibio
00001 Nmero inicial
Sim Permitir relatrios
Sim Permitir atividades
Sim Rastrear histrico de campos
Implantado Status de implantao
Sim Adicionar a lista relacionada Notas e anexos
(Notes & Attachments) ao layout de pgina
padro (Add Notes & Attachments related
list to default page layout)
No Iniciar Assistente de nova guia personalizada
depois de salvar esse objeto personalizado
156 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Isso foi muito simples, porm ainda no terminamos! Precisamos criar os campos de
relacionamento entre mestre e detalhes que relacionam o objeto Publicao de emprego (Job
Posting) com os objetos Posio (Position) e Site de empregos (Employment Website).
Experimente: adicione campos ao objeto
Publicao de emprego (Job Posting)
Para transformar o objeto Publicao de emprego (Job Posting) no objeto de juno que relaciona
os objetos Posio (Position) e Site de empregos (Employment Website), precisaremos adicionar
dois campos de relacionamento entre mestre e detalhes. O primeiro relacionamento entre
mestre e detalhes ser o relacionamento principal. As pginas de detalhes e edio do objeto de
juno (Publicao de emprego [Job Posting]) usaro a cor e qualquer cone associado ao objeto
mestre primrio (Posio [Position]). Alm disso, os registros do objeto de juno herdaro o
valor do campo Proprietrio (Owner) e as configuraes de compartilhamento do registro
mestre primrio associado.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Publicao de emprego (Job Posting).
3. Na lista relacionada Campos e relacionamentos personalizados (Custom Fields &
Relationships), clique em Novo (New).
4. Selecione Relacionamento entre mestre e detalhes (Master-Detail
Relationship)e clique em Avanar (Next).
5. Na lista suspensa Relativo a (Related To), selecione Posio (Position) e
clique em Avanar (Next).
6. Na caixa de texto Rtulo de campo (Field Label), insira Posio
(Position). Ao mover o cursor, o caixa de texto Nome do campo (Field
Name) ser automaticamente preenchida com Posio (Position).
7. Aceite o reste dos valores padres e clique em Avanar (Next) at chegar na etapa
final do assistente.
Aqui, temos a chance de adicionar a lista relacionada Publicaes de emprego (Job Postings)
ao layout da pgina do objeto Posio (Position). Em vez de exibir informaes sobre publicaes
de emprego relacionadas, queremos que essa lista exiba todos os sites de emprego nos quais a
posio foi publicada. Assim, adicionaremos a lista relacionada Publicao de emprego (Job
Posting), porm vamos renome-la para Sites de empregos (Employment
Websites).
8. Na caixa de texto Rtulo da lista relacionada (Related List Label),
insira Sites de empregos (Employment Websites).
9. Aceite os outros padres e clique em Salvar e novo (Save & New).
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 157
Estamos na metade do processo de criao de nosso relacionamento do tipo muitos com muitos.
A prxima etapa criar um segundo relacionamento entre mestre e detalhes no objeto Publicao
de emprego (Job Posting) para vincul-lo com o objeto Site de empregos (Employment
Website).
O segundo relacionamento entre mestre e detalhes cria um relacionamento secundrio. Diferente
do relacionamento principal, o relacionamento secundrio no afeta a aparncia do objeto de
juno. No entanto, assim como no relacionamento principal, as configuraes de
compartilhamento do registro mestre no relacionamento secundrio tambm afetam quem
pode acessar o registro de juno, e excluir um registro do objeto mestre secundrio
automaticamente excluir seus registros de objeto de juno associados. Assim, em nosso
aplicativo, se voc excluir um registro de site de empregos, todos os registros de publicao de
emprego desse site tambm sero excludos, mesmo que a posio esteja aberta.
10. Selecione Relacionamento entre mestre e detalhes (Master-Detail
Relationship)e clique em Avanar (Next).
11. Na lista suspensa Relativo a (Related To), selecione Site de empregos
(Employment Website) e clique em Avanar (Next).
12. Na caixa de texto Rtulo de campo (Field Label), insira Site de
empregos (Employment Website). Ao mover o cursor, o caixa de texto Nome
do campo (Field Name) ser automaticamente preenchida com
Employment_Website.
13. Clique em Avanar. Como estamos criando um relacionamento entre mestre e
detalhes, estas configuraes no podem ser alteradas.
14. Clique em Avanar. Estas configuraes tambm no podem ser alteradas.
15. Clique em Avanar (Next) para visualizar a etapa final do assistente.
Aqui, temos a chance de adicionar a lista relacionada Publicaes de emprego (Job Postings)
ao layout da pgina do objeto Site de empregos (Employment Website). Futuramente
configuraremos essa lista relacionada para que ela exiba todas as posies publicadas no site,
assim adicionaremos a lista relacionada Publicaes de emprego (Job Postings), porm vamos
renome-la para Posies (Positions).
16. Na caixa de texto Rtulo da lista relacionada (Related List Label),
insira Posies (Positions).
17. Aceite os outros padres e clique em Salvar (Save).
Nosso relacionamento do tipo muitos com muitos est pronto! Ser que falta alguma coisa?
Embora tenhamos uma lista relacionada Sites de empregos (Employment Websites) no objeto
Posio (Position) e uma lista relacionada Posies (Positions) no objeto Sites de empregos
(Employment Websites), ambas as listas ainda esto exibindo registros de publicaes de
empregos. No isso que queremos.
158 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Para obtermos nosso objetivo de listar diversas posies em um registro de site de empregos e
diversos sites de empregos em um registro de posio, precisamos personalizar os campos das
listas relacionadas.
Personalizando listas relacionadas em
relacionamento do tipo muitos com muitos
A capacidade de personalizar listas relacionadas em um relacionamento do tipo de muitos com
muitos mais robusta do que a capacidade de personalizar listas relacionadas em um
relacionamento de pesquisa. Quando voc tem um relacionamento de pesquisa entre dois
objetos (como o que criamos entre os objetos Formulrio de emprego [Job Application] e
Candidato [Candidate]), a lista relacionada em um objeto s pode exibir campos do objeto
com o qual est diretamente relacionada; ela no pode estender-se a outros objetos do modo
realizado pelas frmulas. Por exemplo, a lista relacionada Formulrios de emprego (Job
Applications) em um registro de candidato pode exibir quaisquer campos de formulrio de
emprego, mas no pode exibir quaisquer campos provenientes do objeto Posio (Position),
mesmo o objeto Formulrio de emprego (Job Application) tendo relacionamentos de pesquisa
com os objetos Candidato (Candidate) e Posio (Position).
Felizmente os relacionamentos do tipo muitos com muitos nos oferecem uma grande
flexibilidade. Ao trabalhar com um relacionamento do tipo muitos com muitos, a lista
relacionada do objeto de juno em um objeto mestre pode exibir os campos do outro objeto
mestre. Vamos aproveitar isso configurando a lista relacionada Posies (Positions) em cada
registro de site de emprego para exibir campos do objeto Posio (Position) e vice-versa,
permitindo assim que esses dois objetos estendam-se um ao outro. Agora tudo est se
encaixando!
Experimente: personalize as listas relacionadas
Posies (Positions) e Sites de empregos
(Employment Websites)
Vamos comear alterando a lista relacionada Sites de empregos (Employment Websites) no
objeto Posio (Position).
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo aos Layouts de posio (Position Layout).
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 159
4. Localize a lista relacionada Sites de empregos (Employment Websites) e clique no
cone de ferramenta ( ).
Na janela pop-up exibida, voc notar que a coluna Campos disponveis (Available
Fields) lista campos dos objetos Publicao de emprego (Job Posting) e Site de empregos
(Employment Website). Caso no existisse um relacionamento de mestre e detalhes entre as
publicaes de emprego e os sites de empregos, a coluna Campos disponveis (Available
Fields) listaria somente campos de publicaes de trabalho.
5. Mova os campos Site de empregos: nome do site de empregos
(Employment Website: Employment Website Name) e Site de
empregos: endereo na Web (Employment Website: Web Address)
para a coluna Campos selecionados (Selected Fields) e use as setas para
cima e para baixo para organizar os campos na seguinte ordem:
Site de empregos (Employment Website): Nome do site de
empregos (Employment Website Name)
Site de empregos (Employment Website): Endereo da Web (Web
Address)
Publicao de emprego (Job Posting): Nmero de emprego (Job
Number)
6. Clique em OK.
7. Clique em Salvar no layout de pgina.
Agora faa o mesmo para a lista relacionada Posies (Positions) no objeto Site de empregos
(Employment Website) conforme a seguir:
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Site de empregos (Employment Website).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo ao Layout do site de empregos (Employment Website Layout).
4. Localize a lista relacionada Posies (Positions) e clique no cone de ferramenta( ).
5. Mova os seguintes campos para a coluna Campos selecionados (Selected
Fields) e use as setas para cima e para baixo para organizar os campos na seguinte
ordem:
Posio: Ttulo da posio (Position Title)
Publicao de emprego (Job Posting): Nmero da publicao
de emprego (Job Posting Number)
Posio: rea funcional (Functional Area)
Posio: Local (Location)
Posio: Data de abertura (Open Date)
160 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
6. Clique em OK.
7. Clique em Salvar no layout de pgina.
Experimente: Personalize os destaques do
registro para sites de empregos e publicao de
empregos
Assim como ocorre com outros objetos personalizados, ns precisamos personalizar os destaques
do registro criando um novo layout compacto para cada objeto.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Site de empregos (Employment Website).
3. Na lista relacionada Layouts compactos (Compact Layouts), use o boto Novo (New)
para criar um layout compacto com os seguintes campos. Insira um nome no Rtulo
(Label) e use os botes Cima (Up) e Baixo (Down) para fazer o ajuste de acordo
com a ordem.
Nome do site de empregos
Preo por publicao
Endereo da Web
Oramento mximo
4. Clique em Salvar (Save) e configure o novo layout compacto como o layout compacto
principal para sites de emprego.
Agora faremos a mesma coisa para publicao de empregos.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Publicao de emprego (Job Posting).
3. Na lista relacionada Layouts compactos (Compact Layouts), use o boto Novo (New)
para criar um layout compacto com os seguintes campos. Insira um nome no Rtulo
(Label) e use os botes Cima (Up) e Baixo (Down) para fazer o ajuste de acordo
com a ordem.
Nmero da publicao de emprego
Site de empregos
Posio
4. Clique em Salvar (Save) e configure o novo layout compacto como o layout compacto
principal para publicaes de empregos.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 161
Observe o que fizemos
Nosso relacionamento do tipo muitos com muitos est pronto! Vamos ver com ele funciona
na prtica!
1. Crie alguns registros de amostra de sites de empregos e posies.
2. Role a tela para baixo at a lista relacionada Sites de empregos (Employment
Websites) no final de qualquer registro de posio e clique em Nova publicao de
emprego (New Job Posting). A pgina de edio Publicao de emprego (Job Posting)
ser exibida.
3. Use o cone de pesquisa para selecionar o site de empregos no qual voc quer publicar
a posio e clique em Salvar (Save).
4. Inicie o Salesforce1 e abra seus registros de amostra de posio e site de empregos.
A lista relacionada Sites de empregos (Employment Websites) na posio agora exibir o nome
e o endereo na Web do site no qual voc acabou de fazer a publicao, bem como o nmero
da publicao de emprego. Clique no nome do site de empregos na lista relacionada e role a
tela para baixo para visualizar a lista relacionada Posies (Position), que exibe todas as posies
publicadas no site.
Agora voc j sabe como fcil fazer com que as informaes relacionadas possam ser acessadas
com apenas um clique!
Juntando tudo
Ns criamos diversos objetos e relacionamentos. O diagrama simples a seguir mostra o que
fizemos at o momento.
162 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Figura 58: Relacionamentos do aplicativo Recruiting
Todos esses relacionamentos, objetos e campos so mostrados abaixo em um diagrama de
entidades e relacionamentos. O diagrama de entidades e relacionamentos (ERD) uma
representao conceitual de dados estruturados e particularmente til para o planejamento e
a compresso de um aplicativo.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 163
Figura 59: Diagrama de relacionamento de entidades
At aqui, ns criamos todos os objetos e guias do nosso aplicativo Recruiting e definimos
diversos campos personalizados, desde campos de texto e listas de opes at campos de frmulas
e relacionamento de pesquisa mais complexos. Ns criamos uma interface do usurio robusta
para que nossos recrutadores e gerentes de contratao possam inserir e recuperar dados sobre
posies e candidatos relacionados, formulrios de emprego e revises, e fizemos tudo isso sem
escrever uma nica linha de cdigo!
Lembra-se quando ns definimos Anastasia OToole como a gerente de contratao da posio
Especialista em benefcios? Vejamos o que a Anastasia pode fazer agora: Ela pode criar e
atualizar suas posies e rastrear em quais sites as posies foram publicadas. Ela pode visualizar
os detalhes dos candidatos que se candidataram vaga de Especialista em benefcios e revisar
os formulrios de emprego relacionados. Ela tambm pode verificar o status dos formulrios
164 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
de emprego. Agora ela no precisa mais ir at o departamento de Recursos Humanos para
pesquisar documentos do Microsoft Word e planilhas para gerenciar suas tarefas no processo
de contratao. O aplicativo Recruiting est no caminho certo para se tornar um aplicativo
totalmente funcional e til!
No entanto, antes de passarmos para o prximo captulo, vamos nos preparar para o restante
deste livro criando e importando alguns dados reais. No prximo captulo sobre segurana e
compartilhamento, ser til se tivermos alguns registros para trabalhar.
Experimente: faa o download dos dados de
amostra
Alm de inserir dados atravs de nossas pginas com guias, tambm podemos usar o Assistente
de importao para importar vrios registros de um vez s. A habilidade de facilmente importar
dados para seus objetos personalizados um dos principais benefcios da plataforma Force.com.
Vamos fazer o download de alguns dados de amostra para que possamos adicionar mais registros
aos nossos objetos personalizados sem precisar digitar muito.
1. Faa o download do arquivo RecruitingApp-7_0.zip que contm os arquivos
de importao em CSV (valores separados por vrgulas) de amostra em
developer.force.com/books/fundamentals.
2. Extraia o arquivo compactado (.zip) para qualquer diretrio em seu computador.
3. Acesse o diretrio no qual voc extraiu o arquivo compactado. O diretrio conter
trs arquivos CSV: Positions.csv, Candidates.csv e
JobApplications.csv. O diretrio tambm contm outros arquivos que sero
usados futuramente em Indo alm do desenvolvimento de aplicativos do tipo apontar
e clicar na pgina 373.
Antes de importar qualquer um dos arquivos, precisamos fazer uma alterao no arquivo de
importao para as posies. O arquivo de amostra Positions.csv que voc baixou contm
usurios fictcios na coluna Gerente de contratao (Hiring Manager). Os nomes desses usurios
provavelmente no correspondero aos nomes de quaisquer usurios em sua organizao, assim
se voc importar o arquivo sem fizer nenhuma alterao nele, o Assistente de importao no
ser capaz de localizar nenhum usurio correspondente e o campo Gerente de contratao
(Hiring Manager) em cada registro de posio ficar em branco. Vamos ento fazer as
alteraes necessrias!
4. Acesse o diretrio no qual voc extraiu o arquivo compactado e abra o arquivo
Positions.csv no Excel, em um editor de texto ou em qualquer outro programa
que possa ler arquivos CSV.
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 165
5. Na coluna Gerente de contratao (Hiring Manager), substitua os usurios fictcios
pelos nomes e sobrenomes de usurios de sua organizao.
6. Salve o arquivo, certificando-se de manter o formato CSV.
Nota: Caso sua localizao no seja ingls (Estados Unidades), o valores de campo
e dados no arquivo Positions.csv tambm sero invlidos. Voc ter que alter-los
antes de importar o arquivo.
Experimente: use o Assistente de importao
Agora, vamos percorrer o processo de importar registros de posio usando o Assistente de
importao e o arquivo Positions.csv que voc baixou.
1. Em Configurao (Setup), clique em Gerenciamento de dados (Data Management)
> Importar objetos personalizados (Import Custom Objects).
2. Clique em Inicie o Assistente de importao! (Start the Import Wizard!). O
Assistente de importao ser exibido.
3. Selecione Posio (Position) para o tipo de registro que voc est importando
e clique em Avanar (Next).
4. Selecione Sim (Yes) para evitar a criao de registros de posio duplicados como
resultado da importao. Aceite os outros padres de correspondncia e clique em
Avanar (Next).
5. Selecione Nenhum (None) no campo do proprietrio do registro. Ns no inclumos
um campo Usurio (User) no arquivo CSV para designar proprietrios de registros.
O Assistente de importao o designa como proprietrio de todos os novos registros.
6. Selecione o campo de relacionamento de pesquisa Gerente de contratao
(Hiring Manager) para que seja possvel ligar registros de posio com registros
Usurio (User) existes no aplicativo de recrutamento e clique em Avanar (Next).
7. Selecione Nome (Name) como o campo com o qual voc deseja fazer a
correspondncia conforme o Assistente de importao compara nomes do Gerente
de contratao (Hiring Manager) com nomes de Usurio (User) no sistema
e clique em Avanar (Next).
8. Clique em Procurar (Browse) e encontre C:\recruiting\Positions.csv.
Clique em Avanar.
9. Use as listas suspensas para especificar os campos do Salesforce que correspondem
s colunas do seu arquivo de importao. Para sua convenincia, rtulos com
correspondncias idnticas so automaticamente selecionados. Clique em Avanar.
10. Clique em Importar agora! (Import Now!).
11. Clique em Concluir.
166 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Use a seguinte tabela para repetir o processo de importao para os registros de candidatos.
Voc notar que o assistente pular as duas etapas sobre a correspondncia do campo de
relacionamento de pesquisa. Como o objeto Candidato (Candidate) no contm nenhum
campo de relacionamento de pesquisa, o Assistente de importao automaticamente ignora
essas etapas.
Tabela 19: Importando o arquivo Candidates.csv.
Selecione as seguintes opes Para esta etapa do
assistente
Candidato Selecionar registro (Choose
Record)
No. Insira todos os registros em meu arquivo de importao
(Noinsert all records in my import file).
Evitar duplicatas (Prevent
Duplicates)
Nenhum Especificao de
relacionamentos (Specify
Relationships)
Acesse C:\recruiting\Candidates.csv Carregar arquivo (File
Upload)
Aceite todos os padres Mapeamentos de campo
(Field Mapping)
Clique em Importar agora! (Import Now!). Verificar configuraes de
importao (Verify Import
Settings)
Por fim, vamos repetir o processo mais uma vez para os registros de formulrios de emprego.
Desta vez, usaremos o campo Email, um ID externo no objeto Candidato (Candidate), para
fazer a correspondncia de formulrios de emprego com os registros de candidatos corretos.
Tabela 20: Importando o arquivo Job_Applications.csv
Selecione as seguintes opes Para esta etapa do
assistente
Formulrio de emprego Selecionar registro (Choose
Record)
No. Insira todos os registros em meu arquivo de importao
(Noinsert all records in my import file).
Evitar duplicatas (Prevent
Duplicates)
Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos | 167
Selecione as seguintes opes Para esta etapa do
assistente
Qual campo de usurio? Nenhum (None)
Quais campos de pesquisa? Candidato (Candidate),
Posio (Position)
Especificao de
relacionamentos (Specify
Relationships)
Qual campo em Candidato (Candidate)? Email
(ID externo)
Qual campo em Posio (Position)? Ttulo da
posio (Position Title)
Definio da correspondncia
de pesquisa
Acesse C:\recruiting\Job_Applications.csv Carregar arquivo (File
Upload)
Email (col 0): Candidato
Ttulo da posio (Position Title) (col 1):
Posio
Mapeamentos de campo
(Field Mapping)
Clique em Importar agora! (Import Now!). Verificar configuraes de
importao (Verify Import
Settings)
timo! Durante a importao dos arquivos, em Configurao (Setup), voc pode clicar em
Importaes ou em Monitoramento (Monitoring) > Importaes (Imports) para verificar
o status das importaes.
Quando as operaes de importao forem concludas, retorne s guias Posies (Positions),
Candidatos (Candidates) ou Formulrios de emprego (Job Applications) e clique na opo Ir!
(Go!) prxima lista suspensa Exibir (View). Voc ver uma lista com todos os novos
registros que acabou de importar.
Ns acabamos de adicionar uma grande quantidade de dados ao nosso aplicativo sem muito
trabalho. No prximo captulo, vamos dar uma olhada nas opes que temos para controlar o
acesso a esses dados usando as ferramentas integradas da plataforma. Entraremos nos detalhes
sobre segurana, regras de compartilhamento, permisses, papis e perfis.
168 | Verso 8 | Chapter 6: Expandindo um aplicativo simples usando relacionamentos
Captulo 7
Protegendo e compartilhando dados
No ltimo captulo, ns expandimos o aplicativo Recruiting
para incluir campos avanados e relacionamentos de objetos
Tpicos:
Controlando o acesso aos
dados no nosso aplicativo
complexos. O novo objeto Candidato (Candidate) rastreia
informaes sobre possveis funcionrios, os recrutadores
Conceitos de acesso aos
dados
podem associar candidatos a posies por meio do novo
objeto Formulrio de emprego (Job Application) e os
Controlando o acesso aos
objetos
entrevistadores podem adicionar avaliaes e classificaes
dos candidatos no novo objeto Reviso (Review). O
Controlando o acesso aos
campos
aplicativo est bastante robusto! O modelo de dados
aprimorado tambm estabelece a base para a adio de
Controlando o acesso aos
registros
funcionalidades poderosas como fluxo de trabalho,
aprovaes e relatrios, que ns vamos abordar em captulos
posteriores.
Exibindo valores do campo
e layouts de pgina de
acordo com perfis
Agora que todos os relacionamentos de objetos esto
prontos, chegou a hora de comear a pensar sobre quem
Juntando tudo
ir usar o aplicativo e que tipo de acesso o usurio deve ter
Delegando a administrao
dos dados
aos dados. Assim como muitos aplicativos, nosso aplicativo
Recruiting expe informaes confidenciais como nmeros
Resumindo
de seguro social, valores de salrio e revises do candidato
que podem gerar problemas se forem visualizadas por
pessoas erradas. Ns precisamos fornecer segurana sem
dificultar o trabalho dos nossos recrutadores, gerentes de
contratao e entrevistadores.
Agora vamos ver outro excelente benefcio oferecido pela
plataforma Force.com. A plataforma oferece controles de
segurana simples de configurar que nos permitem
restringir o acesso aos dados que os usurios no devem
visualizar, sem problemas. Semelhante s listas de controle
de acesso ou permisses de pasta do Windows, a plataforma
Force.com nos permite especificar quem pode visualizar,
criar, editar ou excluir qualquer registro ou campo no
aplicativo. Neste captulo, veremos como podemos usar a
plataforma Force.com para implementar essas regras.
170 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Controlando o acesso aos dados no nosso
aplicativo
Como j vimos, existem trs tipos de usurios que precisaro acessar os dados no nosso aplicativo
Recruiting: recrutadores, gerentes de contratao e entrevistadores. Vamos adicionar um quarto
tipo de usurio: um funcionrio padro que no faz entrevistas e que nunca precisa contratar
ningum. (Esse funcionrio nos ajudar a determinar as permisses padro que devem ser
aplicadas a todos os novos objetos de recrutamento no nosso aplicativo.)
Um por um, vamos analisar os tipos de acesso que cada um desses usurios precisa e,
principalmente, os tipos de acesso que eles no precisam no seu trabalho. Depois de compilarmos
um conjunto de permisses necessrias, vamos entender como implement-las no restante do
captulo.
Permisses necessrias para o Recrutador
Em nosso primeiro conjunto de permisses necessrias, vamos analisar Mario Ruiz, um
recrutador na Universal Containers. Para fazer seu trabalho, Mario precisa ter permisso para
criar, visualizar e modificar qualquer posio, candidato, formulrio de emprego e reviso no
sistema e ter controle total das publicaes de emprego nos sites de emprego. Do mesmo modo,
Mario precisa visualizar e modificar os registros de recrutamento de todos os outros recrutadores,
visto que todos os recrutadores na Universal Containers trabalham juntos para preencher todas
as posies, independentemente de quem as criou.
Mario tem o papel mais poderoso no nosso aplicativo Recruiting, mas no podemos deixar que
ele faa o que quiser. Os dados de publicao de emprego e site de emprego podem ser excludos
de forma permanente a qualquer momento, mas leis de registros pblicos federais e estaduais
exigem que todos os outros registros relacionados ao recrutamento fiquem guardados por um
perodo especfico de tempo para permitir a defesa no tribunal, caso alguma deciso de
contratao seja questionada. Consequentemente, precisamos garantir que Mario no exclua
acidentalmente um registro que precise ficar salvo para cumprir a lei.
Mas como ele ir verificar o nmero de posies, candidatos, formulrios de emprego e revises
se ele no pode exclu-los? O aplicativo no ficar cheio de dados antigos? No se ns formos
inteligentes. Em vez de Mario excluir os registros antigos, podemos usar o campo Status de
um registro para indicar se o registro atual. Iremos filtrar somente os registros novos usando
uma exibio em lista simples.
Este um resumo das permisses necessrias que precisamos implementar para um recrutador:
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 171
Tabela 21: Resumo das permisses necessrias: Recrutador
Excluir Editar Criar Leitura
Posio
Candidato
Formulrio de
emprego
Reviso
Publicao de
emprego
Site de empregos
Permisses necessrias para o Gerente de
contratao
Nosso prximo conjunto de permisses necessrias mais desafiador. Ben Stuart, nosso gerente
de contratao, precisa acessar os registros de recrutamento relacionados s suas posies abertas,
mas no deve visualizar outros registros de recrutamento (exceto os registros pertencentes a
outros gerentes de contratao que so seus subordinados). Alm disso, ele no deve visualizar
determinados campos confidenciais, como o campo de nmero de CPF. Vamos analisar objeto
por objeto para detalhar o que Ben precisa e no precisa acessar para executar seu trabalho.
Posio
Em primeiro lugar, Ben gostaria de publicar suas posies para poder divulg-las o mais
rpido possvel, mas no nosso aplicativo, o recrutador Mario precisa se tornar o proprietrio
do registro para se certificar de que a posio seja preenchida. Como resultado, Ben
precisa ser capaz de criar posies, mas precisamos encontrar um mecanismo para garantir
que a propriedade das posies seja transferida para Mario. (Dica: como voc ver no
tpico Usando fluxos de trabalho e processos de aprovao personalizados na pgina 271,
resolveremos esse problema com uma regra de fluxo de trabalho que transfira a propriedade
da posio para um recrutador quando a posio for criada por um gerente de contratao.
Por enquanto, presuma que isso j funciona.)
Ben tambm deve ser capaz de atualizar e visualizar todos os campos das posies nas
quais ele o gerente de contratao, mas deve apenas visualizar as posies dos outros
gerentes.
172 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Candidato
s vezes Ben quer "roubar" um candidato que est se candidatando para uma posio de
outro gerente, mas essa no uma prtica aprovada pela Universal Containers. Como
resultado, Ben deve visualizar somente os candidatos que se candidataram para uma
posio na qual ele o gerente de contratao. Alm disso, como no h necessidade de
Ben visualizar o nmero de CPF do candidato, ele no deve ter permisso para visualizar
esse campo.
Formulrio de emprego
Como gerente de contratao, Ben precisa atualizar o status dos formulrios de emprego
para especificar quais candidatos devem ser selecionados ou rejeitados. No entanto, ele
no deve ser capaz de alterar o candidato listado no formulrio de emprego e a posio
na qual o candidato est se candidatando, ento precisamos encontrar uma forma de
evitar que Ben atualize os campos de pesquisa nos formulrios de emprego.
Reviso
Para tomar uma deciso sobre os candidatos que esto se candidatando, Ben precisa
visualizar as revises publicadas pelos entrevistadores e fazer comentrios se achar que o
entrevistador foi tendencioso em sua reviso. Da mesma forma, Ben precisa criar revises
para que possa se lembrar das suas impresses sobre os candidatos que ele entrevistou.
Publicao de emprego
Ben quer garantir que suas posies mais difceis de preencher fiquem visveis para as
pessoas mais talentosas do mercado. A forma mais eficiente para fazer isso publicar as
posies abertas em diversos sites de emprego. Como os sites de emprego possuem
diferentes tipos de usurios com conjuntos de habilidades diversos, Ben deve ser capaz
de criar publicaes de emprego de forma unilateral em sites de emprego, pois Ben a
melhor pessoa para determinar quais conjuntos de habilidades so necessrios para suas
posies abertas.
Site de empregos
Se dependesse de Ben, ele usaria todo o oramento da empresa para publicar suas posies
abertas em sites de emprego. Por isso, Ben no deve ser capaz de modificar os registros
de site de emprego, pois ele poderia redefinir o oramento da empresa para publicao
de empregos, o que teria um impacto negativo na contabilidade. Mesmo assim, Ben deve
ser capaz de visualizar os registros de site de emprego para ter uma ideia dos sites de
emprego nos quais a Universal Containers possui conta, bem como o oramento disponvel
para cada site de emprego.
Este um resumo das permisses necessrias que precisamos implementar para um gerente de
contratao:
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 173
Tabela 22: Resumo das permisses necessrias: Gerente de contratao
Excluir Editar Criar Leitura
*
Posio
* (Sem SSN)
Candidato
(Sem campos
de pesquisa)
Formulrio de
emprego
Reviso
* * *
Publicao de
emprego
Site de empregos
* Somente para os registros associados a uma posio para a qual o gerente de contratao foi
atribudo
Permisses necessrias para o Entrevistador
Em nosso terceiro conjunto de permisses necessrias, vamos analisar o papel de Melissa Lee,
uma entrevistadora. Ben, o gerente de Melissa, quer que ela entreviste candidatos para posies
muito tcnicas, mas no quer que ela converse com pessoas que esto se candidatando para
papis na equipe de contato com o usurio. Como resultado, Melissa deve visualizar somente
os candidatos e formulrios de emprego nos quais ela designada como entrevistadora. No
h necessidade de configurar essa restrio nas outras posies disponveis, mas ela no deve
ser capaz de visualizar os valores de salrio mnimo e mximo de nenhuma delas. De forma
semelhante, ela no deve visualizar o nmero de CPF de nenhum candidato, pois essa
informao confidencial irrelevante para seu trabalho.
Melissa deve ser capaz de criar e editar suas revises para poder registrar seus comentrios sobre
cada candidato, mas no deve ser capaz de visualizar as revises de outros entrevistadores, pois
isso poder influenciar sua opinio. Assim como ocorre com os gerentes de contratao e
recrutadores, Melissa no deve ter permisso para excluir nenhum registro para garantir que
as leis de registros pblicos sejam cumpridas.
Por fim, a publicao de vagas em sites de emprego no faz parte das responsabilidades de
Melissa, ento ela no deve ter acesso aos registros de site de emprego e publicao de emprego.
Este um resumo das permisses necessrias que precisamos implementar para um entrevistador:
174 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Tabela 23: Resumo das permisses necessrias: Entrevistador
Excluir Editar Criar Leitura
(Sem salrio
mn./mx.)
Posio
* (Sem SSN)
Candidato
*
Formulrio de
emprego
** **
Reviso
Publicao de
emprego
Site de empregos
* Somente para os registros associados a uma posio para a qual o entrevistador foi atribudo
** Somente para registros de propriedade do entrevistador
Permisses necessrias para o Funcionrio
padro
Os funcionrios, como Manny Damon da equipe de vendas da regio oeste, geralmente so os
melhores recursos para o recrutamento de novos funcionrios, mesmo eles no sendo gerentes
de contratao ou entrevistadores ativos. Por essa razo, precisamos nos certificar de que os
funcionrios como Manny possam visualizar as posies abertas, mas no possam visualizar os
campos de salrio mnimo e mximo da posio, caso contrrio poderiam sugerir aos amigos
a negociao da posio pelo valor mximo do salrio! Manny tambm no deve visualizar
nenhum outro registro do nosso aplicativo Recruiting.
Este um resumo das permisses necessrias que precisamos implementar para um funcionrio
padro:
Tabela 24: Resumo das permisses necessrias: Funcionrio padro
Excluir Editar Criar Leitura
(Sem salrio
mn./mx.)
Posio
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 175
Excluir Editar Criar Leitura
Candidato
Formulrio de
emprego
Reviso
Publicao de
emprego
Site de empregos
Ento, onde estamos agora?
Agora que analisamos as permisses necessrias dos nossos quatro usurios, vamos organizar
nossos pensamentos resumindo-as na tabela a seguir. No restante do captulo, vamos entender
como podemos usar a plataforma para implementar essas regras no nosso aplicativo Recruiting.
Tabela 25: Resumo das permisses necessrias
Funcionrio
padro
Entrevistador Gerente de
contratao
Recrutador
Ler (Sem salrio
mn./mx.)
Ler (Sem salrio
mn./mx.)
Ler Criar Editar* Ler Criar Editar Posio
Ler* (Sem SSN) Ler* (Sem SSN) Ler Criar Editar Candidato
Ler * Ler Editar (Sem
campos de
pesquisa)
Ler Criar Editar Formulrio de
emprego
Ler ** Criar
Editar **
Ler Criar Editar Ler Criar Editar Reviso
Ler *Criar
*Editar *
Ler Criar Editar
Excluir
Publicao de
emprego
Leitura Ler Criar Editar
Excluir
Site de empregos
* Somente para registros associados a uma posio qual o gerente de contratao/entrevistador
foi atribudo.
176 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
** Somente para registros de propriedade do entrevistador
Dica: Ao implementar as regras de segurana e compartilhamento na sua organizao,
geralmente importante criar uma tabela de permisses necessrias como essa para
organizar seus pensamentos e garantir que voc no se esqueceu de restringir ou
conceder o acesso a um determinado usurio. Voc ver que ns vamos consultar essa
tabela diversas vezes durante este captulo.
Conceitos de acesso aos dados
Antes de iniciarmos a implementao das regras de segurana e compartilhamento, vamos
analisar rapidamente como podemos controlar os dados na plataforma:
Segurana em nvel de objeto
O modo mais objetivo de controlar os dados impedir um usurio de visualizar, criar,
editar ou excluir qualquer instncia de um tipo especfico de objeto, como uma posio
ou uma reviso. O acesso no nvel do objeto nos permite ocultar guias e objetos de
determinados usurios, de forma que eles nem saibam que esses tipos de dados existem.
Na plataforma, ns configuramos o acesso no nvel do objeto com permisses do objeto
nos conjuntos de permisses e perfis de usurio. Falaremos mais sobre isso em instantes.
Segurana em nvel de campo
O acesso no nvel do campo, no qual possvel impedir um usurio de visualizar, editar
ou excluir o valor de um determinado campo em um objeto, uma variao do acesso no
nvel do objeto. O acesso no nvel do campo nos permite ocultar informaes confidenciais
como o salrio mximo de uma posio ou o nmero do seguro social de um candidato
sem ter que ocultar todo o objeto.
Na plataforma, ns configuramos o acesso no nvel do campo com permisses do campo
tambm em conjuntos de permisses e perfis de usurio. Tambm falaremos sobre isso
em breve.
Segurana em nvel de registro
Para controlar os dados com um pouco mais de requinte, podemos permitir que
determinados usurios visualizem um objeto e restringir os registros do objeto individual
que eles podem visualizar. Por exemplo, um acesso no nvel do registro permite que um
entrevistador como Melissa Lee visualize e edite suas prprias revises, sem expor as
revises das outras pessoas da sua equipe.
Na plataforma, existem diversas formas de configurar as regras de acesso no nvel do
registro:
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 177
Os padres para toda a organizao permitem a especificao do nvel bsico de acesso
que um usurio possui na sua organizao. Por exemplo, podemos fazer com que
qualquer usurio possa visualizar qualquer registro de um determinado objeto no qual
ele tenha permisso de acesso, mas o usurio precisar de permisses adicionais para
edio.
As hierarquias de papis nos permitem ter certeza de que um gerente sempre ter acesso
aos mesmos registros dos seus subordinados.
As regras de compartilhamento permitem a criao de excees automticas aos padres
para toda a organizao para determinados grupos de usurios.
O compartilhamento manual permite que os proprietrios do registro concedam
permisses de leitura e edies para colegas que no possuem acesso ao registro de
outra forma.
Figura 60: Controlando dados com a plataforma Force.com
Combinando todas essas configuraes de compartilhamento e segurana, ns podemos
especificar facilmente as permisses de usurio para uma organizao com milhares de usurios
sem ter que configurar manualmente as permisses para cada usurio. Perfeito! Agora vamos
aprender um pouco mais sobre cada um desses mtodos de controle de dados e implementar
as regras de segurana e compartilhamento no nosso aplicativo.
178 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Controlando o acesso aos objetos
Primeiro vamos configurar o acesso aos objetos personalizados do aplicativo Recruiting. Como
j mencionamos, podemos controlar se um usurio sabe que um determinado objeto existe no
aplicativo configurando permisses no seu perfil e nos conjuntos de permisses. Mas o que so
exatamente conjuntos de permisses e perfis e o que eles controlam?
Introduo aos perfis
Um perfil uma coleo de configuraes e permisses que determina o que o usurio pode
fazer na plataforma, de forma semelhante a um grupo em uma rede Windows, na qual todos
os membros do grupo tm as mesmas permisses de pasta e acessam o mesmo software. Controle
de perfis:
Permisses de objeto (Object permissions) Os objetos que o usurio pode visualizar,
criar, editar e excluir
Permisses de campo (Object permissions), tambm conhecida como "segurana no
nvel do campo" Os campos do objeto que o usurio pode visualizar e editar
Permisses de usurio (User permissions) As funes especficas que o usurio pode
executar, como visualizar o menu Configurao (Setup) e os aplicativos personalizados
Configuraes de guia (Tab settings) As guias que o usurio pode visualizar no aplicativo
Configuraes do aplicativo (App settings) Os aplicativos padro e personalizados que
o usurio pode acessar
Acesso classe do Apex (Apex class access) As classes do Apex que o usurio pode
executar
Acesso pgina do Visualforce (Visualforce page access) As pginas do Visualforce
que o usurio pode executar
Layouts de pgina (Page layouts) Os layouts de pgina que o usurio pode visualizar
Tipos de registro (Record types) Os tipos de registro disponveis para o usurio
Horas de login (Login hours) O horrio no qual o usurio pode fazer login no aplicativo
Intervalos de IP para fazer login (Login IP ranges) Os endereos IP que o usurio
pode usar para fazer login no aplicativo
Os perfis geralmente so definidos por uma funo de trabalho do usurio (como administrador
do sistema ou representante de vendas), mas voc pode ter perfis para qualquer coisa que faa
sentido na sua organizao. Um perfil pode ser atribudo a muitos usurios, mas um usurio
pode pertencer a somente um perfil por vez.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 179
Perfis padro
A plataforma fornece o seguinte conjunto de perfis padro em todas as organizaes:
Somente leitura
Usurio padro
Usurio do Marketing
Gerente do contrato
Gerente de solues
Administrador de sistemas
Todos esses perfis padro incluem um conjunto padro de permisses para todos os objetos
padro disponveis na plataforma.
Quando um objeto personalizado criado, a maioria dos perfis (exceto os com "Modificar
todos os dados (Modify All Data)") no fornece acesso ao objeto. Voc pode obter descries
mais detalhadas de todos os perfis padro na Ajuda do Salesforce, mas a coisa importante a
saber que voc nunca pode editar as permisses de objeto em um perfil padro. Se voc tiver
acesso a Enterprise, Unlimited, Performance ou Developer Edition na plataforma, uma boa
ideia fazer cpias dos perfis padro e personalizar as cpias de acordo com as necessidades da
sua organizao. Voc tambm pode usar conjuntos de permisses para conceder permisses
adicionais.
No nosso aplicativo Recruiting, vamos fazer uma cpia do perfil padro e personaliz-la (como
resultado, nosso aplicativo suportar somente as edies Enterprise, Unlimited, Performance
e Developer Edition). Tambm usaremos conjuntos de permisses para conceder permisses
adicionais a pequenos conjuntos de usurios.
Introduo aos conjuntos de permisses
Assim como o perfil, um conjunto de permisses uma coleo de configuraes e permisses
que determina o que um usurio pode fazer. Os conjuntos de permisses incluem algumas das
permisses e configuraes que voc encontrar nos perfis.
Permisses de objeto
Permisses de campo (tambm conhecida como "segurana no nvel do campo")
Permisses de usurio
Configuraes de guia
Configuraes do aplicativo
acesso classe do Apex
180 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Acesso pgina do Visualforce
Ento por que perfis e conjuntos de permisses?
A principal diferena entre os dois que os usurios podem ter somente um perfil, mas podem
ter diversos conjuntos de permisses. Isso significa que voc pode usar perfis para conceder as
permisses e configuraes mnimas que cada tipo de usurio precisa e usar os conjuntos de
permisses para conceder permisses adicionais, sem precisar modificar os perfis.
Existem algumas formas de usar os conjuntos de permisses a seu favor.
Para conceder acesso a objetos personalizados ou aplicativos inteiros.
Digamos que voc tm muitos usurios na sua organizao com as mesmas funes de
trabalho fundamentais. Voc pode atribuir um perfil a todos eles que conceda acesso aos
itens necessrios para eles executarem seu trabalho. Mas suponha que alguns usurios esto
trabalhando em um projeto especial e precisam acessar um aplicativo que ningum mais
usa. E suponha que outros usurios precisam acessar esse aplicativo, bem como outro
aplicativo que o primeiro grupo no precisa. Se ns tivssemos somente perfis, voc teria
que criar mais perfis personalizados de acordo com as necessidades desses usurios ou arriscar
e adicionar mais acesso para o perfil original, disponibilizando os aplicativos para usurios
que no precisam acess-lo. Nenhuma dessas opes ideal, especialmente se sua organizao
estiver crescendo e as necessidades dos seus usurios mudarem regularmente. Os conjuntos
de permisses facilitam a concesso e a revogao de acesso aos diversos aplicativos e objetos
personalizados da sua organizao.
Para conceder permisses temporariamente ou em longo prazo a campos especficos.
Por exemplo, suponha que voc possui uma usuria, Dana, que precisa ter acesso de edio
temporrio em um campo enquanto sua colega est de frias. Voc pode criar um conjunto
de permisses que conceda acesso ao campo e atribuir o conjunto de permisses a Dana.
Quando a colega de Dana retornar das frias e Dana no precisar mais acessar o campo,
basta remover a atribuio do conjunto de permisses do registro de usurio de Dana.
Conjuntos de permisses e perfis no aplicativo
Recruiting
Ns conversamos sobre quatro tipos de usurios: recrutadores, gerentes de contratao,
funcionrios padro e entrevistadores. Vamos analis-los mais detalhadamente.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 181
Os recrutadores so bastante simples eles definitivamente representam uma funo de
trabalho especfica e precisam acessar tipos de dados diferentes dos outros usurios. Eles
precisam ter seu prprio perfil.
O gerente de contratao, no entanto, no exatamente um nico tipo de posio. Na maioria
das organizaes, um gerente de contratao do departamento de Vendas precisa acessar tipos
de dados diferentes do gerente de contratao do departamento de Engenharia. No entanto,
nosso aplicativo, os gerentes de vendas e gerentes de software ainda precisam dos mesmos tipos
de acesso aos dados de recrutamento revises, candidatos, posies, formulrios de emprego,
publicaes de emprego e sites de emprego. Se ns incorporarmos nosso aplicativo em uma
organizao com outros recursos de CRM, as permisses do gerente de contratao nos dados
relacionados a recrutamento talvez precisem ser compartilhadas por diversos tipos de usurios
com perfis diferentes. Nesse caso, vamos criar um conjunto de permisses de gerente de
contratao que possa ser atribudo a diferentes tipos de usurios.
Os funcionrios padro so bem genricos e no refletem uma funo de trabalho especfica.
Os funcionrios padro podem iniciar com um perfil que fornea acesso a um conjunto pequeno
de dados, e em seguida, dependendo de suas especialidades, podemos criar e atribuir conjuntos
de permisses para fornecer mais acesso a eles, conforme necessrio.
Por fim, vamos analisar os entrevistadores. Ao pensar sobre essa funo, v que qualquer pessoa
na sua organizao pode ser chamada para realizar uma entrevista. Alm disso, a empresa pode
ter uma temporada de pico de recrutamento, na qual muitos funcionrios atuam como
entrevistadores por um perodo limitado de tempo. Idealmente, as permisses para
entrevistadores devem ser concedidas e revogadas facilmente conforme necessrio. fcil
definir conjuntos de permisses com base em uma determinada tarefa e ainda mais fcil
atribuir e remover a atribuio desses conjuntos, ento vamos definir um conjunto de permisses
para entrevistadores.
Experimente: Crie o perfil Recrutador (Recruiter)
Certo, estamos finalmente prontos para "mergulhar" no aplicativo e criar o nosso primeiro
perfil! Vamos comear com o perfil Recrutador (Recruiter).
1. Em Configurao, clique em Gerenciar usurios > Perfis.
182 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Figura 61: Perfis padro
Aqui voc deve visualizar a lista de perfis padro sobre os quais conversamos anteriormente.
Aps criarmos nossos perfis personalizados, eles tambm sero exibidos nessa lista.
Primeiro, ns podemos saber rapidamente quais perfis podem ser editados olhando a coluna
Personalizado (Custom) se a coluna estiver marcada, significa que o perfil um perfil
personalizado e que pode ser editado. Se a coluna no estiver marcada, ainda ser possvel clicar
no link Editar (Edit), mas no ser possvel modificar nenhuma das configuraes de permisso.
(Quais itens que sobram para edio em um perfil padro? Bem, podemos escolher quais guias
devem ser exibidas na parte superior da pgina do usurio e selecionar os aplicativos que ficaro
disponveis no menu de aplicativos no Force.com no canto superior direito da pgina.)
2. Crie um perfil chamado Recrutador (Recruiter) baseado no perfil Usurio padro
(Standard User).
Podemos fazer isso de duas formas. Podemos clicar em Novo perfil (New Profile), selecionar
um perfil existente para clonar, fornecer um nome ao perfil e clicar em Salvar (Save) ou podemos
simplesmente clicar em Clonar (Clone) na pgina de detalhes do perfil que desejamos copiar,
fornecer um nome ao perfil e clicar em Salvar (Save). As duas formas apresentam a mesma
quantidade de cliques, ento escolha o mtodo de sua preferncia. O Usurio padro (Standard
User) o perfil mais parecido com o perfil Recrutador (Recruiter) que queremos criar, ento
um bom ponto de partida.
3. Na pgina de detalhes do novo perfil Recrutador (Recruiter), clique em Editar (Edit).
A pgina de edio do Recrutador (Recruiter) deve ter a mesma aparncia e funo da pgina
de edio do perfil Usurio padro (Standard User), com exceo de uma diferena importante:
voc capaz de modificar todas as configuraes de permisso.
4. Na rea Configuraes dos aplicativos personalizados (Custom App Settings), torne
o aplicativo Recruiting visvel aos usurios atribudos ao perfil Recrutador (Recruiter),
conforme mostrado na captura de tela a seguir.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 183
Figura 62: rea Configuraes dos aplicativos personalizados (Custom App Settings)
do perfil
Dica: Voc tambm pode fornecer acesso a qualquer outro aplicativo disponvel para
esse perfil. Cada perfil precisa ter pelo menos um aplicativo visvel.
Quando o aplicativo est visvel, o usurio pode selecion-lo no menu de aplicativos do
Force.com no canto superior direito da pgina. No entanto, saiba que mesmo o aplicativo
estando visvel, as guias do aplicativo no sero exibidas a menos que um perfil tenha permisso
para visualizar as guias e visualizar o objeto associado. (Vamos configurar essas duas permisses
em instantes na pgina de edio do Perfil (Profile).)
5. Selecione Padro (Default) ao lado do aplicativo Recruiting.
Essa seleo significa que o aplicativo Recruiting ser exibido quando um usurio fizer login.
Voc ver que quando voc seleciona um aplicativo como o aplicativo padro, sua caixa de
seleo Visvel (Visible) selecionada automaticamente, pois no faz sentido selecionar
um aplicativo como padro e ele no ser visvel para o usurio.
6. Na rea Configuraes de guia (Tab Settings), selecione Padro ativado (Default
On) para as guias Candidatos (Candidates), Sites de emprego (Employment
Websites), Formulrios de emprego (Job Applications) e Posies (Positions).
Dica: Voc pode escolher se quer que outras guias sejam exibidas com base nos
aplicativos adicionais que voc tornou visveis na ltima etapa.
No nosso aplicativo Recruiting, todas as guias de recrutamento personalizadas esto ativadas
por padro. Para quaisquer outras guias selecionadas, voc pode escolher qual deve ser exibida
na parte superior da pgina do usurio (Padro ativado (Default On)), qual deve ficar oculta
na pgina do usurio, mas disponvel quando o usurio clicar na guia Todas as guias (All Tabs)
direita (Padro desativado (Default Off)) e qual deve ficar completamente oculta para o
usurio (Guia oculta (Tab Hidden)).
Perceba que mesmo que voc oculte completamente uma guia, os usurios ainda podero ver
os registros que teriam aparecido nessa guia em resultados da pesquisa e em listas relacionadas.
(Para impedir um usurio de acessar dados, temos que configurar as restries adequadas nas
reas Permisses de objeto padro (Standard Object Permissions) e Permisses de objeto
184 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
personalizado (Custom Object Permissions) na parte inferior da pgina de edio do Perfil
(Profile) chegaremos l em breve!)
A configurao Substituir as personalizaes da guia pessoal dos usurios
(Overwrite users' personal tab customizations) ser exibida se voc tiver uma
organizao que est em uso e quiser se certificar de que os usurios existentes esto visualizando
as guias que voc selecionou. No necessrio selecionar essa opo para nosso aplicativo, pois
estamos definindo um perfil novo e nenhum usurio personalizou as configuraes de visibilidade
da sua guia. No entanto, se desejar selecionar essa opo em algum momento no futuro, verifique
se no vai irritar seus usurios excluindo todas as suas personalizaes!
Figura 63: rea Configuraes de guia (Tab Settings) do perfil
Logo abaixo da rea Configuraes de guia (Tab Settings), as reas Administrativo
(Administrative) e Permisses gerais do usurio (General User Permissions) do perfil permitem
a concesso de acesso especial a recursos e funcionalidades que no esto diretamente associadas
a objetos especficos. Nenhuma dessas permisses afeta o aplicativo Recruiting, mas voc pode
saber mais sobre elas na Ajuda do Salesforce.
Chegou a hora de passarmos para as permisses no nvel do objeto.
7. Na rea Permisses de objeto personalizado (Custom Object Permissions), especifique
as permisses no nvel do objeto para o perfil Recrutador (Recruiter) de acordo com
a tabela a seguir.
Tabela 26: Resumo das permisses necessrias: Recrutador
Modificar
tudo
Exibir tudo Excluir Editar Criar Leitura
Candidato
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 185
Modificar
tudo
Exibir tudo Excluir Editar Criar Leitura
Site de
empregos
Formulrio
de emprego
Publicao
de emprego
Posio
Reviso
Dica: Dependendo dos aplicativos que deixou visveis anteriormente, voc tambm
poder configurar permisses de objeto adicionais em objetos padro e outros objetos
personalizados.
Como em nenhum caso um recrutador deve ter permisso para excluir posies, candidatos,
formulrios de emprego e revises, ser necessrio certificar-se de que as permisses no nvel
do objeto para excluso esto desativadas para esses objetos. Alm disso, certifique-se de que
a permisso "Exibir tudo (View All)" est selecionada apenas para Sites de emprego
(Employment Websites), Posies (Positions) e Publicaes de emprego (Job Postings) e a
permisso "Modificar tudo (Modify All)" est selecionada apenas para Publicaes de emprego
(Job Postings) e Sites de emprego (Employment Websites). Esses so tipos especiais de
permisses de objetos que iremos abordar ainda neste captulo.
Com essa restrio na capacidade de excluso de objetos relacionados ao recrutamento, os
recrutadores nunca podero excluir esses objetos. No entanto, o fato de concedermos permisses
de criao, leitura ou edio nos objetos de recrutamento aos recrutadores no significa
necessariamente que eles tero permisso para visualizar ou editar todos os registros dos objetos
de recrutamento. Por qu?
Aqui ns vemos o resultado de dois conceitos muito importantes na plataforma:
As permisses em um registro so sempre avaliadas de acordo com a combinao das
permisses no nvel do objeto, no nvel do campo e no nvel do registro.
Quando h conflitos entre as permisses no nvel do registro e as permisses no nvel do
objeto, as permisses mais restritivas so aplicadas.
Isso significa que mesmo aps a concesso das permisses de criao, leitura e edio nos objetos
de recrutamento para esse perfil, se as permisses no nvel do registro de um registro de
186 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
recrutamento individual forem mais restritivas, essas permisses mais restritivas definiro o
que um recrutador pode acessar.
Por exemplo, o novo perfil fornece permisso de criao, edio e visualizao de revises a
um recrutador. No entanto, se ns configurarmos os padres para toda a organizao das
revises como Particular (Private) (permisso no nvel do registro), nosso recrutador somente
conseguir editar e visualizar suas prprias revises e no as revises de outros usurios. Ns
iremos aprender mais sobre as permisses no nvel do registro e analisar mais exemplos de
como elas trabalham com as permisses no nvel do objeto posteriormente. Por enquanto,
apenas entenda que as permisses no nvel do objeto so apenas uma pea do quebra-cabea.
8. Clique em Salvar (Save) para criar seu perfil e retornar pgina de detalhes do perfil.
Parabns! Finalizamos nosso primeiro perfil. Como voc pode ver, no foi to difcil porque
ns j tnhamos analisado as permisses necessrias e sabamos quais objetos os recrutadores
precisariam acessar. Na prxima seo, vamos criar rapidamente os outros dois perfis e passar
para a segurana no nvel do campo.
Beyond the Basics
Voc sabia que voc pode usar uma interface de usurio avanada para gerenciar perfis?
Digamos que voc gerencia diversos perfis e gostaria de uma experincia mais simplificada.
Com a interface de usurio de perfil avanada, voc pode navegar, pesquisar e modificar
configuraes de perfil facilmente.
Para obter mais informaes, consulte o tpico "Viso geral da interface de usurio de
perfil avanada" na Ajuda do Salesforce.
Experimente: Crie o perfil Funcionrio padro
(Standard Employee)
Agora que criamos o perfil Recrutador (Recruiter), vamos finalizar com a criao de um perfil
para funcionrios padro. Como j mencionado, na sua prpria empresa, voc pode querer criar
perfis adicionais com as configuraes de acesso bsicas para as diversas funes de trabalho
essenciais, mas para os nossos propsitos, esses perfis so suficientes.
Para refrescar a memria, vamos dar uma olhada na nossa tabela de resumo das permisses
necessrias:
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 187
Tabela 27: Resumo das permisses necessrias: Funcionrio padro
Sites de
empregos
Publicaes
de emprego
Revises Formulrios
de emprego
Candidatos Posies
- - - - - Funcionrio
padro
Ler
(Sem
salrio
mn./mx.)
Os funcionrios padro no precisam de muito acesso, mas queremos que eles possam visualizar
todas as posies abertas para que possam ajudar a recrutar novos funcionrios. A criao desse
perfil ser fcil. Siga as etapas descritas na seo anterior e especifique os itens a seguir.
Defina o nome do perfil como Funcionrio padro (Standard Employee) e
baseie-o no perfil Usurio padro (Standard User).
Configure a permisso "Leitura (Read)" no objeto Posies (Positions).
Fantstico! Acabamos de definir os perfis para todos os usurios no nosso aplicativo Recruiting.
Em seguida, vamos criar conjuntos de permisses para conceder permisses adicionais para as
pessoas que precisam.
Experimente: Crie o conjunto de permisses
Gerente de contratao (Hiring Manager)
Ns criamos dois perfis para as funes de trabalho fceis de definir. Agora ns precisamos
conceder acesso adicional s funes que no so especficas de nenhum cargo especfico.
1. Em Configurao, clique em Gerenciar usurios > Conjuntos de permisses.
2. Na pgina Conjuntos de permisses (Permission Sets), clique em Novo (New).
3. No campo Rtulo (Label), insira Gerente de contratao (Hiring
Manager).
4. O campo Nome da API (API Name) preenchido automaticamente com
Hiring_Manager. Deixe como est.
Ao atribuir conjuntos de permisses a um usurio, somente possvel atribuir conjuntos de
permisses que possuem a mesma licena de usurio do usurio ou que no possuem nenhuma
licena associada. No ser possvel alterar a licena depois, ento importante selecionar a
licena de usurio correta ao criar um conjunto de permisses.
5. No campo Licena de usurio, selecione Salesforce.
188 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
6. Clique em Salvar.
Figura 64: Pgina Viso geral do conjunto de permisses (Permission Set Overview)
Ns conclumos a etapa inicial da criao de um conjunto de permisses. Voc pode clonar
conjuntos de permisses ou pode criar um do zero, e foi isso que fizemos quando criamos esse
conjunto de permisses,. No momento, esse conjunto de permisses no possui nenhuma
configurao ou permisso ativa ele uma lousa em branco. Ento vamos ativar algumas
permisses e configuraes. Como esse conjunto de permisses para gerentes de contratao,
vamos comear tornando o aplicativo Recruiting visvel.
7. Clique em Aplicativos atribudos (Assigned Apps).
8. Na pgina Aplicativos atribudos (Assigned Apps), clique em Editar (Edit).
9. Em Aplicativos atribudos (Assigned Apps), selecione Recruiting e clique em
Adicionar (Add) para adicion-lo lista Aplicativos ativados (Enabled Apps).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 189
Figura 65: Atribuindo o aplicativo Recruiting no conjunto de permisses Gerente de
contratao (Hiring Manager)
10. Clique em Salvar.
Agora queremos ativar as permisses e configuraes de guia para nossos objetos personalizados.
Em que local elas so ativadas e como chegamos l? Em conjuntos de permisses, existem
algumas formas fceis de ir de uma pgina para outra. Vamos dar uma olhada.
11. Ao lado de Aplicativos atribudos (Assigned Apps), clique na seta para baixo para
abrir o menu de navegao e selecione Configuraes de objeto (Object
Settings).
Figura 66: Menu de navegao do conjunto de permisses
A pgina Configuraes de objeto (Object Settings) exibe uma viso geral de todos os objetos
e guias na sua organizao. Ela inclui um resumo das configuraes de guia, permisses de
objeto e permisses de campo para todos os objetos e guias. Vamos fazer drill down at o objeto
Posies (Positions).
190 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
12. Na lista de objetos, clique em Posies (Positions).
13. Na pgina Posies (Position), clique em Editar (Edit).
Voc pode observar que os rtulos de configurao de guia nos conjuntos de permisses so
diferentes dos rtulos em perfis. Eles so configurados de forma um pouco diferente, mas voc
obter os mesmos resultados.
Tabela 28: Comparando as configuraes de guia em conjuntos de permisses e perfis
Descrio Configuraes ativadas em
perfis
Configuraes ativadas em
conjuntos de permisses
A guia est disponvel na
pgina Todas as guias. Os
Padro desativado Disponvel
usurios individuais podem
personalizar sua exibio para
tornar a guia visvel em
qualquer aplicativo.
A guia est disponvel na
pgina Todas as guias e
Padro ativado Disponvel e Visvel
aparece nas guias visveis do
aplicativo associado. Os
usurios individuais podem
personalizar sua exibio para
ocultar a guia ou torn-la
visvel em outros aplicativos.
A guia no est disponvel na
pgina Todas as guias e nem
visvel em aplicativos.
Guia oculta Nenhum
14. Em Configuraes de guia (Tab Settings), selecione Disponvel (Available) e Visvel
(Visible).
15. Em Permisses do objeto (Object Permissions), ative Ler (Read), Criar (Create) e
Editar (Edit).
Agora vamos conceder acesso aos campos nos registros de posio. Aprenderemos muito mais
sobre permisses de campo em Introduo segurana no nvel do campo na pgina 197, mas
por enquanto, vamos ativar as permisses de campo necessrias.
16. Em Permisses de campo (Field Permissions), marque as caixas de seleo Editar
(Edit) de todos os campos.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 191
Dica: Quando voc ativa a opo Editar (Edit) de um campo, a opo Ler
(Read) tambm ativada automaticamente.
Voc provavelmente notar que no consegue alterar as configuraes de alguns campos. Esses
campos possuem acesso predefinido porque so obrigatrios ou porque seus dados so calculados
automaticamente. Por exemplo, Dias em aberto (Days Open) um campo de frmula, ento
ele no editvel, mas voc deve torn-lo visvel.
17. Ative a opo Ler (Read) para Dias em aberto (Days Open).
18. Clique em Salvar.
Agora precisamos especificar o acesso aos nossos objetos restantes. Como j mencionamos,
voc pode usar o menu de navegao para ir rapidamente de uma pgina para outra. Observe
que agora existem duas setas para baixo na pgina Posies (Positions): uma ao lado de
Configuraes de objeto (Object Settings) e uma ao lado de Posies (Positions). Sempre que
voc estiver na pgina de um objeto especfico, esse segundo menu de navegao estar
disponvel. Clique na segunda seta para baixo para visualizar todos os objetos e guias na sua
organizao.
Figura 67: Menu de navegao do objeto
Mas essa no a nica forma de se locomover em um conjunto de permisses. A caixa Localizar
configuraes... (Find Settings...) que est disponvel em todas as pginas de um conjunto
de permisses outra opo. Nela voc pode inserir trs ou mais letras consecutivas do nome
de um objeto, uma configurao ou uma permisso e selecionar o item desejado na lista que
ser exibida. Vamos testar.
192 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
19. Clique na caixa Localizar configuraes... (Find Settings...) e insira job.
Existem dois objetos com a sequncia "job" e os dois aparecem na lista.
20. Selecione Formulrios de emprego (Job Applications).
Figura 68: Usando a caixa Localizar configuraes (Find Settings)
Agora que sabemos como nos deslocar facilmente em um conjunto de permisses, v em frente
e adicione as permisses e configuraes restantes, de acordo com esta tabela.
Tabela 29: Configuraes de guia e permisses de objeto para gerentes de contratao
Permisses de campo Permisses do objeto Configurao de
Guia
Nome do objeto
Formulrios de
emprego
Ler (Read) em
todos
Leitura Disponvel
Visvel Editar
Editar (Edit) em
Carta de
apresentao
(Cover Letter) e
Status
Candidatos
Sem acesso em
SSN
Disponvel Leitura
Visvel
Ler (Read) em
todos os outros
- Revises
Ler (Read) em
candidato
Leitura
Criar
(Candidate) e
posio (Position)
Editar
Ler (Read) e
Editar (Editar)
em Avaliao
(Assessment)
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 193
Permisses de campo Permisses do objeto Configurao de
Guia
Nome do objeto
- - Publicaes de
emprego
Leitura
Criar
Editar
- - Sites de empregos
Leitura
timo! Ns criamos nosso primeiro conjunto de permisses e adicionamos as configuraes
necessrias para os gerentes de contratao. Agora vamos criar outro conjunto de permisses
para uma funo de trabalho diferente: a entrevista de candidatos.
Experimente: Crie o conjunto de permisses
Entrevistador (Interviewer)
Agora estamos prontos para criar o conjunto de permisses Entrevistador (Interviewer).
Usando as etapas que discutimos na ltima seo, crie um conjunto de permisses com as
seguintes configuraes:
Chame esse conjunto de permisses de Entrevistador (Interviewer) e atribua
a licena de usurio do Salesforce.
Em Aplicativos atribudos (Assigned Apps), torne o aplicativo Recruiting visvel.
Ative as seguintes configuraes de guia e permisses de objeto:
Tabela 30: Configuraes de guia e permisses de objeto para entrevistadores
Permisses de
campo
Permisses do
objeto
Configurao de
Guia
Nome do objeto
Posies
Sem acesso aos
campos Salrio
Disponvel Leitura
Visvel
mnimo (Min
Pay) e Salrio
mximo (Max
Pay)
Ler (Read) em
todos os outros
194 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Permisses de
campo
Permisses do
objeto
Configurao de
Guia
Nome do objeto
Candidatos
Sem acesso em
SSN
Disponvel Leitura
Visvel
Ler (Read) em
todos os outros
Formulrios de
emprego
Disponvel Ler (Read) em
todos
Leitura
Visvel
- Revises
Ler (Read) em
candidato
Leitura
Criar
(Candidate) e
posio (Position)
Editar
Ler (Read) e
Editar (Editar)
em Avaliao
(Assessment)
Agora vamos revisar as permisses necessrias para gerentes de contratao, entrevistadores e
funcionrios padro.
Tabela 31: Resumo das permisses necessrias: Gerente de contratao, Entrevistador e
Funcionrio padro
Sites de
empregos
Publicaes
de emprego
Revises Formulrios
de emprego
Candidatos Posies
Gerente de
contratao
Ler * Leitura Leitura Leitura Leitura Ler*
(Sem
SSN)
Criar Criar
(Create)*
Criar Editar
(Edit)
(sem
Editar* Editar
Editar*
campos
de
pesquisa)
- - Entrevistador
Leitura
(Read)**
Ler * Ler*
(Sem
SSN)
Ler
(Sem
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 195
Sites de
empregos
Publicaes
de emprego
Revises Formulrios
de emprego
Candidatos Posies
salrio
mn./mx.)
Criar
Editar
(Edit)**
- - - - - Funcionrio
padro
Ler
(Sem
salrio
mn./mx.)
* Somente para registros associados a uma posio qual o gerente de contratao/entrevistador
foi atribudo.
** Somente para registros de propriedade do entrevistador
Excelente, mas e esses asteriscos? Devemos consider-los aos configurar nossas permisses de
objeto?
De modo algum. Esses asteriscos representam as configuraes de segurana no nvel do registro
que iremos especificar em instantes. As nicas coisas com as quais precisamos nos preocupar
aqui so as permisses que esses usurios precisaro acessar pelo menos alguma parte do tempo
esse o propsito integral das permisses de objeto.
No entanto, precisamos assegurar que os dados confidenciais nesses objetos esto protegidos
dos usurios que no precisam acess-los e precisamos fazer drill down nos registros reais que
cada usurio deve visualizar e editar.
Controlando o acesso aos campos
Agora que restringimos o acesso aos objetos como um todo, hora de usar um mtodo mais
refinado para gerenciar a segurana dos campos de objetos individuais. Essas configuraes
nos permitem proteger os campos confidenciais, como o nmero do seguro social de um
candidato, sem precisar ocultar o fato de que o objeto do candidato existe.
196 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Introduo segurana no nvel do campo
Na plataforma, ns controlamos o acesso aos campos individuais com a segurana no nvel do
campo. A segurana no nvel do campo controla se o usurio pode visualizar, editar e excluir o
valor de determinado campo em um objeto.
Diferente dos layouts de pgina, que controlam somente a visibilidade dos campos nas pginas
de detalhe e edio, a segurana no nvel do campo controla a visibilidade dos campos em
qualquer parte do aplicativo, incluindo listas relacionadas, exibies em lista, relatrios e
resultados de pesquisa. Para ter certeza absoluta de que um usurio no pode acessar um
determinado campo, realmente importante usar a pgina de segurana no nvel do campo de
um determinado objeto para restringir o acesso ao campo. No existe outro modo que fornea
o mesmo nvel de proteo para um campo especfico.
Segurana no nvel do campo no nosso aplicativo
Recruiting
Para refrescar nossa memria sobre as configuraes de segurana no nvel do campo necessrias
no aplicativo Recruiting, vamos analisar novamente as permisses necessrias na tabela a seguir.
Vamos mant-las organizada por recrutador, gerente de contratao e funcionrio padro, pois
na verdade (surpresa!) as configuraes da segurana no nvel do campo esto estreitamente
relacionadas aos perfis e conjuntos de permisses:
Tabela 32: Resumo revisado das permisses necessrias
Funcionrio padro Gerente de
contratao
Recrutador
Ler (Sem salrio
mn./mx.)
Ler Criar Editar* Ler Criar Editar Posio
Ler* (Sem SSN) Ler* (Sem SSN) Ler Criar Editar Candidato
Ler * Ler Editar (Sem
campos de pesquisa)
Ler Criar Editar Formulrio de
emprego
Ler ** Criar Editar ** Ler Criar Editar Ler Criar Editar Reviso
Ler*Criar*Editar* Ler Criar Editar
Excluir
Publicao de
emprego
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 197
Funcionrio padro Gerente de
contratao
Recrutador
Leitura Ler Criar Editar
Excluir
Site de empregos
* Somente para registros associados a uma posio qual o gerente de contratao/entrevistador
foi atribudo.
** Somente para registros de propriedade do entrevistador
Nas configuraes de segurana no nvel do campo, primeiro vamos focar nas regras que incluem
restries de campo entre parnteses, especificamente:
No objeto Posio (Position), ocultar o salrio mnimo e mximo para funcionrios padro
e entrevistadores
No objeto Candidato (Candidate), ocultar os nmeros de CPF para entrevistadores e
gerentes de contratao
No objeto Formulrio de emprego (Job Application), configurar os campos de pesquisa
Posio (Position) e Candidato (Candidate) como somente leitura para gerentes
de contratao
Ento mo obra!
Experimente: Limite o acesso aos campos no
perfil Funcionrio padro (Standard Employee)
Vamos revisar nossas regras de segurana no nvel do campo.
Em Posies (Positions), oculte o pagamento mnimo e mximo para funcionrios padro e
entrevistadores
Em Candidatos (Candidates), oculte os nmeros do seguro social para os entrevistadores e gerentes
de contratao
Em Formulrios de emprego (Job Applications), torne os campos de pesquisa Candidato (Candidate)
e Posio (Position) somente leitura para os gerentes de contratao.
Para definir essas regras, vamos acessar as configuraes de segurana no nvel do campo no
perfil Funcionrio padro (Standard Employee).
Voc pode estar pensando: as duas ltimas regras so sobre entrevistadores e gerentes de
contratao, mas essas funes so definidas pelos conjuntos de permisses. Por que estamos
preocupados com elas agora?
198 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
As permisses so cumulativas: voc no pode remover as permisses existentes de um usurio
atribuindo um conjunto de permisses; voc s pode adicionar permisses. Para limitar o acesso,
ns precisamos nos certificar de que o perfil de base dos nossos usurios, assim como seus
conjuntos de permisses, limita esse tipo de acesso. No caso da nossa organizao, sabemos
que vamos atribuir os conjuntos de permisses Entrevistador (Interviewer) e Gerente de
contratao (Hiring Manager) aos usurios com o perfil Funcionrio padro (Standard
Employee), ento precisamos restringir as permisses de campo nesse perfil e nos conjuntos
de permisses.
Ento vamos configurar a segurana no nvel do campo no perfil Funcionrio padro (Standard
Employee) e depois vamos verificar a segurana no nvel do campo dos nossos conjuntos de
permisses.
1. Em Configurao (Setup), clique em Gerenciar usurios (Manage Users) > Perfis
(Profiles) e selecione o perfil Funcionrio padro (Standard Employee).
Figura 69: Pgina de detalhes do perfil Funcionrio padro (Standard Employee)
A primeira coisa que voc vai notar na pgina de detalhes do perfil Funcionrio padro (Standard
Employee) que ela possui mais reas do que a pgina de edio usada originalmente para
definir o perfil. Essas reas adicionais incluem Layouts de pgina (Page Layouts) (sobre a qual
j conversamos), Segurana em nvel de campo (Field-Level Security), Configuraes de tipo
de registro (Record Type Settings), Horas de login (Login Hours) e Intervalos de IP para login
(Login IP Ranges). Apesar de no entrarmos em detalhes neste livro sobre como usar essas
reas, exceto a Segurana em nvel de campo (Field-Level Security) (e os tipos de registro que
abordaremos posteriormente), elas fazem parte dos recursos que tornam um perfil to poderoso
no nosso aplicativo. Voc pode saber mais sobre eles na Ajuda do Salesforce.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 199
2. Na rea Segurana em nvel de campo (Field-Level Security), clique em Exibir (View)
ao lado do objeto Posio (Position).
3. Clique em Editar.
Figura 70: Pgina de edio da segurana no nvel do campo
Aqui ns vemos as configuraes de segurana de todos os campos no objeto Posio (Position),
incluindo Salrio mnimo (Min Pay e Salrio mximo (Max Pay), os dois campos
que queremos restringir. Observe que algumas configuraes de segurana no nvel do campo
de alguns campos no podem ser modificadas isso porque eles so campos gerados pelo
sistema ou porque atuam como campos de relacionamento de pesquisa (chaves estrangeiras)
em outros registros.
Como as caixas de seleo das configuraes de segurana podem ser um pouco confusas, vamos
fazer um exerccio rpido para mapear os seus valores (Visvel (Visible) e Somente
leitura (Read-Only)) para as trs configuraes de permisses lgicas de um campo:
"Oculto (Hidden)", "Somente leitura (Read Only)" e "Editvel (Editable)":
Tabela 33: Mapeamentos de permisso no nvel do campo
Somente leitura Visvel Permisso
Oculto (Hidden)
200 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Somente leitura Visvel Permisso
X X Somente leitura
X Editvel (Editable)
Aps fazer esse exerccio, fcil visualizar que a maioria dos campos editvel, pois a caixa de
seleo Visvel (Visible) a nica selecionada. Para restringir a exibio de um campo
para um usurio, precisamos desmarcar as duas caixas de seleo.
4. Ao lado do campo Salrio mximo (Max Pay), desmarque a opo Visvel
(Visible).
5. Ao lado do campo Salrio mnimo(Min Pay), desmarque a opo Visvel
(Visible).
6. Clique em Salvar.
Agora vamos organizar as regras de segurana no nvel do campo restantes. Novamente, como
sabemos que nossos entrevistadores e gerentes de contratao sero alocados ao perfil
Funcionrio padro (Standard Employee), vamos garantir que as permisses do campo esto
configuradas corretamente.
7. Clique em Retornar ao perfil (Back to Profile).
8. Na rea Segurana em nvel de campo (Field-Level Security), clique em Exibir (View)
ao lado do objeto Candidate (Candidato).
9. Clique em Editar.
10. Ao lado do campo CPF(SSN), desmarque a opo Visvel (Visible).
11. Clique em Salvar.
12. Clique em Retornar ao perfil (Back to Profile).
13. Na rea Segurana em nvel de campo (Field-Level Security), clique em Exibir (View)
ao lado do objeto Formulrio de emprego (Job Application).
14. Clique em Editar.
15. Ao lado dos campos Candidato (Candidate) e Posio (Position),
selecione Somente leitura (Read Only).
16. Clique em Salvar.
Finalizamos a configurao da segurana no nvel do campo do perfil Funcionrio padro
(Standard Employee). No precisamos mudar nada no perfil Recrutador (Recruiter), pois como
j havamos determinado na fase de planejamento, os recrutadores podem acessar todos os
campos que criamos nos nossos objetos.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 201
Experimente: Verifique a segurana no nvel do
campo nos conjuntos de permisses
Mas e os conjuntos de permisses que ns criamos?
Voc se lembra como ns especificamos as permisses de campo quando criamos os conjuntos
de permisses Gerente de contratao (Hiring Manager) e Entrevistador (Interviewer)? Agora
que ns conhecemos mais a segurana no nvel do campo, vamos verificar novamente os campos
mais confidenciais nos nossos conjuntos de permisses para garantir que eles esto corretos.
Se alguma dessas configuraes estiver incorreta, v em frente e edite-a. No se esquea de
clicar em Salvar (Save) cada vez que for para uma pgina diferente. Primeiro, vamos verificar
as permisses do campo no conjunto de permisses Entrevistador (Interviewer).
1. Em Configurao (Setup), clique em Gerenciar usurios (Manage Users) >
Conjuntos de permisses (Permission Sets) e selecione o conjunto de permisses
Entrevistador (Interviewer).
2. Na caixa Localizar configuraes... (Find Settings...), insira pos e selecione
Posies (Positions).
3. Ao lado dos campos Salrio mximo (Max Pay) e Salrio mnimo (Min
Pay), as opes Leitura (Read) e Editar (Edit) devem estar desmarcadas.
Agora vamos verificar o conjunto de permisses Gerente de contratao (Hiring Manager).
4. Abra o conjunto de permisses Gerente de contratao (Hiring Manager) e navegue
at o objeto Posies (Positions).
5. Ao lado dos campos Salrio mximo (Max Pay) e Salrio mnimo (Min
Pay), as opes Leitura (Read) e Editar (Edit) devem estar marcadas.
Por fim, queremos garantir que os gerentes de contratao possam ver qual candidato e posio
esto associados a cada formulrio de emprego, mas impedir que eles alterem esses campos de
pesquisa.
6. Na caixa Localizar configuraes... (Find Settings...), insira job e selecione
Formulrios de emprego (Job Applications).
7. Ao lado dos campos Candidato (Candidate) e Posio (Position), a
opo Leitura (Read) deve estar marcada e a opo Editar (Edit) deve estar
desmarcada.
Tudo pronto! Ns acabamos de concluir a segunda pea do nosso quebra-cabea de segurana
e compartilhamento com a definio da segurana no nvel do campo nos campos confidenciais
202 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
do nosso aplicativo Recruiting. Agora, para a pea final do quebra-cabea, precisamos especificar
os registros individuais que cada usurio precisa acessar. Precisamos proteger nossos dados sem
comprometer a capacidade dos funcionrios de executar seu trabalho.
Controlando o acesso aos registros
Ao configurar as permisses de acesso no nvel do objeto e no nvel do campo nos nossos
conjuntos de permisses e perfis, ns definimos de maneira efetiva todos os objetos e campos
que qualquer usurio do nosso aplicativo Recruiting pode acessar. Nesta seo, abordaremos
a configurao das permisses dos registros. Nossos usurios devem ter acesso livre a todos os
registros ou somente a um subconjunto? Se a resposta for subconjunto, quais regras devem
determinar se o usurio pode acess-lo? Ns usaremos diversas ferramentas de segurana e
compartilhamento da plataforma para responder a essas perguntas e dominar esse assunto.
Introduo aos padres para toda a organizao
Ao lidar com configuraes de acesso no nvel do registro, a primeira coisa que deve ser feita
determinar os padres para toda a organizao de cada objeto do aplicativo Recruiting.
Tambm chamado de modelo de compartilhamento, os padres para toda a organizao
especificam o nvel de acesso bsico que o usurio mais restrito deve ter. Ns usaremos os
padres para toda a organizao para bloquear nossos dados nesse nvel mais restrito e usaremos
nossas outras ferramentas de segurana e compartilhamento no nvel do registro (hierarquias
de papis, regras de compartilhamento e compartilhamento manual) para liberar os dados para
os outros usurios que precisam acess-los.
Padres para toda a empresa no aplicativo
Recruiting
Para determinar os padres para toda a empresa que iremos precisar no nosso aplicativo
Recruiting, precisamos responder s perguntas a seguir para cada objeto:
1. Quem o usurio com mais restries deste objeto?
2. Existir uma instncia deste objeto que este usurio no dever ter permisso para
visualizar?
3. Existir uma instncia deste objeto que este usurio no dever ter permisso para
editar?
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 203
Com base nas respostas, podemos determinar o modelo de compartilhamento necessrio para
o objeto conforme ilustrado no diagrama a seguir.
Figura 71: Determinando o modelo de compartilhamento para um objeto
Por exemplo, vamos considerar o objeto Posio (Position) no nosso aplicativo Recruiting.
Para refrescar a memria, esta a nossa tabela de permisses necessrias:
Tabela 34: Resumo revisado das permisses necessrias
Funcionrio padro Gerente de
contratao
Recrutador
Ler (Sem salrio
mn./mx.)
Ler Criar Editar* Ler Criar Editar Posio
Ler* (Sem SSN) Ler* (Sem SSN) Ler Criar Editar Candidato
204 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Funcionrio padro Gerente de
contratao
Recrutador
Ler * Ler Editar (Sem
campos de pesquisa)
Ler Criar Editar Formulrio de
emprego
Ler ** Criar Editar ** Ler Criar Editar Ler Criar Editar Reviso
Ler*Criar*Editar* Ler Criar Editar
Excluir
Publicao de
emprego
Leitura Ler Criar Editar
Excluir
Site de empregos
* Somente para registros associados a uma posio qual o gerente de contratao/entrevistador
foi atribudo.
** Somente para registros de propriedade do entrevistador
Agora vamos prosseguir e responder a nossa lista de perguntas para o objeto Posio (Position):
1. Quem o usurio com mais restries deste objeto?
Um membro do perfil Funcionrio padro (Standard Employee). Ele pode somente
visualizar uma posio.
2. Existir uma instncia deste objeto que este usurio no dever ter permisso para
visualizar?
No. Os valores do salrio mnimo e mximo esto ocultos para os funcionrios padro,
mas eles tm permisso para visualizar todos os registros de posio.
3. Existir uma instncia deste objeto que este usurio no dever ter permisso para
editar?
Sim. Os funcionrios padro no tm permisso para editar nenhum registro de posio.
De acordo com nosso fluxograma, a resposta "Sim" para a pergunta nmero 3 significa que o
modelo de compartilhamento do objeto Posio (Position) deve ser configurado como Somente
leitura pblica (Public Read-Only).
O mesmo verdadeiro para os objetos Site de emprego (Employment Website) e Publicao
de emprego (Job Posting), exceto que os gerentes de contratao so os usurios mais restritos
e no os funcionrios padro. (Os funcionrios padro no tm permisses nesses objetos, mas
dos usurios que tm permisses, os gerentes de contratao so os mais restritos.) Ns queremos
permitir que os gerentes de contratao visualizem todos os registros de site de emprego e
publicao de emprego sem edit-los, ento a resposta para a segunda pergunta "No" e a
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 205
resposta para a terceira pergunta "Sim", por isso o modelo de compartilhamento dos objetos
Site de emprego (Employment Website) e Publicao de emprego (Job Posting) deve ser
Somente leitura pblica (Public Read-Only).
Analisando as permisses necessrias restantes dos nossos objetos de recrutamento, podemos
identificar facilmente seus modelos de compartilhamento. O perfil Funcionrio padro (Standard
Employee) o usurio mais restrito para cada objeto e existiro registros de candidato, formulrio
de emprego e reviso que determinados funcionrios no conseguiro visualizar.
Consequentemente, o modelo de compartilhamento para os objetos Candidato (Candidate),
Formulrio de emprego (Job Application) e Reviso (Review) deve ser configurado como
Particular (Private).
Experimente: Configure os padres para toda a
organizao
Agora que ns aprendemos sobre os padres para toda a organizao de cada objeto de
recrutamento, vamos prosseguir e implement-los no nosso aplicativo Recruiting.
1. Em Configurao, clique em Controles de segurana > Configuraes de
compartilhamento. Se uma pgina inicial introdutria for exibida, clique em
Configurar compartilhamento (Set Up Sharing) na parte inferior da pgina para
acessar a ferramenta.
A pgina Configuraes de compartilhamento (Sharing Settings) o local no qual ns
controlamos os padres para toda a organizao e as regras de compartilhamento. Falaremos
mais sobre essa pgina quando abordarmos as regras de compartilhamento em instantes. Por
enquanto, vamos apenas editar as configuraes dos padres para toda a nossa organizao.
2. Na rea Padres para toda a organizao (Organization Wide Defaults), clique em
Editar (Edit).
Esta pgina controla os padres para toda a organizao de todos os objetos da sua organizao.
Voc ver que alguns objetos padro (como leads e calendrios) usam um conjunto diferente
de valores padro para toda a organizao dos que esto disponveis para nossos objetos
personalizados de recrutamento. Voc pode saber mais sobre eles na Ajuda do Salesforce. Por
enquanto, vamos apenas configurar nossos objetos de recrutamento com os padres para toda
a organizao que decidimos na ltima seo.
206 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Figura 72: Pgina de edio dos padres para toda a organizao
3. Ao lado de Candidato (Candidate) e Formulrio de emprego (Job
Application), selecione Particular (Private).
4. Ao lado de Site de emprego (Employment Website) e Posio
(Position), selecione Somente leitura pblica (Public Read Only).
No momento, voc provavelmente est se perguntando por que voc no pode configurar os
padres para toda a organizao para os objetos Reviso (Review) e Publicao de emprego
(Job Posting). Isso porque esses objetos esto no lado "detalhe" dos relacionamentos entre
mestre e detalhes, e como mencionado no ltimo captulo, um registro de detalhe herda
automaticamente a configurao de compartilhamento do seu pai. Ento no nosso aplicativo,
o objeto Reviso (Review) automaticamente configurado como Particular (Private) e o objeto
Publicao de emprego (Job Posting) automaticamente configurado como Somente leitura
pblica (Public Read Only).
Voc tambm pode estar se perguntando sobre a coluna de caixas de seleo Conceder
acesso usando hierarquias (Grant Access Using Hierarchies). Deixe os
itens selecionados por enquanto. Falaremos sobre hierarquias na prxima seo.
5. Clique em Salvar.
fcil! Agora que protegemos nossos dados com os padres para toda a organizao, os usurios
podem trabalhar apenas em registros de candidato, formulrio de emprego e reviso pertencentes
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 207
a eles e podem visualizar os registros de posio, site de emprego e publicao de emprego de
qualquer pessoa. Como essas configuraes so muito restritivas para qualquer usurio poder
se beneficiar do nosso aplicativo, agora precisamos usar hierarquias de papis, regras de
compartilhamento e compartilhamento manual para liberar o acesso aos registros de candidato,
formulrio de emprego e reviso para os usurios que precisam.
Introduo s hierarquias de papis
A primeira forma de compartilhar o acesso aos registros definindo uma hierarquia de papis.
De forma semelhante a um organograma, uma hierarquia de papis representa um nvel de
acesso a dados de que o usurio ou o grupo precisam. Os usurios atribudos aos papis prximos
da parte superior da hierarquia (geralmente o CEO, os executivos e outros cargos de gerncia)
obtm acesso aos dados de todos os usurios que esto diretamente abaixo deles na hierarquia.
A hierarquia de papis permite os seguintes comportamentos:
Um gerente sempre ter acesso aos mesmos dados que seus subordinados,
independentemente das configuraes padro para toda a organizao. Para objetos
personalizados, voc pode cancelar esse comportamento desmarcando a caixa de seleo
Conceder acesso usando hierarquias (Grant Access Using Hierarchies).
Mas como queremos que a hierarquia de papis seja aplicada em todos os nossos objetos
personalizados, deixe a caixa de seleo marcada.
Os usurios que tendem a precisar de acesso aos mesmos tipos de registros podem ser
agrupados usaremos esses grupos posteriormente quando conversarmos sobre regras de
compartilhamento.
Para ilustrar, vamos analisar uma parte da hierarquia de papis da Universal Containers:
208 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Figura 73: Hierarquia de funes da Universal Containers
As hierarquias de papis no precisam corresponder exatamente ao seu organograma. Em vez
disso, cada papel na hierarquia deve representar apenas um nvel de acesso a dados de que o
usurio ou grupo precisa. Por exemplo, suponha que sua organizao contrate um advogado
corporativo que precise acessar todos os registros no aplicativo. Uma forma fcil de fazer isso
atribuir ao advogado o papel CEO na hierarquia de papis da sua organizao. Como o papel
CEO est posicionado na parte superior da hierarquia, qualquer pessoa atribuda a esse papel
automaticamente obtm acesso total a todos os registros na organizao. No importa que
tecnicamente o advogado aparea abaixo do CEO no organograma tradicional.
Comparando papis, perfis e conjuntos de
permisses
Ainda que seja fcil confundir conjuntos de permisses e perfis com papis, eles na verdade
controlam duas coisas muito diferentes.
Como aprendemos anteriormente neste captulo, os perfis e conjuntos de permisses controlam
as permisses de acesso no nvel do campo e no nvel do objeto de um usurio. Um usurio
no pode ser definido sem ser atribudo a um determinado perfil, pois o perfil especifica o
acesso mais bsico para usurios.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 209
Os papis, por sua vez, controlam principalmente as permisses de acesso no nvel de registro
de um usurio por meio de hierarquia de papis e regras de compartilhamento. Ainda que a
atribuio do papel no seja exatamente obrigatria quando definimos um usurio, seria tolice
no atribuir um papel, pois isso facilita muito a definio das permisses no nvel do registro.
Tentar definir permisses no nvel do registro sem atribuir um papel ao usurio seria como
tentar viajar de Nova York a So Francisco de carro quando podemos ir de avio existe uma
forma muito mais eficiente de se fazer isso!
Para ajudar voc a se lembrar o qu controla do qu, lembre-se: Papis controlam Registros.
Hierarquia de papis no aplicativo Recruiting
Considerando a hierarquia de papis da Universal Containers descrita na imagem Hierarquia
de papis da Universal Containers, vamos analisar como a implementao dessa hierarquia ir
liberar certos tipos de permisses no nvel do registro para diversos usurios do nosso aplicativo
Recruiting. Lembre-se de que aps a definio dos padres para toda a organizao, nossos
gerentes de contratao tm permisso para visualizar todos os registros de posio, publicao
de emprego e site de emprego e tm permisso para visualizar e atualizar todos os outros
registros de recrutamento pertencentes a eles. Nosso aplicativo ainda no est totalmente til.
Contudo, quando implementarmos a hierarquia de papis, concederemos automaticamente
diversos tipos de permisses no nvel do registro para diversos usurios. Por exemplo:
A CEO, Cynthia Capobianco, conseguir visualizar e atualizar todos os registros que
qualquer outra pessoa puder visualizar e atualizar na organizao.
O VP de Desenvolvimento, Andrew Goldberg, conseguir visualizar e atualizar todos os
registros que seus gerentes ou os funcionrios dos seus gerentes puderem visualizar ou
atualizar.
A VP de Recursos Humanos, Megan Smith, conseguir visualizar e atualizar todos os
registros que Phil Katz, seu gerente de recrutamento, ou Mario Ruiz, recrutador de Phil,
puder visualizar e atualizar.
O Gerente de recrutamento, Phil Katz, conseguir visualizar a atualizar todos os registros
pertencentes a Mario Ruiz, seu recrutador.
O Gerente de Desenvolvimento de Software, Ben Stuart, conseguir visualizar e atualizar
todos os registros pertencentes a Melissa Lee, Tom Zales ou Craig Kingman, seus
engenheiros de software.
O Diretor de QA, Clark Kentman, conseguir visualizar e atualizar todos os registros
pertencentes a Flash Stevenson ou Harry Potterham, seus engenheiros de QA.
O Diretor de Gerenciamento de Produtos, Frank Linstrom, conseguir visualizar e atualizar
todos os registros pertencentes a Amy Lojack ou Andy Macrola, seus gerentes de produtos.
210 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Como podemos ver, a hierarquia de papis extremamente poderosa para a liberao de dados
para pessoa na parte superior da rvore de hierarquia de papis! No entanto, precisamos analisar
algumas lacunas que ainda existem nas nossas permisses no nvel do registro:
Megan Smith (e toda sua equipe de recrutamento) no conseguir visualizar as revises
pertencentes aos membros da equipe de desenvolvimento de Andrew Goldberg, pois ela
no est diretamente associada a nenhum papel de desenvolvimento na hierarquia de papis.
Ben Stuart, o Gerente de Desenvolvimento de Software, no conseguir visualizar as revises
escritas pelos membros dos grupos Gerenciamento de Produtos ou QA, mesmo que os
engenheiros de QA ou gerentes de produto entrevistem candidatos para uma posio de
engenharia de software em seu grupo.
Melissa Lee, uma engenheira de software, no conseguir visualizar os registros dos
candidatos que ela deve entrevistar.
Claramente precisaremos usar outros mtodos de compartilhamento no nvel do registro para
liberar o acesso aos dados para os colegas no mesmo grupo e tambm entre grupos que esto
localizados em sees diferentes da hierarquia de papis (abordaremos isso ainda neste captulo).
No entanto, a hierarquia de papis um bom comeo para a liberao de acesso aos registros,
ento veremos agora como defini-la.
Experimente: Crie um usurio
Antes de configurarmos a hierarquia de papis, precisamos criar usurios para atribuir os papis.
Primeiro vamos criar o CEO da Universal Containers: Cynthia Capobianco.
1. Em Configurao, clique em Gerenciar usurios > Usurios.
2. Clique em Novo usurio.
3. No campo Nome (First Name), insira Cynthia.
4. No campo Sobrenome (Last Name), insira Capobianco.
5. Insira seu endereo de email no campo Email e um email falso em Nome de
usurio (Username).
Cada usurio deve ter um nome de usurio exclusivo nas organizaes do Salesforce. E o valor
no campo Email deve ser um endereo de email vlido. Ns podemos usar o valor falso no
campo Nome de usurio (Username) para fazer login no aplicativo como Cynthia, mas
vamos usar sua senha gerada automaticamente na conta de email real especificada em Email.
Sem essa senha, no teremos como fazer login!
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 211
Figura 74: Pgina de edio Novo usurio (New User)
Dica: Ao criar um usurio, necessrio criar o apelido do usurio. O apelido usado
para identificar o usurio no aplicativo Ideas, que uma comunidade de usurios que
publicam, votam e comentam ideias. Considere-a uma caixa de sugestes on-line que
contm discusses e classificaes de popularidade para qualquer assunto. O apelido
pode conter at 40 caracteres alfanumricos. Para obter mais informaes, consulte a
Ajuda do Salesforce.
6. Deixe o Papel (Role) no especificado. Ns o especificaremos quando criarmos
nossa hierarquia de papis.
7. Em Licena de usurio (User License), deixe a seleo padro do
Salesforce.
8. Em Perfil (Profile), selecione Funcionrio padro (Standard Employee).
9. Preencha os campos restantes desejados.
10. Clique em Salvar.
Experimente: Defina uma hierarquia de papis
Depois de ter uma ideia da aparncia da hierarquia, a implementao da hierarquia de papis
na plataforma fcil. sempre bom comear com o organograma da sua emprega e consolidar
diferentes cargos em papis nicos, sempre que possvel. Por exemplo, se o grupo de
desenvolvimento de software de Ben Stuart tiver os cargos engenheiro de software e engenheiro
de software jnior, essas posies podero ser consolidadas em um nico papel Engenheiro de
software na hierarquia.
212 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Depois dessa definio, podemos comear a definir a hierarquia de papis. No exerccio, iremos
usar a hierarquia de papis que mencionamos anteriormente.
1. Em Configurao, clique em Gerenciar usurios > Funes. Se uma pgina inicial
introdutria chamada Entendendo os papis (Understanding Roles) for exibida,
clique em Configurar papis (Set Up Roles) na parte inferior da pgina para acessar
a ferramenta.
Figura 75: Pgina da hierarquia de papis vazia no modo de exibio em rvore
A exibio padro dessa pgina a exibio em rvore, conforme indicado na lista suspensa
direita da barra de ttulo Hierarquia de papis (Role Hierarchy). Ao criar uma hierarquia de
papis, use essa exibio ou a exibio em lista, pois com elas mais fcil visualizar como todos
os papis se encaixam na hierarquia. A exibio em lista classificada indicada quando voc
sabe o nome do papel que deseja encontrar, mas no sabe a localizao dele na hierarquia ou
no quer clicar para abrir todos os ns da rvore. Para os nossos propsitos, vamos usar a
exibio em rvore.
Quando voc comea a definir uma hierarquia de papis, a exibio em lista exibe um nico
n marcador com o nome da sua organizao. Neste ponto, precisamos adicionar o nome do
papel que ocupa o lugar mais alto na hierarquia no nosso caso, o CEO.
Nota: Se voc estiver criando seu aplicativo Recruiting com uma organizao do
Developer Edition gratuita, a hierarquia de papis pode estar predefinida como uma
amostra. No tem problema. Voc ainda pode acompanhar o exerccio e criar mais
alguns papis.
2. Logo abaixo de Universal Containers, clique em Adicionar papel (Add Role).
Nota: Se o papel CEO j existir, clique em Editar (Edit).
3. Na caixa de texto Rtulo (Label), insira CEO. A caixa de texto Nome do papel
(Role Name) ser preenchida automaticamente com CEO.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 213
4. Na caixa de texto Esse papel se reporta a (This role reports to),
clique no cone de pesquisa e clique em Selecionar (Select) ao lado do nome da
sua organizao.
Ao escolhermos o nome da organizao na caixa de texto Esse papel se reporta a
(This role reports to), estamos indicando que o papel CEO o papel que ocupa a
posio mais alta na nossa hierarquia de papis e que ele no se reporta a ningum.
5. Na caixa de texto Nome do papel, conforme exibido nos relatrios
(Role Name as displayed on reports), insira CEO. Esse texto usado em
relatrios para indicar o nome de um papel. Como talvez voc no queira um nome
de papel longo, como Vice-presidente de Desenvolvimento de Produtos, ocupando
espao nas colunas do seu relatrio, recomendamos o uso de uma abreviao de fcil
identificao.
6. Deixe todas as outras opes, como Acesso oportunidade (Opportunity
Access), configuradas com os valores padro. Essas opes de acesso no esto
relacionadas ao nosso aplicativo Recruiting; elas aparecem somente se voc tiver os
padres para toda a organizao de um objeto padro configurados com um nvel
mais restritivo do que Leitura/Gravao pblica (Public Read/Write).
7. Clique em Salvar.
Figura 76: Pgina de detalhes do papel CEO
Agora que criamos nosso primeiro papel, vamos atribuir o usurio adequado a ele.
8. Clique em CEO para abrir a pgina de detalhes do papel CEO.
214 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
9. Na pgina de detalhes do papel CEO, clique em Atribuir usurios ao papel (Assign
Users to Role).
10. Na lista suspensa Usurios disponveis (Available Users), selecione
Todos os no atribudos (All Unassigned).
11. Selecione um usurio da lista (no nosso caso, Cynthia Capobianco), e clique em
Adicionar (Add) para mov-la para a lista Usurios selecionados para CEO
(Selected Users for CEO).
12. Clique em Salvar.
Se retornarmos pgina principal Papis (Roles) em Configurao (Setup), Gerenciar usurios
(Manage Users) > Papis (Roles), poderemos ver nosso novo papel CEO na hierarquia.
Nota: Se visualizar a imagem Hierarquia de papis de amostra (Sample Role
Hierarchy), clique em Configurar papis (Set Up Roles).
13. Defina os papis restantes de acordo com o diagrama Hierarquia de papis da
Universal Containers.
Figura 77: Hierarquia de funes da Universal Containers
No necessrio atribuir usurios a todos os papis neste momento faremos isso
posteriormente quando criarmos os usurios restantes e testarmos nosso aplicativo.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 215
Dica: Para agilizar o processo de adio de um novo papel, clique em Adicionar papel
(Add Role) diretamente abaixo do nome do papel ao qual o novo papel deve se reportar.
Quando isso feito, a caixa de texto Esse papel se reporta a (This role
reports to) preenchida automaticamente com o nome do papel adequado.
No muito difcil, n? Com os padres para toda a organizao e a hierarquia de papis em
vigor, estamos quase finalizando as permisses de acesso no nvel do registro. Precisamos apenas
compartilhar os registros relacionados a recrutamento entre os grupos que aparecem em sees
separadas da hierarquia de papis e entre colegas em um nico grupo. Felizmente, podemos
executar essas duas tarefas com uma combinao de regras de compartilhamento e
compartilhamento manual. Precisamos apenas definir o que ainda precisa ser compartilhado
e com quem.
O que mais precisa ser compartilhado?
Ento o que mais precisa ser compartilhado? Aps revisar nossa tabela de permisses necessrias,
descobrimos que apenas mais algumas coisas (lembre-se: como os usurios sempre tm acesso
aos registros criados por eles, precisamos nos preocupar apenas com as permisses de leitura e
atualizao nas configuraes de acesso no nvel de registro):
Os recrutadores precisam de acesso de leitura e atualizao em todas as posies, candidatos,
formulrios de emprego e registros de reviso existentes no aplicativo.
Os gerentes de contratao precisam:
Acesso de leitura e atualizao nos registros de posio e publicao de emprego nos
quais eles so o gerente de contratao
Acesso de leitura nos registros de candidato nos quais eles so o gerente de contratao
Acesso de leitura e atualizao em todos os registros de formulrio de emprego e reviso
Os entrevistadores precisam de acesso de leitura nos registros de candidato e formulrio de
emprego das pessoas que eles esto entrevistando e a capacidade de atualizar suas revises.
Isso no deve ser muito difcil! Ento mos obra.
Introduo s regras de compartilhamento
Primeiro, vamos ver o que podemos fazer com regras de compartilhamento. As regras de
compartilhamento permitem a criao de excees automticas aos padres para toda a
organizao para determinados grupos de usurios. Ns j definimos diversos grupos especficos
com os papis que criamos na seo anterior, mas podemos criar outros grupos conforme
necessrio.
216 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
O que devemos lembrar sobre as regras de compartilhamento que podemos us-las somente
para liberar acesso a registros para mais usurios, assim como ocorre com as hierarquias de
papis. As regras de compartilhamento e as hierarquias de papis nunca podem ser mais restritas
do que as configuraes padro para toda a organizao.
Regras de compartilhamento no aplicativo
Recruiting
As regras de compartilhamento funcionam melhor quando so definidas para um determinado
grupo de usurios que pode ser determinado ou previsto com antecedncia, e no um conjunto
de usurios que muda com frequncia. Por exemplo, no nosso aplicativo Recruiting, precisamos
compartilhar todas as posies, candidatos, formulrios de emprego e revises com todos os
recrutadores. Como todos os recrutadores pertencem ao papel Gerente de recrutamento
(Recruiting Manager) ou Recrutador (Recruiter), podemos facilmente usar uma regra de
compartilhamento para compartilhar esses objetos com o papel Gerente de recrutamento
(Recruiting Manager) e seus subordinados.
Alternativamente, considere outro caso de uso do nosso aplicativo Recruiting: os entrevistadores
precisam ter acesso de leitura nos candidatos e formulrios de emprego das pessoas que eles
esto entrevistando. Nesse caso, o conjunto de entrevistadores muito mais difcil de prever
com antecedncia os gerentes de contratao podem usar conjuntos diferentes de
entrevistadores dependendo da posio e os entrevistadores podem pertencer a diferentes grupos
na hierarquia de papis. Como resultado, esse caso de uso no deveria ser tratado com regras
de compartilhamento a equipe de entrevistadores de qualquer gerente muito difcil de
prever.
Agora vamos analisar o conjunto de permisses necessrias que ainda precisamos implementar
e escolher as que funcionariam melhor com regras de compartilhamento:
Devemos usar uma regra de
compartilhamento?
Caso de uso
Sim. Como j discutimos, fcil determinar
o grupo de recrutadores na nossa hierarquia
de papis.
Os recrutadores precisam de acesso de leitura
e atualizao em todas as posies, candidatos,
formulrios de emprego e registros de reviso
existentes no aplicativo.
No. muito difcil prever quais posies
sero atribudas a qual gerente de contratao.
Os gerentes de contratao precisam ter acesso
de leitura e atualizao nos registros de posio
Teremos que tratar esse caso de uso de outra
forma.
e publicao de emprego nos quais eles so o
gerente de contratao.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 217
Devemos usar uma regra de
compartilhamento?
Caso de uso
No. Novamente, muito difcil prever quais
posies sero atribudas a qual gerente de
contratao.
Os gerentes de contratao precisam de acesso
de leitura aos registros dos candidatos para os
quais eles so o gerente de contratao.
Sim. Como no estamos restringindo quais
formulrios de emprego e revises um gerente
Os gerentes de contratao precisam ter acesso
de leitura e atualizao em todos os registros
de formulrio de emprego e reviso. de contratao tem permisso para ler e
atualizar, podemos facilmente determinar os
gerentes de contratao da nossa hierarquia
de papis e definir uma regra de
compartilhamento para eles.
No. Como j discutimos, difcil prever
quem sero os membros da equipe de
entrevista de uma determinada posio.
Os entrevistadores precisam de acesso de
leitura aos registros do candidato e do
formulrio de emprego para as pessoas que
eles entrevistaro.
timo! Agora que sabemos as permisses necessrias que queremos implementar com regras
de compartilhamento, vamos defini-las.
Experimente: Defina um grupo pblico
Antes de mergulharmos de cabea na criao das nossas regras de compartilhamento, precisamos
nos certificar de que os grupos pblicos adequados esto configurados. Um grupo pblico uma
coleo de usurios individuais, outros grupos, papis individuais e/ou papis com seus
subordinados que possuem uma funo em comum. Por exemplo, tanto os usurios com o
perfil Recrutador (Recruiter) quanto os usurios no papel Gerente de Desenvolvimento de
Software (SW Dev Manager) conseguem revisar formulrios de emprego. O uso de um grupo
pblico ao definir uma regra de compartilhamento facilita a criao da regra, e mais importante,
facilita a compreenso posterior da regra, especialmente se ela for uma das muitas regras de
compartilhamento que voc deve controlar em uma organizao de grande porte. Voc precisar
criar um grupo pblico se quiser definir uma regra de compartilhamento que englobe mais de
um ou dois grupos ou papis, ou qualquer indivduo.
Analisando as permisses necessrias que queremos implementar, existem apenas dois objetos
que precisam de um grupo pblico para suas regras de compartilhamento: Formulrio de
emprego (Job Application) e Reviso (Review). A boa notcia que podemos englobar esses
objetos em um nico grupo, pois o objeto Reviso (Review) est no lado "detalhe" de um
relacionamento entre mestre e detalhes, ento ele herda as configuraes de compartilhamento
218 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
que aplicamos ao objeto Formulrio de emprego (Job Application). Como os recrutadores e
os gerentes de contratao precisam de acesso de leitura e atualizao em formulrios de emprego
e revises, vamos criar um grupo pblico chamado Revisores (Reviewers) que englobe os
recrutadores e os gerentes de contratao.
1. Em Configurao (Setup), clique em Gerenciar usurios (Manage Users) > Grupos
pblicos (Public Groups).
2. Clique em Novo.
Figura 78: Pgina Novo grupo pblico (New Public Group)
A pgina Novo grupo pblico (New Public Group) permite a escolha de outros grupos pblicos,
papis individuais, papis individuais e seus subordinados ou usurios individuais.
3. Na caixa de texto Rtulo (Label), insira Revisores (Reviewers). Clique
na caixa de texto Nome do grupo (Group Name) para preench-la
automaticamente. Nome do grupo (Group Name) refere-se ao nome exclusivo
usado pela API e pelos pacotes gerenciados.
4. Na lista suspensa Pesquisar (Search), selecione Papis (Roles).
5. Na lista Membros disponveis (Available Members), selecione Gerente
de Desenvolvimento de Software (SW Dev Manager), Diretor de Gerenciamento
de Produtos (Director Product Management) e Diretor de QA (Director QA) e
clique em Adicionar (Add).
6. Volte para a lista suspensa Pesquisar (Search) e selecione Papel e subordinados
(Role and Subordinates).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 219
7. Na lista Membros disponveis (Available Members), selecione Gerente
de contratao (Recruiting Manager) e clique em Adicionar (Add).
8. Clique em Salvar.
fcil! Agora estamos prontos para definir nossas regras de compartilhamento.
Experimente: Defina regras de compartilhamento
Agora que definimos nosso grupo pblico Revisores (Reviewers), vamos us-lo para definir
nossa regra de compartilhamento para registros de reviso.
1. Em Configurao, clique em Controles de segurana > Configuraes de
compartilhamento.
Voc se lembra desta pgina? Ns estivemos aqui quando definimos os padres para toda a
organizao.
2. Na lista suspensa Gerenciar configuraes de compartilhamento para
(Manage sharing settings for), selecione Formulrio de emprego (Job
Application).
A escolha de um objeto nesta lista suspensa nos permite focar nos padres para toda a
organizao e nas regras de compartilhamento de um nico objeto por vez em vez de olhar
para todos eles em uma pgina longa uma coisa muito til se voc tiver uma organizao
de grande porte com diversos objetos personalizados.
Se voc tivesse escolhido Reviso (Review) em vez de Formulrio de emprego (Job Application),
voc no teria a opo de criao de regras de compartilhamento, pois no possvel criar regras
de compartilhamento para um registro de detalhe em um relacionamento entre mestre e detalhes.
Contudo, como voc selecionou Formulrio de emprego (Job Application), a lista relacionada
Regras de compartilhamento (Sharing Rules) exibida. Ns iremos us-la para criar as regras
de compartilhamento que sero aplicadas aos objetos Formulrio de emprego (Job Application)
e Reviso (Review).
3. Na rea Regras de compartilhamento do Formulrio de emprego (Job Application
Sharing Rules), clique em Novo (New).
4. Na caixa de texto Rtulo (Label), insira Registros de reviso (Review
Records).
5. Clique na caixa de texto Nome da regra (Rule Name) para preench-la
automaticamente.
6. No tipo de regra, certifique-se de que a opo Baseado no proprietrio do
registro (Based on record owner) est selecionada.
220 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
7. Na lista suspensa Formulrio de emprego: pertencente aos membros
de (Job Application: owned by members of), selecione Grupos pblicos
(Public Groups).
8. Ao lado dessa lista suspensa, selecione Organizao inteira (Entire Organization).
Como mencionando anteriormente, possvel definir uma regra de compartilhamento somente
para um nico grupo pblico, papel ou papel com todos os seus subordinados. Por padro, a
plataforma inclui um grupo pblico padro que engloba todos os usurios na sua organizao.
9. Na lista suspensa Compartilhar com (Share with), selecione Grupos pblicos
(Public Groups).
10. Ao lado dessa lista suspensa, selecione Revisores (Reviewers).
11. Na lista suspensa Nvel de acesso (Access Level), selecione
Leitura/gravao (Read/Write).
12. Clique em Salvar.
13. Clique em OK na caixa de dilogo que informa que essa operao pode demorar.
E isso! Acabamos de criar uma regra que compartilha as revises escritas por e de propriedade
de qualquer membro da organizao com todos os recrutadores e gerentes de contratao.
Como todos os revisores e gerentes de contratao precisam ser capazes de ler e atualizar
revises, ns liberamos esse acesso com uma nica regra de compartilhamento e um grupo
pblico.
Para finalizar, crie as seguintes regras de compartilhamento baseadas no proprietrio:
Tabela 35: Regras de compartilhamento adicionais
Nvel de
acesso
Deve ser compartilhada
com...
Pertencente a... Rtulo da
regra
Objeto
Leitura/Gravao A funo e os
subordinados do Gerente
de recrutamento
Organizao inteira
(Entire Organization)
Editar
candidatos
(Edit
Candidates)
Candidato
Leitura/Gravao Revisores (Reviewers) A funo e os
subordinados do Gerente
de recrutamento
Editar Sites
de emprego
(Edit
Employment
Websites)
Site de
empregos
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 221
Nvel de
acesso
Deve ser compartilhada
com...
Pertencente a... Rtulo da
regra
Objeto
Leitura/Gravao A funo e os
subordinados do Gerente
de recrutamento
A funo e os
subordinados do Gerente
de recrutamento
Editar
posies
(Edit
Positions)
Posio
A regra de compartilhamento do objeto Site de emprego (Employment Website) necessria
para permitir que os gerentes de contratao publiquem empregos, mesmo que eles nunca
atualizem diretamente os registros do site de emprego (os padres para toda a organizao
impedem isso). Sem essa regra, os gerentes de contratao visualizariam os registros do site de
emprego, mas no conseguiriam criar publicaes de emprego. Isso porque o objeto Publicao
de emprego (Job Posting) um objeto de juno (conforme vimos no ltimo captulo) e o
objeto Site de emprego (Employment Website) um dos dois relacionamentos entre mestre
e detalhes do objeto Publicao de emprego (Job Posting). O compartilhamento do acesso para
um registro de objeto de juno determinado pelo compartilhamento do acesso de um usurio
aos dois registros mestre associados (neste caso, os registros associados de posio e site de
emprego) e pela opo Configurao de compartilhamento (Sharing Setting) no campo de
relacionamento. Por exemplo, se a configurao de compartilhamento nos dois pais for
Leitura/Gravao (Read/Write), o usurio dever ter acesso Leitura/Gravao (Read/Write)
em ambos os pais para ter esse tipo de acesso ao objeto de juno.
Na regra de compartilhamento do objeto Site de emprego (Employment Website), optamos
por usar o grupo pblico Revisores (Reviewers) existente. Dessa forma, "economizamos" alguns
cliques sem conceder acesso a usurios que no deveriam visualizar os registros de site de
emprego.
Beyond the Basics
Voc sabia que voc pode usar regras de compartilhamento baseadas em critrios para
liberar o acesso ao registro para os usurios?
Digamos que voc queira compartilhar registros com base nos valores do campo nos
registros e no nos proprietrios do registro. Voc poder configurar regras de
compartilhamento baseadas em critrios de valor do campo e aplicar a lgica de filtro para
liberar acesso a um registro especfico para os usurios.
Para obter mais informaes, consulte o tpico "Viso geral de regras de compartilhamento
baseadas em critrios" na Ajuda do Salesforce.
222 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Introduo ao compartilhamento manual
Agora vamos conversar sobre o que precisamos fazer para finalizar a definio do nosso modelo
de compartilhamento. Aps a implementao das regras de compartilhamento, restam as
seguintes permisses necessrias:
Os gerentes de contratao precisam ter acesso de leitura e atualizao nos registros de posio nos
quais eles so o gerente de contratao.
Os gerentes de contratao precisam de acesso de leitura aos registros dos candidatos para os quais
eles so o gerente de contratao.
Os entrevistadores precisam de acesso de leitura aos registros do candidato e do formulrio de
emprego para as pessoas que eles entrevistaro.
Ns no implementamos essas permisses necessrias com regras de compartilhamento porque
muito difcil para ns definir um grupo consistente de usurios que precisam de acesso a um
conjunto especfico de registros. Na verdade, a que o trabalho do recrutador entra em ao.
Um recrutador como Mario Ruiz o proprietrio dos registros de posio, candidato e
formulrio de aplicativo das vagas que ele est tentando preencher e ele tambm sabe o gerente
de contratao e os entrevistadores que devem ser atribudos a esses registros.
Felizmente, ns temos um tipo final de configurao de acesso ao registro que permite que
Mario compartilhe registros especficos com outros usurios especficos: o compartilhamento
manual. Com o compartilhamento manual, Mario pode conceder acesso de leitura ou
leitura/gravao aos registros pertencentes a ele para qualquer outro usurio, papel ou grupo
pblico. Mesmo no sendo automatizado como os padres para toda a organizao, as
hierarquias de papis ou as regras de compartilhamento, o compartilhamento manual fornece
ao Mario a flexibilidade de compartilhar registros especficos com os grupos de entrevistadores
e gerentes de contratao em constante alterao com os quais ele trabalha todos os dias.
Experimente: Defina uma regra de
compartilhamento manual
Vamos fazer de conta que somos um recrutador como Mario e precisamos compartilhar o
registro que nos pertence de um candidato especfico com outro papel, grupo ou usurio:
1. Na pgina de detalhes do candidato, clique em Compartilhamento (Sharing).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 223
Figura 79: Pgina de detalhes do compartilhamento
Como somos os proprietrios desse registro de candidato, podemos ver os detalhes de quem
mais pode visualizar o registro e por qual razo. Se no fossemos os proprietrios desse registro,
receberamos uma mensagem informando que no possumos privilgios suficientes.
Dica: Para visualizar os nomes de cada usurio que possui acesso ao registro em vez
de apenas os nomes dos papis e dos grupos pblicos, basta clicar em Expandir lista
(Expand List) nesta pgina. Essa operao pode demorar um pouco dependendo do
nmero de usurios na sua organizao, mas ela til para determinar se precisamos
definir uma regra de compartilhamento manual para um usurio especfico ou se ele
j possui acesso.
2. Clique em Adicionar.
3. Na lista suspensa Pesquisar (Search), selecione se deseja compartilhar
manualmente o registro com um usurio, grupo pblico, papel ou papel e
subordinados.
4. Na lista Disponvel (Available), selecione o usurio, grupo pblico ou papel
que deve ter acesso ao registro e clique em Adicionar (Add).
5. Na lista suspensa Nvel de acesso (Access Level), especifique se o usurio,
grupo pblico ou papel deve ter acesso de leitura ou leitura/gravao ao registro.
6. Clique em Salvar.
No foi to difcil! Quando disponibilizarmos o aplicativo Recruiting aos usurios, teremos
que treinar nossos recrutadores para eles executarem essas etapas para os registros de posio,
candidato e formulrio de emprego que seus gerentes de contratao e entrevistadores precisarem
acessar. Quando esse treinamento acabar, ns teremos implementado todas as configuraes
necessrias de compartilhamento e segurana que discutimos no comeo do captulo. Parabns!
224 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Exibindo valores do campo e layouts de
pgina de acordo com perfis
Antes de fazer um teste completo no nosso modelo de segurana, vamos aproveitar o trabalho
que fizemos para aprimorar ainda mais a usabilidade do nosso aplicativo e incrementar um
pouco a integridade dos dados.
A usabilidade e a integridade dos dados so afetadas negativamente por dados irrelevantes.
Quanto menos dados irrelevantes ns exibirmos aos usurios, melhor ser para todo mundo.
Os dados irrelevantes no so apenas confusos e impedem a eficincia do usurio, como
aumentam as chances de insero de valores incorretos. Com a remoo de escolhas
desnecessrias, ns reduzimos o risco de erros evitveis.
Ns j consideramos diversos aspectos da usabilidade do aplicativo, mas sempre possvel
melhorar alguma coisa. No faremos uma anlise detalhada da usabilidade aqui, mas faremos
pequenas modificaes para voc ter uma ideia do que pode fazer para melhorar a usabilidade
e a integridade dos dados dos seus aplicativos no futuro.
As modificaes que faremos envolvem registros de posio. No momento, cada registro de
posio exibe os mesmos dados, mesmo existindo alguns itens no registro de posio que no
so utilizados pelos recrutadores que criam posies para departamentos diferentes do de
Desenvolvimento. Por exemplo, um recrutador que cria uma posio para um Analista
Financeiro Snior no usa a seo Linguagens de programao necessrias (Required
Programming Languages).
Da mesma forma, algumas opes nos registros de posio no tem nenhuma relao com
posies tcnicas, como os valores de Recursos Humanos e Armazenamento na lista de opes
rea funcional (Functional Area). No seria bom se pudssemos criar dois tipos de
registros de posio: um com dados relacionados a TI para posies de TI e outro para pessoas
que no so de TI?
Felizmente, ns podemos com tipos de registros! Os tipos de registros permitem que voc
especifique categorias de registros que exibem valores de lista de opes e layouts de pgina
diferentes. Tambm possvel associar tipos de registros a perfis, ento voc pode especificar
os valores de lista de opes e layouts de pgina que diferentes tipos de usurios podem visualizar
na pgina de detalhes do registro.
Para tratar os problemas discutidos acima, vamos criar dois tipos de registro de posio. O
primeiro tipo de registro de posio ser para posies de TI e incluir a seo Linguagens de
programao necessrias (Required Programming Languages) no layout da pgina. Alm disso,
vamos excluir todas as opes na lista de opes rea funcional (Functional Area)
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 225
exceto Tecnologia da Informao (Information Technology) e Diversos (Miscellaneous). O
segundo tipo de registro de posio ser para todas as posies que no so de TI e incluir
todos os valores da lista de opes rea funcional (Functional Area) exceto
Tecnologia da Informao (Information Technology), mas omitir a seo Linguagens de
programao necessrias (Required Programming Languages).
Experimente: Crie um tipo de registro
Vamos comear criando o tipo de registro de posio para posies padro que no so de TI.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Tipos de registro (Record Types), clique em Novo (New).
4. No campo Rtulo do tipo de registro (Record Type Label), insira
Posio padro (Standard Position). Quando voc mover o cursor, o
valor do campo Nome do tipo de registro (Record Type Name) mudar
para Standard_Position.
5. No campo Descrio (Description), insira Tipo de registro para
todas as posies que no so de TI (Record type for all
non-IT positions).
6. Marque a caixa de seleo Ativar.
A parte inferior da tela lista todos os seus perfis. aqui que determinamos quais perfis tm
acesso a esse tipo de registro. Todos eles so selecionados por padro.
7. Clique em Avanar.
8. Deixe o boto de opoAplicar um layout a todos os perfis (Apply
one layout to all profiles) selecionado e selecione Layout de posio
(Position Layout) na lista suspensa adjacente.
9. Clique em Salvar.
A pgina de detalhes do tipo de registro Posio padro (Standard Position) ser exibida. A
pgina lista os campos de lista de opes encontrados no layout de pgina associado do tipo
de registro, o Layout de posio (Position Layout).
10. Clique em Editar (Edit) prximo ao campo rea funcional (Functional
Area).
Como esse o tipo de registro para todas as posies que no so de TI, vamos remover a
opo Tecnologia da Informao (Information Technology) da lista de opes rea
funcional (Functional Area).
226 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
11. Na caixa Valores selecionados (Selected Values), selecione a opo Tecnologia da
Informao (Information Technology) e use as setas para mov-la para a caixa Valores
disponveis (Available Values).
12. Deixe a lista suspensa Padro (Default) configurada como Nenhum (None) e
clique em Salvar (Save).
Voc finalizou a criao do seu primeiro tipo de registro, mas ele no est configurado da forma
que queremos. Ele omite o valor Tecnologia da Informao (Information Technology) da lista
de opes rea funcional (Functional Area), mas ele ainda exibe a seo Linguagens
de programao necessrias (Required Programming Languages). Corrigiremos isso
posteriormente quando modificarmos os layouts de pgina dos nossos tipos de registro, mas
primeiro precisamos criar mais um tipo de registro.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Tipos de registro (Record Types), clique em Novo (New).
4. No campo Rtulo do tipo de registro (Record Type Label), insira
Posio de TI (IT Position). Quando voc mover o cursor, o valor do
campo Nome do tipo de registro (Record Type Name) mudar para
IT_Position.
5. No campo Descrio (Description), insira Tipo de registro para
todas as posies de TI (Record type for all IT positions).
6. Marque a caixa de seleo Ativar.
Novamente, a parte inferior da tela lista os perfis da sua organizao, mas dessa vez eles no
so selecionados por padro.
7. Ao lado dos perfis Recrutador (Recruiter) e Funcionrio padro (Standard Employee),
marque a caixa de seleo Ativar para perfil (Enable for Profile).
8. Clique em Avanar.
Novamente aqui temos a opo de aplicar layouts diferentes em perfis diferentes. Ns ainda
precisamos criar o layout de pgina para esse tipo de registro, ento aplicaremos os layouts de
pgina depois.
9. Deixe o boto de opoAplicar um layout a todos os perfis (Apply
one layout to all profiles) selecionado e selecione Layout de posio
(Position Layout) na lista suspensa adjacente.
10. Clique em Salvar.
A pgina de detalhes do tipo de registro Posio de TI (IT Position) ser exibida.
11. Clique em Editar (Edit) prximo ao campo rea funcional (Functional
Area).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 227
Como esse o tipo de registro para todas as posies de TI, vamos remover todas as opes
da lista de opes rea funcional (Functional Area), exceto Tecnologia da Informao
(Information Technology) e Diversos (Miscellaneous).
12. Use as setas para mover os valores at que a caixa Valores selecionados (Selected
Values) contenha apenas Tecnologia da Informao (Information Technology) e
Diversos (Miscellaneous).
13. Na lista suspensa Padro (Default), selecione Tecnologia da Informao
(Information Technology).
14. Clique em Salvar.
Os dois registros agora esto criados e esto omitindo os valores da lista de opes que eles
devem omitir. Agora chegou a hora de configurar os layouts de pgina para esses tipos de
registro.
Precisaremos de um layout de pgina separado para cada tipo de registro. Por sorte, j temos
um layout de pgina para o objeto Posio (Position), o Layout de posio (Position Layout),
ento precisaremos criar apenas mais um.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Novo (New).
4. Na lista suspensa Layout de pgina existente (Existing Page Layout),
selecione Layout de posio (Position Layout).
A seleo do layout de pgina existente cria uma cpia na qual podemos basear nosso novo
layout de pgina. Isso nos poupa de ter que criar o layout do zero.
5. No campo Nome do layout de pgina (Page Layout Name), insira Layout
de posio de TI (IT Position Layout) e clique em Salvar (Save).
Finalizamos a criao do layout de pgina da posio de TI. Agora vamos editar os layouts de
pgina novo e original para que eles exibam dados relevantes. Como estamos no layout de
pgina da posio de TI, vamos comear por ele.
Este layout de pgina j inclui a seo Linguagens de programao necessrias (Required
Programming Languages), ento no necessrio adicion-la. No entanto, ns queremos
adicionar o campo Tipo de registro (Record Type) ao layout de pgina para que os
usurios saibam instantaneamente o tipo do registro de posio que eles esto editando.
6. Selecione a categoria Campos (Fields) na paleta e arraste o campo Tipo de
registro (Record Type) para abaixo do campo ltima modificao
feita por (Last Modified By).
7. Clique em Salvar.
228 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Agora, vamos editar o layout de pgina Layout de posio (Position Layout). Esse o layout
que usaremos para o tipo de registro Posio padro (Standard Position), ento vamos remover
a seo Linguagens necessrias (Required Languages).
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo a Layout de posio (Position Layout).
4. Clique em no canto superior direito da seo Linguagens necessrias (Required
Languages).
Ns queremos adicionar o campo Tipo de registro (Record Type) neste layout de
pgina tambm.
5. Selecione a categoria Campos (Fields) na paleta e arraste o campo Tipo de
registro (Record Type) para abaixo do campo ltima modificao
feita por (Last Modified By).
6. Clique em Salvar.
Estamos quase terminando! S falta concluir uma tarefa fcil: atribuir os layouts de pgina de
posio aos novos tipos de registro.
A atribuio de layouts de pgina fcil, pois todas as atribuies para um objeto so feitas em
uma nica pgina.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts) ou na lista relacionada Tipos
de registro (Record Types), clique em Atribuio do layout de pgina (Page Layout
Assignment).
4. Clique em Editar atribuio.
Uma tabela mostra as atribuies do layout de pgina de posio para todas as combinaes
de tipo de registro de posio e perfil diferentes. Na tabela, selecione as combinaes de tipo
de registro de posio e perfil que quer alterar. Use SHIFT + clique para selecionar um intervalo
de clulas ou CTRL + clique para selecionar diversas clulas ao mesmo tempo. Use a lista
suspensa acima da tabela para indicar o layout de pgina ao qual voc deseja atribuir suas
selees.
5. Clique no cabealho da coluna Posio de TI (IT Position). Isso seleciona todos os
valores da coluna do tipo de registro Posio de TI (IT Position).
6. Selecione Layout de posio de TI (IT Position Layout) na lista suspensa Layout
de pgina a ser usado (Page Layout To Use).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 229
7. Clique em Salvar.
Seus tipos de registro esto prontos para uso!
Juntando tudo
Parabns! Acabamos de implementar todas as configuraes necessrias de segurana e
compartilhamento: primeiro definimos o acesso no nvel do objeto com perfis e conjuntos de
permisses, em seguida protegemos o acesso no nvel do campo com a segurana no nvel do
campo e por fim definimos o acesso no nvel do registro usando padres para toda a organizao,
hierarquias de papis, regras de compartilhamento e compartilhamento manual.
Ns aprendemos sobre a diferena entre a segurana no nvel do objeto, do campo e do registro
e como os perfis, conjuntos de permisses e papis trabalham juntos para determinar os objetos
e as guias que um usurio pode possivelmente usar e os registros especficos que o usurio pode
realmente acessar e editar. Ns tambm aprendemos formas de configurar outros recursos
baseados em perfis, como tipos de registro para melhorar a integridade dos nossos dados e a
usabilidade do nosso aplicativo.
Agora vamos fazer um teste. Para isso, precisamos primeiro definir alguns usurios e depois
poderemos brincar um pouco criando registros e vendo quem tem acesso a qu.
Experimente: Crie mais usurios
Para testar nosso aplicativo Recruiting, primeiro precisamos definir os usurios restantes e
atribuir alguns deles aos registros de recrutamento que importamos anteriormente.
Nota: Se voc estiver implementando o aplicativo Recruiting em uma organizao
com a Developer Edition, voc ter apenas alguns usurios adicionais para editar alm
do usurio Administrador do sistema (System Administrator). Voc ainda poder
testar todos os casos de uso que ns descrevemos aqui, mas ter que atualizar o perfil,
os conjuntos de permisses e o papel do usurio em todos os casos de uso que voc
testar.
Tabela 36: Resumo das permisses necessrias: Perfis Recrutador (Recruiter) e Funcionrio
padro (Standard Employee)
Funcionrio padro Recrutador
Ler (Sem salrio mn./mx.) Ler Criar Editar Posio
230 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Funcionrio padro Recrutador
Ler Criar Editar Candidato
Ler Criar Editar Formulrio de emprego
Ler Criar Editar Reviso
Ler Criar Editar Excluir Publicao de emprego
Ler Criar Editar Excluir Site de empregos
Agora vamos acompanhar as etapas de criao do nosso recrutador: Mario Ruiz. Depois voc
poder finalizar os outros usurios por sua conta.
1. Em Configurao, clique em Gerenciar usurios > Usurios.
2. Clique em Novo usurio.
3. Preencha os campos obrigatrios na pgina de edio do Usurio (User).
Assim como voc fez com a Cynthia Capobianco, insira um endereo de email real ao qual
voc tenha acesso no campo Email e insira um endereo de email falso no campo Nome de
usurio (Username) (por exemplo, mario.ruiz@recruiting.com).
4. Na lista suspensa Perfil (Profile), selecione Recrutador (Recruiter).
5. Clique em Salvar.
Agora que criamos o usurio Mario Ruiz, vamos conceder a ele a propriedade da posio DBA
e os registros associados de candidato e formulrio de emprego.
6. Clique na guia Posies (Positions).
7. Na lista suspensa Exibir (View), selecione Todos (All) e clique em Ir (Go).
Dica: Se quiser visualizar outros itens alm do campo Ttulo da posio
(Position Title) nesta exibio, clique em Editar (Edit) ao lado da lista suspensa
Exibir (View) e adicione campos adicionais na seo Selecionar campos para
exibio (Select Fields to Display).
8. Clique em DBA.
9. Ao lado do campo Proprietrio (Owner), clique em Alterar (Change).
10. Clique no cone de pesquisa e selecione Mario Ruiz.
11. Clique em Salvar.
12. Na lista relacionada Formulrios de emprego (Job Applications), clique no nome do
formulrio de emprego listado e repita as etapas de 8 a 10.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 231
13. Clique no ID do candidato associado na pgina de detalhes do Formulrio de emprego
(Job Application) e repita as etapas de 8 a 10.
Nota: Quando voc importou os registros dos arquivos CSV Candidate, Job
Application e Position, provavelmente estava conectado como um usurio que no
era gerente ou subordinado do Recruiting. Ns criamos regras de compartilhamento
que compartilham os registros que so de propriedade do papel e dos subordinados
do Gerente de Recrutamento, ento agora necessrio transferir a propriedade do
restante desses registros para um Gerente de Recrutamento ou subordinado (Phil Katz
ou Mario Ruiz).
Agora crie os outros usurios no Resumo das atribuies de perfil do usurio na pgina 232 e
atribua-os aos perfis listados na tabela. Como Mario nosso nico recrutador, ele ser o nico
usurio atribudo ao perfil Recrutador (Recruiter). Todos os demais devem ter o perfil
Funcionrio padro (Standard Employee).
Tabela 37: Resumo das atribuies de perfil do usurio
Perfil Usurio
Recrutador Phil Katz
Funcionrio padro Megan Smith
Funcionrio padro Craig Kingman
Funcionrio padro Tom Zales
Funcionrio padro Melissa Lee
Funcionrio padro Ben Stuart
Funcionrio padro Andy Macrola
Funcionrio padro Amy Lojack
Funcionrio padro Frank Linstrom
Funcionrio padro Andrew Goldberg
Funcionrio padro Harry Potterham
Funcionrio padro Flash Stevenson
Funcionrio padro Clark Kentman
Funcionrio padro Cynthia Capobianco
232 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Observe que a maioria dos nossos usurios possui o mesmo perfil. Com o perfil Funcionrio
padro (Standard Employee), a nica coisa que esses usurios podem fazer no nosso aplicativo
de recrutamento visualizar posies (com exceo de determinados campos). Mas e os usurios
que precisam acessar mais informaes, como o gerente de contratao Ben Stuart? Bem, agora
vamos usar os conjuntos de permisses que criamos no tpico Introduo aos conjuntos de
permisses na pgina 180. A seguir, apresentamos uma recapitulao das permisses que
concedemos aos conjuntos de permisses Gerente de contratao (Hiring Manager) e
Entrevistador (Interviewer).
Tabela 38: Resumo das permisses necessrias: conjuntos de permisses Gerente de
contratao (Hiring Manager) e Entrevistador (Interviewer)
Entrevistador Gerente de contratao
Ler (Sem salrio mn./mx.) Ler Criar Editar* Posio
Ler* (Sem SSN) Ler* (Sem SSN) Candidato
Ler * Ler Editar (Sem campos de
pesquisa)
Formulrio de emprego
Ler ** Criar Editar ** Ler Criar Editar Reviso
Ler *Criar *Editar * Publicao de emprego
Leitura Site de empregos
* Somente para registros associados a uma posio qual o gerente de contratao/entrevistador
foi atribudo.
** Somente para registros de propriedade do entrevistador
Como Ben gerente de contratao para desenvolvimento de software, ele precisa ser capaz
de fazer coisas como criar posies ou visualizar um candidato e seu formulrio. Vamos atribuir
o conjunto de permisses Gerente de contratao (Hiring Manager) ao Ben para ele poder
realizar essas tarefas.
1. Em Configurao, clique em Gerenciar usurios > Usurios.
2. Clique no nome Ben Stuart.
3. Na pgina de detalhes do usurio, role at a lista relacionada Atribuies de conjuntos
de permisses (Permission Set Assignments) e clique em Editar atribuies (Edit
Assignments).
4. Na caixa Conjuntos de permisses disponveis (Available Permission Sets), selecione
Gerente de contratao (Hiring Manager) e use as setas para mov-lo para a caixa
Conjuntos de permisses ativados (Enabled Permission Sets).
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 233
5. Clique em Salvar.
Repita essas etapas para os outros gerentes de contratao: Andy Macrola, Amy Lojack e Clark
Kentman.
Agora que atribumos o conjunto de permisses correto aos nossos gerentes de contratao,
vamos focar nos nossos entrevistadores. Mario agendou uma entrevista com um candidato na
prxima semana e Ben pediu para dois dos seus desenvolvedores entrevistarem o candidato.
Atribua o conjunto de permisses Entrevistador (Interviewer) a Melissa Lee e Craig Kingman,
para que eles possam verificar a posio e o formulrio e registrar suas revises da entrevista.
Experimente: Verifique se tudo est funcionando
Agora que os dados foram atribudos a usurios reais, vamos analisar o aplicativo Recruiting
para ver como as permisses de segurana e compartilhamento que definimos neste captulo
funcionam:
1. Primeiro faa login como Mario Ruiz verifique se ele consegue visualizar e editar
todas as posies, todos os candidatos e todos os formulrios de emprego. Verifique
se o boto Novo (New) est presente em todos os objetos no aplicativo Recruiting.
Verifique se ele consegue criar posies usando os dois tipos de registro de posio.
2. Faa login como Melissa Lee verifique se ela consegue visualizar as posies, mas
sem o boto Novo (New). Verifique se ela no consegue visualizar nenhum candidato,
formulrio de emprego, reviso e site de emprego.
3. Faa login como Ben Stuart verifique se ele consegue visualizar as posies e se
o boto Novo (New) est visvel. Verifique se ele consegue visualizar, sem editar, os
sites de emprego. Verifique se ele no consegue visualizar nenhum candidato.
Verifique se ele consegue visualizar os formulrios de emprego, mas sem editar seus
campos de pesquisa. Verifique se ele consegue visualizar as revises e se o boto Novo
(New) est visvel. (Como a aparncia das revises? Ele consegue visualizar os
nomes dos candidatos e os formulrios de emprego nas revises?)
4. Faa login como Mario Ruiz compartilhe manualmente o acesso de
leitura/gravao na posio DBA com Ben. Compartilhe manualmente o acesso de
leitura no candidato com Melissa e Ben. Compartilhe manualmente o acesso de
leitura/gravao no formulrio de emprego com Melissa e Ben.
5. Faa login novamente como Melissa Lee verifique se agora ela consegue visualizar
o candidato e o formulrio de emprego que Mario compartilhou com ela, mas sem
visualizar o nmero do CPF do candidato. Crie uma reviso para esse candidato.
6. Faa login novamente como Ben Stuart verifique se ele consegue editar a posio
Autor de documentao (Documentation Writer). Verifique se ele consegue ler e
234 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
atualizar a reviso da Melissa. Verifique se ele consegue atualizar o Status do
formulrio de emprego para Estender uma oferta (Extend an Offer).
Como nos samos? Se todos esses casos de uso funcionaram corretamente, voc configurou a
segurana e o compartilhamento do aplicativo Recruiting com sucesso! Se um caso de uso no
funcionou, verifique o papel, o perfil, o conjunto de permisses e as regras de compartilhamento
de cada usurio de acordo com as informaes da tabela Resumo das permisses necessrias:
Perfis Recrutador (Recruiter) e Funcionrio padro (Standard Employee).
Ainda resta um problema crtico relacionado segurana que precisamos resolver: quem ser
responsvel por supervisionar a operao do aplicativo Recruiting e dos seus dados relacionados
quando o aplicativo entrar em operao?
Delegando a administrao dos dados
Assim como a maioria dos aplicativos do Force.com, nosso aplicativo Recruiting no requer
uma administrao contnua entediante ou um olhar atento monitorando suas operaes dirias.
Depois de implantado, o aplicativo simplesmente funciona! Mas de vez em quando, surge uma
deciso ou um problema que requer interveno humana e algumas tarefas de administrao
manual bsicas so necessrias, como:
Um gerente de contratao est se afastando e possui quarenta posies abertas que precisam
ser transferidas para outro gerente
Um usurio do aplicativo Recruiting precisa ter acesso imediato aos dados privados
pertencentes a outro usurio que est de frias
O aplicativo Recruiting est com um acmulo de registros duplicados que precisam ser
removidos
Um novo funcionrio foi contratado e precisa ter acesso ao aplicativo Recruiting
Para lidar com essas situaes, algum pode precisar sobrepor as configuraes de segurana e
compartilhamento que acabamos de criar. Quem deve ter esses poderes no nosso aplicativo e
como esses poderes podem ser concedidos?
Obviamente, o administrador principal do Salesforce da sua empresa pode lidar com
praticamente qualquer problema que os usurios podem encontrar no Salesforce. Os
administradores principais so atribudos ao perfil Administrador do sistema (System
Administrator), que concede automaticamente diversas permisses administrativas globais,
incluindo:
"Exibir todos os dados (View All Data)" Visualiza todos os dados pertencentes a outros
usurios na sua organizao
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 235
"Modificar todos os dados (Modify All Data)" Modifica todos os dados pertencentes a
outros usurios na sua organizao, atualiza e exclui registros em massa e cancela a excluso
de registros excludos por outros usurios
"Personalizar aplicativo (Customize Application)" Customiza praticamente tudo no
Salesforce, de layouts de pgina a modelos de dados
"Gerenciar usurios (Manage Users)" Adiciona e remove usurio, redefine senhas e
concede permisses, entre outros
Em empresas pequenas, faz sentido ter apenas um administrador para resolver todas as questes
relacionadas ao Salesforce. Mas em empresas de mdio a grande porte, atribuir todas as
responsabilidades do Salesforce a somente uma pessoa no prtico, especialmente ao considerar
que uma empresa pode executar todos os seus negcios na nuvem usando um aplicativo
Force.com diferente para cada necessidade de negcios. Isso pode corresponder a dezenas de
aplicativos e centenas de milhares de usurios! Seu administrador principal do Salesforce
provavelmente vai enlouquecer, a menos que outras pessoas possam ajudar com a administrao.
Ao mesmo tempo, cada privilgio administrativo que voc concede aumenta o risco de exposio
dos dados confidenciais da sua empresa, por isso voc precisa ter um controle preciso sobre a
quantidade de acesso que voc permitir.
Para preservar a sanidade do seu administrador e a segurana da sua empresa, a plataforma
Force.com fornece duas formas para a delegao rpida de acesso de administrao a dados
restritos: permisses no nvel do objeto e grupos de administrao delegada.
Sobrescrevendo o compartilhamento com as
permisses de objeto
Acredite ou no, ns j delegamos algumas responsabilidades administrativas algumas pginas
atrs quando criamos o conjunto de permisses Recrutador (Recruiter). Se voc voltar nessa
seo, ver que ns selecionamos as permisses de objeto "Exibir tudo (View All)" e "Modificar
tudo (Modify All)" para publicaes de emprego e sites de emprego. Como voc pode esperar,
a opo "Exibir tudo (View All)" permite que os usurios visualizem todos os registros do
objeto, enquanto a opo "Modificar tudo (Modify All)" permite que os usurios visualizem,
editem e excluam todos os registros do objeto. Ento como a seleo dessas permisses
diferente da seleo isolada das permisses "Criar (Create)", "Leitura (Read)", "Editar (Edit)"
e "Excluir (Delete)"? E como as opes "Exibir tudo (View All)" e "Modificar tudo (Modify
All)" te ajudam a delegar a administrao?
A chave aqui a palavra "tudo". Quando voc concede a opo "Exibir tudo (View All)" ou
"Modificar tudo (Modify All)" a um objeto em um perfil ou conjunto de permisses, voc
concede acesso a todos os registros desse objeto aos usurios associados, independentemente
das configuraes de compartilhamento e segurana. Na essncia, as permisses "Exibir tudo
236 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
(View All)" e "Modificar tudo (Modify All)" ignoram o modelo de compartilhamento, a
hierarquia de papis e as regras de compartilhamento que as permisses "Criar (Create)",
"Leitura (Read)", "Editar (Edit)" e "Excluir (Delete)" respeitam. Alm disso, a opo "Modificar
tudo (Modify All)" tambm fornece ao usurio a capacidade de transferir, atualizar e excluir
em massa registros desse objeto especfico e aprovar esses registros, mesmo que o usurio no
seja um aprovador designado. Essas tarefas geralmente so reservadas para administradores,
mas como as opes "Exibir tudo (View All)" e "Modificar tudo (Modify All)" permitem a
substituio seletiva do sistema, as responsabilidades que geralmente so reservadas para o
administrador podem ser delegadas a outros usurios de forma totalmente controlada.
Nota: Aprenderemos mais sobre a aprovao de registros no prximo captulo. Outras
tarefas administrativas, como as atualizaes em massa, so abordadas na ajuda online
do Salesforce.
Voc pode estar se perguntando se as permisses de objeto "Exibir tudo (View All)" e "Modificar
tudo (Modify All)" so semelhantes s permisses globais "Exibir todos os dados (View All
Data)" e "Modificar todos os dados (Modify All Data)". verdade que todas elas ignoram o
modelo de compartilhamento, a hierarquia e as regras de compartilhamento, mas lembre-se
de que as permisses de objeto se aplicam somente a registros de um objeto especifico, enquanto
as permisses globais se aplicam a registros de todos os objetos da sua organizao. Como
princpio bsico, quando as permisses globais de administrao so muito liberais para um
determinado usurio, use as permisses do objeto para controlar o acesso aos dados em uma
base objeto por objeto.
Como ns j aplicamos as permisses de objeto quando criamos o conjunto de permisses
Recrutador (Recruiter), no necessrio repetir o processo aqui; no entanto, voc provavelmente
pode imaginar outras formas nas quais as permisses "Exibir tudo (View All)" e "Modificar
tudo (Modify All)" podem ser teis para este aplicativo. Por exemplo, como j discutimos,
certas leis podem exigir que sua empresa mantenha todos os registros de posio, candidato e
formulrio de emprego por um perodo especfico de tempo. Por isso optamos por no fornecer
aos recrutadores a capacidade de excluir esses registros. No entanto, quanto o tempo legal
expirar, sua empresa pode querer contratar um fornecedor especializado em limpeza de dados
para remover os dados antigos de recrutamento do sistema. Com a criao de um conjunto de
permisses com a permisso de objeto "Modificar tudo (Modify All)" em posies, candidatos
e formulrios de emprego, voc pode rapidamente fornecer os fornecedor as opes necessrias
para ele realizar seu trabalho sem expor o restante dos dados da sua empresa.
Grupos de administrao delegada
Ns acabamos de ver como as permisses do objeto "Exibir tudo (View All)" e "Modificar tudo
(Modify All)" podem ser usadas para tirar uma carga significativa dos ombros do administrador
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 237
principal. No entanto, existem outras responsabilidades administrativas que voc pode querer
delegar, mas no pode com as permisses do objeto. Por exemplo, voc pode no querer
sobrecarregar o administrador principal com as tarefas de adio manual de funcionrios novos
no Salesforce e de redefinio das senhas dos usurios. Alm disso, com o passar do tempo,
sua empresa pode precisar de um novo campo, de dois campos adicionados aos registros de
reviso ou de um novo tipo de registro para posies. Algumas vezes melhor delegar tarefas
administrativas bsicas como essas aos membros de um grupo para o administrador principal
poder focar em outras coisas.
Um grupo de administrao delegada um grupo de usurios no administradores com privilgios
administrativos limitados. Esses privilgios podem incluir:
Criar e editar usurios e redefinir senhas para usurios em papis especficos e todos os
papis subordinados
Atribuir usurios a perfis especificados
Fazer login como um usurio que concedeu acesso de login a um administrador
Gerenciar objetos personalizados criados pelo administrador principal
Agora vamos definir um grupo de administrao delegada no nosso aplicativo Recruiting que
permita que seus membros gerenciem os usurios do nosso aplicativo e faam ajustes nos objetos
personalizados do aplicativo sem ter acesso a todos os outros dados no Salesforce.
Experimente: Defina o grupo de administrao
do gerente de recrutamento
Vamos comear criando o grupo de administrao delegada:
1. Em Configurao, clique em Controles de segurana > Administrao delegada.
2. Clique em Novo.
3. Na caixa de texto Nome do grupo delegado (Delegated Group Name),
insira Administradores do aplicativo Recruiting (Recruiting
App Admins).
4. Na pgina de detalhes do Grupo delegado (Delegated Group), clique em Editar
(Edit).
5. Marque a caixa de seleo Ativar grupo para acesso de login (Enable
Group for Login Access).
A opo Ativar grupo para acesso de login (Enable Group for Login
Access) permite que os administradores delegados neste grupo faam login como um usurio
que possui acesso de login para administradores concedido explicitamente por um perodo
especifico de tempo. Isso pode ser til para resolver problemas que podem surgir para o usurio.
238 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
6. Clique em Salvar.
Na pgina de detalhes do Grupo delegado (Delegated Group), ns podemos usar a lista
relacionada Administradores delegados (Delegated Administrators) para especificar os usurios
que sero includos nesse grupo.
7. Clique em Adicionar (Add) na lista relacionada Administradores delegados
(Delegated Administrators).
8. Na primeira caixa de texto vazia, insira Phil Katz, O Gerente de contratao na
Universal Containers.
Nota: Os membros dos grupos de administradores delegados devem ter a
permisso "Exibir configurao (View Setup and Configuration)".
Cada grupo de administrao delegada pode ter at cinco membros, mas vamos incluir apenas
nosso Gerente de contratao nesse grupo devido ao foco do nosso aplicativo.
9. Clique em Salvar.
Voltamos para a pgina de detalhes do Grupo delegado (Delegated Group). A lista relacionada
Administrao de usurios (User Administration) nos permite especificar os tipos de usurios
que esse grupo pode gerenciar.
10. Clique em Adicionar na lista relacionada Administrao de usurios.
Em vez de selecionar usurios individuais para gerenciar, vamos selecion-los por seus papis.
Para cada papel selecionado, seus papis subordinados sero automaticamente selecionados
tambm. (Consulte novamente a hierarquia de papis da Universal Containers na pgina 209
se no lembrar quais papis so subordinados.) Ns no queremos que os membros desse grupo
administrem as contas do Salesforce dos executivos da Universal Containers, mas o grupo deve
ser capaz de administrar o aplicativo Recruiting para os recrutadores, diretores, gerentes e seus
subordinados.
11. Na caixa Papis e subordinados (Roles and Subordinates), insira:
Recrutador
Diretor de Gerenciamento de Produtos (Director Product
Management)
Diretor de QA (Director QA)
Gerente de Desenvolvimento de Software (SW Dev Manager)
12. Clique em Salvar.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 239
A lista relacionada Perfis atribuveis (Assignable Profiles) nos permite especificar os perfis que
esse grupo pode atribuir aos usurios que ele gerencia. Observe que os administradores delegados
no podem modificar esses perfis; eles somente podem atribuir usurios a eles.
13. Clique em Adicionar na lista relacionada Perfis atribuveis.
14. Nas caixas Perfis atribuveis (Assignable Profiles), insira Recrutador
(Recruiter) e Funcionrio padro (Standard Employee).
15. Clique em Salvar.
A lista relacionada Administrao de objeto personalizado (Custom Object Administration)
nos permite especificar os objetos personalizados que os administradores delegados desse grupo
podem administrar. Os administradores delegados podem administrar praticamente todos os
aspectos do objeto personalizado, como modificar os layouts da pgina, adicionar campos e at
mesmo excluir o objeto. No entanto, eles no podem configurar permisses para o objeto
personalizado, gerenciar o fluxo de trabalho e o compartilhamento do objeto e modificar os
relacionamentos com outros objetos.
16. Clique em Adicionar (Add) na lista relacionada Administrao de objeto
personalizado (Custom Object Administration).
Vamos conceder os membros desse grupo de administrador delegado (neste caso, Phil) a
capacidade de modificar o objeto Posio (Position). Dessa forma, se os registros de posio
precisarem de outro campo ou se os gerentes de contratao solicitarem outro tipo de recurso
no futuro, Phil poder fazer isso. (Claro que devemos alertar Phil que ele deve ter cuidado para
no excluir completamente o objeto Posio (Posio), pois os direitos administrativos no
objeto personalizado permitem que ele faa isso!)
17. Na primeira caixa de texto vazia, insira Posio (Position).
18. Clique em Salvar.
Com isso encerramos a configurao do nosso grupo de administrao delegada! Nosso aplicativo
Recruiting agora possui um administrador delegado que pode aliviar um pouco a carga do
administrador principal do Salesforce.
Experimente: Verifique se a administrao
delegada funciona
Para ver o que um administrador delegado do aplicativo Recruiting pode e no pode fazer, faa
login como Phil Katz.
1. Em Configurao, clique em Gerenciar usurios > Usurios.
240 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Observe que o link Editar (Edit) aparece ao lado de qualquer usurio atribudo a um papel ou
papel subordinado no qual nosso grupo de administrador delegado possa gerenciar usurios.
O link Editar (Edit) no aparece para usurios atribudos a outros papis, como Cynthia
Capobianco, a CEO.
Voc tambm ver que os botes Novo usurio (New User), Redefinir senha(s) (Reset
Password(s)) e Adicionar vrios usurios (Add Multiple Users) agora esto disponveis para
Phil. Vejamos o que acontecer se Phil adicionar um novo usurio.
2. Clique em Novo usurio.
A pgina Edio do usurio (User Edit) ser exibida. primeira vista, essa pgina se parece
com a pgina Edio do usurio (User Edit) que vimos quando adicionamos usurios quando
estvamos conectados como o administrador do sistema. Mas ao olhar atentamente as opes
disponveis nas listas suspensas Papel (Role) e Perfil (Profile), voc ver uma
diferena as opes so limitadas ao que especificamos quando criamos nosso grupo de
administrao delegada. Por exemplo, Phil no pode criar um usurio com um papel executivo
ou atribuir um usurio a um perfil diferente de Recrutador (Recruiter) ou Funcionrio padro
(Standard Employee).
No precisamos criar mais nenhum usurio no momento, ento clique em Cancelar (Cancel).
A ltima coisa que deve ser verificada a capacidade de Phil de modificar o objeto Posio
(Position).
3. Em Configurao, clique em Criar > Objetos.
Podemos ver que os links Editar (Edit) e Excluir (Del) esto disponveis ao lado do objeto
Posio (Position). Isso significa que Phil agora consegue editar e excluir o objeto Posio
(Position). Conclumos nosso teste!
Beyond the Basics
Voc sabia que pode configurar o login nico entre sua organizao e outros recursos
autorizados da web?
Digamos que voc quer que seus funcionrios precisem se lembrar de somente uma senha
ao fazer login no aplicativo Recruiting e no site da empresa. Voc pode trabalhar com um
provedor de identidade, trocar informaes com ele e configurar o Salesforce para login
nico.
Para obter mais informaes, consulte o tpico "Sobre o login nico" na Ajuda do
Salesforce.
Verso 8 | Chapter 7: Protegendo e compartilhando dados | 241
Resumindo
Este captulo abordou uma grande quantidade de fundamentos! Ns discutimos as diferenas
entre a segurana no nvel do objeto, do campo e do registro. Ns aprendemos como os perfis
e os papis trabalham juntos para primeiro determinar os objetos e as guias que um usurio
pode possivelmente usar e depois especificar os registros que um usurio pode realmente acessar
e editar. Ns tambm descobrimos formas de configurar outros recursos baseados em perfis,
como tipos de registro para melhorar a integridade dos nossos dados e a usabilidade do nosso
aplicativo. Por fim, ns testamos tudo e delegamos a administrao do nosso aplicativo
Recruiting de forma eficiente e segura. Agora que a segurana est organizada, vamos incorporar
algumas lgicas de negcios no nosso aplicativo com regras de fluxo de trabalho.
242 | Verso 8 | Chapter 7: Protegendo e compartilhando dados
Captulo 8
Colaborao com o Chatter
No ltimo captulo, estabelecemos um modelo de
compartilhamento e segurana para determinar quais dados
Tpicos:
Apresentando o Chatter
podem ser visualizados pelos diferentes tipos de usurios
Rastreando campos em
seus objetos
no aplicativo de recrutamento expandido. Aprendemos
como fcil restringir o acesso a campos e registros usando
Seguindo registros
a plataforma Force.com. Agora que nosso aplicativo est
Iniciando um ou dois
grupos
seguro, vamos facilitar a colaborao de recrutadores,
entrevistadores e gerentes de contratao com o processo
Apresentando as
Notificaes
de contratao. Com o Chatter, ns providenciamos uma
maneira rpida, efetiva e divertida de obter e compartilhar
informaes. Apresentando as aes do
editor
Neste captulo, apresentaremos alguns dos recursos bsicos
do Chatter, como monitoramento de feeds e
Resumindo
acompanhamento de registros, bem como demonstraremos
como o Chatter facilita muito a colaborao.
Apresentando o Chatter
O Chatter adiciona capacidades de colaborao ao seu aplicativo como jamais visto. Ao ativar
o Chatter para sua organizao, voc pode habilitar feeds para a maioria dos objetos padro e
para todos os objetos personalizados, permitindo que voc visualize atualizaes em tempo real
sempre que alteraes forem realizadas. Os usurios podem publicar em feeds, deixar comentrios
em publicaes, compartilhar arquivos e links, trabalhar em conjunto em documentos, seguir
pessoas e registros, entre outras opes. Com o rastreamento de feeds, os usurios podem at
mesmo seguir campos especficos de um registro. Quando um valor de um desses campos
alterado, o Chatter publica uma atualizao no feed, alertando instantaneamente todos aqueles
que seguem o registro. Com as menes, os usurios podem mencionar algum para
certificarem-se de que essa pessoa visualizar a atualizao. Por fim, com as hashtags, os usurios
podem adicionar tpicos a publicaes e comentrios para que outras pessoas encontrem as
atualizaes com mais facilidade.
Os usurios do Chatter tm seus prprios feeds no perfil pessoal, onde podem publicar
atualizaes e visualizar atualizaes das pessoas e registros que seguem. Os usurios tambm
podem criar grupos pblicos ou privados visando estabelecer colaboraes mais especficas.
Cada grupo conta com seu prprio feed, no qual os membros podem compartilhar informaes,
fazer perguntas e carregar arquivos como forma de colaborao. O Chatter facilita a conexo
com pessoas e informaes importantes para voc.
Para obter mais informaes, consulte Viso geral do Chatter (Chatter Overview) na Ajuda
(Help) do Salesforce.
Rastreando campos em seus objetos
O Chatter pode monitorar alteraes de campos para a maioria de seus registros e objetos,
incluindo seus objetos personalizados, e enviar automaticamente essas informaes para o feed
dos registros. Rastrear campos o mantm atualizado sobre as ltimas atualizaes de objetos e
registros do seu interesse. Basta ativar o rastreamento de feed no objeto e selecionar os campos
que sero rastreados.
244 | Verso 8 | Chapter 8: Colaborao com o Chatter
Experimente: habilite o monitoramento de feeds
em posies e formulrios de emprego
Os recrutadores na Universal Containers desejam saber quando um status ou localizao de
posio alterado. Os gerentes de contratao desejam saber quando um formulrio de emprego
enviado. Vamos monitorar esses campos para ele no Chatter.
Para ativar o Chatter para sua organizao:
1. Em Configurao, clique em Personalizar > Chatter > Configuraes.
2. Clique em Editar.
3. Selecione Ativar.
4. Clique em Salvar.
Figura 80: Configuraes do Chatter
Agora vamos monitorar alteraes nos campos Status e Localizao (Location) para
as posies:
1. Em Configurao, clique em Personalizar > Chatter > Rastreamento de feed.
2. Selecione o objeto Posio (Position).
3. Selecione a caixa de seleo Habilitar rastreamento de feeds (Enable
Feed Tracking).
4. Selecione os campos Status e Localizao (Location). Se qualquer um desses
campos for alterado em uma posio, o feed da posio ser atualizado e os
recrutadores que seguem o feed sero notificados.
5. Clique em Salvar.
Verso 8 | Chapter 8: Colaborao com o Chatter | 245
Figura 81: Rastreamento de feed para posies
De modo semelhante, o gerente de contratao deseja ser notificado quando o Status de um
formulrio de emprego for alterado. Vamos ento rastrear esse campo:
1. Em Configurao, clique em Personalizar > Chatter > Rastreamento de feed.
2. Selecione o objeto Formulrio de emprego (Job Application).
3. Selecione Habilitar rastreamento de feeds.
4. Selecione o campo Status. Quando o valor alterado, por exemplo de Novo (New)
para Revisar currculo (Review Resume), o feed do formulrio de emprego atualizado
e os gerentes de contratao que seguem o feed so notificados.
5. Clique em Salvar.
Aproveitando que estamos tratando de rastreamento de feeds, vamos ativar o rastreamento
para o resto dos nossos objetos personalizados. Repita as etapas realizadas nos objetos Posio
(Position) e Formulrio de emprego (Job Application) para ativar o rastreamento de feed para
Candidato (Candidate), Site de empregos (Employment Website), Publicao de emprego
(Job Posting) e Reviso (Review).
246 | Verso 8 | Chapter 8: Colaborao com o Chatter
Observe o que fizemos
Ns decidimos monitorar atualizaes nos campos Status e Localizao (Location)
no objeto Posio (Position). Se algum quiser visualizar atualizaes de campos para uma
posio, isso pode ser feito visualizando o feed na pgina de detalhes do registro. Por exemplo,
quando o recrutador responsvel por ajudar a contratar membros para o departamento de
Publicaes tcnicas observar o registro do Autor de documentao (Documentation Writer),
ele ver que o local foi alterado para San Francisco, CA.
Figura 82: Atualizao do campo de localizao em um feed de registro de posio no
site completo
Inicie o Salesforce1 para visualizar como as atualizaes de campo so exibidas em registros de
posio em um dispositivo mvel. No menu de navegao, toque em Mostrar mais (Show
more) > Posies (Positions)e depois em Autor de documentao (Documentation Writer)..
Agora h trs visualizaes em vez das duas que vimos nos captulos anteriores. A nova
visualizao, que exibida primeiramente quando voc abre um registro, o feed de registro.
Feeds de registro so exibidos somente quando os feeds esto habilitados para o tipo de objeto
do registro. O feed de registro exibe todas as atualizaes de campo do Chatter do registro
para os campos que selecionamos quando habilitamos os feeds no objeto de posio.
Verso 8 | Chapter 8: Colaborao com o Chatter | 247
Figura 83: Atualizao do campo de localizao em um registro de posio no
Salesforce1
Monitorar feeds timo, mas quem quer continuar tendo que acessar a pgina de detalhes do
registro para visualizar as atualizaes? A seguir, mostraremos como fcil seguir os registros,
levando assim as atualizaes at voc.
Seguindo registros
O Chatter permite que voc siga usurios, grupos, documentos e registros nos quais voc tem
interesse. As atualizaes sobre as pessoas e as informaes com os quais voc se preocupa so
publicadas no seu feed pessoal. Tambm possvel ativar alertas por email como quando pessoas
deixam comentrios na sua publicao, assim como obter resumos dirios e semanais com
publicaes e comentrios do seu feed pessoas e dos grupos aos quais voc pertence.
Experimente: siga um registro de formulrio de
emprego
Para nosso aplicativo de recrutamento, sabemos que os gerentes de contratao desejam
monitorar formulrios de emprego para suas posies abertas. Tudo o que eles precisam fazer
seguir esses registros.
Para testar voc mesmo essa funo, basta abrir a pgina de detalhes de um formulrio de
emprego e clicar em Seguir (Follow). realmente muito simples!
248 | Verso 8 | Chapter 8: Colaborao com o Chatter
Figura 84: Seguindo um registro de formulrio de emprego
Todas as atualizaes do campo rastreado, bem como publicaes e comentrios de outros
usurios nos registros que voc est seguindo, so publicados no seu feed pessoal. Use o Chatter
para conectar as pessoas certas aos registros certos e comear a colaborar em tempo real com
o processo de contratao.
Beyond the Basics
Voc sabia que pode usar o Chatter para colaborar fora do seu navegador?
Digamos que voc queira ficar de olho nas atualizaes do Chatter, mas no pode efetuar
login atravs de um navegador. Por exemplo, se voc est criando um conjunto de slides
no seu laptop e no h espao na tela suficiente para seu navegador. Nesses casos, ter o
cliente do Chatter instalado til.
O Chatter Desktop um cliente do Chatter que integra seu computador com o Chatter.
O Chatter Desktop torna a colaborao muito fcil. Deseja receber alertas quando pessoas
que voc segue publicam novidades? Basta instalar o Chatter Desktop e ele exibir
notificaes em pop-up para cada atualizao. Precisa compartilhar um arquivo com seus
colegas de trabalho? Basta arrast-lo para a interface do Chatter Desktop.
Para instalar o Chatter Desktop:
1. Na parte superior de qualquer pgina do Salesforce, clique na seta para baixo
prxima ao seu nome. No menu abaixo do seu nome, selecione Minhas
configuraes (My Settings) ou Configurao (Setup), independentemente
de qual opo for exibida.
2. No painel esquerdo, selecione um dos seguintes:
Verso 8 | Chapter 8: Colaborao com o Chatter | 249
Se voc clicou em Minhas configuraes (My Settings), selecione Minhas
configuraes (My Settings) > Suplementos do desktop (Desktop
Add-Ons) > Chatter Desktop.
Se voc clicou em Configurao (Setup), selecione Integrao com o desktop
(Desktop Integration) > Chatter Desktop.
Iniciando um ou dois grupos
Agora que voc ativou o Chatter, incentive as pessoas a colaborarem criando grupos de discusso
pblicos e privados sobre interesses comuns. Por exemplo, voc pode criar grupos para vendas,
marketing, equipes de desenvolvimento de produtos, etc.
Grupos so uma tima maneira dos usurios compartilharem informaes e arquivos, bem
como fazerem perguntas. Em vez de enviar um email em massa, os membros do grupo podem
publicar questes na pgina do grupo. Quando uma questo respondida, ela respondida
para todos os membros do grupo. Os grupos fornecem acesso instantneo a especialistas.
Experimente: crie um grupo
O Chatter gira em torno da colaborao e do compartilhamento de informaes. Agora que
voc ativou os feeds, uma das melhores maneiras de promover a colaborao criar grupos
sobre interesses comuns. Vamos criar um grupo de colaborao privado para os recrutadores
para que eles possam colaborar com os trabalhos de recrutamento e compartilhar informaes
no grupo de forma segura.
1. No Chatter, clique em Grupos (Groups) > Novo grupo (New Group).
2. Use um nome descritivo para o grupo, como Equipe de recrutamento. Voc tambm
pode adicionar uma breve descrio do grupo.
3. Selecione Privado (Private) caso queira criar um grupo somente para os recrutadores.
Se voc no selecionar a opo Privado (Private), qualquer usurio do Chatter na sua
empresa poder se juntar ao grupo. De forma semelhante, como os clientes so
usurios de fora da empresa, voc provavelmente no deseja que eles se juntem ao
grupo. Caso futuramente seja necessrio conceder acesso aos clientes, voc poder
fazer isso alterando as configuraes do grupo.
4. Clique em Salvar.
250 | Verso 8 | Chapter 8: Colaborao com o Chatter
Figura 85: Criando um grupo de colaborao privado
Voc criou um grupo. Agora basta adicionar ou convidar membros (neste caso recrutadores)
e talvez fazer o upload de uma boa imagem para representar o grupo.
Apresentando as Notificaes
Para usurios que esto frequentemente longe do computador, saber quando um determinado
item do Salesforce precisa de ateno muito importante. Os usurios do Salesforce1 podem
receber dois tipos de notificaes em seus dispositivos mveis.
As notificaes em aplicativo mantm os usurios informados sobre atividades relevantes
enquanto eles esto usando o aplicativo. Os usurios podem acessar as 20 notificaes mais
recentes tocando no cone .
As notificaes de upgrade automtico so exibidas em dispositivos mveis do usurio quando
o aplicativo Salesforce1 no est aberto. As notificaes de upgrade automtico no so
compatveis no aplicativo de navegador mvel Salesforce1.
Verso 8 | Chapter 8: Colaborao com o Chatter | 251
Experimente: ative as notificaes
Vamos nos certificar de que as notificaes esto abertas, assim podemos confiar no fato de
que os usurios sabero quando algum faz comentrios em uma de suas publicaes ou os
menciona em algum local do Salesforce.
1. Em Configurao, clique em Administrao mvel > Notificaes > Configuraes.
2. Certifique-se de que ambas as opes Ativar notificaes em aplicativo (Enable
in-app notifications) e Ativar notificaes automticas (Enable push notifications)
esto selecionadas.
3. Clique em Salvar.
Observe o que fizemos
Assim como fizemos quando testamos o acesso do usurio em Protegendo e compartilhando
dados na pgina 169, teremos que efetuar login como mltiplos usurios para testar as
notificaes.
Primeiramente, vamos criar um pouco de atividade no Chatter.
1. Caso ainda no o tenha feito, efetue login no Salesforce como Ben Stuart.
2. Abra o perfil de Mario Ruiz. Voc pode fazer inserindo o nome (Mario Ruiz) na
caixa de pesquisa global e clicando no registro recente que aparece abaixo da caixa.
3. Na caixa de texto, insira Voc poderia compartilhar os candidatos
e formulrios para a posio de Engenheiro SW comigo
@Melissa Lee? Obrigado!, e clique em Compartilhar (Share).
4. Efetue login como Melissa Lee e faa um comentrio na publicao: Desde j
agradeo, @Mario Ruiz!.
Agora vamos verificar se nosso usurio recebeu as notificaes corretas no Salesforce1.
1. Efetue login no Salesforce1 como Mario Ruiz. Toque no cone e verifique se voc
tem duas novas notificaes em aplicativo: uma de quando Ben fez uma publicao
em seu perfil e uma de quando Melissa o mencionou.
252 | Verso 8 | Chapter 8: Colaborao com o Chatter
Figura 86: Notificaes para Mario Ruiz
2. Efetue login no Salesforce1 como Ben Stuart. Verifique se voc tem uma nova
notificao em aplicativo de quando Melissa comentou em sua publicao.
Apresentando as aes do editor
Agora que ativamos o Chatter, vimos o que ele pode fazer para usurios que esto se
comunicando diretamente. H mais um recurso que tira proveito do Chatter para poupar o
tempo dos usurios nas tarefas do dia a dia: as aes do editor. O recurso de aes do editor
permite a criao de aes e sua incluso no editor do Chatter na pgina inicial, na guia Chatter,
nos grupos do Chatter e nas pginas de detalhes de registro. Tambm possvel personalizar
a ordem em que as aes padro do Chatter aparecem, incluindo Publicar, Arquivar, Vincular
e Pesquisar (Post, File, Link, Poll). As aes facilitam o trabalho dos usurios diretamente a
partir de qualquer local do aplicativo.
Por exemplo, Megan Smith no precisa mais acessar o menu de navegao, abrir o item Contatos
(Contacts), clicar em Novo (New) e especificar com qual conta seu novo contato deve ser
associado. Com as aes do editor, ela pode criar um novo contato a partir do feed da conta
simplesmente clicando ou tocando na ao associada no editor. As aes do editor faro o resto
do trabalho.
No editor acessvel no feed, j temos diversas aes padro.
Aes padro so aes automaticamente includas quando o Chatter ativado, como Publicar,
Arquivar, Vincular e Pesquisar (Post, File, Link, Poll).
Aes de criao so aes que permitem que os usurios criem registros como Novo contato
(New Contact), Nova oportunidade (New Opportunity) ou Novo lead (New Lead). Elas
respeitam suas regras de validao e obrigatoriedade de campo, e voc pode selecionar quais
campos sero exibidos para cada ao.
Verso 8 | Chapter 8: Colaborao com o Chatter | 253
Aes Registrar uma chamada permitem que os usurios registrem detalhes de chamadas
telefnicas ou outras interaes com os clientes. Esses registros de chamadas so salvos
como tarefas concludas.
Aes de atualizao permitem que os usurios faam alteraes em um registro atravs da
pgina de detalhes.
A princpio, a maioria dessas aes prontas para o uso no so muito teis para os usurios do
nosso aplicativo de recrutamento, porm podemos facilmente personalizar esses recursos. Nesta
seo, personalizaremos as aes exibidas aos nossos usurios em todo o site e no Salesforce1.
Com a plataforma, podemos declarativamente criar trs tipos de aes.
Aes de criao
Aes de registro de chamadas
Aes de atualizao
No podemos criar aes padro, porm podemos controlar se elas so exibidas ou no, bem
como em que ordem elas so exibidas. Para as aes de criao e registro de chamadas, podemos
criar aes globais ou aes especficas de objeto. Para aes de atualizao, podemos criar
somente aes especficas de objeto.
Experimente: crie uma ao global
As aes globais permitem que os usurios realizem tarefas como criar registros ou registrar
detalhes de chamadas diretamente a partir do editor na guia Incio (Home), guia Chatter, feed
do Salesforce1 e nos grupos do Chatter. Voc tambm pode adicionar aes de criao a pginas
de detalhes do registro. As aes de criao globais no estabelecem automaticamente um
relacionamento entre o registro criado e qualquer outro registro. Por exemplo, se Ben Stuart
usa uma ao de criao global em uma conta para criar um contato, a ao no associa
automaticamente o novo contato com a conta. No entanto, aes especficas de objeto faro
essa associao. Trataremos delas futuramente.
Vamos ento criar uma ao global.
1. Em Configurao (Setup), clique em Criar (Create) > Aes globais (Global
Actions).
2. Clique em Nova ao.
3. Em Tipo de ao (Action Type), deixe Criar um registro (Create a Record)
selecionado.
4. Em Objeto de destino (Target Object), selecione Posio (Position).
5. Em Tipo de registro (Record Type), selecione Posio padro (Standard
Position). Criaremos uma ao para posies de TI aps concluirmos esta ao.
254 | Verso 8 | Chapter 8: Colaborao com o Chatter
6. Deixe Rtulo (Label) em branco por enquanto.
7. Em Tipo de rtulo padro (Standard Label Type), selecione Novo
Tipo de registro (New Record Type). Observe que Rtulo (Label) no
mais exibido. Ao selecionar um valor diferente de Nenhum (None), estamos
informando ao Salesforce para automatizar a rotulao da ao. O tipo de rtulo
padro selecionado usa o tipo de registro selecionado para formar o rtulo: Nova
posio padro (New Standard Position).
8. Em Nome (Name), insira New_Standard_Position.
9. Insira uma descrio.
10. Clique em Salvar.
Agora vamos configurar os campos que sero exibidos no editor quando um usurio selecionar
esta ao.
Apresentando os layouts de ao
Assim como podemos personalizar pginas de registro de objetos com layouts de pgina,
tambm podemos personalizar aes do editor usando layouts de ao. Usando o editor de layout
de ao, podemos selecionar os campos que sero exibidos quando um usurio clicar em uma
ao.
O editor de layout de ao tem duas partes: uma paleta na parte superior da tela e o layout de
ao abaixo. A paleta contm campos do objeto de destino da ao que possvel adicionar ao
layout da ao. No entanto, os seguintes tipos de campo no so suportados e no aparecero
na paleta:
Campos de tipo de registro
Campos do tipo somente leitura, como os de resumo de totalizao, frmula e numerao
automtica
Campos somente leitura do sistema, como Criado por ou ltima modificao
feita por
Nota: Ao converter um tipo de campo de um que suportado pelas aes para outro
que no suportado, o campo ser removido do layout da ao. Se voc converter o
campo de volta para um tipo suportado sem alterar o layout da ao, o campo ser
adicionado automaticamente de volta no layout. Se voc tiver editado o layout e, em
seguida, convertido o campo de volta para um tipo suportado, adicione o campo de
volta ao layout manualmente.
Campos de rea de rich text so suportados apenas quando includos em layouts de uma coluna
ou como campos que se estendem por ambas as colunas em layouts de duas colunas. Se voc
Verso 8 | Chapter 8: Colaborao com o Chatter | 255
adicionar um campo de rea de rich text a apenas uma coluna em um layout de duas colunas,
ele aparecer como rea de texto simples, visto que no h espao suficiente para exibir o editor
de rich text completo.
Experimente: personalize um layout de ao
Ns queremos minimizar o nmero de campos no layout da ao de modo que os usurios
possam concentrar-se nas informaes mais importantes. Visando o mais alto nvel de
usabilidade, oito campos um bom limite. Adicionar mais de 20 campos pode afetar seriamente
a eficincia do usurio. Ns definiremos valores de campo predefinidos para Status, Data
de abertura (Open Date) e Contratado por (Hire By), assim no adicionaremos
esses campos ao layout.
1. Arraste os seguintes campos para a primeira coluna do layout de ao.
Tipo
Salrio mnimo
rea funcional
2. Arraste os seguintes campos para a segunda coluna.
Gerente de contratao
Local
Salrio mximo
Nvel do emprego
Figura 87: Layout da ao Nova posio padro (New Standard Position)
3. Clique em Salvar.
256 | Verso 8 | Chapter 8: Colaborao com o Chatter
Experimente: adicione valores de campo predefinidos
Alguns campos ainda precisam ser preenchidos: Status, Data de abertura (Open
Date) e Contratado por (Hire By). Esses campos representam detalhes importantes,
mas no precisamos que nossos usurios os preencham a partir do editor. Sabemos que todos
os novos registros de posio devem ter o Status de Nova posio (New Position), uma Data
de abertura (Open Date) da data atual e a opo Contratado por (Hire By)
configurada para 90 dias aps a Data de abertura (Open Date). Agora vamos tratar daqueles
com valores de campo predefinidos a partir da pgina de detalhes para a ao global Nova
posio padro (New Standard Position).
1. Na lista relacionada Valores de campo predefinidos (Predefined Field Values), clique
em Novo (New).
2. Na lista suspensa Nome do campo (Field Name), selecione Status.
3. Para o valor especfico, selecione Nova posio (New Position).
4. Clique em Salvar.
Figura 88: Configurando o valor predefinido para um status de nova posio
Agora todas as posies criadas usando esta ao global tero automaticamente o Status de
Nova posio (New Position). Usurios que criarem posies a partir do editor no precisam
se preocupar em selecionar esse campo. Eles podem se concentrar nas informaes variveis.
Use as mesmas etapas para criar valores de campo predefinidos para Data de abertura
(Open Date) e Contratado por (Hire By) usando esta tabela.
Tabela 39: Valores de campo predefinidos adicionais
Novo valor de campo Nome do campo
TODAY() Data de abertura
TODAY() + 90 Contratado por
Pronto! Agora vamos criar mais algumas aes globais. Atualmente temos uma para criar novas
posies padres, porm o que faremos quanto s posies de TI? Alm disso, nossos
Verso 8 | Chapter 8: Colaborao com o Chatter | 257
recrutadores tambm gostariam de poder criar facilmente novos registros de candidatos e
formulrios de emprego. Vamos colocar a mo na massa!
Experimente: crie mais aes globais
Comearemos com uma ao global para criar novas posies de TI. Repita todas as etapas
realizadas para criar a ao global Nova posio padro (New Standard Position), porm defina
o tipo de registro como Posio de TI (IT Position) Depois de fazer isso, use a tabela a seguir
para criar as outras duas aes globais.
Layout da ao Informaes da ao Ao global
Coluna 1: Novo candidato
Tipo de ao: Criar um
registro
Nome
Objeto de destino:
Candidato
Email
Educao
Tipo de rtulo
padro: Novo Registro
Coluna 2:
Nome: New_Candidate
Sobrenome
Anos de experincia
Cidade
Novo aplicativo
Candidato Tipo de ao: Criar um
registro
Posio
Objeto de destino:
Formulrio de emprego
Carta de apresentao
Rtulo: Novo aplicativo
Tipo de rtulo
padro: --Nenhum--
Nossa ao Novo candidato (New Candidate) no precisa de nenhum valor de campo
predefinido, uma vez que no possvel prever os valores de qualquer um dos campos. A ao
Novo aplicativo (New application), no entanto, precisa de valores de campo predefinidos.
Sabemos que todos os formulrios de emprego criados a partir do editor devem ser marcados
como novos. Assim, crie um valor de campo predefinido para a ao Novo aplicativo (New
application) para definir automaticamente o campo Status como Novo (New).
258 | Verso 8 | Chapter 8: Colaborao com o Chatter
Apresentando os layouts de editor globais
Os layouts de editor globais determinam quais aes so exibidas no editor em diversas pginas
do Salesforce, incluindo a guia Incio (Home), guia Chatter e as pginas de detalhes de grupo
do Chatter no site completo, assim como o feed no Salesforce1. Os layouts de editor globais
podem incluir somente aes globais.
Agora que criamos todas as aes globais necessrias para nossos recrutadores, vamos adicion-las
a um layout de editor global.
Experimente: personalize um layout de editor global
Antes de comearmos, vamos nos certificar de que podemos adicionar nossas aes a um layout
de editor global. Em Configurao (Setup), clique em Personalizar (Customize) > Chatter
> Configuraes (Settings) e certifique-se de que a opo Ativar aes de editor
(Enable Publisher Actions) est selecionada.
Agora vamos trabalhar no layout!
1. Em Configurao, clique em Personalizar > Chatter > Layouts do editor.
Assim como layouts de pginas e layouts compactos, cada layout de editor global pode ser
atribudo a um nico perfil. Como os recrutadores tm diferentes necessidades em relao ao
resto da empresa, vamos criar um layout personalizado com aes especficas para os recrutadores.
Atribuiremos esse layout ao perfil Recrutador para que nossos funcionrios padro, que no
precisam frequentemente realizar tarefas como criar candidatos ou formulrios de emprego,
no tenham que lidar com aes irrelevantes.
2. Clique em Novo.
3. Selecione Layout global (Global Layout) como o Layout do editor existente
(Existing Publisher Layout) que ser clonado.
4. Em Nome do layout do editor (Publisher Layout Name), insira
Layout do recrutador (Recruiter Layout).
5. Clique em Salvar.
Agora vamos nos livrar de aes que so mais relevantes para os representantes de vendas do
que para os recrutadores.
1. Arraste Novo contato (New Contact), Registrar uma chamada (Log a Call), Nova
oportunidade (New Opportunity), Novo caso (New Case) e Novo lead (New Lead)
de volta para a paleta.
Verso 8 | Chapter 8: Colaborao com o Chatter | 259
2. Arraste Nova posio de TI (New IT Position), Nova posio padro (New
Standard Position), Novo aplicativo (New Application) e Novo candidato (New
Candidate) para o layout de modo que eles sejam exibidos aps a Pesquisa (Poll).
3. Clique em Salvar.
Agora que temos um layout do editor funcionando, vamos atribu-lo ao perfil Recrutador para
garantir que os recrutadores possam visualiz-lo.
1. Clique em Atribuio do layout do editor (Publisher Layout Assignment).
2. Clique em Editar atribuio (Edit Assignment) e mude o layout do editor do perfil
Recrutador para o layout do Recrutador.
3. Clique em Salvar.
Observe o que fizemos
Antes de seguirmos em frente para criarmos o outro tipo de ao (especfica de objeto), vamos
nos certificar de que nossas aes globais esto funcionando conforme esperamos.
Para testar nossas alteraes, efetue login no Salesforce como Mario Ruiz e verifique se o
usurio Mario pode criar uma posio de TI, uma posio padro, um candidato e um formulrio
de emprego a partir do editor global. Verifique tambm no Salesforce1.
1. Efetue login no Salesforce como nosso recrutador, Mario Ruiz.
2. Na guia Incio (Home) do editor, clique em Mais (More). Os quatro opes inferiores
devem ser Nova posio de TI (New IT Position), Nova posio padro (New
Standard Position), Novo aplicativo (New Application) e Novo candidato (New
Candidate).
3. Clique em Nova posio de TI (New IT Position). Os campos exibidos devem
corresponder ao que configuramos no layout da ao.
260 | Verso 8 | Chapter 8: Colaborao com o Chatter
Figura 89: Campos para uma Nova posio de TI no Editor do Chatter
4. Preencha os campos e clique em Criar (Create).
Logo que clicarmos em Criar (Create), um item de feed ser criado.
Figura 90: Item de feed para nova posio de engenheiro QE II
5. Clique no nome da posio da nova posio de TI.
6. Verifique se h valores atribudos aos nossos valores de campo predefinidos: Status
(Status) deve ser Nova posio (New Position), Data de abertura (Open
Date) deve ser hoje e Contratado por (Hire By) deve ser 90 dias a partir de
hoje.
7. Retorne guia Incio (Home) e repita essas etapas de verificao para as aes Nova
posio padro (New Standard Position), Novo aplicativo (New Application) e Novo
candidato (New Candidate).
Apresentando as aes especficas de objeto
Espere! Isso no tudo! Tambm podemos criar aes especficas de objeto.
Assim como as aes globais, as aes especficas de objeto permitem que os usurios criem
registros ou gravem detalhes sobre chamadas ou outras interaes. A principal diferena que
Verso 8 | Chapter 8: Colaborao com o Chatter | 261
voc pode adicionar essas aes somente a pginas de detalhes do registro, pois elas so
automaticamente associadas a um objeto especfico.
Quando um usurio cria um registro usando uma ao de criao especfica de objeto, um item
de feed desse registro exibido:
no feed do registro em que o novo registro foi criado.
Como a primeira entrada no feed do novo registro.
No feed do Chatter do usurio que criou o registro.
No feed do perfil do usurio que criou o registro.
No feed do Chatter de qualquer usurio que segue o registro no qual o novo registro foi
criado.
No feed do Chatter de quaisquer usurios que, por meio de acionadores personalizados ou
regras de seguimento automtico de novos registros, seguem automaticamente o novo
registro.
Experimente: crie uma ao especfica de objeto
Aes especficas de objeto sero muito teis para nossos recrutadores. Se ns adicionarmos
uma ao ao registro de posio para criar um novo aplicativo de emprego, os usurios no
tero que especificar a posio com a qual o novo aplicativo est associado. A plataforma
simplesmente saber que dever associar a ao com o registro de posio. Vamos fazer isso
agora! A maior eficincia est apenas a um passo de distncia!
1. Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects)e, por fim,
em Posio (Position).
2. Na lista relacionada Botes (Buttons), Links e Aes (Actions), clique em Nova
ao (New Action).
Isso dever ser familiar. Os campos que precisamos preencher para criar uma ao especfica
de objeto so quase idnticos aos campos que preenchemos ao criar aes globais. H somente
um novo campo: Nome do objeto (Object Name). Como estamos criando uma nova
ao no objeto Posio (Position), a plataforma sabe que o Nome do objeto (Object
Name) deve ser Posio (Position). Isso significa que essa ao s pode ser adicionada a layouts
de pgina do objeto Posio (Position). Agora vamos preencher o resto dos campos.
3. Em Tipo de ao (Action Type) selecione Criar um registro (Create a
Record).
4. Em Objeto de destino (Target Object), selecione Formulrio de emprego
(Job Application).
5. Em Rtulo (Label), insira Novo aplicativo (New Application).
262 | Verso 8 | Chapter 8: Colaborao com o Chatter
6. Deixe Tipo de rtulo padro (Standard Label Type) com seu valor
padro.
7. Clique em Salvar.
Logo que salvarmos, veremos o editor de layout de ao para nossa nova ao. H somente
alguns campos no objeto Formulrio de emprego (Job Application), assim normalmente ser
fcil determinar quais campos desejamos adicionar ao layout. Como todos os formulrios de
emprego criados usando esta ao sero automaticamente relacionados com a posio que o
usurio abriu, no precisamos adicionar o campo Posio (Position) ao layout.
Proprietrio (Owner) ser automaticamente atribudo ao usurio que criar o registro.
Quanto ao Status, podemos confiar que todos os formulrios de emprego criados sero Novos
(New) por padro, assim podemos cuidar desse campo com um valor de campo predefinido.
Nota: Voc poder receber uma mensagem o alertando que exigem campos necessrios
e no preenchidos no layout. Nesse caso, o campo necessrio e no preenchido
Posio (Position), porm no se preocupe! A plataforma automaticamente
associar o formulrio de emprego com a posio em que o criamos, uma vez que essa
ao s ser acessada a partir de um registro de posio.
Isso nos deixa somente com dois campos, assim, adicione Candidato e Carta de apresentao
ao layout e salve o layout.
Agora vamos atribuir um valor de campo predefinido opo Status antes que esqueamos!
8. Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects) e selecione
Posio (Position).
9. Na lista relacionada Botes (Buttons), Links e Aes (Actions), clique em Novo
aplicativo (New Application).
10. Na lista relacionada Valores de campo predefinidos (Predefined Field Values), clique
em Novo (New).
11. Em Nome do campo (Field Name), selecione Status.
12. Para o valor especfico, selecione Novo (New).
13. Clique em Salvar.
Experimente: crie mais aes especficas de objeto
Agora que praticamos a criao de aes especficas de objeto, vamos adicionar mais alguns.
Layout da ao Informaes da ao Objeto
Posio
Tipo de ao: Criar um
registro
Site de empregos
Verso 8 | Chapter 8: Colaborao com o Chatter | 263
Layout da ao Informaes da ao Objeto
Objeto de destino:
Publicao de emprego
Rtulo: Nova publicao
Tipo de rtulo
padro: --Nenhum--
Candidato
Posio Tipo de ao: Criar um
registro
Carta de apresentao
Objeto de destino:
Formulrio de emprego
Rtulo: Novo aplicativo
Tipo de rtulo
padro: --Nenhum--
Site de empregos
Tipo de ao: Criar um
registro
Posio
Objeto de destino:
Publicao de emprego
Rtulo: Nova publicao
Tipo de rtulo
padro: --Nenhum--
Formulrio de emprego
Classificao Tipo de ao: Criar um
registro
Avaliao
Objeto de destino:
Reviso
Tipo de rtulo
padro: Novo Registro
Nome: New_Review
Apenas uma destas aes precisa de um valor predefinido, assim vamos tratar disso agora.
1. Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects)e, por fim,
em Candidato (Candidate).
2. Na lista relacionada Botes (Buttons), Links e Aes (Actions), clique em Novo
aplicativo (New Application).
264 | Verso 8 | Chapter 8: Colaborao com o Chatter
3. Crie um valor de campo predefinido que automaticamente configure a opo Status
como Novo (New).
Experimente: atribua aes especficas de objeto
a layouts de pgina
Diferente das aes globais, no h um novo tipo de layout para as aes especficas de objeto.
No entanto, h um local especial para elas em todos os layouts de pgina. A rea Aes do
editor (Publisher Actions) encontrada no editor do layout de pgina se parece e funciona de
modo muito semelhante ao editor dos layouts de editor globais. Tudo o que precisamos fazer
arrastar aes da paleta e solt-las nos locais corretos.
1. Em Configurao (Setup), clique em Criar (Create) > Objetos (Objects)e, por fim,
em Posio (Position).
2. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo a Layout de posio de TI (IT Position Layout).
Observe que a rea Aes do editor (Publisher Actions) est vazia. Atualmente este layout da
pgina est usando o layout de editor global atribudo ao perfil de cada usurio. Como criamos
aes especficas de objeto, no podemos adicion-las ao layout de editor global. Isso no um
problema. Para que nossas novas aes apaream nos registros de posio do editor, basta
substituirmos o layout de editor global.
3. Na rea Aes do editor (Publisher Actions), clique em substituir o layout de editor
global (override the global publisher layout).
Quando queremos substituir o layout de editor global, a plataforma automaticamente fornece
algumas aes: Aes padro do Chatter como Publicar (Post) e Arquivar (File), bem como
Aes inteligentes mveis (Mobile Smart Actions). As aes inteligentes mveis (Mobile Smart
Actions) so um conjunto de aes pr-configuradas de forma semelhante s aes padro. No
entanto, elas s esto disponveis no Salesforce1. As aes inteligentes mveis so exibidas
como um nico elemento no editor do layout de pgina. No aplicativo, o elemento aes
inteligentes mveis expande-se em um conjunto de diferentes aes de criao, que permite
que os usurios criem registros diretamente no feed. Para objetos personalizados como o nosso,
essas aes so Nova tarefa (New Task), Novo contato (New Contact), Registrar uma chamada
(Log a Call), Novo grupo (New Group), Nova oportunidade (New Opportunity), Novo caso
(New Case) e Novo lead (New Lead). Ns no podemos alterar quais aes so includas como
parte de um conjunto de aes inteligentes mveis, assim vamos remov-lo e adicionar
manualmente as aes que so relevantes para este objeto. Para obter mais informaes sobre
aes inteligentes mveis, bem como uma lista do que o elemento da ao inteligente mvel
em cada objeto suportado expande-se para incluir, consulte Viso geral das aes inteligentes
mveis (Mobile Smart Actions Overview) na ajuda do Salesforce.
Verso 8 | Chapter 8: Colaborao com o Chatter | 265
4. Na paleta, clique em Aes.
5. Arraste as Aes inteligentes mveis (Mobile Smart Actions) de volta para a paleta.
6. Arraste as aes da paleta para a rea Aes do editor (Publisher Actions) de modo
que elas fiquem na seguinte ordem.
Novo aplicativo
Novo candidato
Nova publicao
Publicar
Nova tarefa
Nova nota
Arquivo
Link
Nota: Temos algumas duplicatas, pois criamos uma ao global Novo
aplicativo (New Application) e uma ao especfica de objeto Novo aplicativo
(New Application). A plataforma Force.com nos ajuda quanto a isso, usando
o texto sobreposto sobre as aes. Uma das aes tem o nome de
New_Application e a outra Position__c.New_Application. Nossa ao
especfica de objeto a segunda. O nome indica que ela est diretamente
associada com o objeto de posio usando o prefixo Position__c. Isso significa
que essa ao s pode ser adicionada a um layout de pgina de posio.
7. Clique em Salvar.
Figura 91: Personalizando as aes disponveis em um registro de posio
padro
8. Clique em Layout de posio de TI (IT Position Layout) no topo da paleta e
selecione Layout de posio (Position Layout) na lista suspensa.
9. Personalize as aes do editor para o layout de posio de modo que elas
correspondam ao layout de posio de TI.
Agora vamos adicionar nossas aes especficas de objeto para candidatos, sites de empregos
e formulrios de emprego aos layouts de pgina. Acesse cada um dos layouts de pgina e adicione
as aes na ordem indicada na seguinte tabela.
266 | Verso 8 | Chapter 8: Colaborao com o Chatter
Tabela 40: Resumo das aes do editor nos layouts de pgina
Aes do editor Layout de pgina Objeto
Layout de candidato Candidato
Novo aplicativo
Nova tarefa
Nova nota
Publicar
Arquivo
Link
Layout de site de empregos Site de empregos
Nova publicao
Nova tarefa
Nova nota
Publicar
Arquivo
Link
Layout de formulrio de
emprego
Formulrio de emprego
Nova reviso
Nova tarefa
Nova nota
Publicar
Arquivo
Link
Observe o que fizemos
Agora que criamos todas as nossas aes especficas de objeto e as atribumos aos layouts de
pgina associados, vamos nos certificar de que elas esto funcionando no aplicativo Salesforce1.
1. Inicie o Salesforce1 e efetue login como Mario Ruiz.
2. Abra um registro de posio tocando na opo Posies (Positions) no menu de
navegao e tocando em uma de suas recentes posies.
3. Toque no cone para abrir o editor e toque em Novo aplicativo (New Application).
4. Selecione um candidato, insira o texto para a carta de apresentao e toque em Enviar
(Submit).
Verso 8 | Chapter 8: Colaborao com o Chatter | 267
Ns no tivemos que especificar que o novo formulrio de emprego deve estar relacionado
posio que abrimos, mas o formulrio aparecer de qualquer modo na lista relacionada
Formulrios de emprego (Job Applications) da posio. Isso demonstra a efetividade das aes
especficas de objeto.
Figura 92: Formulrios de emprego relacionados a uma posio
5. Na pgina de informaes relacionadas com a posio, toque em Formulrios de
emprego (Job Applications) para visualizar os itens na lista relacionada.
6. Toque no item relacionado associado com nosso novo formulrio de emprego para
abrir o registro.
7. Verifique se o valor de campo predefinido que configuramos est funcionando
conforme desejado: A opo Status deve ser configurada como Novo (New),
mesmo que no tenhamos selecionado essa opo manualmente ao criarmos o registro.
Agora vamos verificar as outras aes especficas de objeto. No editor, certifique-se de que:
A partir de um registro de posio, podemos criar um novo candidato.
A partir de um registro de posio, podemos criar uma nova publicao de emprego. A
publicao automaticamente associada com a posio.
A partir de um registro de candidato, podemos criar um novo formulrio de emprego. O
formulrio automaticamente associado com o candidato e seu status Novo (New).
268 | Verso 8 | Chapter 8: Colaborao com o Chatter
A partir de um registro de site de empregos, podemos criar uma nova publicao de emprego.
A publicao automaticamente associada com o site de empregos.
A partir de um registro de formulrio de emprego, podemos criar uma nova reviso. A
reviso automaticamente associada com o formulrio de emprego.
Resumindo
Ns adicionamos o Chatter e as aes do editor ao nosso aplicativo de recrutamento, porm
ainda estamos apenas no comeo. Com o Chatter, voc concede aos seus usurios a capacidade
de se manter informado sobre tudo o que est acontecendo em sua empresa e possibilita que
eles compartilhem informaes e estabeleam colaboraes facilmente. Com as aes do editor,
voc permite que seus usurios criem e relacionem registros mais facilmente. E, por ser parte
da plataforma Force.com, voc pode incorporar atualizaes de feed em tempo real, perfis de
usurio, grupos, entre outros, em todos os seus aplicativos personalizados.
Se voc for um pouco alm, poder aprender como adicionar publicaes e comentrios de
forma agendada, adicionar feeds a pginas personalizadas e at mesmo expor aes do editor
para integrao com sistemas externos.
Esses tpicos avanados esto alm do escopo deste livro, porm voc pode encontrar mais
informaes na pgina de Recurso para desenvolvedores do Chatter no
developer.force.com/chatter.
Verso 8 | Chapter 8: Colaborao com o Chatter | 269
Captulo 9
Usando fluxos de trabalho personalizados
e processos de aprovao
Aplicativo robusto? Verificar. Acesso seguro aos dados?
Verificar. Rpido, divertido e colaborativo? Verificado!
Tpicos:
Introduo do fluxo de
trabalho
Nossa equipe de contratao da Universal Containers nunca
foi to produtiva. O ltimo captulo demonstrou como
Fluxo de trabalho em
nosso aplicativo Recruiting
fcil colaborar em tempo real com o Chatter. Agora hora
de encontrar maneiras de deixar o nosso aplicativo mais
eficiente.
Criao de regras de fluxo
de trabalho que atribuem
tarefas
At aqui, criamos pouco mais que um excelente banco de
dados. Ele guarda as informaes que precisamos e permite Criao de uma regra de
fluxo de trabalho que
atualiza campos
a pesquisa de registros com base em diversos critrios, mas
no ajuda nossos recrutadores e gerentes de contratao a
fazer o trabalho de modo mais eficaz. No h nenhuma Criao de uma regra de
fluxo de trabalho que envia
alertas por email
automao que permita ao recrutador saber quando o status
de um candidato mudou ou quando uma nova posio foi
inserida no sistema. O Chatter ir permitir que eles tenham Introduo de aprovaes
informaes sobre registros que esto acompanhando, mas
Resumindo
queremos desenvolver automao em nosso aplicativo para
continuar com o avano dos processos.
Mais uma vez, a plataforma do Force.com nos ajuda com
mais recursos integrados. Neste caso, as ferramentas que
vamos usar para resolver o problema de automao do
processo so chamadas de fluxo de trabalho (workflow) e
processos de aprovao (approval processes). Vamos analisar
primeiro as vrias maneiras possveis de usar o fluxo de
trabalho e, ento, abordaremos o processo de aprovao
no final do captulo.
Introduo do fluxo de trabalho
Fluxo de trabalho um mecanismo de lgica de negcios da plataforma do Force.com que nos
permite, de forma automtica, enviar alertas de email, atribuir tarefas ou atualizar valores do
campo com base nas regras que definimos. Sempre que as alteraes em um registro satisfizerem
as condies em uma regra de fluxo de trabalho, a plataforma realiza automaticamente quaisquer
aes associadas com a regra.
Por exemplo, digamos que Ben Stuart, gerente de desenvolvimento de software, decidiu estender
uma oferta para Ethan Tran, um candidato jovem e inteligente que est interessado na posio
de engenheiro de software. Na Universal Containers, tarefa do recrutador prorrogar ofertas,
mas neste caso, Mario Ruiz, o recrutador responsvel pela posio de engenheiro de software,
no sabe se Ben j tomou alguma deciso, a menos que Ben telefone ou envie um email para
ele diretamente.
Em vez de depender da memria de Ben para informar Mario, podemos configurar um fluxo
de trabalho simples que acione a atribuio da tarefa apropriada sempre que o status de um
registro de formulrio de emprego estiver definido como Estender uma Oferta ou Rejeitado.
Assim que Ben alterar o status do formulrio de emprego do candidato, o fluxo de trabalho
cria uma tarefa apropriada e envia um email de notificao para Mario, conforme mostrado no
diagrama a seguir.
272 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Figura 93: Atribuio automtica de uma tarefa a um recrutador usando fluxo de
trabalho
Bem eficiente, no ? Em geral, se pudermos sugerir uma regra padro que especifique quando
um determinado evento deve ocorrer, ns podemos faz-lo acontecer automaticamente com o
fluxo de trabalho. O fluxo de trabalho um dos ingredientes secretos que vai fazer nosso
aplicativo de recrutamento se transformar de um magnfico banco de dados para uma ferramenta
inteiramente funcional que todos acham til.
Agora que j temos uma ideia geral do que um fluxo de trabalho, vamos analisar mais
minuciosamente os componentes que formam o fluxo de trabalho: regras, tarefas, atualizaes
de campo e alertas.
Introduo de regras de fluxo de trabalho
Em geral, uma regra de fluxo de trabalho o principal receptculo para um conjunto de instrues
de fluxo de trabalho. Abrange os critrios para o momento em que o fluxo de trabalho deveria
ser ativado, assim como tarefas especficas, alertas e atualizaes de campo que deveriam ocorrer
quando os critrios para aquela regra so satisfeitos.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 273
Toda regra de fluxo de trabalho deve se basear em um nico objeto que voc escolhe ao definir
a regra. Esse objeto influencia os campos que ficam disponveis para definir os critrios de
ativao do fluxo de trabalho.
Por exemplo, se definirmos uma regra de fluxo de trabalho para o objeto Formulrio de emprego,
vamos conseguir definir os critrios de ativao do fluxo de trabalho com base nos valores de
campos como Nmero de formulrio de emprego (Job Application Number)
e Status. Tambm podemos definir critrios de ativao de fluxo de trabalho com base em
campos padro, como Proprietrio de registro (Record Owner) ou Data criada
(Created Date), assim como campos baseados no usurio ativo no momento, quando uma
regra for avaliada, como Funo (Role) ou Fuso horrio (Time Zone).
Vamos analisar todas as maneiras de definir critrios de ativao de fluxo de trabalho quando
chegarmos na etapa de criar nossas prprias regras de fluxo de trabalho. Por ora, basta
compreender que a plataforma facilita muito a criao de regras de fluxo de trabalho detalhadas
que visam situaes especficas.
Apresentao das aes do fluxo de trabalho:
Tarefas, atualizaes de campo e alertas
Quando uma regra de fluxo de trabalho acionada, podem ocorrer os seguintes tipos de aes:
Tarefas de fluxo de trabalho
Uma tarefa de fluxo de trabalho (workflow task) atribui uma tarefa ao usurio de acordo
com um modelo especfico.
Assim como no Microsoft Outlook, as tarefas incluem informaes sobre algo que precisa
ser feito em um determinado tempo, como dar um telefonema ou devolver um livro
biblioteca. As tarefas atribudas aparecem em uma lista relacionada de Minhas tarefas
(My Tasks) do usurio na guia Incio (Home) e geram mensagens de lembrete que
aparecem quando o usurio faz login.
Quando definimos uma tarefa de fluxo de trabalho, fornecemos valores padro para os
campos Encarregado (Assignee), Assunto (Subject), Status (Status),
Prioridade (Priority) e Data de vencimento (Status) para tarefas que
so geradas por uma regra de fluxo de trabalho associada. Tambm podemos assegurar
que um email de notificao seja enviado ao encarregado quando uma tarefa for gerada
automaticamente.
Atualizaes de campo do fluxo de trabalho
Uma atualizao de fluxo de trabalho (workflow field update) altera o valor de um campo
especfico no registro que inicialmente acionou a regra de fluxo de trabalho.
274 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Atualizaes de campo de objetos cruzados (Cross-object field updates) tambm esto disponveis
para alterar os valores de campos em um registro mestre relacionado. Para mais detalhes
e restries, consulte "Entendendo atualizaes de campo de objetos cruzados" na Ajuda
do Salesforce.
Alertas de email do fluxo de trabalho
Um alerta por email de fluxo de trabalho (workflow email alert) envia um email de acordo
com um modelo de email especificado. De maneira diferente das tarefas de fluxo de
trabalho, que podem ser atribudas a usurios do aplicativo, os alertas de fluxo de trabalho
podem ser enviados para qualquer usurio ou contato, desde que tenham um endereo
de email vlido.
Nota: Um quarto tipo de ao, uma mensagem de sada de fluxo de trabalho (workflow
outbound message), envia dados para um servio externo na Web, por exemplo, outro
aplicativo na nuvem. As mensagens de sada so usadas principalmente com interfaces
de programao de aplicativos, ento voc no vai us-las neste captulo.
Uma regra de fluxo de trabalho pode incluir qualquer combinao dessas aes quando a regra
for acionada. Por exemplo, uma regra pode enviar um alerta e atualizar dois campos de um
determinado registro. A ao que uma regra de fluxo de trabalho adota tambm pode
desencadear a execuo de outra regra de fluxo de trabalho.
Fluxo de trabalho em nosso aplicativo
Recruiting
Agora que j conhecemos os diferentes componentes envolvidos no fluxo de trabalho, veja
como podemos usar o fluxo de trabalho para nos ajudar a desenvolver os requisitos mencionados
em Sobre o exemplo de aplicativo de recrutamento na pgina 21. Em seguida, vamos dedicar
algum tempo para implementar as regras sugeridas aqui.
J falamos sobre um exemplo em que o fluxo de trabalho nos dar uma grande vantagem:
atribuio automtica de uma tarefa para um recrutador quando o status de um registro de
formulrio de emprego muda para Rejeitar ou Estender uma oferta (Reject or Extend an Offer).
Isso ser um timo comeo, porm o que mais podemos fazer?
Se analisarmos o ltimo captulo sobre segurana e compartilhamento, relembramos que
queremos conceder permisso a recrutadores e gerentes de contratao para criar novas posies,
mas que, em ltima anlise, sempre queremos que um recrutador seja proprietrio daqueles
registros, porque preench-los responsabilidade do cargo de recrutador. Demos uma pista
no captulo de segurana e compartilhamento de que poderamos realizar isso com o fluxo de
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 275
trabalho, e de fato podemos! Precisaremos simplesmente usar uma atualizao de campo de
fluxo de trabalho para alterar o proprietrio do registro de uma posio para um recrutador se
este foi originalmente criado por um gerente de contratao. Para evitar que um nico recrutador
fique sobrecarregado com todas essas posies adicionais, tambm usaremos outro recurso de
plataforma, as filas, para distribuir de modo justo as posies rfs. Colocaremos o registro em
uma fila de outros registros de posio sem proprietrios e, ento, deixaremos que cada recrutador
reivindique as posies que deseja.
Vamos pensar tambm sobre como a disponibilidade da posio ser divulgada em toda a
Universal Containers. Assim como vrias outras organizaes, a Universal Containers prefere
preencher posies com indicaes de funcionrios, mas muitas vezes os funcionrios no tm
conhecimento de quais posies esto abertas no momento. Podemos usar um alerta de fluxo
de trabalho para enviar um email automaticamente para cada funcionrio sempre que abrir
uma posio. Dessa forma, os funcionrios ficam sabendo de posies assim que elas so
disponibilizadas e podem pensar em amigos e membros da famlia que talvez se interessem.
Parece bom? Embora, provavelmente, tenha muitas outras maneiras de usar o fluxo de trabalho
para desenvolver um aplicativo de recrutamento formidvel de imediato na nuvem, vamos nos
ater a esses trs agora, j que eles vo nos proporcionar um bom exemplo dos tipos principais
de aes de fluxo de trabalho que esto disponveis. Para resumir o que estamos criando:
1. Uma tarefa de fluxo de trabalho que atribui uma tarefa para um recrutador quando
o status de um registro de formulrio de emprego muda para Rejeitar ou Estender
uma oferta (Rejected or Extend an Offer)
2. Uma atualizao de campo de fluxo de trabalho que designa novamente a propriedade
de uma posio criada por um gerente de contratao para uma fila de registros de
posio sem proprietrios, de modo que cada recrutador possa reivindicar a
propriedade das posies desejadas
3. Um alerta de fluxo de trabalho que envia um email para todos os funcionrios quando
uma nova posio criada
Agora, vamos comear!
Criao de regras de fluxo de trabalho que
atribuem tarefas
Em nosso primeiro uso de fluxo de trabalho, queremos criar duas regras: uma que atribua a
tarefa Enviar carta de rejeio ao recrutador apropriado sempre que o campo Status de um
formulrio de emprego for definido como Rejeitado (Rejected) e uma que atribua uma tarefa
Prorrogar oferta ao recrutador apropriado sempre que o campo Status de um formulrio
276 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
de emprego for definido como Estender uma oferta (Extend an Offer)" Vamos comear pela
regra de fluxo de trabalho "Enviar carta de rejeio".
Experimente: Crie a regra de fluxo de trabalho
"Enviar carta de rejeio"
Para tornar essa regra inteiramente funcional, precisaremos definir uma regra de fluxo de
trabalho, que especifica o critrio de quando a regra deve ser executada, e uma tarefa de fluxo
de trabalho que inclui o modelo de tarefa "Enviar carta de rejeio". Embora seja possvel
definir os componentes do fluxo de trabalho em qualquer ordem, vamos comear definindo a
prpria regra do fluxo de trabalho. Isso ir economizar alguns cliques mais adiante, quando
definirmos a tarefa de fluxo de trabalho associada da regra.
1. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Regras de
fluxo de trabalho.
2. Se uma pgina inicial for exibida, basta clicar em Continuar (Continue).
3. Clique em Nova regra (New Rule).
A primeira coisa que precisamos fazer selecionar o objeto que ser associado regra de fluxo
de trabalho. Como j discutimos, cada regra de fluxo de trabalho deve ser associada a um nico
objeto para determinar os campos que podemos usar para definir os critrios. Como precisamos
acionar essa regra de fluxo de trabalho quando o campo Status do registro de um formulrio
de emprego for definido como Rejeitar (Reject), devemos selecionar Formulrio de emprego
(Job Application) aqui.
4. Na lista suspensa Objeto (Object), selecione Formulrio de emprego (Job Application)
e clique em Avanar (Next).
Agora hora de definir os detalhes da regra de fluxo de trabalho.
5. Na caixa de texto Nome da regra (Rule Name), insira Enviar carta de
rejeio (Send Rejection Letter).
6. Na caixa de texto Descrio (Description), insira Enviar uma carta
de rejeio quando um gerente de contratao mudar o status
de um formulrio de emprego para rejeitado (Send a
rejection letter when a hiring manager changes the status
of a job application to Rejected).
Agora utilize a rea Critrios de avaliao (Evaluation Criteria) para especificar quando essa
regra deve ser avaliada. As opes so:
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 277
Descrio Avaliar a regra
quando um registro
for:
Avalia os critrios de regra toda vez que um registro criado.
Se os critrios da regra forem cumpridos, execute-a. Ignora
todas as atualizaes dos registros existentes.
Com essa opo, a regra nunca executada mais de uma vez
por registro.
criados
Avalia os critrios de regra toda vez que um registro criado
ou atualizado. Se os critrios da regra forem cumpridos,
execute-a.
Com essa opo, a regra repetidamente executada sempre que
um registro for editado, desde que o registro atenda aos critrios.
criado, e toda vez
que for editado
Nota: No possvel incluir aes dependentes do
tempo na regra se essa opo for selecionada.
(Padro) Avalia os critrios de regra toda vez que um registro
criado ou atualizado.
criado e sempre que
for editado para
depois atender os
critrios
Para um novo registro, execute a regra se os critrios dela
forem cumpridos.
Para um registro atualizado, execute a regra somente se o
registro for alterado de no cumprindo os critrios da regra
para cumprindo-os.
Com essa opo, a regra pode ser executada vrias vezes por
registro, mas no ser executada quando as edies do registro
no estiverem relacionadas aos critrios da regra.
Por exemplo, suponha que para um registro de oportunidade
cumprir os critrios, a probabilidade da oportunidade precise
ser maior que 50%. Se voc criar uma oportunidade com uma
probabilidade de 75%, a regra de fluxo de trabalho ser
executada. Se voc editar essa oportunidade alterando a
probabilidade para 25%, a edio no far a regra ser executada.
Se voc, ento, editar essa oportunidade alterando a
probabilidade de 25% para 75%, a edio far a regra ser
executada. Com essa ltima edio, a regra executada porque
278 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Descrio Avaliar a regra
quando um registro
for:
o registro alterado de no cumprindo os critrios da regra para
cumprindo os critrios da regra.
Como no queremos atribuir tarefas duplicadas para um recrutador toda vez que o registro for
salvo, manteremos a opo padro.
7. Em Avaliar a regra quando um registro for: (Evaluate the rule when a record is:),
selecione criado, e sempre que for editado para em seguida
satisfazer os critrios (created, and any time its edited
to subsequently meet criteria).
Para concluir a definio de regra, precisamos especificar as condies que iro acionar a
execuo das aes associadas da regra. Podemos fazer isso definindo um conjunto de critrios
que acionem a regra de fluxo de trabalho quando satisfeita, ou podemos criar uma frmula que
acione a regra de fluxo de trabalho se for avaliada como Verdadeira (True). Embora a criao
de uma frmula proporcione mais flexibilidade, definir o critrio mais fcil. Para essa regra,
podemos atingir nosso objetivo por meio da definio de critrios, ento vamos fazer isso.
Toda regra de fluxo de trabalho requer pelo menos uma linha de critrios de filtro, mas podemos
definir quantos filtros quisermos usando linhas adicionais.
8. Na primeira linha de filtros de critrios de regra:
Defina a coluna Campo (Field) como Formulrios de emprego (Job
Application): Status.
Defina a coluna Operador (Operator) como igual (equals).
Defina a coluna Valor (Value) como Rejeitado (Rejected).
9. Clique em Salvar e avanar.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 279
Figura 94: Criao de uma nova regra de fluxo de trabalho
Neste ponto, j definimos nossa regra de fluxo de trabalho "Enviar carta de rejeio". Se
tivssemos cancelado no assistente de fluxo de trabalho e, em Configurao (Setup), clicado
em Criar (Create) > Fluxo de trabalho e aprovaes (Workflow & Approvals) > Regras de
fluxo de trabalho (Workflow Rules), veramos isso na exibio de lista. Porm, como as regras
de fluxo de trabalho no so muito teis sem uma ao associada, o assistente de fluxo de
trabalho nos direciona diretamente para uma tela na qual podemos definir a tarefa de fluxo de
trabalho "Enviar carta de rejeio". Vamos praticar isso agora.
Experimente: Crie a tarefa de fluxo de trabalho
"Enviar carta de rejeio"
A etapa Especificar aes do fluxo de trabalho do assistente de fluxo de trabalho permite que
voc especifique tarefas de fluxo de trabalho, atualizaes de campos e alertas que deveriam
ocorrer quando as condies de nossa regra de fluxo de trabalho so satisfeitas.
280 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Figura 95: Especificaes de aes do fluxo de trabalho
Voc pode definir as aes que ocorrem imediatamente aps a condio ser satisfeita ou definir
as aes que ocorrem antes ou depois de um determinado perodo de tempo decorrido (por
exemplo, sete dias antes do valor do campo Contratado por (Hire By) ou trs dias aps
a regra de fluxo de trabalho ser ativada). Falaremos mais sobre essas aes de fluxo de trabalho
dependentes de tempo um pouco adiante. Por hora, s precisamos definir uma nica tarefa de
fluxo de trabalho que executada assim que nossos critrios de regra forem satisfeitos.
1. Na rea Aes de fluxo de trabalho imediato (Immediate Workflow Actions), clique
em Adicionar ao de fluxo de trabalho (Add Workflow Action) e selecione Nova
tarefa (New Task).
Voc notou que o campo Objeto (Object) j est preenchido com Formulrio de emprego
(Job Application)? aqui que nos poupamos de alguns cliques. Se comessemos a criar nossa
tarefa de fluxo de trabalho antes da regra de fluxo de trabalho, teria sido necessrio especificar
o objeto com o qual a tarefa ser associada. Isso ocorre porque, assim como as regras de fluxo
de trabalho, as aes de fluxo de trabalho precisam estar associadas com um nico objeto.
Neste caso, vamos pular uma pgina porque o objeto com o qual a ao de fluxo de trabalho
est associada deve corresponder ao objeto de uma regra de fluxo de trabalho que o utiliza. Por
exemplo, se tivssemos uma regra de fluxo de trabalho associada ao objeto Candidato
(Candidate), qualquer tarefa, atualizao de campo ou alerta que fosse acionado pela regra de
fluxo de trabalho do nosso candidato tambm deveria ser associado com o objeto Candidato
(Candidate). Como ns comeamos a criar nossa tarefa de fluxo de trabalho "Enviar carta de
rejeio" no assistente logo depois de definir nossa regra de fluxo de trabalho "Enviar carta de
rejeio", a plataforma sabia que o objeto associado a nossa tarefa precisaria corresponder
regra que j criamos. por isso que a nossa tarefa de fluxo de trabalho j est associada ao
objeto Formulrio de emprego (Job Application).
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 281
O restante dos campos desta pgina de edio constituem o modelo para quaisquer tarefas de
"Enviar carta de rejeio" que sero geradas pela regra de fluxo de trabalho.
2. Ao lado do campo Atribudo a (Assigned To), clique no cone de pesquisa
( ).
Aqui podemos escolher o destinatrio da tarefa especificando um usurio, uma funo ou o
proprietrio do registro do formulrio de emprego que acionou em primeiro lugar a regra de
fluxo de trabalho. Como os recrutadores sempre so os proprietrios dos registros de formulrios
de emprego das posies pelas quais so responsveis e os recrutadores so responsveis por
enviar cartas de rejeio na Universal Containers, vamos selecionar o proprietrio do registro.
3. Na lista suspensa Tipo (Type) selecione Proprietrio (Owner).
4. Clique em Proprietrio do formulrio de emprego (Job Application Owner).
Cuidado: Se voc achou que escolher a funo de Recrutador (Recruiter) para o
campo Atribudo a (Assigned To) poderia ter sido outra opo vlida, cuidado.
Se o destinatrio de uma tarefa de fluxo de trabalho for uma funo que contenha
mais de um usurio designado, a pessoa que acionou a regra passa a ser o destinatrio
da tarefa. Por esse motivo, voc nunca deve atribuir tarefas de fluxo de trabalho a
funes, a menos que tenha certeza de que apenas um usurio ser designado para tais
funes de cada vez.
O restante dos campos da tarefa de fluxo de trabalho so fceis.
5. Na caixa de texto Assunto (Subject) insira Enviar carta de rejeio
(Send Rejection Letter).
6. Nas listas suspensas Data de vencimento (Due Date) selecione Data de
acionamento da regra mais 2 dias (Rule Trigger Date plus 2 days).
Essa definio da Data de vencimento (Due Date) dar aos nossos recrutadores dois
dias para notificar o candidato depois de serem designados para a tarefa.
7. Na lista suspensa Status selecione No iniciado (Not Started).
8. Na lista suspensa Prioridade (Priority) selecione Alta (High).
A caixa de seleo Notificar destinatrio (Notify Assignee) nos permite enviar
um email para o destinatrio assim que a tarefa criada pela regra de fluxo de trabalho. Isso
assegura que o destinatrio tenha conhecimento da tarefa sem precisar fazer login regularmente
no aplicativo, ento vamos selecion-la.
9. Marque a caixa de seleo Notificar destinatrio (Notify Assignee).
10. Clique em Salvar.
11. Clique em Concludo.
282 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Figura 96: Criao da tarefa de fluxo de trabalho "Enviar carta de rejeio"
Nesse estgio, finalmente conseguimos ver a pgina de detalhes para a regra de fluxo de trabalho
que acabamos de criar. Ela inclui os critrios da regra de fluxo de trabalho e uma lista das aes
associadas. A nica coisa que resta fazer ativar a regra.
12. Clique em Ativar.
Tudo pronto! Acabamos de criar nossa primeira tarefa e regra de fluxo de trabalho. Voc ver
que todas as aes restantes de fluxo de trabalho funcionam de forma muito semelhante, ento
vamos passar rapidamente por elas, nos concentrando apenas nos campos e nas opes que so
exclusivas de cada uma.
Experimente: Crie a tarefa e a regra de fluxo de
trabalho "Estender uma oferta (Extend an Offer)"
Para completar o nosso primeiro caso de uso, precisamos criar outra regra de fluxo de trabalho
quando o status de um formulrio de emprego for definido como Estender uma oferta (Extend
an Offer). Essa regra e essa tarefa so quase idnticas tarefa e regra de fluxo de trabalho
"Enviar carta de rejeio", ento vamos apenas listar os valores que voc ir precisar nas duas
tabelas a seguir.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 283
Tabela 41: Valores para a criao da regra de fluxo de trabalho "Estender uma oferta (Extend
an Offer)"
Valor Campo
Formulrio de emprego Objeto
Estender uma oferta Nome
Fazer uma oferta quando um gerente de contratao muda o status
de um formulrio de emprego para Prorrogar oferta (Extend Offer).
Descrio
criado e sempre que for editado para depois atender os critrios Avaliar a regra quando
um registro for:
Formulrio de emprego (Job Application): O status igual a
Estender uma oferta (Extend an Offer)
Critrios de filtro
Tabela 42: Valores para a criao da tarefa de fluxo de trabalho Estender uma oferta (Extend
an Offer)
Valor Campo
Proprietrio do formulrio de emprego Atribudo a
Estender uma oferta Assunto
Data de acionamento de regra mais um dia Data de vencimento
No iniciado Status
Alta Prioridade
Sim Notificar destinatrio?
Tudo pronto! Verifique se a regra "Estender uma oferta" tambm est ativada e vamos testar
uma das nossas novas regras de fluxo de trabalho.
Observe o que fizemos
Vamos testar nossa regra de fluxo de trabalho "Enviar carta de rejeio" e ver o que acontece:
1. Clique na guia Formulrio de emprego (Job Applications) e selecione um registro
de formulrio de emprego.
2. Clique em Editar (Edit) e altere o Status para Rejeitado (Rejected).
3. Clique em Salvar.
284 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
A tarefa Enviar carta de rejeio (Send Rejection Letter) aparece automaticamente na lista
relacionada de atividades abertas na pgina de detalhes do aplicativo de emprego, conforme
mostrado na tela a seguir.
Figura 97: Lista relacionada de atividades abertas na pgina de detalhes do aplicativo
de empregos
Bem organizado, voc no acha? E no para por a. Se voc verificar a caixa de entrada de email
do recrutador, ele deve ter recebido uma notificao de email gerada automaticamente que se
parece com a seguinte:
Jane Smith has assigned you a new task:
Subject: Send Rejection Letter
Job Application: JA-00002
Due Date: 8/29/2013
Priority: High
For more details, click the following link:
https://na1.salesforce.com/00Tx04123s5k1
O link na mensagem de email direciona o recrutador diretamente para a pgina de detalhes da
tarefa, onde ele pode localizar as informaes de contato do candidato e atualizar o status da
tarefa depois que ela for concluda. A tarefa tambm aparece na rea Minhas tarefas (My Tasks)
na guia Incio (Home) do recrutador e uma mensagem de lembrete ser exibida como pop-up
um dia depois se o recrutador ainda no tiver alterado o status da tarefa para "Concluda"
(Completed). De repente, nosso aplicativo Recruiting se tornou bem mais eficiente e interativo!
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 285
Criao de uma regra de fluxo de trabalho
que atualiza campos
Para o nosso prximo caso de uso, queremos criar uma regra de fluxo de trabalho que assegure
que o proprietrio do registro de uma nova posio seja sempre um recrutador. Para fazer isso,
vamos definir uma atualizao de campo de fluxo de trabalho que redesigne a propriedade de
uma posio criada por um gerente de contratao para uma fila de registros de posio sem
proprietrios. Uma vez que um registro de posio est nessa fila, os recrutadores podem
reivindicar a propriedade das posies que desejarem. Mas antes de irmos em frente, vamos
parar por um momento. O que , exatamente, uma fila?
Introduo de filas
Bem similar a uma coleo de itens em uma gaveta de achados e perdidos, a fila um grupo
de registros que no tm proprietrio. Os usurios que tm acesso fila podem examinar cada
registro dela e reivindicar propriedade daqueles que desejam.
As filas geralmente so usadas em organizaes de suporte e vendas para distribuir novos leads
e casos de suporte para os funcionrios que estejam com mais disponibilidade. Como a
plataforma originalmente suporta filas para leads, casos e qualquer objeto personalizado, ns
podemos criar uma fila para o objeto Posio do aplicativo de recrutamento.
Experimente: Crie uma fila para as posies
Para definir uma fila, s precisamos saber os tipos de registros que podem ser colocados na fila
(no nosso caso, as Posies) e os usurios que tm permisso para retirar registros da fila (no
nosso caso, os Recrutadores). Com essas duas informaes, a definio da fila em si s uma
questo de alguns cliques:
1. Em Configurao, clique em Gerenciar usurios > Filas.
2. Clique em Novo.
3. Na caixa de texto Rtulo (Label) insira Fila de posies no
reivindicadas (Unclaimed Positions Queue).
4. Na caixa de texto Email de fila (Queue Email) insira um endereo de email
de uma pessoa ou de uma lista de distribuio, como
recruiters@universalcontainers.com.
286 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Ao clicar na caixa de texto Email de fila (Queue Email), a caixa de texto
Nome da fila (Queue Name) ser automaticamente preenchida.
5. Selecione Enviar email para membros (Send Email to Members).
Observe que se recruiters@universalcontainers.com fosse uma lista de distribuio
de email real, que seria enviada a todos os recrutadores, no precisaramos selecionar Enviar
email para membros (Send Email to Members). Estamos fazendo aqui porque
recruiters@universalcontainers.com um endereo de email falso e no pode ser
usado para teste depois.
Voc tem duas opes para notificar os membros da fila quando novos registros forem includos
na fila.
Enviar email para membros (Send Email to Members) no selecionado
Se voc no especificar um email da fila, membros individuais da fila sero sempre
notificados, independentemente da caixa de seleo Enviar email aos membros
(Send Email to Members).
Se voc especificar um endereo de email da fila, apenas aquele endereo ser
notificado.
Enviar email para membros (Send Email to Members) selecionado
Se voc no especificar um email da fila, membros individuais da fila sero sempre
notificados, independentemente da caixa de seleo Enviar email aos membros
(Send Email to Members).
Se voc especificar um endereo de email da fila, aquele endereo e os membros da
fila sero notificados.
Note que se um membro individual da fila tambm receber email enviado para o
endereo de email da fila especificado, ele receber informaes duplicadas.
6. Na seo Objetos suportados mova a Posio para a lista de Objetos selecionados.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 287
Figura 98: Definio de fila
Como voc pode ver, uma nica fila capaz de lidar com vrios objetos a plataforma permite
que voc faa isso, ento no necessrio definir vrias filas para o mesmo grupo de usurios.
7. Na seo Membros da fila, selecione Funes e subordinados (Roles
and Subordinates) na lista suspensa de Pesquisa.
8. Mova Funo e subordinados (Role and Subordinates): Gerente
de contratao (Recruiting Manager) para a lista de Membros
selecionados.
9. Clique em Salvar.
288 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Perfeito! Acabamos de definir uma nova fila que pode atuar como um proprietrio temporrio
para todos os registros de posio criados por gerentes de contratao. Sempre que uma posio
for colocada na fila, todos os recrutadores sero notificados e a pessoa adequada pode reivindicar
a propriedade. Agora resta definir a regra de fluxo de trabalho que coloca esses registros de
posio na fila.
Experimente: Crie uma regra de fluxo de trabalho
que atualize os campos
Agora que a fila est pronta, podemos avanar e definir nossa regra de fluxo de trabalho.
1. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Regras de
fluxo de trabalho.
2. Clique em Nova regra (New Rule).
3. Na lista suspensa de Objeto, selecione Posio (Position) e clique em Avanar
(Next).
4. Na caixa de texto Nome da regra (Rule Name) insira Designar posio
para o recrutador (Assign Position to Recruiter).
5. Na caixa de texto Descrio (Description) insira Redesignar registros
de posio para um recrutador se eles forem criados por
outro tipo de funcionrio (Reassign position records to a
recruiter if they were created by another type of employee).
Apesar de sabermos que os recrutadores quase sempre so os proprietrios de registros de
posio, no queremos impedir a organizao se houver algum caso especial em que outro
funcionrio, no recrutador, seja proprietrio do registro. Vamos optar por avaliar essa regra
somente quando um registro for criado, ento se for necessrio fazer alguma exceo, o fluxo
de trabalho no se sobrepe s mudanas feitas por um recrutador.
6. No campo Avaliar a regra quando um registro for: (Evaluate the rule when a record
is:) , selecione criado (created).
Por ltimo, precisamos ter certeza de que essa regra ser iniciada sempre que um registro de
posio for criado por algum que no seja recrutador ou gerente de contratao. Podemos
especificar esse critrio de filtro em uma nica linha usando uma vrgula na coluna Valor
(Value).
7. Na seo Critrios de regra:
Defina a coluna como Usurio atual (Current User): Funo.
Defina a coluna Operador como no igual a (not equal to).
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 289
Defina a coluna Valor como Recrutador, Gerente de Contratao
(Recruiter, Recruiting Manager).
8. Clique em Salvar e avanar.
Agora vamos criar a ao de atualizao de campo para essa regra de trabalho.
9. Na rea Aes de fluxo de trabalho imediato, clique em Adicionar ao de fluxo de
trabalho (Add Workflow Action) e selecione Nova atualizao de campo (New
Field Update).
10. Na caixa de texto Nome (Name) insira Reatribuir posio para a fila
(Reassign Position to Queue).
11. Na caixa de texto Descrio (Description) insira Atribuir a posio
para a fila de posies no reivindicadas (Assign the
Position to the Unclaimed Positions Queue).
12. Na lista suspensa de Campo para atualizao selecione Proprietrio.
Uma vez que voc faz uma seleo na lista suspensa, aparecem novas opes logo abaixo,
dependendo da seleo feita.
13. Na lista suspensa Proprietrio (Owner) selecione Fila.
14. Clique no cone de pesquisa ( ) e selecione Fila de posies no reivindicadas
(Unclaimed Positions Queue).
15. Selecione Notificar destinatrio (Notify Assignee).
16. Clique em Salvar.
No foi to difcil! Mas antes de sairmos dessa regra de fluxo de trabalho, vamos dar a ela uma
segunda ao de fluxo de trabalho assegurando que nenhuma posio seja esquecida na fila,
sem ser reivindicada por um recrutador. Dessa vez, vamos usar uma ao de fluxo de trabalho
dependente de tempo.
Introduo de aes de fluxo de trabalho
dependentes de tempo
Conforme mencionamos antes, as aes de fluxo de trabalho dependentes de tempo so aes
que ocorrem antes ou depois de um determinado perodo de tempo decorrido (por exemplo,
sete dias antes do valor do campo Contratado por (Hire By), ou trs dias depois da
regra de fluxo de trabalho ser acionada). Podemos usar aes de fluxo de trabalho dependentes
de tempo para disparar tarefas, atualizaes de campo e alertas de email enquanto a condio
de uma regra de fluxo de trabalho permanecer verdadeira.
290 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Por exemplo, a meta de redesignar registros de posio para a fila de Posies no reivindicadas
fazer com que o recrutador apropriado assuma a posse. No entanto, pode haver situaes em
que a posio colocada na fila e nenhum recrutador a reivindique. Em vez de deixar a posio
esquecida na fila, podemos definir uma ao de fluxo de trabalho dependente de tempo para
alertar o gerente de contratao se nenhum recrutador reivindicar o registro da posio dentro
de um determinado nmero de dias. Como essa ao s ocorre enquanto a condio de fluxo
de trabalho permanecer verdadeira (ou seja, enquanto a posio for de propriedade de algum
que no seja recrutador), o gerente s ser alterado quando necessrio.
Organizado, no? Vamos ver como as aes dependentes de tempo so definidas.
Experimente: Crie a tarefa de fluxo de trabalho
dependente de tempo "Notificar o gerente de
contratao"
A esta altura, deveramos estar na pgina Especificando aes do fluxo de trabalho para a nossa
regra de fluxo de trabalho Designar posio para a fila de recrutador. Se no for o caso, voc
pode retornar para l a partir de Configurao clicando em Criar (Create) > Fluxo de trabalho
e aprovaes (Workflow & Approvals) > Regras de fluxo de trabalho (Workflow Rules),
clicando em Designar posio para recrutador e, em seguida, clicando em Editar (Edit) na
rea de Aes do fluxo de trabalho.
Antes de definirmos uma tarefa de fluxo de trabalho dependente de tempo, devemos primeiro
especificar um acionador de tempo. Os acionadores de tempo definem quando as aes de fluxo
de trabalho dependentes de tempo devem ser acionadas.
1. Clique em Adicionar acionador de tempo (Add Time Trigger).
Neste caso, queremos que o nosso gerente de contratao seja notificado trs dias depois que
uma posio tiver sido designada para a fila de Posies no reivindicadas.
2. Use a caixa de texto e as listas suspensas para especificar 3 dias aps a data
de acionamento da regra (3 Days After Rule Trigger Date).
3. Clique em Salvar.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 291
Figura 99: Pgina de edio do acionador de tempo
Nosso acionador de tempo agora est listado na rea de Aes do fluxo de trabalho dependente
de tempo. O boto suspenso Adicionar ao de fluxo de trabalho (Add Workflow Action)
agora est ativo e podemos definir nossa tarefa de fluxo de trabalho como de costume.
4. Na rea Aes de fluxo de trabalho dependente de tempo, clique em Adicionar ao
de fluxo de trabalho (Add Workflow Action) e selecione Nova tarefa (New Task).
5. No campo Designar para (Assigned To) selecione a funo Gerente de
contratao.
Nota: Lembre-se, as tarefas de fluxo de trabalho deveriam ser designadas para uma
funo somente se voc tiver certeza de que apenas um usurio ser designado por vez
para aquela funo. Se a funo contiver vrios usurios, o proprietrio da regra de
fluxo de trabalho ser designado para a tarefa.
6. No campo Assunto (Subject) insira Designar registro de posio
no reivindicada para recrutador (Assign Unclaimed Position
Record to Recruiter). Ao mover o mouse do campo Assunto (Subject),
o campo Nome exclusivo (Unique Name) deve ser
Assign_Unclaimed_Position_Record_to_Recruiter.
7. Defina o campo Data de vencimento (Due Date) como Data de
acionamento da regra mais 4 dias (Rule Trigger Date plus
4 days).
Como a ao de fluxo de trabalho no ser acionada at trs dias depois da Data de acionamento
da regra original, a definio da Data de vencimento (Due Date) para quatro dias depois
da Data de acionamento da regra d ao gerente de recrutamento um dia a mais para designar
a posio a um recrutador.
8. Defina o Status como No iniciado (Not Started).
9. Defina a Prioridade (Priority) como Alta (High).
10. Selecione Notificar destinatrio (Notify Assignee).
11. Clique em Salvar.
12. Clique em Concludo.
292 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Est quase pronto! A esta altura, s precisamos ativar nossa regra de fluxo de trabalho. Porm,
se voc clicar no boto Ativar (Activate) agora, vai aparecer uma mensagem de erro informando
que o Usurio do fluxo de trabalho padro deve ser definido antes de ativar a regra. O que isso
significa?
O usurio do fluxo de trabalho padro quem deveria ser designado como proprietrio da ao
de fluxo de trabalho se o usurio que, originalmente, acionou a regra no estiver mais ativo. Se
a sua organizao usar aes dependentes de tempo em regras de fluxo de trabalho, especifique
um usurio de fluxo de trabalho padro. O Salesforce exibe esse nome de usurio no campo
Criado por para tarefas, no campo Usurio de envio para emails e no campo ltima
modificao por para atualizaes do campo. Para mensagens de sada, o Salesforce no
exibe esse nome de usurio. Se ocorrer um problema com uma ao pendente, o usurio do
fluxo de trabalho padro receber uma notificao por email. Como definir o usurio do fluxo
de trabalho padro:
13. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes >
Configuraes.
Nota: Se voc clicar em Ativar (Activate) sem definir antes o usurio do fluxo de
trabalho padro e, em seguida, clicar em OK no dilogo de erro, voc ser direcionado
para a pgina Configuraes de fluxo de trabalho e aprovaes.
14. Defina o campo Usurio do fluxo de trabalho padro (Default
Workflow User) como qualquer usurio de sua organizao. Na maioria dos casos,
melhor escolher um administrador de sistemas.
15. Clique em Salvar.
Agora podemos ativar a regra de fluxo de trabalho:
Nota: Se voc atingiu a pgina Configuraes de fluxo de trabalho e aprovaes
clicando em Ativar (Activate) e em OK no dilogo de erro, clicar em Salvar (Save)
tambm ativa automaticamente sua regra de fluxo de trabalho.
16. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Regras de
fluxo de trabalho.
17. Clique em Ativar (Activate) ao lado da regra de fluxo de trabalho Designar posio
para recrutador.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 293
Observe o que fizemos
timo! Agora temos uma regra de fluxo de trabalho que move registros de posio criados por
no recrutadores para uma fila de posies no reivindicadas, e se no forem reivindicadas por
um recrutador em trs dias, ela atribui uma tarefa ao gerente do recrutador.
Para testar, verifique se est conectado como gerente de contratao (como Ben Stuart) e crie
uma nova posio. Assim que voc retornar pgina de detalhes para a posio, ver que a fila
de posies no reivindicadas foi automaticamente designada como proprietria do registro e
que qualquer usurio designado para a funo de recrutador ou gerente de contratao ter
recebido uma notificao por email.
Para visualizar o contedo das filas, clique na guia Posies (Positions) e selecione Fila de
posies no reivindicadas (Unclaimed Positions Queue) na lista suspensa
Exibir (View). Qualquer recrutador ou gerente de contratao pode clicar no boto Aceitar
(Accept) nesta pgina e assumir a propriedade da nova posio.
Embora a tarefa de fluxo de trabalho Designar registro da posio no reivindicada para o
recrutador (Assign Unclaimed Position Record to Recruiter) no seja ativada por mais trs
dias, podemos ver que ela j est programada para ser acionada ao verificar a fila de fluxo de
trabalho. Essa fila relaciona todas as aes de fluxo de trabalho dependentes de tempo que esto
programadas para o futuro. Para exibi-la:
1. Conecte-se novamente sua organizao como administrador.
2. Em Configurao (Setup), clique em Fluxo de trabalho com base em tempo
(Time-Based Workflow) ou Monitoramento (Monitoring) > Fluxo de trabalho
com base em tempo (Time-Based Workflow).
3. Clique em Pesquisar.
Figura 100: Monitor da pgina da fila de fluxo de trabalho
294 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Assim que o recrutador assume a propriedade do registro da nova posio, essa tarefa excluda
da fila de fluxo de trabalho. Bem eficiente, no ?
Agora vamos criar uma ltima regra de fluxo de trabalho para vermos como criar um alerta de
fluxo de trabalho por email.
Criao de uma regra de fluxo de trabalho
que envia alertas por email
Para o nosso ltimo caso de uso de fluxo de trabalho, vamos criar uma regra de fluxo de trabalho
e um alerta por email que envia uma notificao sempre que uma nova posio criada.
Queremos que todos os funcionrios da Universal Containers saibam quando h novas posies
disponveis para que eles tenham a oportunidade de fazer indicaes.
Para esta regra de fluxo de trabalho, h uma etapa que precisa ser abordada antes: precisamos
criar um modelo para o alerta por email.
Introduo aos modelos de email
Da mesma forma que a plataforma, ele inclui ferramentas integradas para configurar permisses
de segurana, rastrear eventos e tarefas e desenvolver lgica de negcios com fluxo de trabalho,
alm de oferecer uma ferramenta integrada para escrever emails a usurios e contatos de sua
organizao. Os modelos de email permitem que voc crie emails de formulrios que enviam uma
mensagem padro, como uma carta de boas-vindas para novos funcionrios ou uma confirmao
de que uma solicitao de servio do cliente foi recebida.
Para personalizar o contedo de um modelo de email, podemos usar campos de mesclagem para
incorporar valores de registros que so armazenados no sistema. Por exemplo, se quisermos
nos dirigir a um destinatrio de email pelo primeiro nome, podemos escrever um modelo de
email.
Dear {!Contact.FirstName},
...
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 295
Neste exemplo, {!Contact.FirstName} um campo de mesclagem que traz o primeiro
nome do contato para o qual o email endereado, ento o email para John Smiley ficaria
assim:
Dear John,
...
Para o nosso alerta de fluxo de trabalho, podemos criar um modelo de email para notificar os
usurios de novas posies que foram includas no sistema. Podemos usar campos de mesclagem
para incluir informaes do registro da posio, como seu ttulo e as habilidades exigidas. Vamos
fazer isso agora e depois podemos voltar para concluir a nossa ltima regra de fluxo de trabalho.
Experimente: Crie um modelo de email
Para criar um novo modelo de email, precisamos acessar a rea de Configurao (Setup).
1. Em Configurao, clique em Modelos de comunicao > Modelos de email.
Aqui voc ver uma lista de todos os modelos de email que j foram definidos para a sua
organizao, inclusive vrios modelos de amostra do salesforce.com.
2. Clique em Novo modelo.
Podemos optar por criar um modelo de email de texto, HTML ou personalizado. Os modelos
de emails HTML e personalizados so iguais, exceto que os modelos HTML permitem que
voc especifique um timbre para que o email tenha a mesma aparncia que os outros emails da
mesma fonte.
Nota: Uma quarta opo, o Visualforce, permite que os desenvolvedores criem modelos
de email usando a linguagem de marcao baseada em tag do salesforce.com. Vamos
tocar em Visualforce em Movimentando alm do desenvolvimento de aplicativo do
tipo point-and-click (Moving Beyond Point-and-Click App Development) na pgina
373.
Para simplificar por ora, vamos nos ater a um texto plano.
3. Selecione Texto (Text) e clique em Avanar (Next).
296 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Figura 101: Definio de um modelo de email
A pgina Novo modelo (New Template) nos permite definir o modelo de email em si. A rea
perto do topo onde vamos gerar os cdigos do campo de mesclagem para os campos do
modelo de email abaixo, ento vamos pular isso agora e comear com a lista suspensa da pasta.
4. Na lista suspensa da pasta, selecione Modelos pblicos de email no
arquivados (Unfiled Public Email Templates).
A pasta de modelos pblicos de email no arquivados uma pasta pblica padro, disponvel
em qualquer organizao. Ao manter o modelo de email em uma pasta pblica, ele estar
disponvel para outros usurios com permisso para visualizar e editar modelos de email.
5. Marque a caixa de seleo Disponvel para uso (Available For Use).
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 297
Essa opo deixar o nosso modelo de email disponvel quando criarmos o alerta de fluxo de
trabalho.
6. Na caixa de texto Nome do modelo de email (Email Template Name),
insira Aplicativo Recruiting (Recruiting App): Novo alerta
de posio (New Position Alert).
Dica: Para ajudar a manter seus modelos de email organizados, recomendvel fazer
prefcio de qualquer nome de modelo com o nome do aplicativo que o utiliza. Ou,
melhor ainda, voc pode criar uma pasta de modelo pblico de email com o nome do
aplicativo, como Modelos do aplicativo de recrutamento e arquivar ali todos os modelos
de email relevantes.
7. Na caixa de texto Codificao (Encoding) aceite o padro de General US &
Western Europe (ISO-8859-1, ISO-Latin-1).
8. Na caixa de texto Descrio (Description), insira Enviar email de
atualizao para todos os funcionrios da Universal
Containers(Send update email to all Universal Containers
employees).
Agora chegamos ao cerne de nosso modelo de email: o assunto e o texto do corpo do email.
9. Na caixa de texto Assunto (Subject), insira Alerta de nova posio
aberta (New Open Position Alert):
Queremos colocar o ttulo da nova posio no assunto do email, ento precisaremos usar o
nosso primeiro campo de mesclagem aqui, logo aps os dois pontos do assunto. Para obter o
cdigo apropriado, teremos de retornar rea do campo de mesclagem perto do topo da pgina.
10. Na lista suspensa Selecionar tipo de campo (Select Field Type), escolha Campos
de Posio (Position Fields).
Embora tenha muitos objetos para escolher na lista suspensa Selecionar tipo de campo (Select
Field Type), como estamos criando um modelo de email para uma regra de fluxo de trabalho,
estamos limitados aos campos para o objeto que ser associado com aquele fluxo de trabalho,
em nosso caso, a Posio (Position). Isso ocorre porque a regra de fluxo de trabalho que usa
esse modelo de email no ter informaes sobre quaisquer registros que no seja o registro da
posio que acionou a regra de fluxo de trabalho. Se inserirmos campos de outro objeto, eles
ficaro em branco em nosso email.
Agora vamos pegar o campo que queremos.
11. Na lista suspensa Selecionar campo (Select Field), escolha Ttulo da posio
(Position Title).
298 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Na caixa de texto Copiar valor do campo de mesclagem (Copy Merge Field
Value) aparece um cdigo de campo de mesclagem para o ttulo da posio. Podemos copiar
e colar esse campo no fim da linha de assunto para que o assunto fique assim: Alerta de
nova posio aberta (New Open Position Alert): {!Position__c.Name}.
Quando um email for gerado a partir desse modelo, {!Position__c.Name} ser substitudo
pelo ttulo da posio relevante.
Fcil, certo? Agora, vamos concluir o restante de nosso email.
12. Na rea de texto logo abaixo da caixa de texto Assunto (Subject), insira o
seguinte texto:
There's a new position open at Universal Containers!
Title: {!Position__c.Name}
Functional Area: {!Position__c.Functional_Area__c}
Location: {!Position__c.Location__c}
Job Description
{!Position__c.Job_Description__c}
Responsibilities
{!Position__c.Responsibilities__c}
Skills Required
{!Position__c.Skills_Required__c}
Educational Requirements
{!Position__c.Educational_Requirements__c}
If you know of anyone great who might be able to fill this role,
please contact the hiring manager, {!Position__c.Hiring_Manager__c}.
Thanks!
13. Clique em Salvar.
Conclumos o nosso modelo de email. Agora que est pronto, podemos criar a regra e o alerta
de fluxo de trabalho da nossa nova posio.
Experimente: Crie uma regra de fluxo de trabalho
de nova posio
Agora que j criamos nosso modelo de email, estamos prontos para criar a regra de fluxo de
trabalho e o alerta por email utilizado. A esta altura, o procedimento j deve ser familiar para
voc:
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 299
1. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Regras de
fluxo de trabalho.
2. Clique em Nova regra (New Rule).
3. Na lista suspensa Objeto (Object), selecione Posio (Position) e clique em
Avanar (Next).
4. Na caixa de texto Nome da regra (Rule Name), insira Enviar email de
alerta de nova posio (Email New Position Alert).
5. Na caixa de texto Descrio (Description), insira Enviar um email a
todos sempre que um registro de posio for aberto (Send
an email to everyone whenever a position record is opened).
Queremos que essa regra seja executada apenas quando o status do registro de uma posio
mudar para Aberto - aprovado (Open - Approved).
6. No campo Avaliar a regra quando um registro for: (Evaluate the rule when a record
is:) , selecione criado e sempre que for editado para depois atender
aos critrios (created, and any time its edited to
subsequently meet criteria).
7. Na primeira linha de critrios de regra:
Defina o campo como Formulrio de emprego (Job Application):
Status.
Defina o operador como igual (equals).
Defina o valor como Aberto - Aprovado (Open - Approved). Embora
a nova posio tenha o valor padro da lista de seleo Status, queremos publicar
apenas aquelas posies que foram aprovadas para contratao por um executivo.
8. Clique em Salvar e avanar.
Agora vamos criar o alerta por email para essa regra de fluxo de trabalho:
9. Na rea Aes de fluxo de trabalho imediato (Immediate Workflow Actions), clique
em Adicionar ao de fluxo de trabalho (Add Workflow Action) e selecione Novo
alerta por email (New Email Alert).
10. Na caixa de texto Descrio (Description), insira Enviar email de
alerta de nova posio (Email New Position Alert).
11. Ao lado do campo Modelo de email (Email Template), clique no cone de
pesquisa ( ) e selecione Aplicativo Recruiting (Recruiting App): Novo alerta de
posio (New Position Alert).
Queremos enviar esse email para todos da Universal Containers, mas para essa regra de fluxo
de trabalho no h uma maneira bvia de fazer isso. Podemos contornar isso contando com a
hierarquia de funo e enviando o email para todos com funo de CEO e seus subordinados.
300 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
12. No campo Pesquisa de tipo de destinatrio (Recipient Type Search), selecione
Funo e subordinados (Role and Subordinates).
13. Na lista Destinatrios disponveis (Available Recipients), selecione Funo e
subordinados (Role and Subordinates): CEO e clique em Adicionar
(Add).
14. Clique em Salvar.
15. Clique em Concludo.
16. Clique em Ativar.
E isso tudo nesta etapa! Para testar essa regra de fluxo de trabalho, basta criar um registro de
nova posio com status Aberto - aprovado (Open - Approved). Em poucos segundos, todos
os usurios dentro da organizao iro receber um email informando que uma posio acaba
de ser criada. V em frente e teste!
Beyond the Basics
Voc sabia que pode usar o console do desenvolvedor para resolver problemas do Apex,
de regras de fluxo de trabalho e lgica de validao?
Informe que voc deseja depurar uma regra de fluxo de trabalho que no est funcionando
corretamente. Voc pode utilizar o console para passar pelas etapas do registro de execuo
de tudo que ocorreu durante a solicitao, linha por linha, at encontrar o problema.
Para abrir o console do desenvolvedor clique em Seu nome (Your Name) > Console
do desenvolvedor (Developer Console). Para saber mais, clique em Ajuda (Help) no
Console do desenvolvedor (Developer Console).
Introduo de aprovaes
J que acabamos de criar algumas regras de fluxo de trabalho, vamos dar uma olhada em outras
ferramentas de lgica comercial que a plataforma oferece: processos de aprovao.
Os processos de aprovao permitem que voc especifique uma sequncia de etapas que so
necessrias para aprovar um registro. Cada etapa permite que um ou mais aprovadores designados
aceitem ou rejeitem um registro. As etapas podem ser aplicadas a todos os registros para o
objeto associado com o processo ou apenas aos registros que satisfazem determinados requisitos.
Como o fluxo de trabalho, os processos de aprovao tambm permitem que voc especifique
aes, como o envio de alerta por email, atualizao de valor de um campo ou atribuio de
uma tarefa, que deveriam ocorrer sempre que um registro aprovado, rejeitado, enviado para
aprovao ou submetido a recall.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 301
Figura 102: Os processos de aprovao so compostos de etapas e aes
Por exemplo, sua organizao pode ter um processo de trs nveis para aprovar despesas: despesas
enviadas de menos de $ 50 so automaticamente aprovadas, aquelas de mais de $ 50 devem ser
aprovadas por um gerente e aquelas acima de $ 5.000 devem ser aprovadas tambm por um
vice-presidente. Neste exemplo, seu processo de aprovao especificaria do seguinte:
Se um registro de despesa enviado para aprovao, bloqueie o registro de modo que os
usurios no possam edit-lo e altere o status para "Enviado".
Se o valor $ 50 ou menos, aprove a solicitao automaticamente.
Se o valor maior que $ 50, envie uma solicitao de aprovao ao gerente direto.
Se o valor maior que $ 5.000 e a primeira solicitao de aprovao est aprovada, envie
uma solicitao de aprovao para o vice-presidente.
Se todas as solicitaes de aprovao forem aprovadas, altere o status para "Aprovado" e
desbloqueie o registro.
Se quaisquer solicitaes de aprovao forem rejeitadas, altere o status para "Rejeitado" e
desbloqueie o registro.
302 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Para o nosso aplicativo de recrutamento vamos definir um processo de aprovao similar para
enviar posies para aprovao. Queremos assegurar que um gerente aprove posies criadas
por seus funcionrios e que as posies com salrio mnimo maior que US$ 150 mil sejam
aprovadas pelo CEO. Vamos comear.
Planejamento para os processos de aprovao
Na maioria dos casos, voc ver que necessrio fazer um pequeno planejamento antecipado,
antes de implementar um processo de aprovao por conta prpria. A lista de verificao
disponvel em Conceitos bsicos sobre processos de aprovao na Ajuda do Salesforce ressalta
os fatores que devem ser considerados e os componentes que devem ser desenvolvidos antes
de se aprofundar.
Para esses processos de aprovao, a nica etapa preliminar que precisamos fazer definir o
modelo de email que pode ser usado para notificar o aprovador designado que ele tem uma
solicitao de aprovao pendente.
Beyond the Basics
Se o Chatter estiver ativado em sua organizao, seus usurios podem receber solicitaes
de aprovao como publicaes no feed do Chatter. Voc tambm pode personalizar o
modo de exibio das solicitaes de aprovao no feed criando modelos de publicao e
associando-os aos seus processos de aprovao. Para obter mais informaes sobre como
isso funciona, consulte Sobre Aprovaes no Chatter na Ajuda do Salesforce.
Como ativamos as notificaes para o Salesforce1, seus usurios podem receber notificaes
automticas e dentro do aplicativo quando algum envia um registro para aprovao. Os
usurios individuais podem ativar ou desativar as notificaes de solicitaes de aprovao
no email e no Salesforce1 por meio do campo do usurio Receber emails de
solicitao de aprovao (Receive Approval Request Emails). Para
obter mais informaes, consulte Alterando suas preferncias de usurio de aprovao
na Ajuda do Salesforce.
Experimente: Crie um modelo de email para
aprovaes
Como j falamos sobre modelos de email em Introduo aos modelos de email na pgina 295,
vamos simplesmente incluir os valores que queremos usar para o modelo na tabela a seguir.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 303
Voc pode cri-lo a partir de Configurao (Setup), em Modelos de Comunicao
(Communication Templates) > Modelos de Email (Email Templates).
Tabela 43: Modelo de email "Aplicativo Recruiting para nova posio requer aprovao"
Valor Parmetro
Texto Tipo de modelo
Selecionado Disponvel para uso
Aplicativo Recruiting (Recruiting App): Nova
posio requer aprovao (New Position Requires
Approval)
Nome do modelo de
email
General US & Western Europe (ISO-8859-1, ISO-LATIN-1) Codificao
Enviar email de notificao para o aprovador
designado quando um registro de nova posio
requer aprovao.
Descrio
Nova posio requer aprovao Assunto
Um registro de nova posio foi enviado para sua
aprovao. Visite o link abaixo e aprove ou
rejeite a posio.
{!Position__c.Link}
Corpo do email
Obrigado!
Experimente: Crie um processo de aprovao
Agora que ns terminamos a preparao, est tudo pronto para definir o processo de aprovao
em si. A definio do processo de aprovao atua como uma estrutura para as etapas e aes
de aprovao que vamos definir mais tarde.
1. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Processos
de aprovao.
2. Na lista suspensa de Gerenciar processos de aprovao para (Manage Approval
Processes For), selecione Posio (Position).
H dois assistentes diferentes que podem ser usados para criar um novo processo de aprovao:
o Assistente de fase inicial e o Assistente de configurao padro. O Assistente de fase inicial
304 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
define vrios valores padro para ns e requer a insero apenas dos campos mais cruciais: o
modelo do email de designao de aprovao, critrio de filtro para inserir o processo de
aprovao e aprovadores designados. O Assistente de configurao padro, por outro lado,
permite configurar toda e qualquer opo possvel para o nosso processo de aprovao. Vamos
nos ater ao ltimo por enquanto, assim podemos analisar todas as opes disponveis.
3. No boto suspenso Criar novo processo de aprovao (Create New Approval
Process), selecione Usar Assistente de configurao padro (Use Standard Setup
Wizard).
4. No campo Nome do processo (Process Name) insira Aprovar nova
posio (Approve New Position).
5. No campo Descrio (Description) insira Assegurar que um gerente
aprove posies criadas por seus funcionrios e que as
posies com salrio mnimo maior que US$ 150 mil sejam
aprovadas pelo CEO (Ensure that a manager approves any
position that his or her employee creates, and that any
position with a minimum salary of more than $150,000 is
approved by the CEO).
6. Clique em Avanar.
Depois de inserir nome e descrio, nosso prximo passo especificar as condies que
determinam quais posies precisam de aprovao. Assim como nas regras de fluxo de trabalho,
podemos fazer isso definindo um conjunto de critrios ou criando uma frmula. Vamos definir
os critrios de modo que todas as posies criadas por um usurio que no seja o CEO precisem
ser aprovadas por no mnimo um gerente imediato.
7. Na primeira linha do critrio de filtro, selecione Usurio atual (Current
User): Funo diferente de CEO (Role not equal to CEO).
8. Clique em Avanar.
9. Na lista suspensa Prximo aprovador automatizado determinado por
(Next Automated Approver Determined By) selecione Gerente
(Manager).
O campo Gerente (Manager) um campo padro do objeto de usurio que designa o
gerente do usurio. O campo estabelece a relao hierrquica entre usurios, evitando assim
que voc selecione um usurio que responda direta ou indiretamente a ele. Esse gerente ser
designado aprovador para a primeira etapa do nosso processo de aprovao.
Voc tambm poderia ter selecionado a opo Criar campo de nova relao
hierrquica (create New Hierarchical Relationship Field) na lista
suspensa para definir um novo campo de pesquisa personalizado de relao hierrquica (hierarchical
relationship) de forma dinmica. O tipo de campo de relao hierrquica foi concebido
especificamente para o objeto de usurio e reproduz o comportamento do campo padro
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 305
Gerente (Manager) associando um usurio a outro sem associar, indiretamente, aquele
usurio com ele mesmo. No entanto, para esse processo de aprovao, o campo padro Gerente
(Manager) est perfeito, ento vamos em frente.
Figura 103: Especificao do campo do aprovador
10. Marque a caixa de seleo Usar campo do aprovador do proprietrio
da posio (Use Approver Field of Position Owner).
A caixa de seleo Usar campo do aprovador do proprietrio da posio (Use
Approver Field of Position Owner) torna-se editvel quando voc seleciona Gerente
(Manager) na lista suspensa Prximo aprovador automatizado determinado por
(Next Automated Approver Determined By). Quando voc marca essa caixa de seleo,
a solicitao de aprovao encaminhada para o usurio especificado no campo Gerente
(Manager) no registro de usurio do proprietrio do registro. Se voc no marcar essa caixa
de seleo, a solicitao de aprovao ser encaminhada ao gerente do usurio que enviou o
registro. Em nosso exemplo, queremos obter aprovao do gerente do proprietrio da posio,
ento marque essa caixa de seleo.
11. Na rea de Propriedades de edio de registro, selecione SOMENTE
administradores podem editar registros durante o processo de
aprovao (Administrators ONLY can edit records during the
approval process).
A edio de registros permite que voc especifique se um registro que foi enviado para aprovao
pode ser editado pelo aprovador antes de ser aprovado. Como no queremos que os gerentes
alterem as posies criadas por um gerente de contratao ou recrutador sem avisar o
proprietrio, vamos permitir que apenas os administradores faam edies enquanto um registro
est em processo de aprovao.
12. Clique em Avanar.
13. No campo de pesquisa Modelo de email de designao de aprovao
(Approval Assignment Email Template), selecione Aplicativo Recruiting
(Recruiting App): Nova posio requer aprovao (New Position Requires
Approval).
14. Clique em Avanar.
306 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
A prxima etapa da definio do processo de aprovao especificar quais campos devem ser
exibidos no layout da pgina de aprovao que o aprovador v quando aprova ou rejeita um
registro. Cada processo de aprovao tem seu prprio layout de pgina e, diferentemente de
outros layouts de pgina, o layout de pgina de aprovao s pode ser configurado dentro de
seu processo de aprovao.
15. Mude os campos a seguir de Campos disponveis (Available Fields) para Campos
selecionados (Selected Fields).
Ttulo da posio
Proprietrio
Gerente de contratao
Tipo
Local
Contratar em
Descrio do emprego
Salrio mnimo
Salrio mximo
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 307
Figura 104: Definio do layout de pgina de aprovao de registro
Nesta pgina, podemos especificar tambm se as informaes de histrico de aprovao devem
ser exibidas no layout da pgina de aprovao. Essas informaes revelam se o registro foi
enviado para aprovao no passado, quem eram os aprovadores designados e se tal registro foi
aprovado ou rejeitado.
16. Selecione Exibir informaes de histrico de aprovao alm dos
campos selecionados acima (Display approval history
information in addition to the fields selected above).
Por ltimo, antes de deixar esta pgina, podemos especificar as configuraes de segurana
para determinar se os aprovadores podem acessar uma verso externa da pgina de aprovao
de qualquer navegador, inclusive aqueles de dispositivos mveis, sem fazer login no Salesforce.
A menos que seja um requisito obrigatrio para seus aprovadores, melhor no selecionar essa
opo porque voc no ir conseguir adicionar as etapas de aprovao que permitem aos usurios
selecionar o prximo aprovador. Vamos manter a seleo padro por enquanto.
17. Clique em Avanar.
308 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
A ltima pgina do assistente do novo processo de aprovao nos deixa escolher quem deve
ter permisso para enviar registros de posio para aprovao. Mais uma vez, vamos deixar
apenas o padro, Proprietrio da posio (Position Owner), selecionado, porque no h motivos
para outro usurio ter esse poder.
As duas ltimas opes desta pgina nos permitem colocar a lista relacionada de Histrico de
aprovao (Approval History) em todos os layouts de pgina de posio e autorizar os usurios
a fazer recalls de solicitaes de aprovao pendentes depois de envi-las. A lista relacionada
de Histrico de aprovao (Approval History) a mesma lista relacionada de histrico que
inclumos no layout da pgina de aprovao, ento tambm vamos inclu-la na pgina de
detalhes da Posio (Position). Nessa lista relacionada, os usurios tambm podem clicar no
boto Fazer recall de solicitao de aprovao (Recall Approval Request) para retirar as
solicitaes de aprovao pendentes. Se no ativssemos essa ltima opo, somente os
administradores teriam acesso ao boto Fazer recall de solicitao de aprovao (Recall
Approval Request).
18. Selecione Adicionar lista relacionada de histrico de aprovao
para todos os layouts de pgina de posio (Add Approval
History Related List to All Position Page Layouts).
19. Selecione Permitir que remetentes faam o recall das
solicitaes aprovadas.
20. Clique em Salvar.
Ufa! Terminamos de definir a estrutura para o nosso processo de aprovao, mas no
conseguiremos ativ-lo at que sejam disparadas algumas etapas e aes quando os registros
forem de fato aprovados ou rejeitados. Vamos passar para isso agora.
21. Selecione Sim, quero criar uma etapa de aprovao agora (Yes,
I'd like to create an approval step now).
22. Clique em Ir! (Go!)
Experimente: Crie etapas de aprovao
Como dissemos anteriormente, todo processo de aprovao consiste em um conjunto de etapas
que so necessrias para aprovar um registro e cada etapa permite um ou mais aprovadores
designados para aceitar ou rejeitar o registro enviado. Em outras palavras, cada rodada de
"assinaturas" que voc precisa para obter aprovao de um registro deve ter uma etapa
correspondente no processo de aprovao. Uma etapa de aprovao composta de:
Um ou mais aprovadores designados
Critrio de filtro opcional, para que apenas os registros que satisfazem determinadas
condies exijam aprovao naquela etapa
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 309
Aes de aprovao de etapa opcionais, que so executadas independentemente do resultado
do processo de aprovao como um todo
Aes de rejeio de etapa opcionais, que so executadas independentemente do resultado
do processo de aprovao como um todo
Aes de recall de etapas opcionais, que so executadas se o registro for submetido a recall.
Para o nosso processo de aprovao de Nova posio, precisaremos definir duas etapas uma
que requer aprovao do gerente de quem enviou o registro para todos os registros de novas
posies e outra que requer aprovao adicional do CEO para registros de posio com salrio
mnimo maior que US$ 150 mil. Vamos definir agora a primeira etapa para todos os registros
de novas posies.
Como selecionamos Sim, gostaria de criar uma etapa de aprovao agora
(Yes, I'd like to create an approval step now) no final do assistente do
Processo de aprovao padro na ltima seo, j estamos no incio do assistente da Etapa de
nova aprovao. Se no estivssemos, poderamos retornar para o mesmo assistente com as
seguintes etapas:
1. Em Configurao, clique em Criar > Fluxo de trabalho e Aprovaes > Processos
de aprovao.
2. Na lista relacionada de Processos de aprovao, clique em Aprovar nova posio
(Approve New Position).
3. Na lista relacionada Etapas de aprovao (Approval Steps), clique em Nova etapa
de aprovao (New Approval Step).
Nesta primeira etapa, queremos que a solicitao de aprovao v para o gerente do proprietrio
da Posio:
4. No campo Nome (Name) insira Aprovao do gerente (Manager
Approval).
5. No campo Descrio (Description) insira (Toda registro de nova
posio deve ser aprovado pelo gerente do proprietrio da
posio (Every new position record must be approved by the
Position owner's manager).
6. No campo Nmero da etapa (Step Number), insira 1.
O campo Nmero da etapa (Step Number) especifica a ordem na qual vrias etapas
devem ser processadas. Ao designar esta como Etapa 1, ela ser a primeira a ser executada
quando o processo de aprovao for acionado.
7. Clique em Avanar.
A rea Especificar critrios da etapa nos permite definir os critrios ou criar uma frmula que
filtre os registros que requerem aprovao durante esta etapa. Como j filtramos registros de
310 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
posio que so de propriedade do CEO do processo de aprovao como um todo, essa etapa
no necessita de nenhum outro filtro.
8. Clique em Avanar.
Por ltimo, temos de selecionar o aprovador designado para esta etapa e especificar se o
representante de tal aprovador tem permisso para aprovar a solicitao tambm. Como esta
uma etapa de Aprovao do gerente, evidentemente faz sentido aceitar a opo padro de
Designar automaticamente usando o campo personalizado selecionado
antes (Automatically assign using the custom field selected earlier).
(Gerente). Porm, como os registros de posio no so confidenciais, os gerentes podem
delegar a aprovao aos seus representantes. Portanto, os gerentes que sarem de frias ou que
receberem grandes quantidades de solicitaes de aprovao, podem dividir a tarefa com outro
funcionrio.
9. Selecione O delegado do aprovador tambm pode aprovar esta
solicitao (The approver's delegate may also approve this
request).
10. Clique em Salvar.
Depois de concluir nossa primeira etapa de aprovao, estaremos diante de outra opo: criar
aes de aprovao ou rejeio opcionais para esta etapa ou retornar pgina de detalhes do
processo de aprovao. Embora no final seja necessrio especificar as aes de aprovao e
rejeio finais que ocorrem quando o processo de aprovao termina de uma forma ou de outra,
no h nada em particular que precise acontecer depois dessa primeira etapa que no possa ser
especificado em outro lugar. Vamos voltar pgina de detalhes do nosso processo de aprovao
e definir uma segunda etapa de aprovao para posies com salrio mnimo maior que US$
150 mil.
11. SelecioneNo, farei isso depois Leve-me pgina de detalhes
do processo de aprovao para que eu revise o que acabei de
criar. (No, I'll do this later. Take me to the approval
process detail page to review what I've just created).
12. Clique em Ir!.
13. Na lista relacionada Etapas de aprovao (Approval Steps), clique em Nova etapa
de aprovao (New Approval Step).
Estamos de volta ao assistente da Etapa de nova aprovao, mas desta vez, est incluso um
resumo da etapa anterior que criamos. Isso nos ajuda a lembrar onde estamos em nosso processo
de aprovao.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 311
Figura 105: Definio de uma segunda etapa de aprovao
14. No campo Nome (Name) insira Aprovao do CEO (CEO Approval).
15. No campo Descrio (Description) insira Todo registro de nova
posio com salrio mnimo maior que US$ 150 mil deve ser
aprovado pelo CEO (Every new position record with a minimum
salary over $150,000 must be approved by the CEO).
16. No campo Nmero da etapa (Step Number), insira 2.
17. Clique em Avanar.
Para esta etapa de aprovao, queremos enviar ao CEO apenas as posies com salrio mnimo
superior a US$ 150 mil. Alm disso, queremos excluir quaisquer registros que o CEO j tenha
aprovado (por exemplo, porque um dos subordinados diretos do CEO criou o registro).
18. Selecione o boto de opo Insira esta etapa se: (Enter this step
if the following) em seguida, selecione na lista suspensa os critrios
forem satisfeitos (criteria are met).
19. Na primeira linha de filtros insira Posio (Position): Pagto min.
maior ou igual a 150.000 (Min Pay greater or equal 150.000).
Dica: Como atalho, voc pode especificar 150.000 como 150k.
312 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
20. Na segunda linha de filtros insira Usurio Atual (Current User):
Gerente diferente de Cynthia Capobianco (Manager not equal
to Cynthia Capobianco) (CEO interino na Hierarquia de funes da Universal
Containers na pgina 209).
21. Clique em Avanar.
Por ltimo, precisamos selecionar o aprovador (o CEO) e especificar o que deve ocorrer se tal
aprovador rejeitar a solicitao.
22. Selecione o boto de opo Designar automaticamente para
aprovador(es) (Automatically assign to approver(s).
23. Na lista suspensa abaixo do boto de opo selecione Usurio (User), clique no
cone de pesquisa ( ) e selecione o nome do CEO de sua organizao (Cynthia
Capobianco).
Estamos mantendo este processo de aprovao razoavelmente simples, mas se quisssemos,
poderamos usar os links Adicionar linha (Add Row) e Excluir linha (Remove Row) para
enviar a solicitao de aprovao a vrios aprovadores nesta etapa. Poderamos selecionar
Usurios relacionados (Related Users) na primeira lista suspensa da linha para
incluir um aprovador listado nos campos do registro enviado. Por exemplo, como este um
processo de aprovao para registros de Posio, poderamos incluir o gerente de contratao
da posio na lista de aprovadores.
24. Abaixo dos links Adicionar linha (Add Row) e Excluir linha (Remove Row)
selecione Aprovar ou rejeitar com base na PRIMEIRA resposta
(Approve or reject based on the FIRST response).
Se esta etapa estivesse solicitando aprovao de vrios usurios, o boto de opo abaixo dos
links Adicionar linha (Add Row) e Excluir linha (Remove Row) determinaria se a solicitao
de aprovao precisaria de aprovao unnime ou se o registro seria aprovado ou rejeitado com
base no primeiro usurio que respondeu a solicitao.
25. Selecione O delegado do aprovador tambm pode aprovar esta
solicitao (The approver's delegate may also approve this
request).
A prxima seo no permite especificar o que fazer com o registro se ele for rejeitado nesta
etapa. Como o registro de posio est bloqueado para edio durante o processo de aprovao,
faz mais sentido executar a rejeio final.
26. Selecione Executar todas as aes de rejeio desta etapa E todas
as aes de rejeio finais. (Rejeio final) (Perform all
rejection actions for this step AND all final rejection
actions). (Final Rejection).
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 313
27. Clique em Salvar.
Mais uma vez, estamos diante de uma opo para definir as aes de aprovao ou rejeio
nesta etapa especfica. Vamos contornar isso e voltar pgina de detalhes do processo de
aprovao para definir as aes de envio inicial, aprovao final e rejeio final para o processo
todo.
28. SelecioneNo, farei isso depois Leve-me pgina de detalhes
do processo de aprovao para que eu revise o que acabei de
criar. (No, I'll do this later. Take me to the approval
process detail page to review what I've just created).
29. Clique em Ir! (Go!)
Experimente: Crie aes de aprovao
Agora que voc concluiu a definio das etapas do processo de aprovao, estamos quase
terminando. Resta agora especificar as aes de aprovao que deveriam ocorrer sempre que um
registro for inicialmente enviado, ou quando ele for aprovado ou rejeitado no final.
Assim como as aes de fluxo de trabalho, as aes de aprovao permitem criar e atribuir
tarefas, atualizar campos e enviar atualizaes e mensagens de sada por email. Elas podem ser
associadas com o processo de aprovao como etapas de aprovao individuais ou completas.
314 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Figura 106: Pginas de detalhes do processo de aprovao
Como a definio de uma ao de aprovao quase idntica forma que criamos aes de
fluxo de trabalho, vamos passar rapidamente pelo processo de atualizao do campo Status
para Aprovaes pendentes (Pending Approval) quando uma posio for inicialmente enviada
e depois deixar nossas outras aes de aprovao como exerccios.
1. Se voc ainda no estiver na pgina de detalhes do processo de aprovao, em
Configurao (Setup), clique em Criar (Create) > Fluxo de trabalho e aprovaes
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 315
(Workflow & Approvals) > Processos de aprovao (Approval Processes) e, em
seguida, clique em Aprovar nova posio (Approve New Position).
2. Na lista relacionada de aes iniciais de envio, clique em Adicionar nova (Add New)
e selecione Atualizao de campo (Field Update).
A pgina de ao de atualizao de novo campo parece familiar? porque ela j apareceu antes.
Todas as tarefas de aprovao, atualizaes de campo, alertas de email e mensagens de sada
utilizam a mesma interface de edio que as aes de fluxo de trabalho. Na verdade, toda ao
de fluxo de trabalho e aprovao que voc criar pode ser usada, de forma intercambivel, nos
processos de fluxo de trabalho e aprovao.
3. No campo Nome (Name) insira Definir status como aprovao
pendente (Set Status to Pending Approval).
4. No campo Descrio (Description) insira Enquanto uma posio
estiver em processo de aprovao, seu status deve ser
definido como Aprovao Pendente (While a position is in
an approval process, its status should be set to Pending
Approval).
5. Na lista suspensa Campo para atualizao (Field to Update) selecione
Status.
6. Na rea da Lista de opes (Picklist Options), selecione Um valor especfico
(A specific value) e selecione Aprovao Pendente (Pending Approval) na
lista.
7. Clique em Salvar.
Agora, para finalizar o restante do processo de aprovao, defina as aes restantes de aprovao
por conta prpria de acordo com os valores da tabela a seguir.
Tabela 44: Aes de aprovao adicionais
Valores Tipo Categoria
Nome: Definir status como aprovado em
aberto
Campo para atualizar: Status
Atualizao de campo Aes de aprovao
final
Um valor especfico: Aberto - Aprovado
(Open - Approved)
Nome: Definir status como Fechado - no
aprovado (Closed - Not Approved)
Campo para atualizar: Status
Atualizao de campo Aes de rejeio final
316 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Valores Tipo Categoria
Um valor especfico: Fechado - No aprovado
(Closed - Not Approved)
Nome: Definir data de fechamento como hoje
Campo para atualizar: Data de fechamento
Atualizao de campo Aes de rejeio final
Use uma frmula para definir o novo valor:
TODAY()
Experimente: Ative o nosso processo de
aprovao
Conclumos a definio de nosso processo de aprovao Aprovar nova posio (Approve New
Position), mas para test-lo, falta uma etapa final: precisamos ativ-lo. Porm, antes de fazer
isso, tome cuidado! Uma vez que o processo ativado, suas etapas de aprovao no podem
mais ser editadas, mesmo se voc desativ-lo. A nica forma de fazer alteraes clonar o
processo de aprovao existente e fazer as edies na cpia clonada.
Quando voc estiver pronto para testar o processo de aprovao:
1. Em Configurao (Setup), clique em Criar (Create) > Fluxo de trabalho e
Aprovaes (Workflow & Approvals) > Processos de aprovao (Approval
Processes) para retornar pgina da lista do processo de aprovao.
2. Clique em Ativar (Activate), ao lado do processo de aprovao Aprovar nova posio
(Approve New Position).
O processo de aprovao Aprovar nova posio (Approve New Position) muda automaticamente
para a lista ativa e um novo campo exibido: Ordem do processo (Process Order).
Esse campo importante se voc estiver tentando usar mais de um processo de aprovao de
cada vez porque ele nos informa a ordem em que o processo de aprovao ser avaliado.
Observe o que fizemos
Como vimos antes, os processos de aprovao so de natureza complexa e do um pouco de
trabalho para configurar. necessrio passar por vrias telas e definir vrios parmetros, o que
torna difcil visualizar e entender o processo de aprovao de forma holstica.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 317
Felizmente, a plataforma do Force.com tem um Visualizador de Processo que reproduz cada
processo de aprovao como fluxograma. O fluxograma contm todos os detalhes crticos para
cada processo de aprovao, inclusive as etapas necessrias para um registro ser aprovado, os
aprovadores designados para cada etapa, o critrio usado para acionar o processo de aprovao
e as aes que ocorrem quando um registro aprovado, rejeitado, submetido a recall ou enviado
primeiro para aprovao.
Para acessar o Visualizador de Processo, clique no boto Visualizar diagrama (View Diagram)
no topo da pgina de detalhes de qualquer processo de aprovao.
Figura 107: Visualizador de processo
Agora, vamos testar nosso processo de aprovao:
1. Na Configurao (Setup), clique em Gerenciar usurios (Manage Users) > Usurios
(Users) e edite o registro do usurio para que o seu gerente de contratao preencha
o campo Gerente (Manager), de modo que a cadeia de aprovao seja configurada
corretamente. Defina o gerente de Phil Katz como Amy Lojack (gerente de produto)
2. Faa login no aplicativo como Phil Katz e crie uma nova posio.
318 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Note que depois de clicar em Salvar (Save), a pgina de detalhes exibe um boto Enviar para
aprovao (Submit for Approval) na nova lista relacionada de Histrico de aprovao (Approval
History).
Figura 108: Boto Enviar para aprovao (Submit for Approval)
3. Clique em Enviar para aprovao (Submit for Approval) e, em seguida, clique em
OK.
Ao clicar no boto Enviar para aprovao (Submit for Approval) ocorrem vrias coisas.
Primeiro, o registro bloqueado para edio, conforme mostrado pelo cone de bloqueio no
topo da pgina. Alm disso, aparecem duas novas entradas na lista relacionada de Histrico
de aprovao (Approval History) que mostra quem enviou o registro e a atual designao de
aprovao. Por ltimo, o gerente do proprietrio da posio recebe um email informando que
h uma nova posio para ser aprovada.
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 319
Figura 109: Registro de posio enviada
Quando a gerente fizer login depois e visitar o registro, um boto Aprovar/Rejeitar
(Approve/Reject) ficar visvel na lista relacionada do Histrico de aprovao (Approval
History). Ela pode clicar neste boto para ver a solicitao de aprovao e aprovar ou rejeitar
o registro, incluindo comentrios.
4. Faa login como Amy Lojack, a gerente imediata responsvel pela aprovao da
solicitao.
320 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
5. Clique em Aprovar/Rejeitar (Approve/Reject) na lista relacionada de Histrico de
aprovao (Approval History), insira comentrios opcionais e, em seguida, clique
em Aprovar (Approve).
Dica: Para tornar as solicitaes de aprovao e rejeio mais convenientes, considere
a possibilidade de incluir a lista relacionada de Itens para aprovao (Items to Approve)
no layout da guia Incio (Home).
1. Em Configurao, clique em Personalizar > Incio > Layouts de home
page.
2. Clique em Editar (Edit) ao lado de Padro da pgina inicial do painel
(Dashboard Home Page Default) ou Padro DE (DE Default).
3. Selecione Itens para aprovao (Items to Approve) e clique
em Avanar (Next).
4. Organize o componente Itens para aprovao (Items to
Approve) no layout da pgina movimentando para baixo e para cima a
lista da coluna (direita) larga conforme desejar.
5. Clique em Salvar.
Figura 110: Pgina de solicitao de aprovao
Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao | 321
Se o aprovador aceitar o registro, esse registro avana para a prxima etapa do processo de
aprovao (se o campo Pagamento min. (Min Pay) for maior que US$ 150 mil e o CEO
ainda no tiver aprovado), ou se o campo de Status da posio estiver definido como Aberto
- Aprovado (Open - Approved). Os detalhes do registro permanecem bloqueados para evitar
que sejam alterados, mas os recrutadores podem associar a posio com solicitaes de emprego,
tarefas ou outras atividades. Se o registro for rejeitado, seu status ser definido como Fechado
- no aprovado (Closed - Not Approved), o campo Data de fechamento (Close Date)
ser definido como a data do dia e o registro ser desbloqueado para o caso de precisar de
alguma edio simples antes de ser reinserido no processo de aprovao. Com apenas alguns
minutos de trabalho, ns desenvolvemos um processo empresarial eficaz que deixar todos os
usurios da Universal Containers mais eficazes.
Resumindo
Confira agora o nosso aplicativo Recruiting! Ao otimizar o fluxo de trabalho integrado e as
ferramentas do processo de aprovao da plataforma, transformamos nosso aplicativo de um
magnfico banco de dados para um aplicativo totalmente funcional que proporciona real valor
aos usurios.
Em seguida, vamos abordar algo que proporciona real valor aos usurios executivos: relatrios
e painis que proporcionam aos usurios uma viso analtica completa de como est indo o
programa de recrutamento da Universal Containers.
322 | Verso 8 | Chapter 9: Usando fluxos de trabalho personalizados e processos de aprovao
Captulo 10
Analisando dados com relatrios e painis
J percorremos um longo caminho com o nosso aplicativo
Recruiting. Ns no apenas criamos objetos personalizados
Tpicos:
Introduo aos relatrios
para armazenar nossos dados, como definimos regras de
Introduo aos painis
segurana e compartilhamento para proteger os dados e
Introduo aos tipos de
relatrios personalizados
facilitamos a colaborao da equipe de recrutamento. E
ns adicionamos automao com a implementao de
Observe o que fizemos
diversos processos de negcios com fluxo de trabalho e
aprovaes. Ns criamos um aplicativo funcional na nuvem
e no escrevemos uma nica linha de cdigo!
Agora vamos focar nas necessidades da equipe executiva e
dos gerentes da Universal Containers. Como eles precisam
supervisionar muitos aspectos diferentes dos negcios,
precisamos fornecer a eles uma viso panormica da
atividade de recrutamento da empresa sem for-los a
mergulhar em pilhas e pilhas de dados. Para isso, criaremos
um conjunto de relatrios personalizados para o aplicativo
Recruiting e um painel que permita que os usurios
visualizem resumos das principais estatsticas do aplicativo
Recruiting sempre que fizerem login.
Introduo aos relatrios
Ns podemos ajudar os usurios a monitorar e analisar os dados que esto sendo gerados na
sua organizao com a criao de relatrios. Os relatrios so resumos dos dados que esto
armazenados em um aplicativo. Eles so compostos principalmente de uma tabela de dados,
mas tambm podem incluir filtros de dado, agrupamentos e um grfico personalizado.
Apesar de toda organizao possuir um conjunto abrangente de relatrios para fornecer
informaes sobre objetos padro, como contatos e contas, ns tambm podemos criar relatrios
personalizados que destaquem mtricas interessantes sobre os dados armazenados nos nossos
objetos personalizados.
Por exemplo, um executivo na Universal Containers pode ter as perguntas a seguir sobre
recrutamento.
Em mdia, quantos dias cada recrutador demora para preencher uma posio?
Quais reas funcionais possuem mais posies abertas?
Quais posies esto abertas a mais de 90 dias?
Quais posies esto recebendo o maior nmero de candidatos?
Quais funcionrios realizam a maioria das entrevistas?
Como o funil de formulrios de emprego exibido para cada posio aberta?
Quem ns contratamos nos ltimos 90 dias?
Ns podemos responder a todas essas perguntas criando relatrios personalizados na guia
Relatrios (Reports) do aplicativo. Essa guia no visvel por padro no nosso aplicativo
Recruiting, mas qualquer usurio pode clicar na guia de seta direita da barra de guias para
exibir todas as guias disponveis e navegar at a rea de relatrios clicando em Relatrios
(Reports).
324 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Figura 111: Um relatrio de amostra
Formatos de relatrio
A plataforma suporta quatro formatos de relatrio diferentes, cada um com graus variados de
funcionalidade e complexidade.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 325
Os relatrios tabulares so a forma mais simples e rpida de analisar seus dados. De forma
semelhante a uma planilha, eles so simplesmente um grupo ordenado de campos nas
colunas, com cada registro equivalente listado em uma linha. Apesar de serem fceis de
configurar, eles no podem ser usados para criar grupos de dados ou grficos.
Consequentemente, eles so ideais para tarefas como gerao de listas de distribuio.
Dica: Use relatrios tabulares quando quiser uma lista simples ou uma lista de
itens com um total geral.
Os relatrios resumidos so semelhantes aos relatrios tabulares, mas tambm permitem aos
usurios agruparem filas de dados, exibir subtotais e criar grficos. Por exemplo, nos relatrios
Entrevistador do funcionrio (Employee Interviewer) de amostra que so exibidos na captura
de tela a seguir, o relatrio de resumo agrupa as linhas de revises pelos valores possveis
do campo Nome do proprietrio (Owner Name), o que nos permite visualizar
rapidamente os subtotais de quantas vezes os dois entrevistadores conversaram com
candidatos e inseriram revises sobre eles.
Apesar de apresentarem uma configurao mais demorada, os relatrios de resumo fornecem
mais opes para manipulao e organizao dos dados e, diferentemente dos relatrios
tabulares, podem ser usados em painis. Os relatrios de resumo so os "burros de carga"
dos relatrios. Voc ver que a maioria dos seus relatrios ser nesse formato.
Dica: Use relatrios de resumo quando quiser subtotais baseados no valor de um
determinado campo ou quando quiser criar um relatrio agrupado hierarquicamente,
como as vendas organizadas por ano e por trimestre.
Os relatrios de matriz permitem o agrupamento de registros por linha e por coluna. Por
exemplo, nos relatrios Entrevistador do funcionrio (Employee Interviewer) de amostra
a seguir, o relatrio de matriz agrupa as linhas pelos valores possveis do campos Nome do
proprietrio (Owner Name) e tambm divide os valores possveis do campo Posio
(Position) em colunas. Consequentemente, o relatrio fornece informaes resumidas
como o nmero de vezes que um entrevistador entrevistou candidatos e inseriu revises
para uma posio especfica. Esses relatrios possuem uma configurao mais demorada,
mas em compensao fornecem uma viso mais detalhada dos seus dados. Assim como os
relatrios de resumo, os relatrios de matriz podem ter grficos e ser usados em painis.
Dica: Use relatrios de matriz quando quiser visualizar os dados por duas
dimenses diferentes que no esto relacionadas, como data e produto.
Os relatrios combinados permitem a criao de diferentes exibies dos dados de diversos
tipos de relatrios. Em um relatrio combinado, os dados so organizados em blocos. Cada
bloco age como um sub-relatrio, com seus prprios campos, colunas, classificaes e
filtros. possvel adicionar um grfico a um relatrio combinado. Por exemplo, na amostra
326 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
a seguir, o relatrio combinado captura dados de dois tipos de relatrios relacionados ao
objeto Posio (Position). Juntos, o relatrio exibe os formulrios recebidos de anncios de
emprego publicados para cada posio.
Dica: Use relatrios combinados para agrupar e exibir dados de diversos tipos de
relatrios em exibies diferentes.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 327
Figura 112: Os relatrios tabulares, de resumo, de matriz e combinados oferecem
328 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
diferentes opes para a exibio dos dados
Configurando o aplicativo Recruiting para
relatrios
Antes de iniciarmos a criao de relatrios, precisamos executar algumas tarefas que iro facilitar
a localizao dos nossos relatrios no aplicativo Recruiting. Precisamos incluir a guia Relatrio
(Reports) na exibio padro de guias juntamente com as guias Posies (Positions), Candidatos
(Candidates) e Formulrios de emprego (Job Applications). Tambm precisamos criar uma
pasta para armazenar todos os relatrios criados. Essas tarefas so opcionais, mas melhoram
muito a experincia dos usurios do aplicativo Recruiting.
Experimente: Adicione a guia Relatrios (Reports)
Primeiro, vamos adicionar a guia Relatrios (Reports) ao conjunto de guias padro que so
exibidas para todos os usurios do aplicativo Recruiting. Para isso, precisamos acessar novamente
o aplicativo Recruiting que criamos no tpico Criando um aplicativo simples na pgina 37.
1. Em Configurao, clique em Criar > Aplicativos.
2. Clique em Editar (Edit) ao lado do aplicativo Recruiting.
3. Na seo Selecionar as guias (Choose the Tabs), adicione Relatrios (Reports) lista
Guias selecionadas (Selected Tabs).
4. Opcionalmente, selecione Substituir personalizaes do aplicativo
pessoal dos usurios (Overwrite users' personal custom app
customizations).
Ao selecionar essa opo, a guia Relatrios (Reports) ser adicionada automaticamente
barra de guias por padro para todos os usurios. Se voc j implementou seu
aplicativo e no deseja substituir as alteraes existentes dos usurios, deixe essa opo
desmarcada. Os usurios podem adicionar manualmente a guia Relatrios (Reports)
sua barra de guias pessoais clicando na guia +.
5. Clique em Salvar.
Perfeito! Agora vamos acessar a guia Relatrios (Reports) para executar nossa prxima tarefa:
criar uma pasta para os relatrios do Recruiting.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 329
Experimente: Crie uma pasta de relatrios do
Recruiting
Na guia Relatrios (Reports), voc visualiza os painis e relatrios visualizados recentemente
organizados nas pastas de relatrios e painis. Voc pode navegar rapidamente no painel Pastas
(Folders) ou pesquisar o que voc est procurando. Para visualizar todos os itens ou somente
os relatrios, por exemplo, voc pode filtrar a exibio de lista. Por padro, todas as organizaes
possuem pastas padro, algumas com modelos de relatrio.
A pasta Relatrios pblicos no arquivados (Unfiled Public Reports) uma pasta padro que
todos os usurios podem acessar. Como administrador, voc pode armazenar relatrios nessa
pasta para todas as pessoas na organizao acessarem. Voc pode tornar qualquer outra pasta
uma pasta pblica compartilhando-a com todos os usurios. As pastas pessoais (tambm pastas
padro) como Relatrios personalizados pessoais (Personal Custom Reports) e Painis pessoais
(Personal Dashboards) so uma exceo. Elas contm relatrios ou painis particulares de cada
usurio e no podem ser acessadas por outras pessoas.
Figura 113: A guia Relatrios (Reports) e Pastas (Folders)
Para permitir que usurios acessem seus relatrios, torne a pasta que armazena os relatrios
acessvel para eles. Vamos criar uma pasta para organizar relatrios que possa ser localizada
facilmente pelos usurios.
1. Na guia Relatrios (Reports), clique em ao lado do painel Pastas (Folders) e
selecione Nova pasta de relatrio (New Report Folder).
2. No campo Rtulo da pasta de relatrios (Report Folder Label),
insira Relatrios do Recruiting (Recruiting Reports). Nome
exclusivo da pasta (Folder Unique Name) ser preenchido
automaticamente com Recruiting_Reports. Deixe esse valor padro.
3. Clique em Salvar.
4. Ao lado da pasta Relatrios do Recruiting (Recruiting Reports), clique em e
selecione Compartilhar (Share).
330 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Nota:
Se no visualizar a opo Compartilhar (Share), ser necessrio ativar o
compartilhamento da pasta. Em Configurao (Setup), clique em Personalizar
(Customize) > Relatrios e painis (Reports & Dashboards) > Compartilhamento
de pasta (Folder Sharing) e certifique-se de que a opo Ativar nveis de
acesso para compartilhamento de pastas de relatrios e painis
(Enable access levels for sharing report and dashboard folders)
esteja selecionada.
Voc pode compartilhar todo o contedo de uma pasta de relatrios selecionado uma das opes
na parte superior da caixa de dilogo: Usurios (Users), Papis (Roles), Papis e subordinados
(Roles and Subordinates) ou Grupos pblicos (Public Groups). Voc quer que todas as pessoas
na Universal Containers possam visualizar, mas no possam alterar, os relatrios nessa pasta.
5. Clique em Papis e subordinados (Roles and Subordinates).
6. Prximo a CEO, clique em Compartilhar (Share).
7. Certifique-se de que o nvel selecionado na coluna Acesso (Access) seja Visualizador
(Viewer). Isso permite que todos os usurios da sua empresa visualizem a pasta e os
relatrios armazenados nela, porm somente os administradores podero modificar
os relatrios existes na pasta ou adicionar novos relatrios pasta.
8. Clique em Concludo (Done) para salvar as configuraes e depois clique em Fechar
(Close).
Excelente! Agora estamos prontos para criar nosso primeiro relatrio.
Criando um relatrio de resumo
Para comear, vamos criar um relatrio de resumo que responda pergunta "Quais reas
funcionais possuem mais posies novas ou abertas e em qual regio?" Esse relatrio incluir
o ttulo, o gerente de contratao, o local e o status de cada posio, alm de um grfico de
pizza que apresente os dados visualmente. Durante a criao, vamos ignorar algumas das opes
mais complicadas do relatrio para poder criar rapidamente um relatrio de acordo com nossas
necessidades. Nosso segundo exemplo definir um relatrio de matriz mais complexo que
demonstrar alguns dos recursos mais avanados do relatrio.
Como esse relatrio usar muitos recursos diferentes de relatrio, o procedimento ser divido
em trs partes:
1. Criando um relatrio de resumo
2. Adicionando colunas e filtros
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 331
3. Adicionando um grfico
Experimente: Crie um relatrio de resumo
Para criar nosso relatrio de resumo, vamos comear abrindo o criador de relatrios, um editor
visual avanado para relatrios.
1. Na guia Relatrios, clique em Novo relatrio.
A primeira etapa na criao de um relatrio a escolha do tipo de relatrio certo. Um tipo de
relatrio define o conjunto de registros e campos disponveis para um relatrio com base nos
relacionamentos entre um objeto principal e seus objetos relacionados. Os relatrios exibem
apenas os registros que atendem aos critrios definidos no tipo de relatrio. Seus administradores
podem ter configurado tipos de relatrios personalizados para voc ou voc pode selecionar os
tipos de relatrio padro disponveis.
Para ajudar na navegao nesta tela, todos os objetos e relacionamentos so agrupados em
categorias como Contas e contatos (Accounts & Contacts) e Relatrios de suporte ao cliente
(Customer Support Reports). Os relacionamentos e objetos personalizados que criamos para
nosso aplicativo Recruiting podem ser encontrados em Outros relatrios (Other Reports).
Nota: A categoria Outros relatrios (Other Reports) contm todos os relatrios
baseados em objetos personalizados. Se voc criar um objeto personalizado relacionado
a um objeto padro, como Conta (Account) ou Contato (Contact), tambm ser
possvel gerar relatrios com seu objeto personalizado na categoria do objeto padro.
2. Na pgina Criar novo relatrio (Create New Report), selecione a categoria Outros
relatrios (Other Reports).
Figura 114: A categoria Outros relatrios (Other Reports) na pgina Criar novo relatrio
(Create New Report)
Os objetos que possuem um relacionamento de muitos para um com outro objeto, como
Formulrios de emprego (Job Applications) e Posies (Positions), podem ser selecionados
332 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
isoladamente ou no contexto do seu relacionamento com o outro objeto. Por exemplo, se
selecionarmos Formulrios de emprego (Job Applications) com Posio (Position), nosso
relatrio contar os registros de formulrio de emprego, mas tambm poder filtrar, agrupar
ou exibir campos dos registros de posio relacionados. Isso ser til posteriormente quando
criarmos relatrios que contam os registros de formulrio de emprego. Mas como precisamos
contar os registros de posio no nosso relatrio e as posies no esto no lado "muito" de um
relacionamento, vamos criar um relatrio de posies independente no momento.
3. Selecione Posies (Positions).
4. Clique em Criar.
Figura 115: Relatrio personalizado no criador de relatrios
Agora que escolhemos o tipo de relatrio, podemos personalizar o relatrio. Observe que no
possvel voltar e alterar o tipo de relatrio. Para fazer isso, voc precisa criar outro relatrio.
O painel Visualizao (Preview) do criador de relatrios exibe um conjunto limitado de dados.
Tambm possvel executar o relatrio a qualquer momento para visualizar se obtemos os
resultados que estamos procurando. Por exemplo, vejamos como a aparncia de um relatrio
de base de posies sem nenhuma personalizao.
5. Clique em Executar relatrio.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 333
Figura 116: Um relatrio de posies sem nenhuma personalizao
Nota: O valor padro da lista suspensa Mostrar (Show) Minhas posies (My
Positions). Se voc estiver conectado como um usurio que no possui nenhuma
posio, selecione Todas as posies (All Positions) antes de clicar em Executar
relatrio (Run Report). O relatrio exibir todas as posies nas quais voc tem acesso.
Como voc pode ver, sem especificar nenhum detalhe, ns j temos uma lista dos registros de
posio com um Total geral (Grand Total) na parte inferior. Isso equivalente ao que veramos
ao criar um relatrio tabular sem colunas adicionais. Agora vamos avanar um nvel nesse
relatrio bsico.
6. Clique em Personalizar (Customize) para retornar ao criador de relatrios.
Ao criar um novo relatrio, precisamos primeiro escolher o formato do relatrio que queremos
criar. O formato tabular o padro. Como queremos agrupar as linhas das posies abertas
por rea funcional, vamos criar um relatrio de resumo.
7. Clique em Formato tabular (Tabular Format) e selecione Resumo (Summary) para
alterar o formato.
Agora queremos agrupar nossas linhas de dados pelo campo rea funcional (Functional
Area).
8. Localize o item rea funcional (Functional Area) no painel Campos
(Fields) e arraste-o para a zona para soltar de agrupamento no painel Visualizao
(Preview). Quando tiver muitos campos, use o campo Busca rpida (Quick Find).
334 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Figura 117: Adicionando um agrupamento em um relatrio
Digamos que tambm queremos visualizar as posies agrupadas por regio. O campo Local
(Location) nos fornece a cidade e o estado, mas queremos agrupar os dados geograficamente
por regies, como EUA, Reino Unido e sia-Pacfico. Ao categorizar o campo Local (Location)
em grupos, ns obtemos um campo que pode ser usado para o agrupamento.
9. Arraste o item Local (Location) do painel Campos (Fields) na visualizao aps
o Ttulo da posio (Position Title).
10. Clique no em Local (Location) e selecione Agrupar este campo (Bucket this
Field).
11. Insira Regio (Region) em Nome do campo de grupos (Bucket Field
Name).
12. Clique em Novo grupo (New Bucket), insira EUA (USA) e pressione Enter.
13. Selecione:
San Francisco, CA
Austin, TX
Boulder, CO
New York, NY
14. Clique em Mover para (Move To) e no seu item suspenso selecione EUA (USA).
15. Clique em Novo grupo (New Bucket), insira Reino Unido (UK) e pressione Enter.
16. Mova Londres, Inglaterra (London, England) para a categoria Reino
Unido (UK).
17. Mova todos os itens restantes para o grupo sia-Pacfico (Asia Pacific).
18. Clique em OK.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 335
Figura 118: Criando um campo de grupos
Quando terminar, os locais estaro categorizados regionalmente e voc ter um grupo chamado
Regio (Region), que ser exibido no painel Campos (Fields). No entanto, no precisamos
fazer nada, pois a plataforma adicionou automaticamente o item esquerda do Ttulo da posio
(Position Title).
Figura 119: Campos de grupo na visualizao do relatrio
Estamos quase acabando! Nosso relatrio ainda lista apenas ttulos de posio, mas agora eles
esto agrupados por rea funcional e regio. Alm disso, cada agrupamento possui um subtotal
da contagem de registros entre parnteses. Essas contagens sero a base do grfico de pizza
que iremos adicionar mais tarde.
Experimente: adicione colunas e filtros
Agora vamos selecionar e classificar os campos exibidos e configurar os filtros que restringem
o conjunto de registros includos no relatrio.
Alm do Ttulo da posio (Position Title) e do Local (Location), queremos
exibir os campos Gerente de contratao (Hiring Manager) e Status para cada
registro. Para selecionar vrios campos ou colunas, pressione CTRL (Windows) ou Command
(Mac).
1. No criador de relatrios, arraste os campos a seguir para a visualizao.
Gerente de contratao
Status
Voc tambm pode clicar duas vezes no campo para adicion-lo ao final do relatrio.
2. Reordene as colunas arrastando-as. Coloque as colunas na seguinte ordem:
336 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Ttulo da posio
Local
Gerente de contratao
Status
Figura 120: Adicionando uma coluna usando o recurso de arrastar e soltar
Estamos ainda mais perto do nosso objetivo. No entanto, o campo Status nos mostra que o
relatrio inclui alguns registros de posies que j foram preenchidas. Como queremos visualizar
apenas posies novas e abertas, precisamos configurar alguns filtros. Os filtros definem o
conjunto de registros a ser includo no relatrio. Por exemplo, voc pode incluir somente os
registros criados este ms ou os registros que pertencem a um determinado usurio. Com filtros
padro, voc pode filtrar rapidamente pelo campo proprietrio do registro ou data. Com filtros
de campo, voc pode filtrar em qualquer campo no relatrio. Como queremos visualizar as
posies abertas em toda a organizao e no somente nas nossas posies (por padro, todos
os relatrios personalizados incluem somente os registros pessoais), precisamos configurar dois
filtros.
3. No item suspenso Mostrar (Show), selecione Todas as posies (All
Positions).
4. Clique em Adicionar (Add) > Filtro de campo (Field Filter).
5. Defina um filtro para Status igual a Nova posio (Status equals
New Position), Aprovao pendente (Pending Approval),
Aberta - Aprovada (Open - Approved).
Dica: Observe que sempre que voc escolher um campo de caixa de seleo ou um
campo de lista de opes no seu filtro, como Status, um cone de pesquisa ( ) ser
exibido ao lado da linha do filtro. Clique no cone para visualizar os valores vlidos
para o campo e inserir rapidamente os itens que deseja incluir no seu filtro.
O uso desse filtro de Status igual a Nova posio (Status equals New
Position), Aprovao pendente (Pending Approval), Aberta -
Aprovada (Open - Approved) significa que seu relatrio ir incluir apenas os registros
de posio com um desses trs status. Observe que a vrgula entre os trs valores de Status
tratada como uma funo OR, ento esse filtro equivale ao uso desses trs filtros.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 337
Status igual a Nova posio (Status equals New Position), OU
Status igual a Aprovao pendente (Status equals Pending Approval), OU
Status equivalente a Aberto - Aprovado (Status equals Open - Approved)
Beyond the Basics
Voc sabia que possvel filtrar em um campo de grupo?
Digamos que voc deseja visualizar os dados das regies exceto o Reino Unido (UK). Voc
pode adicionar um filtro no campo de grupo Regio (Region) que voc criou para
agrupar dados no ltimo exerccio. possvel filtrar campos de grupo como qualquer outro
campo no relatrio. Voc configuraria o filtro neste exemplo como: Regio (Region)
no contm (does not contain) Reino Unido (UK).
medida que voc adiciona filtros, por padro, eles so aplicados de forma cumulativa no
relatrio usando a funo AND. Isso significa que somente os dados que cumprirem todas
as condies de filtro sero exibidos. Mas voc pode controlar o comportamento dos filtros
usando a Lgica de filtro (Filter Logic) do menu suspenso Adicionar (Add).
Experimente: Adicione um grfico de pizza
A etapa final exibir um grfico com o relatrio. No nosso caso, ns queremos um grfico de
pizza.
1. Clique em Adicionar grfico (Add Chart) e escolha o tipo de grfico de
pizza.
O criador de grficos sabe automaticamente que ns queremos que os valores sejam a contagem
de registros e os setores sejam as diferentes reas funcionais. Isso porque os valores do grfico
correspondem aos campos de resumo de um relatrio e os setores do grfico de pizza
correspondem aos agrupamentos de um relatrio. Como ns temos um segundo agrupamento
por Regio (Region), podemos escolher um campo diferente para exibir nos setores. Mas
vamos manter as selees padro.
Agora vamos finalizar nosso grfico e gerar nosso relatrio final.
2. Clique em OK.
338 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Figura 121: Relatrio de resumo exibindo as posies abertas por regio e rea
funcional
Quando o relatrio executado, voc tm diversas opes para exibir os dados.
Agrupe, resuma os dados por um campo diferente. Por exemplo, em vez de rea
funcional (Functional Area), voc pode resumir por Gerente de contratao
(Hiring Manager).
Exporte os dados para uma planilha do Excel ou para o formato CSV (valores separados
por vrgula).
Remova os filtros aplicados.
Refine os resultados com filtros padro como data ou intervalo.
Como nosso relatrio atende a todos os nossos critrios, vamos salv-lo na pasta de relatrios
do Recruiting.
3. Prximo ao topo do relatrio, clique em Salvar (Save).
4. No campo Nome do relatrio (Report Name), insira Posies abertas
por rea funcional e regio (Open Positions by Functional
Area and Region).
5. No campo Descrio do relatrio (Report Description), insira Quais
reas funcionais possuem mais posies novas ou abertas
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 339
por regio? (Which functional areas have the most new or
open positions by region?)
6. No campo Nome exclusivo do relatrio (Report Unique Name), insira
Open_Positions_by_Functional_Area.
7. Na lista suspensa Pasta de relatrios (Report Folder), selecione
Relatrios do Recruiting (Recruiting Reports).
8. Clique em Salvar.
Agora se exibirmos a pasta Relatrios do Recruiting (Recruiting Reports), poderemos ver nosso
novo relatrio de resumo. A seguir, vamos criar um relatrio de matriz que aproveite alguns
dos recursos mais avanados de relatrio.
Criando um relatrio de matriz
No nosso prximo relatrio, iremos responder pergunta: "Em mdia, quantos dias cada
recrutador demora para preencher uma posio com ou sem exigncia de viagem?" Esse relatrio
ir usar um formato de matriz para destacar a diferena que a exigncia de viagem faz no tempo
que demora para as posies serem preenchidas. Olhando apenas os dados deste ano e do ano
passado, o relatrio incluir:
Contagens de registros de cada posio de propriedade de um recrutador
Uma frmula de resumo personalizada para a porcentagem das posies de um recrutador
que exigem viagem
Um filtro baseado em tempo que restringe os dados para as posies que foram criadas
neste ano ou no ano passado
Um resumo do campo com cdigo de cores para o nmero mdio de dias que as posies
permanecem abertas:
Mdias de menos de 30 dias so identificadas na cor verde
Mdias entre 30 e 60 dias so identificadas na cor amarela
Mdias de mais de 60 dias so identificadas na cor vermelha
Como esse relatrio usar muitos recursos diferentes de relatrio, o procedimento ser divido
em quatro partes:
1. Criando um relatrio de matriz
2. Adicionando campos de resumo personalizados
3. Adicionando colunas e filtros
4. Adicionando um grfico e o destaque condicional
340 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Experimente: Crie um relatrio de matriz
Para criar o relatrio de matriz, usaremos o criador de relatrios novamente, desta vez destacando
as etapas que so diferentes da forma como definimos o relatrio de resumo.
1. Na guia Relatrios (Reports), clique em Novo relatrio (New Report).
Novamente, iremos criar um relatrio que conte os registros de posio.
2. Na lista, clique em "+" para expandir Outros relatrios (Other Reports).
3. Selecione Posies (Positions) e clique em Criar (Create).
Como queremos comparar diretamente o desempenho individual dos recrutadores nas posies
que exigem e que no exigem viagem, usaremos um relatrio de matriz. Dessa forma ns
podemos agrupar as linhas de posies por recrutador e as colunas de posies pela exigncia
ou no de viagem.
4. No menu suspenso Formato (Format), selecione Matriz (Matrix).
Figura 122: Especificando agrupamentos em um relatrio de matriz
Agora vamos agrupar por linhas e colunas. Observe os dois conjuntos de zonas para soltar dos
relatrios de matriz.
5. No painel Campos (Fields), arraste Posio (Position): Nome do
proprietrio (Owner Name) para a zona para soltar de agrupamento de linha.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 341
6. Arraste Exige viagem (Travel Required) para a zona para soltar de
agrupamento de coluna.
Nosso relatrio agora divide os valores possveis para o campo Exige viagem (Travel
Required) na dimenso das colunas. Os recrutadores tambm podem efetuar a diviso nas
dimenses da linha, mas como todos os relatrios personalizados consultam apenas os dados
do criador do relatrio por padro (ou seja, somente os registros pessoais), somente um
recrutador listado no relatrio no momento. Vamos continuar.
Experimente: Adicione campos de resumo
Na prxima etapa, queremos especificar quais valores de campo numrico ou de caixa de seleo
sero includos no nosso relatrio e como cada valor ser resumido em subtotais e totais gerais.
A contagem de registros sempre resumida como uma soma total, mas ns podemos resumir
outros campos numricos ou de caixa de seleo de formas diferentes.
Por exemplo, no faz sentido somar os valores da coluna Dias em aberto (Days Open)
o total resultante no seria muito relevante. No entanto, se ns calcularmos a mdia de Dias
em aberto (Days Open), saberemos quanto tempo aproximadamente as posies
permanecem abertas.
Ns queremos incluir trs tipos diferentes de resumos no nosso relatrio: contagem de registros,
mdia de dias em aberto e uma frmula que calcule a porcentagem de registros que exigem
viagem. Os dois primeiros resumos so campos de resumo padro, mas o terceiro requer o uso
do editor Frmula de resumo personalizada (Custom Summary Formula). Vamos comear
com os dois primeiros. Por padro, o relatrio j adiciona Contagem de registros
(Record Count), ento vamos adicionar a mdia do nmero de dias que uma posio
permanece aberta.
1. Localize o campo Dias em aberto (Days Open) e arraste-o para a matriz.
2. Na caixa de dilogo Resumir (Summarize), selecione Mdia (Average).
Agora vamos criar a frmula para calcular a porcentagem de registros que exigem viagem.
3. Clique duas vezes em Adicionar frmula (Add Formula). Voc ver o editor Frmula
de resumo personalizada (Custom Summary Formula).
342 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Figura 123: O construtor Frmula de resumo personalizada (Custom Summary Formula)
O editor de frmulas permite a definio de uma nova frmula baseada em campos que permitem
resumo no relatrio. No nosso caso, queremos incluir um resumo que mostre a porcentagem
de registros de posio que exigem viagem em qualquer segmento. Para fazer esse clculo,
precisamos dividir a soma dos registros que exigem viagem pela soma de todos os registros:
4. No campo Nome da coluna (Column Name), insira Porcentagem que
exige viagem (Travel Required Percentage).
5. No campo Descrio (Description), insira A porcentagem do total
de registros de posio que exigem viagem (The percentage
of total position records that require travel).
6. Na lista suspensa Formato (Format), selecione Porcentagem (Percent).
7. Na lista suspensa Casas decimais (Decimal Places), selecione 0.
8. Em Onde essa frmula ser exibida? (Where will this formula
be displayed?), selecione Todos os nveis de resumo (At all
summary levels).
Agora vamos escrever nossa frmula. Assim como os outros editores de frmulas na plataforma,
esse editor fornece ferramentas para facilitar a criao.
9. Na seo Frmula (Formula), clique em Campos de resumo (Summary Fields) e
selecione Exige viagem (Travel Required) e, em seguida, Soma (Sum).
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 343
O editor de frmulas exibir a seguinte representao de API desses valores:
Position__c.Travel_Required__c:SUM
10. Clique na lista suspensa Operadores (Operators) e selecione Dividir (Divide).
11. Clique em Campo de resumo (Summary Field) e selecione Contagem de
registros (Record Count).
A frmula final ficar assim:
Position__c.Travel_Required__c:SUM / RowCount
Ns podemos verificar rapidamente se a frmula est correta verificando sua sintaxe antes de
salvar.
12. Clique em Verificar sintaxe (Check Syntax).
13. Clique em OK.
Experimente: adicione colunas e filtros
Nas etapas a seguir, iremos selecionar colunas do relatrio e definir nossos filtros. Como j
estamos familiarizados com a adio de colunas, vamos executar rapidamente essa etapa.
Nota: Antes de adicionar campos a um relatrio de matriz, certifique-se de que a
opo Detalhes (Details) esteja selecionada na lista suspensa Mostrar (Show). Se os
detalhes no forem exibidos, ser possvel adicionar somente campos de resumo.
1. Adicione as colunas de relatrio a seguir clicando duas vezes nelas.
rea funcional
Status
Posio: Ttulo da posio (Position Title), Dias em aberto
(Days Open) e Exige viagem (Travel Required) j devem fazer parte do
seu relatrio.
Ns desejamos definir trs filtros no nosso relatrio: um para incluir todas as posies, um para
incluir somente as posies criadas no ltimo ano e um para incluir as posies com Status
Aberta - Aprovada (Open - Approved) ou Fechada - Preenchida (Closed - Filled).
2. Na lista suspensa Mostrar (Show), selecione Todas as posies (All
Positions).
344 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
3. No filtro Campo de data (Date Field), selecione Posio (Position): Data
de criao (Created Date).
Observe que todos os outros campos de data definidos no objeto Posio (Position) tambm
esto disponveis no filtro Campo de data (Date Field), incluindo Data de fechamento
(Close Date), Contratado por (Hire By) e Data de abertura (Open Date).
4. Em Intervalo (Range), selecione AF atual e anterior (Current and
Previous CY) (ano civil atual e anterior). As datas de incio e fim so preenchidas
automaticamente.
Agora vamos adicionar um filtro baseado no status.
5. Clique em Adicionar.
6. Crie este filtro.
Status equivalente a Aberto - Aprovado, Fechado -
Preenchido (Status equals Open - Approved, Closed - Filled)
7. Clique em OK.
Figura 124: Filtrando o relatrio de matriz
Beyond the Basics
Os filtros cruzados permitem a filtragem dos objetos filho de um relatrio usando uma
condio direta WITH ou WITHOUT. Por exemplo, voc deseja visualizar somente os
dados das posies que possuem formulrios de emprego. Voc pode adicionar um Filtro
cruzado (Cross Filter) do item suspenso Adicionar (Add) no painel Campos (Fields)
como este: Posies com formulrios de emprego (Positions with
Job Applications). Voc pode filtrar novamente o objeto Formulrios de
emprego (Job Applications) para refinar ainda mais os resultados.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 345
Figura 125: Adicionando um filtro cruzado
Experimente: Adicione um grfico e o destaque
condicional
Estamos quase acabando. Agora, alm de criar um grfico de barras horizontais que mostre o
nmero mdio de dias em aberto, os recrutadores e se a posio requer viagem, ns tambm
queremos destacar os dados condicionalmente para nos ajudar a analisar quais recrutadores
esto apresentando um desempenho bom e quais recrutadores precisam trabalhar para preencher
suas posies mais rapidamente.
1. Clique em Adicionar grfico.
2. Selecione o tipo de grfico de barras verticais.
3. Na lista suspensa Eixo Y (Y-Axis), selecione Mdia de dias em aberto
(Average Days Open).
4. Na lista suspensa Eixo X (X-Axis), selecione Posio (Position): Nome
do proprietrio (Owner Name).
5. Na lista suspensa Agrupar por (Group-By), selecione Exige viagem (Travel
Required) e mantenha o formato de agrupamento lado a lado.
6. Deixe a caixa de seleo Plotar valores adicionais (Plot additional
values) em branco.
346 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Um grfico de combinao representa vrios conjuntos de dados em um nico grfico. Cada
conjunto de dados baseado em um campo diferente, portanto, os valores so fceis de comparar.
Voc pode tambm combinar certos tipos de grficos para apresentar dados de formas diferentes
em um nico grfico. O relatrio que estamos criando no precisa de um grfico de combinao,
mas eles so teis ao comparar dados, representar tendncia, e assim por diante.
7. Clique na guia Formatao (Formatting).
8. No campo Ttulo do grfico (Chart Title), insira Mdia de dias
para contratao com e sem viagem (Avg Days to Hire With
and Without Travel).
9. Clique em OK.
Os nossos trs campos de resumo esto disponveis para destaque, mas queremos destacar
somente um: Mdia de dias em aberto (Average Days Open). Isso porque queremos
destacar quais recrutadores esto fechando posies em menos de 30 dias, em menos de 60
dias e em mais de 60 dias.
10. Clique na lista suspensa Mostrar (Show) e selecione Destaques condicionais
(Conditional Highlighting).
Figura 126: Adicionando destaques condicionais para mostrar as alteraes nos dados
11. Na primeira linha, configure Selecionar campo (Select Field) como Mdia
de dias em aberto (Average Days Open).
12. No primeiro selecionador de cores, selecione um tom de verde. Essa a cor inferior.
13. No primeiro campo de texto, insira 30. Esse o ponto de interrupo inferior.
14. No segundo campo de texto, insira 60. Esse o ponto de interrupo superior.
15. No terceiro selecionador de cores, selecione um tom de vermelho. Essa a cor
superior.
16. Clique em OK.
17. Clique em Executar relatrio.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 347
Figura 127: Visualizando os resultados do relatrio de matriz
Nosso relatrio mostra rapidamente o desempenho dos nossos recrutadores em relao ao
preenchimento das posies e quanto tempo, em mdia, as posies ficam abertas. O destaque
condicional mostra quais posies esto demorando mais para serem preenchidas, geralmente
as que exigem viagem. Vamos salvar rapidamente esse relatrio antes de prosseguir.
18. Clique em Personalizar (Customize) para retornar ao criador de relatrios.
19. Prximo ao topo do relatrio, clique em Salvar (Save).
20. No campo Nome do relatrio (Report Name), insira Mdia de dias
para contratao com e sem viagem (Avg Days to Hire With
and Without Travel).
O campo Nome exclusivo do relatrio (Report Unique Name)
preenchido automaticamente.
21. No campo Descrio do relatrio (Report Description), insira Em
mdia, quantos dias cada recrutador demora para preencher
uma posio com ou sem exigncia de viagem? (On average,
how many days does it take each recruiter to fill a
position with or without required travel?)
22. Na lista suspensa Pasta de relatrios (Report Folder), selecione
Relatrios do Recruiting (Recruiting Reports).
23. Clique em Salvar.
348 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
24. Clique em Fechar (Close) e depois clique em Salvar e fechar (Save & Close) para
voltar para a guia Relatrios (Reports).
[other]: Voc sabia que possvel adicionar grficos em outros itens alm de relatrio
e painis? Voc pode fornecer informaes valiosas aos usurios diretamente nas
pginas que eles visitam frequentemente. Para isso, basta inserir grficos de relatrio
em pginas de detalhes de objetos padro ou personalizados. Quando os usurios veem
grficos nas pginas, eles podem tomar decises com base nos dados que veem no
contexto da pgina, sem ir a outro lugar para v-los.
Para obter mais informaes sobre a incorporao de grficos em layouts de pgina,
consulte o tpico "Adicionando um grfico de relatrio em um layout de pgina" na
Ajuda do Salesforce.
Como vimos, os relatrios personalizados podem fornecer diversos dados interessantes,
fornecendo insights nos desafios que as organizaes enfrentam. No entanto, a menos que o
usurio consulte esses relatrios com frequncia, muito do seu benefcio permanece inexplorado.
Como podemos fornecer aos usurios uma forma de controlar as informaes nos relatrios
sem perda de tempo? A resposta, como veremos em seguida, est nos painis.
Introduo aos painis
Um painel mostra dados de relatrios de origem como componentes visuais, que podem ser
grficos, medidores, tabelas, mtricas ou pginas do Visualforce. Os componentes proporcionam
um instantneo dos indicadores-chave de mtrica e de desempenho para sua organizao. Cada
painel pode ter at 20 componentes. Os usurios podem visualizar qualquer painel disponvel
em uma pasta pblica na sua organizao, como os painis da empresa, e pode selecionar um
painel como favorito, do qual os primeiros trs componentes sero exibidos na guia Incio
(Home).
Para dizer honestamente, os usurios adoram as vises resumidas que eles obtm com os painis
e nenhum aplicativo bom da Force.com est completo sem pelo menos um painel.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 349
Figura 128: Um painel de recrutamento de amostra
Experimente: Crie relatrios adicionais
Ns iremos criar um painel de recrutamento em pequena escala neste captulo, mas antes vamos
usar nossas habilidades de criao de relatrios para criar mais alguns relatrios. Como voc j
est familiarizado com o modo como o criador de relatrios trabalha, iremos apenas descrever
as especificaes de alguns relatrios na tabela a seguir. Voc poder cri-los por conta prpria
ou apenas se familiarizar com as opes.
Dica: Deseja acompanhar nossas instrues do painel, mas no deseja perder tempo
criando todos esses relatrios? Crie apenas o relatrio Posies abertas h mais de 90
dias (Positions Open Longer Than 90 Days) na primeira linha. No entanto, se voc
estiver interessado na recriao do painel de amostra exibido aqui, precisar criar os
outros quatro tambm.
350 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Tabela 45: Especificaes adicionais de relatrio do Recruiting
Opes Tipo de
relatrio
Pergunta Nome do
relatrio
Formatar (Format): Relatrio de
resumo
Resumir informaes por
(Summarize information by):
Posies Quais posies esto
abertas a mais de 90 dias?
Posies
abertas h mais
de 90 dias
Local (Location) e por rea
funcional (Functional Area)
Colunas (Columns): Posio:
Ttulo da posio, Posio: Nome
do proprietrio (Owner Name),
Status, Data de abertura (Open
Date), Contratado por (Hire By),
Dias em aberto (Days Open)
Filtros: Todas as posies (All
Positions); Dias em aberto (Days
Open) igual ou superior a 90
Tipo de grfico: Pizza
Setores do grfico: rea
funcional
Ttulo do grfico: Posies
abertas h mais de 90 dias
Formatar (Format): Relatrio de
resumo
Resumir informaes por
(Summarize information by):
Formulrio de
emprego com
posio
Quais posies esto
recebendo o maior nmero
de candidatos?
Formulrios de
emprego por
rea funcional
Posio: rea funcional
(Functional Area) e Posio
(Position): Ttulo da posio
Colunas (Columns): Nmero do
formulrio de emprego (Job
Application Number), Status do
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 351
Opes Tipo de
relatrio
Pergunta Nome do
relatrio
formulrio de emprego (Job
Application Status)
Filtros: Todos os formulrios de
emprego (All job applications);
Posio (Position): Status
equivalente a Aberto - Aprovado
(Status equals Open - Approved)
Tipo de grfico: Coluna vertical
Eixo X: Posio: rea funcional
Ttulo do grfico: Formulrios de
emprego por rea funcional
Formatar (Format): Relatrio de
resumo
Resumir informaes por
(Summarize information by):
Reviso (Review): Criado por
Formulrios de
emprego com
revises (Job
Applications
with Reviews)
Quais funcionrios
realizam a maioria das
entrevistas?
Entrevistadores
do funcionrio
(Employee
Interviewers)
Colunas (Columns): Formulrio
de emprego (Job Application):
Nmero do formulrio de
emprego (Job Application
Number), Formulrio de
emprego (Job Application):
Posio (Position), Formulrio
de emprego (Job Application):
Status, Reviso (Review): Data
de criao
Filtros: Todos os formulrios de
emprego (All job applications)
Tipo de grfico: Pizza
352 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Opes Tipo de
relatrio
Pergunta Nome do
relatrio
Ttulo do grfico: Entrevistadores
do funcionrio (Employee
Interviewers)
Formatar (Format): Relatrio de
matriz
Linhas de subtotal por (Subtotal
Rows by): Posio: Nome do
Formulrio de
emprego com
posio
Como o funil de
formulrios de emprego
exibido para cada
recrutador e posio
aberta?
Status do
recrutador
(Recruiter
Status)
proprietrio (Owner Name) e por
Posio (Position): Ttulo da
posio
Colunas de subtotal por (Subtotal
Columns by): Status do
formulrio de emprego (Job
Application Status)
Colunas (Columns): Formulrio
de emprego (Job Application):
Nmero do formulrio de
emprego
Filtros: Todos os formulrios de
emprego (All job applications);
Formulrio de emprego (Job
Application): Data da ltima
modificao nos ltimos 120 dias
(Last Modified Date Last 120
Days); Posio (Position): Status
equivalente a Aberto - Aprovado,
Fechado - Preenchido (Status
equals Open - Approved, Closed
- Filled)
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 353
Opes Tipo de
relatrio
Pergunta Nome do
relatrio
Formatar (Format): Relatrio de
resumo
Resumir informaes por
(Summarize information by):
rea funcional
Posies Quem ns contratamos nos
ltimos 90 dias?
Posies
contratadas nos
ltimos 90 dias
(Positions
Hired in Last
90 Days)
Colunas (Columns): Posio:
Ttulo da posio, Posio: Nome
do proprietrio (Owner Name),
Gerente de contratao (Hiring
Manager), Nvel do emprego (Job
Level), Local (Location), Data
de fechamento (Close Date)
Filtros: Todas as posies (All
positions); Data de fechamento
nos ltimos 90 dias (Close Date
Last 90 Days); Status igual a
Fechada - Preenchida (Status
equals Closed - Filled)
Experimente: Criar um painel
Agora que ns temos um conjunto de relatrios para referncia, estamos prontos para criar um
pequeno painel de recrutamento. Para isso, iremos trabalhar na guia Relatrios (Reports).
Primeiro ns precisamos criar uma pasta para colocar nossos painis. Ns usaremos as mesmas
etapas que usamos para criar uma pasta para colocar nossos relatrios.
1. Na guia Relatrios (Reports), clique em ao lado do painel Pastas (Folders) e
selecione Nova pasta de painel (New Dashboard Folder).
2. Em Rtulo da pasta de painis (Dashboard Folder Label), insira
Painis do Recruiting (Recruiting Dashboards). O campo Nome
exclusivo da pasta (Folder Unique Name) ser preenchido
automaticamente com Recruiting_Dashboards.
3. Clique em Salvar.
354 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
4. Ao lado da pasta Painis do Recruiting (Recruiting Dashboards), clique no e
selecione Compartilhar (Share).
5. Na parte superior da caixa de dilogo, clique em Papis e subordinados (Roles and
Subordinates).
6. Prximo a CEO, clique em Compartilhar (Share).
7. Certifique-se de que o nvel selecionado na coluna Acesso (Access) seja Visualizador
(Viewer). Isso permite que todos os usurios da sua empresa visualizem a pasta e os
relatrios armazenados nela, porm somente os administradores podero modificar
os relatrios existes na pasta ou adicionar novos relatrios pasta.
8. Clique em Concludo (Done) para salvar as configuraes e depois clique em Fechar
(Close).
Agora vamos criar um painel.
1. Na pgina Relatrios e painis (Reports & Dashboards), clique em Novo painel
(New Dashboard).
Figura 129: Pgina de edio do painel
Depois de especificarmos as propriedades do painel, poderemos adicionar componentes.
2. Clique em Propriedades do painel (Dashboard Properties).
3. No campo Ttulo (Title), insira Painel do Recruiting (Recruiting
Dashboard).
4. O campo Nome exclusivo do painel (Dashboard Unique Name) ser
preenchido automaticamente com Recruiting_Dashboard.
5. Selecione a pasta Painis do Recruiting (Recruiting Dashboards) para salvar o item.
6. Clique em OK.
7. Na descrio do painel (o campo editvel prximo da parte superior da pgina), insira
Um instantneo das posies abertas, dos formulrios de
emprego, dos entrevistadores frequentes e do desempenho
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 355
do recrutador (A snapshot of open positions, job
applications, frequent interviewers, and recruiter
performance).
Cada painel tem um usurio em execuo, cujas configuraes de segurana determinam quais
dados so exibidos em um painel. Todos os usurios com acesso pasta visualizam os mesmo
dados, independentemente de suas configuraes de segurana pessoais.
As configuraes de segurana do usurio em execuo se aplicam apenas visualizao do
painel. Quando um usurio faz drill down em um relatrio de origem ou em uma pgina de
detalhes do painel, ele visualiza os dados com base nas suas configuraes normais de segurana.
Suponha que um administrador do sistema com a permisso "Modificar todos os dados (Modify
All Data)" seja o usurio em execuo do nosso painel do Recruiting. Nesse caso, todos os
registros relacionados a recrutamento sero contados em todos os totais do relatrio no nosso
painel, incluindo os usurios que normalmente no teriam permisso para visualizar
determinados registros (como os usurios com o perfil Funcionrio padro (Standard
Employee)). Apesar de esses usurios serem capazes de visualizar os dados de resumo de todos
os registros no painel, se eles navegarem at os relatrios de origem, eles vero somente os
registros nos quais eles tm acesso.
Ao projetar um relatrio, tenha o pblico do painel em mente. Questione se alguma das
informaes sensvel e o que o pblico poder visualizar. Se voc fornecer a um usurio acesso
a painis que incluem mais dados do que ele normalmente tem permisso para ver, no se
esquea de informar que ele poder visualizar valores diferentes ao clicar no painel para visualizar
os relatrios associados. E se voc precisar restringir um painel a determinados usurios, salve-o
em uma pasta com acesso restrito.
Beyond the Basics
Voc sabia que possvel configurar um painel dinmico que mostre dados aos usurios de
acordo com as configuraes de segurana pessoais?
Digamos que voc deseje mostrar o mesmo conjunto de componentes do painel para
conjuntos diferentes de usurios, com nveis diferentes de visibilidade. Voc provavelmente
teria que configurar dezenas de painis com o usurio certo em execuo para cada um e
armazen-los em pastas separadas. Com os painis dinmicos, os administradores podem
fazer isso sem ter que criar e manter todos esses painis e pastas adicionais. Um nico
painel dinmico pode exibir um conjunto padro de mtricas em todos os nveis da sua
organizao.
Para obter mais informaes, consulte o tpico "Fornecer modos de exibio
individualizados de um painel" na Ajuda do Salesforce.
356 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
No nosso painel do Recruiting, os dados que sero exibidos no painel no so sensveis. Por
isso, selecionaremos um administrador do sistema como o usurio em execuo e salvaremos
o painel em uma pasta pblica.
8. No campo Exibir painel como (View dashboard as) no canto superior
direito da tela, insira o nome do seu usurio, visto que voc possui privilgios de
administrador do sistema. Isso configura o usurio em execuo do painel.
Agora ns temos um painel vazio pronto para ser preenchido com componentes.
Adicionando componentes do painel
Ns ainda no definimos nenhum componente, mas fcil adicion-los e reorganiz-los no
criador de painel.
Existem cinco tipos de componentes.
Descrio Tipo cone
Exibe um grfico de barras, colunas, linhas, anel ou
funil, ou qualquer grfico presente em um relatrio.
Grficos
Exibe uma tabela que contm valores e totais das
colunas no relatrio.
Tabelas
Exibe o total geral de um relatrio juntamente com
o rtulo desejado.
Mtricas
Exibe o total geral de um relatrio como um ponto
em uma escala semelhante a um tanque de
combustvel.
Medidores
Exibe qualquer componente do painel do
Visualforce na sua organizao.
Pginas do
Visualforce
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 357
Experimente: Adicione um componente de grfico
Vamos comear adicionando um grfico que mostre o nmero de posies abertas por rea
funcional:
1. Arraste um componente de grfico de pizza para a coluna esquerda do seu painel.
2. Clique em Editar ttulo (Edit Title) e insira Posies abertas por rea
funcional (Open Positions by Functional Area).
3. Clique na guia Origens de dados (Data Sources), localize e selecione o relatrio
Posies abertas por rea funcional (Open Positions by Functional Area).
4. Arraste o relatrio para o componente de grfico de pizza.
Dica: Clique no no grfico de pizza para abrir o editor do componente.
Na guia Dados do componente (Component Data), observe que os itens
Valores (Values) e Setores (Wedges) do grfico de pizza foram
preenchidos automaticamente. Isso porque a contagem de registros e o
campo rea funcional (Functional Area) so usados no grfico
do relatrio de origem. Por outro lado, se o relatrio de origem no tivesse
um grfico, os itens Valores (Values) e Setores (Wedges) usariam
automaticamente a contagem de registros e o primeiro agrupamento no
relatrio.
Figura 130: Pgina de edio do componente do painel
358 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Pronto! Agora ns temos um grfico de pizza no nosso painel! Se um usurio clicar no grfico,
ele ser redirecionado ao relatrio que deu origem ao grfico.
Experimente: Adicione um componente de medidor
Agora vamos criar um componente de medidor que mostre como estamos lidando com posies
que esto abertas h mais de 90 dias.
1. Clique na guia Componentes (Components).
2. Arraste um componente de medidor para a coluna do meio do seu painel.
3. Clique em Editar ttulo (Edit Title) e insira Posies abertas h mais
de 90 dias (Positions Open Longer Than 90 Days).
4. Clique na guia Origens de dados (Data Sources), localize e selecione o relatrio
Posies abertas h mais de 90 dias (Positions Open Longer Than 90 Days).
5. Arraste o relatrio e solte-o no componente de medidor.
Agora vamos mudar a aparncia do nosso medidor. Assim como o destaque condicional no
nosso relatrio de matriz, esse medidor pode exibir cores diferentes dependendo da contagem
total de posies que esto abertas h muito tempo. Ns queremos uma cor verde se existirem
menos de duas posies, uma cor amarela se existirem entre duas e cinco posies e uma cor
vermelha se existirem mais de cinco posies.
6. Clique em no medidor para abrir o editor do componente.
7. Clique na guia Formatao (Formatting) e configure os seguintes campos.
Figura 131: Formatando o componente de medidor
Em Mnimo (Minimum), insira 0.
Em Cor do intervalo inferior (Low Range Color), selecione um tom de
verde.
Em Ponto de interrupo 1 (Breakpoint 1), insira 2.
Em Cor do intervalo central (Middle Range Color), deixe o tom de amarelo
selecionado.
Em Ponto de interrupo 2 (Breakpoint 2), insira 5.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 359
Em Cor do intervalo superior (High Range Color), selecione um tom de
vermelho.
Em Mximo (Maximum), insira 10.
8. Clique em OK.
Perfeito! Nosso painel do Recruiting agora possui dois componentes.
Experimente: Adicione um componente de tabela
Agora vamos criar um componente de tabela que mostre o nmero mdio de dias que leva para
um recrutador preencher uma posio com ou sem viagem.
1. Clique na guia Componentes (Components).
2. Arraste um componente de tabela para a coluna direita do seu painel.
3. Clique em Editar ttulo (Edit Title) e insira Desempenho do recrutador
(Recruiter Performance).
4. Clique na guia Origens de dados (Data Sources), localize e selecione o relatrio
Mdia de dias para contratao com e sem viagem (Avg Days to Hire With and
Without Travel).
5. Arraste o relatrio e solte-o no componente de medidor.
6. Clique em na tabela para abrir o editor do componente.
7. Clique na guia Formatao (Formatting).
Certifique-se de que a opo Mostrar fotos do Chatter (Show Chatter Photos)
esteja selecionada. Isso exibe a foto do perfil do Chatter de cada recrutador na tabela.
Assim como seu relatrio de origem subjacente, ns podemos adicionar um destaque condicional
ao componente de tabela para destacar os nveis de desempenho do recrutador. Ns queremos
a cor verde se o recrutador precisar de menos de 45 dias, a cor amarela se o recrutador precisar
de 45 e 75 dias e a cor vermelha se o recrutador precisar de mais de 75 dias.
8. Configure o destaque condicional nos campos a seguir.
Em Cor do intervalo inferior (Low Range Color), selecione um
tom de verde.
Em Ponto de interrupo 1 (Breakpoint 1), insira 45.
Em Cor do intervalo central (Middle Range Color), deixe o tom
de amarelo selecionado.
Em Ponto de interrupo 2 (Breakpoint 2), insira 75.
360 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Em Cor do intervalo superior (High Range Color), selecione um
tom de vermelho.
9. Clique em OK.
Figura 132: Componente de tabela
Experimente: Adicione um componente de mtrica
Por fim, vamos criar um componente de mtrica que mostre a mdia do nmero de dias que
todos os recrutadores levam para preencher uma posio.
1. Clique na guia Componentes (Components).
2. Arraste um componente de mtrica para a coluna direita do seu painel e solte-o
abaixo da tabela que acabamos de criar.
3. Clique na guia Origens de dados (Data Sources), localize e selecione o relatrio
Mdia de dias para contratao com e sem viagem (Avg Days to Hire With and
Without Travel).
4. Arraste o relatrio e solte-o na mtrica.
Como os componentes de mtrica so compostos de um nico valor, eles no precisam de um
ttulo. Ento vamos apenas configurar um rtulo, como em qualquer outro objeto na plataforma.
5. No campo de rtulo, insira Mdia de dias para contratao (Average
Days to Hire).
Nota: Voc notou que estamos usando o mesmo relatrio que usamos para nossa
tabela? Essa mtrica apenas outra visualizao dos dados nesse relatrio.
6. Clique em na mtrica para abrir o editor do componente.
7. Clique na guia Dados do componentes (Component Data). Observe que o valor da
mtrica preenchido automaticamente com a coluna total de resumo usada no grfico
do relatrio de matriz de origem.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 361
Por fim, vamos adicionar mais destaques condicionais para destacar os valores.
8. Clique na guia Formatao (Formatting) e configure os seguintes campos.
Em Cor do intervalo inferior (Low Range Color), selecione um
tom de verde.
Em Ponto de interrupo 1 (Breakpoint 1), insira 45.
Em Cor do intervalo central (Middle Range Color), deixe o tom
de amarelo selecionado.
Em Ponto de interrupo 2 (Breakpoint 2), insira 75.
Em Cor do intervalo superior (High Range Color), selecione um
tom de vermelho.
9. Clique em OK.
Beyond the Basics
Voc sabia que possvel filtrar componentes no painel para diversas exibies dos dados?
Os filtros do painel fornecem a flexibilidade de manipulao direta das informaes do
painel de forma dinmica em vez da filtragem de cada relatrio subjacente. Clique em
Adicionar filtro (Add Filter) no criador de painel para criar um filtro de painel e seus
valores. Um painel pode ter at trs filtros. Neste painel, por exemplo, voc pode criar um
filtro chamado Funo (Function) no campo rea funcional (Functional Area). Ao
visualizar o painel, os usurios podem escolher diferentes valores de filtro como Finanas
(Finance) ou Recursos Humanos (Human Resources) para visualizar os dados de cada
funo de trabalho no painel. Para saber mais, consulte o tpico "Incluir um filtro de
painel" na Ajuda do Salesforce.
Figura 133: Adicionando um filtro de painel
Agora ns temos um painel simples com quatro componentes no nosso aplicativo Recruiting!
(Seu painel pode ter uma aparncia um pouco diferente.) Vamos salvar nosso painel.
362 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
10. Clique em Fechar (Close) e, em seguida, clique em Fechar e salvar (Save & Close).
Voc tambm pode clicar em Salvar (Save) se quiser atualizar o ttulo ou a descrio,
ou alterar a pasta.
Figura 134: Quatro componentes no painel do Recruiting
Se voc clicar na guia Incio (Home), ser possvel adicionar a primeira linha do painel sua
pgina inicial. Certifique-se de adicionar a seo do painel ao layout da sua guia Incio (Home)
e selecionar o painel que deseja exibir nessa seo: o Painel do Recruiting (Recruiting Dashboard)
que voc acabou de criar.
1. Em Configurao, clique em Personalizar > Incio > Layouts de home page.
2. Selecione Instantneo do painel (Dashboard Snapshot) e clique em
Avanar (Next).
3. Deixe o componente na ordem padro e clique em Salvar (Save).
4. Na guia Incio (Home), clique em Personalizar pgina (Customize Page) no canto
superior direito do componente do painel.
5. Selecione Painel do Recruiting (Recruiting Dashboard) na lista
suspensa Instantneo do painel (Dashboard Snapshot).
6. Clique em Salvar.
Como salvamos o painel em uma pasta pblica, qualquer usurio tambm poder adicion-lo
sua guia Incio (Home).
Como voc pode ver, depois de criarmos os relatrios do nosso aplicativo Recruiting, adicion-los
ao painel foi muito fcil. to fcil que vamos deixar o restante dos componentes como um
exerccio para voc fazer por conta prpria. Veja quo perto voc est de recriar um painel de
recrutamento de amostra na pgina 350.
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 363
Atualizando painis
Os painis refletem um instantneo dos seus dados em um momento especfico. Na guia Incio
(Home), esse momento indicado no canto superior esquerdo do componente do painel. Na
guia Relatrios (Reports), ele indicado no canto superior direito. Voc pode atualizar seus
painis nas duas guias clicando em Atualizar (Refresh).
Na Enterprise, Unlimited ou Performance Edition, possvel agendar a atualizao automtica
dos painis em horrios especficos e receber uma notificao por email com o painel atualizado
aps a concluso da atualizao.
O agendamento da atualizao do painel fcil. Na guia Relatrios (Reports), basta clicar na
seta para baixo no boto Atualizar (Refresh), selecionar Agendar atualizao... (Schedule
Refresh...) e indicar o horrio da atualizao e a pessoa que deve receber a notificao por
email.
Introduo aos painis mveis
As informaes que ns inclumos no nosso Painel do Recruiting (Recruiting Dashboard)
podem ser teis para diversas pessoas, at mesmo para os recrutadores que esto fora de suas
mesas. Antes de entrarmos no Salesforce1 novamente, precisamos garantir que os painis esto
ativados para ambientes mveis. Se os painis no estiverem no menu de navegao, os usurios
no podero visualiz-los. Vamos dar uma olhada rpida na configurao da nossa navegao
mvel.
1. Em Configurao (Setup), clique em Administrao mvel (Mobile Administration)
> Navegao mvel (Mobile Navigation).
Esta a pgina que define a aparncia do menu de navegao no Salesforce1. O primeiro item
na lista se torna a pgina de apresentao dos seus usurios no Salesforce1, e como essa
configurao a mesma para todos os nossos usurios, queremos que o primeiro item seja algo
til para todos. O princpio de utilidade se estende por toda a configurao: queremos colocar
os itens que os usurios mais querem na parte superior.
O elemento Hoje (Today) corresponde a um aplicativo que ajuda os usurios a planejarem e
gerenciarem seu dia integrando eventos do calendrio do seu dispositivo mvel com suas tarefas,
contatos e contas do Salesforce. Disponvel somente nos aplicativos para download do
Salesforce1.
O elemento Itens de pesquisa inteligente (Smart Search Items), que se torna uma lista dinmica
de objetos usados recentemente, pode expandir e se tornar um conjunto de oito ou mais itens
364 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
de menu na experincia mvel e pode acabar empurrando outros elementos abaixo do ponto
de rolagem se voc coloc-lo perto da parte superior do menu. Qualquer coisa que voc colocar
acima do elemento Itens de pesquisa inteligente (Smart Search Items) ser exibida na primeira
seo sem rtulo do menu de navegao. Qualquer coisa que voc colocar abaixo do elemento
Itens de pesquisa inteligente (Smart Search Items) ser exibida na seo Aplicativos (Apps)
do menu de navegao.
2. Organize os itens na rea Selecionado (Selected) usando as setas para cima ou para
baixo da seguinte forma:
Hoje (Today)
Tarefas
Feed
Itens de pesquisa inteligente (Smart Search Items)
Painis
Agora que nos certificamos de que os painis esto sendo exibidos no Salesforce1 da sua
organizao, vamos ver como os painis funcionam em um dispositivo mvel.
1. Inicie o Salesforce1.
2. No menu de navegao, toque em Painis (Dashboards).
3. Na lista de painis recentes, toque em Painel do Recruiting (Recruiting Dashboard).
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 365
Figura 135: O Painel do Recruiting (Recruiting Dashboard) no Salesforce1
Nosso painel tem uma aparncia um pouco diferente no contexto mvel. Em vez de vermos
as trs colunas em uma exibio, ns vemos tudo de cada coluna em uma nica exibio. Para
visualizar as outras colunas, ns podemos deslizar para a esquerda ou para a direita. Para
visualizar os detalhes de um componente, ns podemos tocar nele. Nessa exibio do
componente, ns podemos tocar nos pontos de dados para visualizar seus valores destacados.
Introduo aos tipos de relatrios
personalizados
Mesmo os painis sendo uma excelente forma de renderizar dados, muitos usurios precisam
de informaes mais granulares e exclusivas para sua funo de trabalho, ento eles precisaro
criar seus prprios relatrios. Voc deseja controlar quais dados eles podem acessar para seus
relatrios e facilitar a criao de relatrios relevantes. Voc pode fazer isso criando tipos de
relatrios personalizados.
Os tipos de relatrios personalizados definem os critrios de execuo e criao de relatrios
pelos usurios. Quando voc cria um tipo de relatrio, especifica os objetos, relacionamentos
e campos que os usurios podem selecionar para seus relatrios.
366 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Quais so os tipos de relatrios personalizados teis no nosso aplicativo Recruiting? Bem,
nossos recrutadores ficaro satisfeitos se fornecermos uma forma fcil de pesquisar posies
que possuem formulrios de emprego. Alm disso, os recrutadores provavelmente gostariam
de visualizar quais desses formulrios de emprego possuem revises. Dessa forma, eles sabero
se alguma posio est prestes a ser preenchida.
Experimente: Crie um tipo de relatrio
Ns passamos a maior parte deste captulo na guia Relatrios (Reports). Agora vamos retornar
ao menu Configurao (Setup).
1. Em Configurao, clique em Criar > Tipos de relatrios.
2. Se uma pgina inicial introdutria for exibida, clique em Continuar (Continue).
3. Clique em Novo tipo de relatrio personalizado.
O tipo de relatrio personalizado que estamos criando incluir dados de trs objetos diferentes:
Posio (Position), Formulrio de emprego (Job Application) e Reviso (Review). As posies
sero o foco dos recrutadores, ento vamos tornar a Posio (Position) o objeto principal neste
tipo de relatrio.
4. Na lista suspensa Objeto principal (Primary Object), selecione Posies
(Positions).
A seguir, vamos fornecer um nome intuitivo a esse tipo de relatrio e categoriz-lo para facilitar
sua localizao pelos usurios. Vamos tambm inserir uma descrio para que os usurios que
selecionarem esse tipo de relatrio saibam sua funo.
5. No campo Rtulo de tipo de relatrio (Report Type Label), insira Posies
com formulrios de emprego revisados (Positions with
Reviewed Job Applications).
6. No campo Nome do tipo de relatrio (Report Type Name), insira
Positions_with_Reviewed_Job Applications.
7. No campo Descrio (Description), insira Quais posies possuem
formulrios de emprego que foram revisados? (Which
positions have job applications that have been reviewed?)
8. Na lista suspensa Armazenar em categoria (Store in Category), selecione Outros
relatrios (Other Reports).
Ao criar um tipo de relatrio, configure seu status como Em desenvolvimento (In
Development) se quiser test-lo antes de disponibiliz-lo a todos os usurios. Como o tipo
de relatrio que estamos criando no requer muito teste, vamos implant-lo.
9. Selecione Implantado (Deployed).
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 367
10. Clique em Avanar.
A plataforma usa uma hierarquia grfica e diagramas de conjuntos (tambm chamados de
diagramas de Venn) para podermos especificar facilmente quais registros relacionados de outros
objetos desejamos incluir nos resultados do relatrio.
11. Clique na caixa branca abaixo da caixa A (Posies (Positions)). A caixa B ser
exibida.
12. Na caixa B, selecione Formulrios de emprego (Job Applications) na lista suspensa
e deixe o campo Cada registro "A" deve ter pelo menos um registro
"B" relacionado (Each "A" record must have at least one
related "B" record) selecionado.
Figura 136: Hierarquia do tipo de relatrio e diagrama de conjuntos para posies e
formulrios de emprego
Ao deixar essa opo selecionada, indicamos que queremos que esse tipo de relatrio inclua
somente registros de posio que possuem formulrios de emprego. Observe como os diagramas
de conjuntos direita mudam para refletir nossa seleo.
13. Clique na caixa branca abaixo da caixa B (Formulrios de emprego (Job Applications)).
A caixa C ser exibida.
14. Na caixa C, selecione Revises (Reviews) na lista suspensa e deixe o campo Cada
registro "B" deve ter pelo menos um registro "C" relacionado
(Each "B" record must have at least one related "C" record)
selecionado.
368 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Figura 137: Hierarquia do tipo de relatrio e diagrama de conjuntos para posies,
formulrios de emprego e revises
Ns limitamos ainda mais o escopo do nosso relatrio para incluir apenas formulrios de
emprego que possuem revises.
15. Clique em Salvar.
Nosso tipo de relatrio personalizado est quase finalizado. Na verdade, ele est tecnicamente
finalizado, mas podemos fazer algo para torn-lo ainda mais conveniente para nossos usurios:
podemos reorganizar como os campos sero exibidos no painel Campos (Fields) do criador de
relatrios.
Esse tipo de relatrio incorpora trs objetos (Posio (Position), Formulrio de emprego (Job
Application) e Reviso (Review)) e cada objeto contm diversos campos. Ao criar um relatrio
usando esse tipo de relatrio personalizado, o usurio provavelmente ficar confuso com todos
esses campos, ento vamos remover os campos que no sero necessrios e mover os campos
importantes para a parte superior. Ns tambm podemos especificar os campos que sero
selecionados por padro.
16. Na pgina de detalhes Tipo de relatrio personalizado (Custom Report Type), role
at a lista relacionada de Campos disponveis para relatrios (Fields Available for
Reports) e clique em Editar layout (Edit Layout).
A pgina exibida similar ao editor de layout de pgina que ns usamos no captulo
Aprimorando o aplicativo simples com campos avanados, validao de dados e layouts de
pgina na pgina 67. Voc pode reordenar os campos arrastando-os, criando e excluindo sees,
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 369
e assim por diante. Voc tambm pode clicar duas vezes nos campos para alterar o rtulo e
especificar se eles devem ser marcados por padro.
Importante: Se um campo no estiver em uma seo, ele no ser disponibilizado
aos usurios quando eles gerarem relatrios com esse tipo de relatrio.
Vamos reorganizar a pgina.
17. Crie uma seo chamada Campos Posio (Position), Formulrio de
emprego (Job Application) e Reviso (Review) (Position,
Job Application, and Review Fields).
18. Na seo Posies (Positions), altere o rtulo dos campos a seguir clicando duas vezes
no nome do campo e editando-o na caixa de dilogo que ser aberta.
Criado por (Created By) para Posio criada por (Position
Created By)
Data de criao (Created Date) para Data de criao da posio
(Position Created Date)
Status para Status da posio (Position Status)
19. Na seo Formulrios de emprego (Job Applications), altere o rtulo dos campos a
seguir clicando duas vezes no nome do campo e editando-o na caixa de dilogo que
ser aberta.
Criado por (Created By) para Formulrio de emprego criado
por (Job Application Created By)
Data de criao (Created Date) para Data de criao do
formulrio de emprego (Job Application Created Date)
Status para Status do formulrio de emprego (Job Application
Status)
20. Na seo Revises (Reviews), altere o rtulo dos campos a seguir clicando duas vezes
no nome do campo e editando-o na caixa de dilogo que ser aberta.
Criado por (Created By) para Reviso criada por (Review
Created By)
Data de criao (Created Date) para Data de criao da reviso
(Review Created Date)
21. Mova os campos a seguir da seo Campos Posio (Position), Formulrio de emprego
(Job Application) e Reviso (Review) (Position, Job Application, and Review Fields).
Ttulo da posio
Criado por
370 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Data de criao
Dias abertos
rea funcional
Contratar em
Gerente de contratao
Data de abertura
Status
Exige viagem
22. Mova os campos a seguir da seo Formulrios de emprego (Job Applications) para
a seo Campos Posio (Position), Formulrio de emprego (Job Application) e
Reviso (Review) (Position, Job Application, and Review Fields).
Nmero do formulrio de emprego
Mdia de classificao (Average Rating)
Criado por
Data de criao
Nmero de revises (Number of Reviews)
Status
Observe que ns no inclumos o campo Candidato (Candidate). Ns no fizemos isso
porque esse tipo de relatrio est disponvel para todos os usurios, incluindo os gerentes de
contratao. Conforme mencionado no captulo anterior, um gerente de contratao pode
tentar desclassificar candidatos que se candidatam a outras vagas, ento melhor no revelar
nomes de candidatos nos relatrios.
23. Mova os campos a seguir da seo Revises (Reviews) para a seo Campos Posio
(Position), Formulrio de emprego (Job Application) e Reviso (Review) (Position,
Job Application, and Review Fields).
Nmero da reviso
Criado por
Data de criao
Classificao
24. Os campos a seguir devem ser marcados por padro.
Dias abertos
Gerente de contratao
Nmero do formulrio de emprego
Data de abertura
Verso 8 | Chapter 10: Analisando dados com relatrios e painis | 371
Ttulo da posio
Nmero da reviso
25. Exclua as sees individuais Posies (Positions), Formulrios de emprego (Job
Applications) e Revises (Reviews).
26. Clique em Salvar.
Seu tipo de relatrio personalizado est pronto! Para test-lo, acesse a guia Relatrios (Reports),
clique em Novo relatrio (New Report) e selecione a categoria do tipo de relatrio Outros
relatrios (Other Reports). O tipo de relatrio Posies com formulrios de emprego revisados
(Positions with Reviewed Job Applications) est na lista abaixo.
Observe o que fizemos
Confira agora o nosso aplicativo Recruiting! Ns j cumprimos quase todos os requisitos que
mencionamos no comeo do livro, mas ainda faltam alguns. No prximo captulo, vamos alm
das ferramentas de apontar e clicar da plataforma, como segurana e fluxo de trabalho, e vamos
abordar o Visualforce e a API SOAP. Esses recursos fornecem a chave para a incorporao da
funcionalidade de toda a web e nos ajudaro a criar um aplicativo verdadeiramente poderoso
na nuvem. Na verdade, depois de dominar as ferramentas disponveis na plataforma, essas
ferramentas sero a forma de liberar sua criatividade. A funcionalidade dos aplicativos criados
na plataforma ser limitada apenas pela prpria web!
372 | Verso 8 | Chapter 10: Analisando dados com relatrios e painis
Captulo 11
Indo alm do desenvolvimento de
aplicativos do tipo apontar e clicar
At este ponto, construmos um atrativo aplicativo usando
diversas partes da plataforma. Ns criamos um modelo de
Tpicos:
Apresentando mash-ups e
servios da Web
dados para armazenar as informaes de recrutamento,
utilizar o fluxo de trabalho e a lgica de aprovao para
Apresentando o
Visualforce
ajudar no gerenciamento de dados e construir relatrios e
painis para ajudar a compartilhar os dados. O fato de que
Implementando o Mapa
dos candidatos
podemos reunir todos esses recursos sem necessidade de
escrever nenhum tipo de cdigo comprova a eficincia da
plataforma Force.com.
Implementando o boto
Atualizao de status em
massa (Mass Update
Status)
Chegamos ao design da plataforma aps um imenso volume
de pesquisas e ideias. A Salesforce.com esfora-se para
prever as diversas necessidades de aplicativos de negcios
das empresas do sculo 21, tendo solucionado muitas dessas
necessidades usando ferramentas declarativas do tipo
apontar e clicar, que, embora simples, so altamente
eficientes, e podem ser usadas por usurios sem
conhecimentos tcnicos para alcanar objetivos empresariais
nicos. No entanto, impossvel para uma empresa
fornecer uma soluo nica que atenda a todos os negcios.
por isso que a salesforce.com facilitou o processo de
escritura de cdigos para os desenvolvedores com base na
funcionalidade de apontar a clicar da plataforma Force.com.
Depois de aprender a programar para a plataforma
Force.com, voc descobrir que pode criar aplicativos para
a Nuvem capazes de fazer qualquer coisa com que voc
possa sonhar! O cu o limite!
A programofobia comum em pessoas sem um histrico
na rea da cincia da computao, e provavelmente muitos
leitores desejaro deixar esse livro de lado logo que verem
as palavras cdigo ou varivel. Relaxe! Ao ler este
captulo, voc descobrir como divertido e fcil programar
para a plataforma Force.com. Alm disso, lembre-se de
que o objetivo deste captulo no torn-lo um
programador (embora seja um bom comeo). Em vez disso,
este captulo lhe dar uma amostra de como aprimorar seu
aplicativo usando uma programao muito simples. Se voc
no quiser digitar nenhum tipo de cdigo, basta copiar e
colar as amostras de cdigo dos arquivos inclusos no arquivo
RecruitingApp-7_0.zip, que voc baixou em
Expandindo um aplicativo simples usando relacionamentos
na pgina 113.
Com o cdigo de amostra em alguns cliques do mouse,
ns seremos capazes de aprimorar rapidamente nosso
aplicativo adicionando:
Mapa do candidato (Candidate Map): um mapa
interativo que exibe as localizaes dos candidatos que
se inscreveram para uma posio especfica.
Atualizao de status em massa (Mass Update Status):
a habilidade de atualizar o campo Status em diversos
formulrios de emprego ao mesmo tempo.
Vamos comear!
374 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Apresentando mash-ups e servios da Web
Se observarmos novamente os requisitos do nosso aplicativo de recrutamento, veremos que
ainda precisamos implementar um mapa interativo que exiba as localizaes dos candidatos a
uma determinada posio. Claramente esse tipo de funcionalidade no est disponvel por
padro na plataforma e com certeza ns no temos tempo para desenvolver nosso prprio
mecanismo de mapeamento. Ser que esse tipo de funcionalidade existe?
Claro que existe! Como a plataforma Force.com funciona na Web, podemos aproveitar recursos
de outros sites para implementar recursos que no esto disponveis nativamente na plataforma.
Isso significa que com poucos cdigos, podemos combinar (mash-up) nossos dados de
recrutamento com um site de mapas interativos, como os Yahoo! Maps, e colocar essa
funcionalidade em nosso aplicativo.
Para implementar o mash-up, primeiro precisamos entender um pouco sobre a tecnologia que
nos possibilita fazer isso: os servios da Web. Um servio da Web um mecanismo atravs do
qual dois aplicativos que funcionam em plataformas diferentes, foram escritos com linguagens
diferentes e esto geograficamente afastados um do outro podem trocar dados usando a Internet.
Os servios da Web tornam a troca de dados entre dois aplicativos to simples quanto uma
troca de dados entre dois processos executados em um nico computador.
A maneira atravs da qual os dados so trocados entre os dois servios da Web semelhante
maneira atravs da qual os dados so trocados entre um navegador da Web como o Microsoft
Internet Explorer e um servidor da Web. Assim como um navegador da Web usa um protocolo
de rede comum (HTTP sobre TPC/IP) para fazer o download de arquivos HTML armazenados
em um servidor da Web, os servios da Web tambm podem usar esse mesmo protocolo para
fazer o download de dados de outros servios da Web. A principal diferena so os dados
enviados e recebidos, que no caso dos servios da Web so arquivos XML em vez de HTML.
A Internet conta com uma imensa variedade de servios da Web, muitos deles gratuitos! No
caso do nosso mapa dos candidatos, vamos utilizar o servio gratuito Yahoo! Maps Web Services,
que permite incluir facilmente mapas interativos em aplicativos. Se conseguirmos encontrar
um modo de enviar os endereos dos candidatos do nosso aplicativo para o Yahoo! Maps Web
Services, o Yahoo! realizar todas as funcionalidade relacionadas ao mapeamento, o que significa
que no precisaremos nos preocupar sobre como renderizar um mapa interativo. Teremos
apenas que descobrir como colocar o mapa renderizado em nosso aplicativo.
Nota: A plataforma Force.com tambm tem sua prpria e eficiente API de servios
da Web, que inclui a API SOAP. Com a API SOAP voc pode personalizar e integrar
sua organizao do Salesforce usando a linguagem e a plataforma de sua preferncia.
A API SOAP define um servio da Web que possibilita acesso total e seguro a todos
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 375
os dados em sua organizao, incluindo a habilidade de ler, criar, atualizar e excluir
registros.
Como a API SOAP usada somente nos bastidores do nosso mapa dos candidatos,
este livro no entrar em detalhes sobre ela. No entanto, voc pode aprender mais
sobre a API SOAP no Guia do desenvolvedor para APIs de servios da Web em
www.salesforce.com/us/developer/docs/api/index.htm.
Apresentando o Visualforce
Como ento passamos os endereos dos nossos candidatos para o Yahoo! Maps Web Services?
E depois que o Yahoo! Maps Web Services renderizar um mapa interativo com os endereos,
como colocamos esse mapa em nosso aplicativo?
Esses requisitos podem parecer assustadores, no entanto, graas ao Visualforce, eles podem ser
atendidos facilmente. O Visualforce uma estrutura eficiente e flexvel, que permite personalizar
a interface do usurio de seu aplicativo muito alm do que est disponvel atravs das ferramentas
do tipo apontar e clicar da plataforma. O Visualforce a maneira mais eficiente de combinar
dados provenientes de mltiplos objetos do Force.com, incluir dados de servios da Web em
seu aplicativo ou personalizar a lgica que controla o comportamento da interface do usurio
de seus aplicativos. Ao usar o Visualforce, voc notar um aumento em sua produtividade e
descobrir que pode criar praticamente qualquer tipo de interface de usurio baseada em
navegadores, sendo limitado apenas por sua imaginao!
A estrutura do Visualforce consiste de uma linguagem de marcao baseada em marcas,
semelhante linguagem HTML. Na linguagem de marcao do Visualforce, cada marca do
Visualforce corresponde a um componente da interface do usurio. Precisa de uma lista
relacionada? Simplesmente adicione a marca de componente <apex:relatedList>. Deseja
exibir os detalhes de um registro? Basta usar a marca <apex:detail>.
O seguinte grfico apresenta algumas das marcas mais usadas do Visualforce e como elas
correspondem aos componentes da interface do usurio. Existem mais de 125 marcas, desde
grandes componentes, como a seo de detalhes de uma pgina padro, at componentes
pequenos, como um nico campo ou link. Voc pode aprender mais sobre todos eles no Guia
do desenvolvedor do Visualforce em
www.salesforce.com/us/developer/docs/pages/index.htm.
376 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Figura 138: Amostra dos componentes do Visualforce e suas marcas correspondentes
O comportamento dos componentes do Visualforce pode ser controlado pela mesma lgica
usada em pginas padro do Salesforce ou possvel associar sua prpria lgica escrita em Apex.
Apex a linguagem de programao do salesforce.com, que funciona na nuvem nos servidores
da Force.com.
No entre em pnico! Voc no precisar aprender a escrever em Apex para criar qualquer um
dos recursos descritos neste livro. O Visualforce fornecido com uma ampla biblioteca de
componentes, a qual permite desenvolver pginas com rapidez e sem necessidade de escrever
cdigos para criar vrias funcionalidades. E como a marcao do Visualforce renderizada em
HTML, voc pode usar marcas do Visualforce junto com HTML, JavaScript, Flash, AJAX e
outros cdigos padro que funcionam em pginas HTML. Isso significa que podemos criar
nosso mapa dos candidatos simplesmente criando uma pgina do Visualforce com JavaScripts
e marcaes bsicas do Visualforce para enviar os endereos dos candidatos ao Yahoo! Maps
Web services.
Nota: Para saber mais sobre o Apex, consulte o Guia do desenvolvedor para cdigos
Apex da Force.com em
www.salesforce.com/us/developer/docs/apexcode/index.htm.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 377
Apresentando o modo de desenvolvimento do
Visualforce
Criar pginas do Visualforce rpido e fcil e h duas maneiras de fazer isso: em Configurao
(Setup), clique em Desenvolver > pginas (Develop Pages), ou ative o modo de
desenvolvimento do Visualforce e navegue at uma pgina em branco.
Neste livro, usaremos o modo de desenvolvimento do Visualforce para criar e editar nossas
pginas do Visualforce, pois ele conta com vrios recursos muito teis. Um desses recursos
o rodap especial de desenvolvimento, presente em todas as pginas do Visualforce. O rodap
permite que voc acesse um editor de marcao, que inclui ferramentas que permitem procurar
valores, pular para uma determinada linha do cdigo e desfazer e refazer alteraes. O editor
de pgina tambm oferece destaques e sugestes automticas para atributos e marcas de
componentes, assim como contm um link para a documentao de referncia dos componentes,
a qual inclui descries e exemplos para cada um dos componentes do Visualforce.
Enquanto estiver no modo de desenvolvimento do Visualforce, voc pode criar uma nova pgina
simplesmente inserindo uma URL nica na barra de endereos do seu navegador. E, conforme
voc adiciona o cdigo sua pgina do Visualforce, possvel salv-la e visualizar as alteraes
renderizadas imediatamente em seu navegador!
Figura 139: Modo de desenvolvimento do Visualforce
378 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Experimente: habilitando o modo de
desenvolvimento do Visualforce
1. Na parte superior de qualquer pgina do Salesforce, clique na seta para baixo prxima
ao seu nome. No menu abaixo do seu nome, selecione Minhas configuraes (My
Settings) ou Configurao (Setup), independentemente de qual opo for exibida.
2. No painel esquerdo, selecione um dos seguintes:
Se voc clicou em Minhas configuraes, selecione Pessoal > Detalhes
avanados do usurio.
Se voc clicou em Configurao, selecione Minhas informaes pessoais >
Informaes pessoais.
3. Clique em Editar (Edit).
4. Marque a caixa de seleo Modo de desenvolvimento.
5. Clique em Salvar.
Implementando o Mapa dos candidatos
Agora que fomos apresentados aos servios da Web e ao Visualforce, estamos prontos para
implementar a pea de ligao do nosso aplicativo de recrutamento: o Mapa dos candidatos.
Segundo nossos requisitos, precisamos gerar um mapa para todos os candidatos a uma posio
especfica para que assim possamos melhor entender as possveis despesas de deslocamento
associadas com a nova contratao. Como a Universal Containers tem escritrios em diversos
locais do pas, o mapa tambm nos ajudar a atribuir candidatos a determinados escritrios se
uma posio especfica estiver aberta em mais de um local.
Experimente: crie uma pgina do Visualforce
Agora que estamos em modo de desenvolvimento, vamos criar uma pgina do Visualforce
chamada Mapa dos candidatos (CandidateMap) simplesmente modificando a URL em nosso
navegador.
As URLs do Salesforce normalmente tm o seguinte formato:
https://na1.salesforce.com/001/o. Voc pode criar uma nova pgina do Visualforce
removendo tudo que est direita de salesforce.com/ na URL e inserindo apex/ seguido
do nome da pgina que voc deseja criar.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 379
1. Na barra de endereos do seu navegador, substitua tudo que estiver direita de
salesforce.com/ por apex/CandidateMap.
Cuidado: No altere nada que estiver esquerda de salesforce.com/,
uma vez que tais informaes so especficas da instncia da plataforma
Force.com que voc est usando e alter-las o impedir de criar a pgina do
Visualforce.
A URL resultante dever se parecer com:
https://na1.salesforce.com/apex/CandidateMap. Observe que a sua URL pode
ter um nome de instncia diferente de na1 antes da parte salesforce.com/. Isso normal.
2. Pressione Enter.
A seguinte pagina de erro do Visualforce exibida indicando que a pgina ainda no existe.
Novamente, isso normal. Alm disso, isso nos d a oportunidade de experimentar outro
recurso muito til do modo de desenvolvimento, a correo rpida (quick fix). A correo rpida
uma maneira de criar algo imediatamente, no exato momento em que precisamos. Neste
caso, mesmo que a pgina Mapa dos candidatos (CandidateMap) ainda no exista, o modo de
desenvolvimento permite que usemos um link de correo rpida (quick fix) para cri-la
imediatamente. Clicar no link de correo rpida o mesmo que acessar a Configurao (Setup),
navegar at a seo de pginas do Visualforce, clicar em Novo (New), inserir o nome da pgina
e clicar em Salvar (Save).
Figura 140: Pgina de erro do Visualforce
3. Clique no link Criar pgina Mapa dos candidatos (Create Page CandidateMap).
380 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Figura 141: Pgina Mapa dos candidatos (CandidateMap) do Visualforce.
Parabns! Voc criou sua primeira pgina do Visualforce! Agora hora de adicionar algumas
marcas do Visualforce para que ele exiba nosso mapa do candidato.
Experimente: escreva marcaes do Visualforce
No rodap, na parte inferior da sua nova pgina do Visualforce, clique em Mapa dos candidatos
(CandidateMap) para exibir o editor de pgina do modo de desenvolvimento do Visualforce.
O editor exibe toda a marcao da pgina que voc est visualizando no momento.
Figura 142: Modo de desenvolvimento do Visualforce
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 381
Voc notar que o editor de pgina possui um contedo padro.
<apex:page >
<!-- Begin Default Content REMOVE THIS -->
<h1>Congratulations</h1>
This is your new Page: CandidateMap
<!-- End Default Content REMOVE THIS -->
</apex:page>
O contedo padro contm a marca de componente do Visualforce <apex:page> na primeira
linha e a marca de fechamento, </apex:page>, na ltima linha. Assim como elementos de
outras linguagens de marcao, as marcas de componentes do Visualforce contm uma marca
inicial, como <apex:page>, e uma marca final, que idntica marca inicial, exceto por uma
barra (/), como </apex:page>.
A marca <apex:page> representa uma nica pgina do Visualforce. Todo o contedo que
voc deseja exibir em uma pgina precisa estar dentro das marcas <apex:page> inicial e final.
Conforme j discutido, o contedo pode incluir outras marcas do Visualforce, texto simples,
campos de mesclagem, HTML, JavaScript, entre outros. Por exemplo, no contedo padro
h comentrios marcados pelos smbolos <!-- e -->, a marca de cabealho HTML <h1> e
texto simples.
Vamos mudar a aparncia da pgina para que ela corresponda ao estilo do objeto Posio
(Position), que o objeto com a ligao mais prxima do nosso mapa dos candidatos. Ns
podemos fazer isso configurando um atributo na marca <apex:page>. Assim como marcas
HTML, os atributos nas marcas do Visualforce configuram o estilo ou o comportamento
daquilo que as marcas representam.
O atributo que precisamos definir standardcontroller. No Visualforce, os controladores
determinam o estilo da pgina, como a pgina responde quando um usurio clica em um boto
e quais dados devem ser exibidos em uma pgina. Simplesmente configurando o valor do
atributo standardcontroller para o objeto Posio (Position), estamos configurando nossa
pgina para se parecer e se comportar como as pginas de posio, bem como exibir dados de
posio.
1. Posicione o cursor dentro da marca <apex:page>, junto do sinal de fechamento
da marca (>), pressione espao e digite standardcontroller="Position__c".
O resultado dever se parecer com:
<apex:page standardcontroller="Position__c">
Dica: Voc pode desenvolver seus prprios controladores, porm a
plataforma Force.com tambm inclui um controlador padro para todos os
objetos, incluindo os objetos personalizados que voc cria. Esse outro dos
benefcios da Force.com!
382 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Observe que o formato para configurar um atributo o nome do atributo seguido pelo sinal
de equivalente (=) e depois o valor do atributo entre aspas duplas ("). Alm disso, lembre-se
tambm de que os nomes de API nicos de objetos personalizados contm dois sinal de
sublinhado (__) e a letra c no final.
Agora vamos salvar nosso trabalho para que possamos visualizar as alteraes que fizemos.
2. Clique no cone de salvar ( ) no editor de pgina ou pressione CTRL+S.
Ao salvar a marcao, a plataforma Force.com efetua uma verificao para certificar-se de que
a marcao vlida e o informa a respeito de quaisquer erros encontrados. Se a marcao for
vlida, a nova verso da pgina do Visualforce salva e renderizada no navegador.
Voc consegue ver como a pgina agora est diferente? Configurar o atributo
standardcontroller altera a aparncia da pgina padro do Visualforce de modo que a
guia Posies (Positions) selecionada.
Figura 143: Antes e depois de configurar o atributo standardcontroller
A seguir, vamos mover o HTML padro em nossa pgina do Visualforce e substitu-lo com
algo relevante para o nosso Mapa dos candidatos (CandidateMap), como uma breve descrio
da pgina, caso o propsito do mapa no seja imediatamente bvio para os usurios.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 383
3. Exclua as seguintes marcaes:
<!-- Begin Default Content REMOVE THIS -->
<h1>Congratulations</h1>
This is your new Page: CandidateMap
<!-- End Default Content REMOVE THIS -->
4. Insira a seguinte marcao entre as marcas <apex:page> inicial e final.
This map shows the locations of candidates who have applied
for the <b>{!Position__c.Name}</b> position.
O resultado dever se parecer com:
<apex:page standardController="Position__c">
This map shows the locations of candidates who have applied for the
<b>{!Position__c.Name}</b> position.
</apex:page>
A descrio inclui o campo de mesclagem {!Position__c.Name} dentro da marca HTML
<b>. Ns usamos os campos de mesclagem muitas vezes durante a construo do nosso
aplicativo. Eles estavam presentes em nosso modelo de email e em algumas de nossas frmulas.
Agora, estamos usando-os novamente, desta vez lado a lado com marcas de componentes do
Visualforce e HTML.
5. Clique no cone de salvar ( ) no editor de pgina.
Neste momento, nosso campo de mesclagem no est sendo exibido porque o Mapa dos
candidatos (Candidate Map) est fora de contexto, isto , no h registro de posio especfico
a partir do qual ele possa adquirir os dados. No se preocupe com isso por enquanto, futuramente
aprenderemos como definir o contexto. Por enquanto, apenas lembre-se de que o campo de
mesclagem {!Position__c.Name} renderizar o nome de posio e a marca HTML <b>
o formatar em negrito.
Agora nossa pgina do Visualforce est pronta para a insero do nosso mapa interativo!
Experimente: adicione o mapa nossa pgina
do Visualforce
A funcionalidade do mapa interativo, que essencial para o recurso Mapa dos candidatos
(CandidateMap), pode ser obtida com um misto de marcao do Visualforce e um JavaScript
que acessa o Yahoo! Maps Web Services. Como prometido, voc no precisar aprender
JavaScript para fazer com que o Mapa dos candidatos (CandidateMap) funcione. Em vez disso,
384 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
usaremos o cdigo de amostra do arquivo RecruitingApp-7_0.zip, que voc baixou da
Developer Force em Expandindo um aplicativo simples usando relacionamentos na pgina 113.
1. No arquivo RecruitingApp-7_0.zip, localize o arquivo CandidateMapSample
e abra-o no seu editor de texto favorito.
Importante: Certifique-se de que a quebra de texto e quaisquer outros
recursos que possam adicionar quebras de linhas ao cdigo esto desativados
no editor de texto. Voc precisa preservar as quebras de linha originais no
cdigo de amostra. Novas quebras de linha causadas por recursos de editores
de texto podero fazer com que o cdigo de amostra pare de funcionar.
Alm disso, lembre-se de que copiar cdigos de documentos no formato
PDF tambm pode invalidar os cdigos, assim evite copiar os cdigos das
verses em PDF deste livro.
2. Selecione todo o contedo do arquivo e copie e cole-o no editor de pgina na parte
inferior da pgina Mapa dos candidatos (CandidateMap) do Visualforce. O arquivo
CandidateMapSample contm a marcao do Visualforce que voc adicionou nas
etapas acima, assim basta substituir tudo que existir no editor de pgina por todo o
cdigo de amostra do arquivo.
3. Clique no cone de salvar (boto ) no editor de pgina.
O mapa interativo dever ser exibido em sua pgina Mapa dos candidatos (CandidateMap) do
Visualforce, porm com uma mensagem de erro e sem nenhuma indicao de localizao. Isso
se deve ao fato de que o mapa ainda est fora de contexto e a pgina no sabe quais candidatos
deve exibir. Ns podemos corrigir essa situao simplesmente adicionando a pgina Mapa dos
candidatos (CandidateMap) do Visualforce aos nossos layouts de pgina de posio.
Experimente: adicione o mapa dos candidatos a
layouts de pgina de posio
Adicionar pginas do Visualforce a layouts de pgina to simples quanto adicionar campos
ou sees a layouts de pgina. E depois de adicionarmos a pgina Mapa dos candidatos
(CandidateMap) do Visualforce a nossos layouts de pgina de posio, o mapa identificar
automaticamente as localizaes dos candidatos a cada uma das posies. Funciona como
mgica!
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 385
Ns temos dois layouts de pgina para o objeto Posio (Position) e gostaramos que o mapa
fosse exibido em ambos. Vamos comear adicionando a pgina ao layout de pgina de posio
original (layout de posio).
Se voc tem algum registro de posio padro que usa o layout de posio, navegue at uma
dessas posies e clique no link Editar layout da pgina (Edit Page Layout) no canto superior
direito do registro. Se voc no tem nenhum registro de posio padro:
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique em Editar (Edit)
prximo a Layout de posio (Position Layout).
O layout de posio est pronto para ser editado. Vamos criar uma seo no layout da pgina
para a pgina Mapa dos candidatos (CandidateMap) do Visualforce.
4. Na paleta, selecione a categoria Fields (Campos).
5. Arraste o elemento Seo (Section) da interface do usurio da paleta at logo abaixo
da seo Descrio (Description) no layout da pgina. A janela pop-up Propriedades
do layout (Layout Properties) ser exibida.
6. Na caixa de texto Nome da seo (Section Name), insira Mapa dos
candidatos (Candidate Map).
7. Na rea Exibir seo no cabealho (Display Section On Header), selecione as caixas
de seleo Pgina de detalhes (Detail Page) e Editar pgina (Edit
Page).
8. Na lista suspensa Layout, selecione 1 coluna (1-Column).
9. Clique em OK.
Agora vamos mover a pgina Mapa dos candidatos (CandidateMap) do Visualforce para nossa
nova seo.
10. Selecione a categoria Pginas (Pages) do Visualforce na paleta.
Observe que a paleta lista nossa pgina Mapa dos candidatos (CandidateMap) do Visualforce
como um elemento da interface do usurio.
11. Arraste o elemento Mapa dos candidatos (CandidateMap) da interface do usurio
da paleta at a seo Mapa dos candidatos (Candidate Map) no layout da pgina.
O JavaScript Mapa dos candidatos (CandidateMap) gera um mapa com 400 pixels de altura
e que se estende ao longo da largura da tela. Esse tamanho grande o suficiente para ser til
e ao mesmo tempo no usar muito espao na tela. As propriedades padres do elemento da
interface do usurio da pgina do Visualforce precisam ser ajustadas para acomodar o mapa.
Caso contrrio, pode haver um espaamento mpar ao redor do mapa e barras de rolagem
incmodas.
386 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Vamos fixar as propriedades do elemento da interface do usurio da pgina do Visualforce para
acomodar o tamanho do mapa gerado, bem como o texto que adicionamos ao topo da pgina
Mapa dos candidatos (CandidateMap) do Visualforce. Caso no esteja lembrado, o texto
Este mapa exibe as localizaes dos candidatos posio <b>{!Position__c.Name}</b>. (This
map shows the locations of candidates who have applied for the <b>{!Position__c.Name}</b>
position).
12. Clique duas vezes no elemento Mapa dos candidatos (CandidateMap) para acessar
suas propriedades.
13. Ajuste a largura para 100%.
14. Ajuste a altura para 405.
A altura sempre representada em pixels, enquanto a largura pode ser especificada tanto em
pixels quanto em porcentagem. Ajustar a altura para 405 pixels possibilita 400 pixels para o
mapa e mais cinco pixels para o texto. Perfeito!
15. Deixe as caixas de seleo Mostrar barras de rolagem (Show scrollbars)
e Mostrar rtulos (Show label) selecionadas.
16. Clique em OK para sair das propriedades do elemento do usurio.
17. Clique em Salvar no layout de pgina.
Repita todas as etapas acima para seu outro layout de pgina do objeto Posio (Position), o
Layout de posio de TI (IT Position Layout).
Experimente: habilite o mapa dos candidatos
para dispositivos mveis
Antes de testarmos nosso mapa, precisamos fazer mais uma coisa. Vamos nos certificar de que
o mapa ser exibido para nossos usurios tanto quando eles esto acessando um registro de
posio a partir do site completo quanto a partir de um dispositivo mvel. Na pgina de detalhes,
para cada pgina do Visualforce, h uma caixa de seleo que ativa o recurso para aplicativos
mveis do Salesforce.
1. Em Configurao, clique em Desenvolver > Pginas.
2. Clique em Mapa dos candidatos (CandidateMap). Voc pode clicar no link abaixo
das colunas Rtulo (Label) ou Nome (Name). Ambos acessaro a pgina de detalhes
associada.
3. Clique em Editar.
4. Selecione Disponvel para aplicativos mveis do Salesforce e clique
em Salvar.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 387
Depois de terminar, hora de testar o mapa dos candidatos!
Experimente: teste o Mapa dos candidatos
Navegue at qualquer posio com um ou mais formulrios de candidatos. (se voc no criou
quaisquer formulrios de emprego no seu aplicativo, agora uma boa hora). Depois de acessar
um registro de posio, role para baixo para visualizar o Mapa do candidato em ao!
Figura 144: Nosso mapa do candidato em ao!
Inicie o Salesforce1 para visualizar como o Mapa do candidato (CandidateMap) exibido em
dispositivos mveis. Ao acessar um registro de posio, acesse a visualizao dos detalhes do
registro e role para baixo para visualizar o mapa. Ns no podemos interagir com o mapa na
pgina de detalhes do registro. Para fazer isso, toque no mapa para abri-lo em outra pgina.
Tudo parece estar em ordem!
Observe como a pgina Mapa do candidato (CandidateMap) do Visualforce est embutida em
nosso aplicativo de recrutamento de forma equivalente a outra funcionalidade que construmos
usando as ferramentas declarativas do tipo apontar e clicar da plataforma. Observe tambm
que o mapa exibe automaticamente somente os candidatos para a posio em particular.
388 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Com pouqussima programao e poucos cliques, juntamos o Yahoo Maps Web Services com
o Force.com e fizemos com que os resultados paream ter sido expressamente feitos pelo nosso
aplicativo de recrutamento. Junte a API SOAP com as centenas de servios Web disponveis
atualmente e as possibilidades sero limitadas somente por nossa imaginao!
Implementando o boto Atualizao de
status em massa (Mass Update Status)
O recurso Mapa dos candidatos, que acabamos de adicionar, tanto til quanto estiloso. Ele
no s ajuda os recrutadores a trabalharem de forma mais eficiente, mas tambm insere belos
grficos e uma coleo de dados simples, tornando-a mais atraente. O prximo recurso que
implementaremos no to estiloso, porm muito til e possivelmente ajudar seus usurios
a economizarem uma enorme quantia de tempo.
Imagine-se como um recrutador da Universal Containers. Seu trabalho preencher uma posio
altamente cobiada, que recebeu centenas de formulrios de emprego, e voc finalmente
selecionou os trs melhores candidatos. No entanto, antes de proceder, voc precisa recusar
todos os outros formulrios de emprego, uma tarefa que pode levar vrias horas caso voc tenha
que abrir cada um dos formulrios de emprego e alterar o campo Status para recusado. O
que voc pode fazer nessa situao?
Felizmente, criar ferramentas que realizam aes em massa outra das inmeras maneiras de
usar as funcionalidades da plataforma. Com algumas linhas do Visualforce e as ferramentas do
tipo apontar e clicar da plataforma, ns podemos aprimorar o aplicativo de recrutamento de
uma maneira que aumentar drasticamente a produtividade dos usurios. Ao terminarmos, a
desanimadora tarefa de atualizar o campo Status em centenas de formulrios de emprego
passar de um tedioso trabalho de vrias horas para apenas alguns segundos e poucos cliques
do mouse.
Planejando o recurso Atualizao de status em
massa (Mass Update Status)
O objetivo simples: criar uma maneira de atualizar o campo Status em mltiplos formulrios
de emprego em uma nica operao. Precisamos apenas trabalhar em algumas logsticas para
nos certificar de que a implementao ocorrer sem problemas. Por exemplo, onde em nosso
aplicativo os usurios acessaro a funcionalidade Atualizao de status em massa (Mass Update
Status)? E como eles realizaro a atualizao?
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 389
Ao projetar um novo recurso, importante considerar o contexto no qual os usurios o acessaro.
Uma vez que o propsito do recurso Atualizao de status em massa (Mass Update Status)
atualizar o campo Status em mltiplos formulrios de emprego para uma nica posio,
mais provvel que os usurios desejem realizar essa operao enquanto visualizam um registro
de posio. Logo, faz mais sentido fornecer acesso ao recurso Atualizao de status em massa
(Mass Update Status) a partir dos registros de posio.
Assim, onde exatamente em um registro de posio devemos fornecer acesso ao recurso? Na
seo Expandindo um aplicativo simples usando relacionamentos na pgina 113, ns adicionamos
uma lista relacionada de formulrios de emprego aos nossos registros de posio, o que facilitou
a rpida identificao de todos os formulrios de emprego enviados para uma posio por parte
dos usurios. Podemos aproveitar essa lista adicionando uma caixa de seleo prxima a cada
formulrio de emprego de modo que os usurios possam selecionar o grupo de formulrios de
emprego que eles desejam atualizar. A seguir, podemos adicionar um boto de lista personalizado
Atualizar status (Update Status) para permitir que os usurios atualizem os campos Status
em todos os formulrios de emprego selecionados de um vez s.
Ao terminarmos, o recurso funcionar mais ou menos da seguinte maneira:
1. Abra um registro de posio e navegue at lista relacionada Formulrios de emprego
(Job Applications).
2. Na lista relacionada Formulrios de emprego (Job Applications), selecione as caixas
de seleo prximas aos formulrios de emprego que voc deseja atualizar.
Figura 145: Lista relacionada Formulrios de emprego (Job Applications)
3. Clique no boto Atualizar status (Update Status)
A pgina Atualizao de status em massa (Mass Update Status) ser exibida.
390 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Figura 146: Pgina do status de atualizao em massa (Mass Update Status)
4. Selecione um valor para o campo Status.
5. Clique em Salvar.
Pode parecer que isso demandar muito trabalho para implementar, mas de fato muito simples.
Tudo o que voc precisa fazer criar a pgina Atualizao de status em massa (Mass Update
Status) com certas marcas bsicas do Visualforce e adicionar um boto de lista personalizado
lista relacionada Formulrios de emprego (Job Applications) nos registros de posio. Voc
acabar antes mesmo de perceber!
Experimente: crie a pgina Atualizao de status
em massa (Mass Update Status)
Comearemos a implementar o recurso Atualizao de status em massa (Mass Update Status)
criando a pgina do Visualforce que permite que os usurios escolham o valor com o qual o
campo Status atualizado. Para tornar essa pgina ainda mais til, incluiremos uma tabela
que exibe Nmero do formulrio de emprego (Job Application Number),
Ttulo da posio (Position Title), Nome do candidato (Candidate Name)
e Status para cada formulrio de emprego selecionado.
1. Na barra de endereos do seu navegador, substitua tudo que estiver direita de
salesforce.com/ por apex/MassUpdateStatus.
A URL resultante dever se parecer com:
https://na1.salesforce.com/apex/MassUpdateStatus. Lembre-se de alterar
somente a parte da URL aps salesforce.com/.
2. Pressione Enter.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 391
3. Clique no link Criar pgina Atualizao de status em massa (Create Page
MassUpdateStatus).
Agora temos uma nova pgina do Visualforce chamada Atualizao de status em massa
(MassUpdateStatus). A seguir, adicionaremos a marcao do Visualforce que implementar a
funcionalidade de Atualizao de status em massa (Mass Update Status).
Para inserir a marcao, assim como fizemos anteriormente, usaremos o editor de pgina do
modo de desenvolvimento do Visualforce. Porm desta vez no precisaremos de nenhum
JavaScript. O Visualforce ser capaz de fazer tudo o que precisamos!
4. No rodap, na parte inferior da pgina Atualizao de status em massa
(MassUpdateStatus) do Visualforce, clique em Atualizao de status em massa
(MassUpdateStatus) para exibir o editor de pgina do modo de desenvolvimento
do Visualforce.
5. Exclua todas as marcaes padro do editor de pgina do modo de desenvolvimento
do Visualforce e insira as seguintes marcaes. Lembre-se que em vez de digitar,
mais fcil copiar e colar o cdigo a partir do arquivo MassUpdateStatusSample,
que pode ser encontrado no arquivo RecruitingApp-7_0.zip, que voc baixou
do endereo developer.force.com/books/fundamentals.
<apex:page standardController="Job_Application__c"
recordSetVar="applications">
<apex:sectionHeader title="Mass Update the Status
of Job Applications"/>
<apex:form>
<apex:pageBlock>
<apex:pageMessages />
<apex:pageBlockButtons>
<apex:commandButton value="Save"
action="{!save}"/>
<apex:commandButton value="Cancel"
action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:pageBlockSection title="Status Update"
collapsible="false">
<apex:inputField value=
"{!Job_Application__c.Status__c}"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="Selected Job
Applications" columns="1">
<apex:pageBlockTable value="{!selected}"
var="application">
<apex:column value="{!application.name}"/>
<apex:column value=
"{!application.position__r.name}"/>
<apex:column headerValue="Candidate Name">
<apex:outputText value=
"{!application.candidate__r.
First_Name__c & ' ' & application.
candidate__r.Last_Name__c}"/>
392 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
</apex:column>
<apex:column value=
"{!application.Status__c}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Dica: Neste cdigo de amostra, observe que certos componentes no contm
marcas de fechamento. Quando no existem outros componentes dentro
de um componente, voc pode fechar a marca usando uma barra (/) no
final da marca inicial, por exemplo: <apex:sectionHeader/>.
6. Clique no boto .
Entendendo a marcao Atualizao de status
em massa (MassUpdateStatus) do Visualforce.
Vamos parar um pouco para discutir as principais marcas do Visualforce que acabamos de
adicionar pgina Atualizao de status em massa (MassUpdateStatus). Embora no
abordaremos todos os casos de uso de cada componente ou discutiremos todos os atributos
com detalhes, voc obter um melhor entendimento de como o Visualforce funciona.
Dica: Para visualizar descries gerais e exemplos para todos os componentes do
Visualforce e seus atributos, clique no link Referncia do componente (Component
Reference) no canto superior direito do editor de pgina do modo de desenvolvimento
do Visualforce.
<apex:page>
Assim como todas as pginas do Visualforce, a pgina Atualizao de status em massa
(MassUpdateStatus) precisa comear com um componente <apex:page>. Observe que a
marca contm o mesmo atribuito standardController usado em nosso recurso Mapa do
candidato (CandidateMap) interativo, embora desta vez ele esteja definido para o objeto
Formulrio de emprego (Job_Application__c). Isso faz sentido pois o recurso Atualizao
de status em massa (Mass Update Status) atualiza um campo nos registros do formulrio de
emprego, no registros de posio.
O componente tambm contm um atributo recordSetVar. Esse atributo usado para
alterar o standardcontroller para que ele acomode um conjunto de registros em vez de
um nico registro.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 393
<apex:sectionHeader>
O componente <apex:sectionHeader> adiciona um cabealho ao topo da pgina. O
atribuito title do componente determina o texto no cabealho.
<apex:form>
O componente <apex:form> estabelece uma seo na pgina na qual os usurios podem
inserir e enviar dados clicando em um boto ou link. como um continer invisvel, similar a
um elemento <form> em HTML.
<apex:pageBlock>
O componente <apex:pageBlock> designa uma rea contornada na pgina semelhante s
reas em pginas de detalhes que contm sees.
<apex:pageMessages>
O componente <apex:pageMessages> aloca espao para mensagens padres do sistema
(como mensagens que notificam usurios quando um arquivo est sendo salvo) e erros de regras
de validao. Essas mensagens j existem na plataforma Force.com, assim no necessrio
cri-las, basta usar o componente para que elas possam ser usadas caso a plataforma precise
exibi-las.
<apex:pageBlockButtons>
O componente <apex:pageBlockButtons> aloca espao para um conjunto de botes na
pgina. Seus subcomponentes especificam o que os botes fazem e como eles so rotulados.
<apex:commandButton>
Cada componente <apex:commandButton> cria um boto individual dentro do componente
<apex:pageBlockButtons>. A pgina Atualizao de status em massa (Mass Update
Status) usa dois componentes <apex:commandButton>: um para criar um boto Salvar
(Save) e um segundo para criar um boto Cancelar (Cancel). Os botes so estilizados como
botes padres do Salesforce.
O atributo value do componente <apex:commandButton> determina as palavras exibidas
no boto (como Salvar ou Cancelar), enquanto o atributo action determina a operao
que ocorre quando o boto clicado. Ao configurar o atributo action, necessrio usar a
sintaxe do campo de mesclagem. Por exemplo, para configurar o boto para salvar os dados
inseridos na pgina, configure o atributo action como {!save}.
Cada boto exibido duas vezes em nossa pgina Atualizao de status em massa
(MassUpdateStatus), uma vez no topo da rea alocada pelo componente <apex:pageBlock>
e uma vez na parte inferior. Isso uma medida preventiva embutida no componente
394 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
<apex:pageBlockButtons> para garantir que a funcionalidade do boto seja aparente para
os usurios, mesmo que o bloco da pgina seja grande.
<apex:pageBlockSection>
O componente <apex:pageBlockSection> pode ser usado dentro de componentes
<apex:pageBlock> para criar uma seo em uma pgina semelhante s sees encontradas
em layouts de pgina. Nesta pgina, o componente <apex:pageBlockSection> usado
duas vezes.
A primeira instncia do componente <apex:pageBlockSection> contm um atributo
title configurado como Atualizao de status (Status Update). Esse texto ser exibido no
topo da seo. Ele tambm contm um atributo collapsible que determina se os usurios
podem comprimir e expandir a seo clicando em uma seta esquerda do ttulo. Ns no
queremos que os usurios comprimam acidentalmente esta seo do bloco da pgina, assim o
atributo configurado como false.
O segundo componente <apex:pageBlockSection> cria uma seo com uma tabela, que
exibe os formulrios de emprego selecionados para atualizao. Seu atributo title configurado
como Formulrios de emprego selecionados (Selected Job Applications). Alm disso, seu
atributo columns configurado para 1.
Dica: Diferente dos layouts de pgina, uma seo em uma pgina do Visualforce pode
ter mais do que duas colunas. No entanto, as folhas de estilo da plataforma so
otimizadas para acomodar uma ou duas colunas, assim melhor no exceder esse
limite.
<apex:inputField>
O componente <apex:inputField> renderiza o campo Status do objeto Formulrio de
emprego (Job Application) em nossa pgina. Use componentes <apex:inputField> para
criar elementos de entrada HTML para qualquer campo do Salesforce. Tudo o que voc precisa
fazer configurar o atributo value do componente para o nome da API do campo e objeto
do Salesforce.
<apex:pageBlockTable>
O componente <apex:pageBlockTable> renderiza tabelas que contenham valores de campo
de mltiplos registros de um objeto especfico. Para nosso recurso, precisamos definir dois dos
atributos desse componente: value e var.
O atributo value informa tabela qual conjunto de recursos contm os valores que sero
exibidos. Nesta instncia, configuramos o atributo com a expresso {!selected} para permitir
que a tabela exiba valores provenientes dos formulrios de emprego selecionados.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 395
O segundo atributo, var, cria um nome que os componentes dentro da tabela podem usar para
fazer referncia a registros individuais no registro definido sem de fato fazer referncia a cada
registro pelo nome.
<apex:column>
O componente <apex:column> dentro de <apex:pageBlockTable> determina as colunas
da tabela e os campos do formulrio de emprego que cada coluna exibe. Para trs dos quatro
componentes <apex:column>, basta definirmos o atributo value como uma expresso que
faa referncia ao campo usando o valor do atributo var do componente
<apex:pageBlockTable> seguido pelo nome da API do campo. Por exemplo, a seguinte
expresso exibe os valores do campo Nmero do formulrio de emprego (Job
Application Number):
{!application.name}
Para o campo Nome do candidato (Candidate Name), no entanto, precisamos de um
pouco mais, pois o campo , na verdade, uma combinao dos campos Nome (First Name)
e Sobrenome (Last Name) do objeto Candidato (Candidate). Para combinar esses campos,
ns usamos um componente <apex:outputText> dentro de um componente
<apex:column> e definimos o atributo value para uma expresso que combine os campos
Nome (First Name) e Sobrenome (Last Name) do objeto Candidato (Candidate).
<apex:column headerValue="Candidate Name">
<apex:outputText value="{!application.
candidate__r.First_Name__c & ' ' &
application.candidate__r.Last_Name__c}"/>
</apex:column>
Ao gerar campos de coluna dessa maneira, o atributo value do componente <apex:column>
no configurado, assim a tabela no sabe o que usar como cabealho da coluna. Isso pode ser
corrigido configurando o atributo headerValue neste componente <apex:column>
Beyond the Basics
Voc sabia que pode adicionar um feed do Chatter a uma pgina do Visualforce?
Digamos que voc queira adicionar o feed do Chatter de uma posio sua pgina de
detalhes. Voc pode simplesmente usar o componente padro <chatter:feed>:
<apex:page standardController="Position__c">
<chatter:feed entityId="{$!Position__c.id}">
<apex:detail />
</apex:page>
Para saber mais, consulte o Guia do desenvolvedor do Visualforce em
wiki.developerforce.com/index.php/Documentation#Reference_Guides.
396 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Experimente: crie um boto de lista
personalizado
Agora que nossa pgina Atualizao de status em massa (Mass Update Status) do Visualforce
est completa, ns estamos prontos para criar o boto que os usurios clicaro para acess-la.
A plataforma permite que criemos dois tipos de botes.
Botes da pgina de detalhes
Botes exibidos em pginas de detalhes na seo de botes do layout da pgina.
Botes da lista
Botes que aparecem em visualizaes de listas, layouts de resultados de pesquisa ou listas
relacionadas.
Ns precisamos de um boto em que os usurios possam clicar na lista relacionada Formulrios
de emprego (Job Applications) nos registros de posio, assim vamos criar um boto de lista.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Formulrio de emprego (Job Application).
Voc pode estar se perguntando por que escolhemos o objeto Formulrio de emprego (Job
Application) em vez do objeto Posio (Position) sendo que o boto ser exibido em registros
de posio. O motivo que voc deve criar botes de lista no objeto que est sendo listado.
3. Na lista relacionada Botes e links personalizados, clique em Novo boto ou link
(New Button or Link).
Figura 147: Pgina de edio de boto personalizado
A pgina de edio do boto personalizado dever ter uma aparncia familiar, uma vez que se
parece com o editor de frmulas que vimos anteriormente.
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 397
4. Na caixa de texto Rtulo (Label), insira Atualizar status (Update
Status).
5. Na caixa de texto Nome (Name), aceite os valores padro de Update_Status.
6. Na caixa de texto Descrio (Description), insira Atualiza o campo
Status em vrios formulrios de emprego (Updates the Status
field on multiple job applications).
Agora temos a opo de especificar se estamos criando um link de pgina de detalhes, boto
de pgina de detalhes ou boto de lista. J decidimos criar um boto de lista, porm no se
esquea das outras opes, pois elas podem ser usadas em futuros aplicativos.
7. Selecione Boto de lista (List Button) como o Tipo de exibio
(Display Type).
Ao selecionar a opo Boto de lista (List Button), voc notou a caixa de seleo
Exibir caixas de seleo (para a seleo de vrios registros) [Display
Checkboxes (for Multi-Record Selection)] logo abaixo? Ao deixar essa opo
selecionada, a plataforma sabe que dever colocar as caixas de seleo prximas aos registros
na lista relacionada.
8. Deixe a caixa de seleo Exibir caixas de seleo (para a seleo de
vrios registros) [Display Checkboxes (for Multi-Record
Selection)] selecionada.
A seguir, a lista de opes Comportamento (Behavior) permite que voc selecione o que
ocorrer quando um usurio clicar no boto. Sabemos que queremos que o boto abra a pgina
Atualizao de status em massa (Mass Update Status), porm podemos especificar se a pgina
ser aberta em uma nova janela ou na janela existente e se ter ou no uma barra lateral e um
cabealho. Voc pode at mesmo configurar o boto para executar JavaScripts caso necessrio.
Em nosso aplicativo, faz mais sentido configurar o boto para abrir a pgina Atualizao de
status em massa (Mass Update Status) na janela existente e deixar a barra lateral e o cabealho.
9. Na lista de opes Comportamento (Behavior), selecione Exibir na janela
existente com barra lateral (Display in existing window
with sidebar).
Agora precisamos especificar o contedo que desejamos exibir. Para fazer isso, primeiro
precisamos indicar o tipo de contedo que queremos exibir na lista de opes Origem do
contedo (Content Source).
10. Na lista de opes Origem do contedo (Content Source), selecione Pgina
do Visualforce (Visualforce Page).
Ao selecionar a opo Pgina do Visualforce (Visualforce Page), a seo
inferior da pgina de edio do boto de lista personalizado exibe uma lista de opes de
398 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Contedo (Content). A lista de opes contm as pginas do Visualforce em sua organizao
que contm um controlador padro configurado para o objeto para o qual voc est criando o
boto.
11. Na lista suspensa Contedo (Content), selecione
MassUpdateStatus[MassUpdateStatus].
12. Clique em Salvar.
Depois de clicar em Salvar (Save), voc ser notificado de que nenhum usurio poder acessar
o boto at que ele seja adicionado ao layout da pgina. O motivo que a criao de um boto
semelhante insero de um campo personalizado a um objeto. Mesmo que ele esteja definido
no banco de dados, ningum ser capaz de visualiz-lo at que voc o adicione explicitamente
a um layout da pgina.
Experimente: adicione um boto de lista
personalizado a um layout de pgina
Vamos concluir nosso recurso de Atualizao de status em massa (Mass Update Status)
adicionando o boto de lista Atualizar status (Update Status) aos nossos layouts de pgina de
posio.
1. Em Configurao, clique em Criar > Objetos.
2. Clique em Posio (Position).
3. Na lista relacionada Layouts de pgina (Page Layouts), clique na opo Editar (Edit)
prxima ao layout de pgina que voc deseja editar primeiramente.
4. Clique no cone Ferramenta ( ) na lista relacionada Formulrio de emprego (Job
Application) para editar suas propriedades.
5. Na janela Related List Properties (Propriedades da lista relacionada), clique na barra
Botes (Buttons) na parte inferior para expandir a seo Botes (Buttons).
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 399
Figura 148: Pgina de edio de boto personalizado
Aqui podemos especificar os botes padro e personalizados que a lista relacionada exibir. O
boto Atualizar status (Update Status) que acabamos de criar dever aparecer na lista Botes
disponveis (Available Buttons).
6. Selecione o boto Atualizar status (Update Status) e clique em Adicionar (Add) para
mov-lo para a lista Botes selecionados (Selected Buttons).
7. Clique em OK para sair da janela de propriedades da lista relacionada.
8. Clique em Salvar.
Repita o procedimento acima para o outro layout de pgina de posio.
Nota: Ns no habilitaremos esta pgina do Visualforce para aplicativos mveis do
Salesforce. Como as listas relacionadas do Salesforce1 no exibem botes, nossos
usurios no podero acessar a pgina Atualizao de status em massa (Mass Update
Status) usando dispositivos mveis.
Depois de fazer isso, o recurso Atualizao de status em massa (Mass Update Status) estar
pronto para ser testado!
400 | Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar
Experimente: teste o recurso Atualizao de
status em massa (Mass Update Status)
Para testar o recurso Atualizao de status em massa (Mass Update Status), navegue at um
registro de posio com diversos candidatos e role para baixo at a lista relacionada Formulrios
de emprego (Job Applications). Observe que o boto Atualizar status (Update Status) est l,
e as caixas de seleo so exibidas prximas dos nmeros do formulrio de emprego, exatamente
como planejamos.
Agora selecione alguns formulrios de emprego e clique no boto Atualizar status (Update
Status). Nossa pgina Atualizao de status em massa (Mass Update Status) do Visualforce
exibida. Observe que a metade inferior da pgina lista os formulrios de emprego (Job
Applications) que selecionamos.
Figura 149: Pgina Atualizao de status em massa (Mass Update Status) exibindo os
formulrios selecionados
Na lista de opes Status, selecione o novo status para os registros selecionados e clique em
Salvar (Save). O Salesforce atualiza todos os registros selecionados com o novo valor.
O recurso um sucesso!
Verso 8 | Chapter 11: Indo alm do desenvolvimento de aplicativos do tipo apontar e clicar | 401
Captulo 12
Aprendendo mais
Este livro apresentou algumas das tecnologias nativas
associadas plataforma Force.com. Ns criamos um
Tpicos:
Developer Force
aplicativo Recruiting totalmente funcional e apresentamos
Opes de ajuda e
treinamento
o Visualforce e a API SOAP para demonstrar como eles
podem ser usados para a criao de aplicativos compostos.
Multimdia
Mas impossvel abordar tudo em um nico livro no
Programa de parcerias
AppExchange
abordamos diversas ferramentas e opes avanadas e no
conversamos sobre como voc pode compartilhar seus
Qual a sua opinio?
aplicativos no AppExchange. Na verdade, ficaramos
surpresos se voc no tivesse mais perguntas sobre como
voc pode aproveitar ao mximo tudo o que a plataforma
tem para oferecer!
Felizmente, existem diversas formas de voc obter mais
informaes sobre a plataforma.
Developer Force
Developer Force o programa gratuito para desenvolvedores da salesforce.com para a plataforma
Force.com. O site Developer Force uma comunidade de desenvolvedores na qual voc pode
aprender, acessar recursos importantes e discutir sobre diversos tpicos relacionados s
plataformas Force.com, Database.com, Heroku e outras plataformas relacionadas
salesforce.com com os outros desenvolvedores da comunidade. Os tpicos sobre desenvolvimento
de aplicativos incluem Apex, Visualforce, APIs de integrao, bancos de dados, empacotamento
e distribuio de aplicativos e muitos outros.
Existem muitas formas de usar e colaborar com o Developer Force, incluindo:
Ler e fornecer artigos tcnicos que expliquem tpicos de desenvolvimento.
Fazer download e fornecer cdigos de amostra.
Ler nossos blogs, assinar nossos feeds RSS ou se tornar um blogueiro.
Ler e participar nos fruns de discusso do Developer Force.
Ler a newsletter mensal Developer News do Force.com enviada por email.
Registrar-se em um evento no nosso calendrio de eventos ou assistir ou ouvir a eventos
multimdia arquivados.
Participar de programas especiais como prvias para o desenvolvedor conhecer os
lanamentos em primeira mo.
Assistir aos seminrios tcnicos via web que ajudam voc a ficar atualizado sobre os recursos
novos.
Opes de ajuda e treinamento
Alm do site do Developer Force, a prpria plataforma oferece vrias opes de ajuda e
treinamento:
Encontre respostas para suas dvidas. Clique em Ajuda (Help) no topo de qualquer
pgina do aplicativo. Insira suas palavras-chave na caixa Pesquisar (Search) e pressione
Enter. A pesquisa retorna os tpicos da ajuda online, as solues da base de conhecimento
e os cursos de treinamento recomendados que correspondem s palavras-chave inseridas.
Faa um treinamento online. Selecione a guia Treinamento (Training) na janela Ajuda e
treinamento (Help & Training), escolha a sua funo e localizao geogrfica e clique em
Exibir cursos! (View Classes!) para localizar cursos de treinamento online gratuitos. H
mais de quinze cursos online disponveis para voc de imediato, 24 horas e 7 dias por
semana!
404 | Verso 8 | Chapter 12: Aprendendo mais
Participe de um curso. Diversos exemplos contidos neste livro foram fornecidos pelo
Treinamento e Certificao do Salesforce.com e extrados dos cursos de treinamento
ministrados por especialistas ao redor do mundo. Os cursos de treinamento do Salesforce.com
proporcionam uma oportunidade de adquirir experincia na prtica com a plataforma do
Force.com e os aplicativos do Salesforce, alm de prepar-lo para obter a certificao do
Salesforce. Para obter mais informaes ou se inscrever em um curso, visite
www.salesforce.com/training.
Faa download das folhas de dicas e manuais de prticas recomendadas. Selecione a guia
Ajuda (Help) na janela Ajuda e treinamento (Help & Training) e clique em Dicas (Tips)
na barra de tarefas para exibir e fazer download das folhas de dicas, manuais de
implementao e prticas recomendadas para recursos especficos.
Multimdia
Graas ao empenho de nossos colegas da Comunidade do Salesforce.com e dos sites Force.com,
temos uma quantidade incrvel de podcasts e vdeos disponveis. Nossos podcasts e vdeos
mantm a comunidade da plataforma do Force.com conectada oferecendo acesso gratuito a
uma ampla gama de prticas recomendadas, estudos de caso e contedo digital em udio focado
na plataforma e no produto.
Encontre podcasts em nosso canal do iTunes pesquisando por salesforce na iTunes Music
Store. Para encontrar nossos vdeos, acesse
http://developer.force.com/content/type/Tech+Talk no site do Developer
Force.
O acesso plataforma de especialistas do Force.come entrevistas com conhecedores do CRM,
apresentaes de lderes do segmento, debates em mesa redonda e prticas recomendadas esto
a apenas um clique de distncia. Divirta-se ouvindo e assistindo!
Programa de parcerias AppExchange
Com o surgimento do The Business Web
TM
, as empresas podem oferecer seus servios e
aplicativos s empresas com a mesma facilidade que os varejistas e leiloeiros se conectam com
os consumidores online. Como parceiros do AppExchange, mais de 150 empresas j esto
participando deste novo captulo da computao disponibilizando suas ofertas para o The
Business Web por meio do AppExchange. O Programa de parcerias AppExchange facilita a
associao de empresas novas e estabelecidas nessa comunidade crescente de provedores de
computao em nuvem. Visite o site do Programa de parcerias em
Verso 8 | Chapter 12: Aprendendo mais | 405
www.salesforce.com/partners/ e associe-se hoje ao Programa de parcerias AppExchange
da Force.com!
Qual a sua opinio?
Bem, isso resume tudo. Voc gostou do que leu? O contedo o inspirou a criar seus prprios
aplicativos de imediato e entrar no universo da computao em nuvem? Esperamos que sim!
Fique vontade para fazer qualquer comentrio. Na verdade, contamos com seus comentrios
e ideias. Acesse os quadros de discusso do Developer Force em
community.salesforce.com/sforce?category.id=developers ou envie um email
para developerforce@salesforce.com e nos diga sua opinio!
406 | Verso 8 | Chapter 12: Aprendendo mais
Glossrio
Este glossrio define termos usados neste guia.
A
Atividade (Compromissos de calendrio/tarefas)
Tarefa ou compromisso planejado, opcionalmente relacionado a outro tipo de registro,
como uma conta, um contato, um lead, uma oportunidade ou um caso.
Administrador (Administrador do sistema)
Uma ou mais pessoas da organizao que podem configurar e personalizar o aplicativo.
Os usurios atribudos ao perfil Administrador de sistema tm privilgios de administrador.
Funo avanada
Uma funo de frmula projetada para uso nos botes, links e s-controls personalizados.
Por exemplo, a funo avanada INCLUDE retorna o contedo de um snippet s-control.
Instantneo analtico
Um instantneo analtico permite que voc reporte os dados histricos. Os usurios
autorizados podem salvar os resultados de relatrio tabular ou de resumo em campos em
um objeto personalizado, depois mapear esses campos para campos correspondentes em
um objeto de destino. Eles podem programar quando executar o relatrio para carregar
os campos do objeto personalizado com os dados do relatrio.
Usurio em execuo do instantneo analtico
O usurio cujas configuraes de segurana determinam o nvel de acesso do relatrio de
origem aos dados. Ignora todas as configuraes de segurana, dando a todos os usurios
com permisso para exibir os resultados do relatrio de origem no objeto de destino acesso
aos dados que eles talvez no possam ver de outra forma.
Relatrio de origem do instantneo analtico
O relatrio personalizado agendado para executar e carregar dados como registros em
um objeto personalizado.
Objeto de destino do instantneo analtico
O objeto personalizado que recebe os resultados do relatrio de origem como registros.
Apex
Apex uma linguagem de programao orientada a objetos e com identificao de tipos
forte que possibilita que os desenvolvedores executem instrues de controle de transao
e fluxo no servidor da plataforma Force.com em conjunto com chamadas para a API do
Force.com. Usando uma sintaxe parecida com Java e que age como procedimentos
armazenados de banco de dados, o Apex permite que os desenvolvedores adicionem lgica
comercial maioria dos eventos de sistema , incluindo cliques de boto, atualizaes de
registros relacionados e pginas do Visualforce. O cdigo Apex pode ser iniciado por
solicitaes de servio da Web e atravs de acionadores nos objetos.
Controlador do Apex
Consulte Controlador, Visualforce.
Pgina do Apex
Veja a Pgina do Visualforce.
Aplicativo
Tambm usado em sua verso abreviada, apl.. Um conjunto de componentes como
guias, relatrios, painis e pginas do Visualforce, que atendem a uma necessidade
comercial especfica. O Salesforce fornece aplicativos padro como o Sales e o Call Center.
Os aplicativos padro podem ser personalizados para se adaptarem sua rotina de trabalho.
Alm disso, voc pode colocar um aplicativo em pacote e carreg-lo no AppExchange
com outros componentes relacionados, como campos, guias e objetos personalizados.
Em seguida, voc pode disponibilizar o aplicativo a outros usurios do Salesforce no
AppExchange.
Menu do aplicativo
Consulte o Menu do aplicativo do Force.com.
AppExchange
O AppExchange uma interface de compartilhamento do salesforce.com que permite a
voc navegar e compartilhara aplicativos e servios para a plataforma Force.com.
Interface de programao de aplicativo (API)
A interface que um sistema de computador, biblioteca ou aplicativo fornece para permitir
que outros programas de computador solicitem servios a partir dela e troquem dados.
408 | Verso 8 | Glossrio
Ao de aprovao
Consulte Fluxo de trabalho e aes de aprovao.
Processo de aprovao
O processo de aprovao um processo automatizado que a sua organizao pode usar
para aprovar registros no Salesforce. Um processo de aprovao especifica as etapas
necessrias para um registro ser aprovado e quem deve aprov-lo em cada etapa. Uma
etapa pode se aplicar a todos os registros includos no processo ou apenas a registros que
atendam a determinados critrios definidos por um administrador. Um processo de
aprovao tambm especifica as aes a serem tomadas quando um registro aprovado,
rejeitado, submetido a recall ou enviado pela primeira vez para aprovao.
Numerao automtica
Tipo de campo personalizado que automaticamente adiciona um nmero sequencial
exclusivo a cada registro. Estes campos so somente leitura.
B
Operadores booleanos
Os operadores booleanos so usados nos filtros de relatrios para especificar o
relacionamento lgico entre dois valores. Por exemplo, o operador E entre dois valores
produz resultados de pesquisa que incluem ambos os valores. De forma semelhante, o
operador OU entre dois valores produz resultados de pesquisa que incluem um valor ou
o outro.
C
Classe, Apex
Um modelo ou projeto a partir do qual os objetos do Apex so criados. As classes
consistem em outras classes, mtodos definidos pelo usurio, variveis, tipos de exceo
e cdigo de inicializao esttico. Na maioria dos casos, as classes do Apex so modeladas
em suas contrapartes em Java.
Clonar
Clone o nome de um boto ou link que permite voc a criar um novo item ao copiar
as informaes de um item existente, por exemplo, um contato ou oportunidade.
Computao em nuvem
Um modelo online de desenvolvimento e distribuio de software. A infraestrutura de
tecnologia de um servio, incluindo os dados, est hospedada na Internet. Isso permite
que os consumidores desenvolvam e usem servios com navegadores e outros thin clients
em vez de investir em hardware, software ou manuteno.
Verso 8 | Glossrio | 409
Grfico de combinao
Um grfico de combinao representa vrios conjuntos de dados em um nico grfico.
Cada conjunto de dados baseado em um campo diferente, portanto, os valores so fceis
de comparar. Voc tambm pode combinar determinados tipos de grfico para apresentar
os dados de maneiras diferentes em um nico grfico.
Componente, Visualforce
Algo que pode ser includo em uma pgina do Visualforce com um conjunto de marcas,
como <apex:detail>. O Visualforce inclui um nmero de componentes padro, ou
voc pode criar seus prprios componentes personalizados.
Referncia a componente, Visualforce
Uma descrio dos componentes padro e personalizados do Visualforce que esto
disponveis na sua organizao. possvel acessar a biblioteca de componentes do rodap
de desenvolvimento de qualquer pgina do Visualforce ou do Visualforce Developer's Guide
(Guia do desenvolvedor do Visualforce).
Controlador, Visualforce
Uma classe do Apex que fornece a uma pgina do Visualforce os dados e a lgica de
negcios de que ela necessita para executar. As pginas do Visualforce podem usar os
controladores padro que acompanham por padro cada objeto padro ou personalizado,
ou elas podem usar controladores personalizados.
Extenso do controlador
Uma extenso do controlador uma classe do Apex que estende a funcionalidade de um
controlador padro ou personalizado.
Campo de controle
Qualquer campo de lista de opes ou caixa de seleo padro ou personalizado com
valores que controlam os valores disponveis em um ou mais campos dependentes
correspondentes.
Aplicativo personalizado
Consulte Aplicativo.
Controlador personalizado
Um controlador personalizado uma classe do Apex que implementa toda a lgica de
uma pgina sem tirar proveito de um controlador padro. Use controladores personalizados
quando voc desejar que sua pgina do Visualforce execute inteiramente no modo do
sistema, o que no fora as permisses e a segurana no nvel do campo do usurio atual.
Campo personalizado
Um campo pode ser adicionado alm dos campos padro para personalizar o Salesforce
conforme as necessidades da sua organizao.
410 | Verso 8 | Glossrio
Ajuda personalizada
Os administradores de texto personalizados criam para fornecer aos usurios informaes
em tela especficas para um campo padro, campo personalizado ou objeto personalizado.
Links personalizados
Links personalizados so URLs definidos por administradores para integrar os seus dados
no Salesforce a sites externos da Web e sistemas de back office. Anteriormente
denominados links da Web.
Objeto personalizado
Registros personalizados que permitem armazenar informaes exclusivas da sua
organizao.
Tipo de relatrio personalizado
Consulte Tipo de relatrio.
Configuraes personalizadas
As configuraes personalizadas so semelhantes a objetos personalizados e permitem
que os desenvolvedores de aplicativos criem conjuntos de dados personalizados, assim
como criem e associem dados personalizados a uma organizao, perfil ou usurio
especfico. Todos os dados de configuraes personalizadas so expostos no cache do
aplicativo, o que permite o acesso eficiente sem o custo de consultas repetidas ao banco
de dados. Em seguida, esses dados podero ser usados por campos de frmula, regras de
validao, Apex e API SOAP.
Consulte tambm Configuraes personalizadas de hierarquia e Configuraes
personalizadas de listas.
Modo de exibio personalizado
Um recurso de exibio que permite voc a visualizar um conjunto especfico de registros
para um objeto em particular.
D
Painel
Um painel mostra dados de relatrios de origem como componentes visuais, que podem
ser grficos, medidores, tabelas, mtricas ou pginas do Visualforce. Os componentes
proporcionam um instantneo dos indicadores-chave de mtrica e de desempenho para
sua organizao. Cada painel pode ter at 20 componentes.
Banco de dados
Uma coleo organizada de informaes. A arquitetura subjacente da plataforma
Force.com inclui um banco de dados no qual seus dados so armazenados.
Verso 8 | Glossrio | 411
Tabela de banco de dados
Uma lista de informaes, apresentadas com linhas e colunas, sobre a pessoa, coisa ou
conceito que voc deseja rastrear. Consulte tambm Objeto.
Data Loader
Uma ferramenta da plataforma Force.com usada para importar e exportar dados da
organizao do Salesforce.
Casas decimais
O parmetro dos campos personalizados de nmero, moeda e porcentagem que indica
o nmero total de dgitos que voc pode inserir direita da vrgula decimal, por exemplo,
4,98 para uma entrada de 2. Observe que o sistema arredondar os nmeros decimais
inseridos, se necessrio. Por exemplo, se voc inserir 4.986 em um campo com Casas
decimais igual a 2, o nmero ser arredondado para 4,99. O Salesforce usa o algoritmo
de arredondamento para cima. Valores no inteiros so sempre arredondados para cima.
Por exemplo, 1,45 arredondado para 1,5. 1,45 arredondado para 1,5.
Administrao delegada
Um modelo de segurana em que um grupo de usurios no administradores executam
tarefas administrativas.
Autenticao delegada
Um processo de segurana onde uma autoridade externa usada para autenticar usurios
da plataforma Force.com.
Dependncia
Um relacionamento onde a existncia um objeto depende de outro. H um nmero de
diferentes tipos de dependncia incluindo campos obrigatrios, objetos dependentes
(pai-filho), incluso de arquivo (referncias de imagens, por exemplo) e dependncias de
ordem (quando um objeto deve ser implementado antes de outro).
Campo dependente
Qualquer campo de lista de opes personalizada ou de lista de opes de seleo mltipla
que exibe os valores disponveis com base no valor selecionado no campo de controle
correspondente.
Detalhe
Uma pgina que exibe informaes sobre um nico registro de objeto. A pgina de
detalhes de um registro permite exibir as informaes, j a pgina de edio permite
modific-las.
Termo usado nos relatrios para fazer a distino entre as informaes de resumo e a
incluso de todos os dados de coluna de todas as informaes em um relatrio. Voc pode
alternar o boto Mostrar detalhes/Ocultar detalhes para exibir ou ocultar informaes
detalhadas do relatrio.
412 | Verso 8 | Glossrio
Developer Edition
Uma organizao do Salesforce gratuita e totalmente funcional projetada para que os
desenvolvedores estendam, integrem e desenvolvam com a plataforma do Force.com. As
contas do Developer Edition esto disponveis no developer.force.com.
Ambiente de desenvolvimento
Uma organizao do Salesforce onde possvel fazer alteraes de configurao que no
afetaro os usurios na organizao de produo. H dois tipos de ambientes de
desenvolvimento, organizao com Developer Edition e sandboxes.
Developer Force
O site do Developer Force em developer.force.com fornece uma faixa completa de recursos
para desenvolvedores de plataforma, incluindo cdigo de amostra, kits de ferramentas,
uma comunidade online de desenvolvedores e a capacidade de obter ambientes da
plataforma Force.com limitados.
Biblioteca de documentos
Lugar onde os documentos so armazenados sem anex-los a contas, contatos,
oportunidades ou outros registros.
E
Email de alerta
Os emails de alerta so aes de fluxo de trabalho e aprovao geradas usando um modelo
de email por uma regra de fluxo de trabalho ou processo de aprovao e enviadas a
destinatrios designados, sejam usurios do Salesforce ou outros.
Aplicativo corporativo
Um aplicativo que foi projetado para dar suporte funcionalidade de uma organizao
como um todo, em vez de resolver um problema especfico.
Diagrama de entidades e relacionamentos (ERD)
Uma ferramenta de modelagem de dados que o ajuda a organizar seus dados em entidades
(ou objetos, como eles so chamados na plataforma Force.com) e define os relacionamentos
entre elas. Os diagramas ERD dos principais objetos do Salesforce so publicados no
SOAP API Developer's Guide (Guia do desenvolvedor da API SOAP).
Compromisso
O compromisso uma atividade que tem um horrio agendado. Por exemplo, uma reunio
ou um telefonema agendado.
Verso 8 | Glossrio | 413
F
Campo
Uma parte de um objeto que contm uma informao especfica, como um texto ou valor
de moeda.
Segurana em nvel de campo
Configuraes que determinam se os campos esto ocultos, visveis, de somente leitura
ou editveis para os usurios. Disponvel apenas nas edies Enterprise, Unlimited,
Performance e Developer.
Dependncia de campo
Um filtro que permite alterar os contedos de uma lista de opes com base no valor de
outro campo.
Atualizao de campo
As atualizaes de campo so aes de fluxo de trabalho e de aprovao que especificam
o campo a ser atualizado e seu novo valor. Dependendo do tipo de campo, voc pode
optar por aplicar um valor especfico, deixar o valor em branco ou calcular um valor com
base em uma frmula que voc tenha criado.
Condies/Critrios de filtro
Condio em determinados campos que qualifica os itens a serem includos no modo de
exibio de listas ou no relatrio, como Estado igual a Califrnia.
Pasta
Uma pasta um local onde voc pode armazenar relatrios, painis, documentos ou
modelos de email. As pastas podem ser pblicas, ocultas ou compartilhadas, e ser definidas
como somente leitura ou leitura/gravao. Voc controla quem tem acesso a seu contedo
com base nas funes, permisses, grupos pblicos e tipos de licena. possvel
disponibilizar uma pasta para toda a organizao ou torn-la privada para que somente
o proprietrio tenha acesso.
Force.com
A plataforma da salesforce.com para criar aplicativos na nuvem. O Force.com combina
uma interface do usurio, sistema operacional e banco de dados avanados para permitir
que voc personalize e implemente aplicativos na nuvem para toda a sua empresa.
Menu do aplicativo Force.com
O menu que permite que os usurios alternem entre aplicativos personalizveis com um
nico clique. O menu de aplicativos do Force.com exibido na parte superior de cada
interface do usurio.
Force.com IDE
Um plug-in do Eclipse que permite que desenvolvedores gerenciem, criem, depurem e
implementem aplicativos do Force.com no ambiente de desenvolvimento do Eclipse.
414 | Verso 8 | Glossrio
API de servio da Web.
Uma interface de programao de aplicativo de servios da Web que fornece acesso s
informaes da organizao do Salesforce. Consulte tambm API SOAP e API em
massa.
Chave estrangeira
Um campo cujo valor o mesmo que a chave principal de outra tabela. Voc pode
considerar uma chave estrangeira como uma cpia da chave principal de outra tabela.
Um relacionamento feito entre duas tabelas pela correspondncia dos valores da chave
estrangeira em uma tabela com os valores da chave principal em outra.
Campo de frmula
Tipo de campo personalizado. Campos de frmula calculam automaticamente seus valores
com base em campos de mesclagem, expresses ou outros valores.
Funo
Frmulas internas que voc pode personalizar com parmetros de entrada. Por exemplo,
a funo DATE cria um tipo de campo de data para determinado ano, ms e dia.
G
Varivel global
Um campo de mesclagem especial que voc pode usar para fazer referncia aos dados na
sua organizao.
Um modificador de acesso de mtodo para qualquer mtodo que precise ser referenciado
fora do aplicativo, quer na API SOAP, quer por outro cdigo do Apex.
Grupo
Um grupo um conjunto de usurios. Os grupos podem conter usurios individuais,
outros grupos ou os usurios em um papel. Os grupos podem ser usados para ajudar a
definir o acesso compartilhado para dados ou para especificar quais dados sincronizar
com o uso do Connect for Outlook ou o Connect for Lotus Notes.
Os usurios podem definir seus prprios grupos pessoais. Os administradores podem
criar grupos pblicos para o uso de todos na organizao.
Group Edition
Um produto projetado para pequenos negcios e grupos de trabalho com um nmero
limitado de usurios.
H
Configuraes personalizadas de hierarquia
Um tipo de configurao personalizada que usa uma lgica hierrquica embutida que
permite que voc "personalize" as configuraes para determinados perfis ou usurios. A
Verso 8 | Glossrio | 415
lgica da hierarquia verifica as configuraes da organizao, do perfil e do usurio
referente ao usurio atual e exibe o valor mais especfico ou "mais baixo". Na hierarquia,
as configuraes para uma organizao so sobrescritas por configuraes de perfil que,
por sua vez, so sobrescritas pelas configuraes do usurio.
Guia Incio
Pgina inicial em que os usurios podem escolher atalhos e opes da barra lateral, exibir
as tarefas e atividades atuais ou selecionar outra guia.
Detalhe de navegao
Os detalhes de navegao exibem uma tela adicional interativa contendo informaes
detalhadas de um registro quando os usurios passam o cursor do mouse sobre um link
para esse registro na lista Itens recentes da barra lateral ou em um campo de pesquisa em
uma pgina de detalhes do registro. Os usurios podem exibir informaes de um registro
rapidamente antes de clicar em Exibir na pgina de detalhes do registro ou em Editar
na pgina de edio. Os campos exibidos nos detalhes de navegao so definidos pelo
layout de pgina em miniatura do registro. Os campos exibidos nos detalhes de navegao
do documento no podem ser personalizados.
I
ID
Consulte ID do registro doSalesforce.
Ambiente de desenvolvimento integrado (IDE)
Um aplicativo de software que fornece recursos abrangentes para desenvolvedores de
software, incluindo um editor de cdigo fonte, ferramentas de teste e depurao, e
integrao com os sistemas de controle de cdigo fonte.
Ao imediata
Uma ao de fluxo de trabalho executada assim que as condies de uma regra de fluxo
de trabalho so alcanadas.
Assistente de importao
Uma ferramenta para importao de dados para a sua organizao do Salesforce, acessvel
da Configurao.
Instncia
O cluster de software e hardware representado como um nico servidor lgico que hospeda
os dados de uma organizao e executa seus aplicativos. A plataforma Force.com executa
em vrias instncias, mas os dados de qualquer organizao individual so sempre
consolidados em uma instncia nica.
416 | Verso 8 | Glossrio
J
Objeto de juno
Um objeto personalizado com dois relacionamentos de detalhe-mestre. Usando um objeto
de juno personalizado, voc pode modelar um relacionamento do tipo muitos com
muitos entre dois objetos. Por exemplo, voc pode ter um objeto personalizado
denominado Erro relacionado a um objeto de caso padro de forma que o erro possa
ser relacionado a vrios casos e um caso tambm possa ser relacionado a vrios erros.
K
No h itens de glossrio para esta entrada.
L
Layout
Consulte o Layout de pgina.
Comprimento
Parmetro dos campos de texto personalizados que especifica o nmero mximo de
caracteres (at 255) que um usurio pode inserir no campo.
Parmetro dos campos de nmero, moeda e porcentagem que especifica o nmero de
dgitos que voc pode inserir esquerda da vrgula decimal, por exemplo, 123,98 para
uma entrada de 3.
Papel timbrado
Determina os atributos bsicos de um modelo de email HTML. Os usurios podem criar
um papel timbrado que inclua atributos como cor de fundo, logotipo, tamanho e cor de
fonte.
Modo de exibio de lista
A exibio de uma lista de itens (como contas ou contatos) com base em critrios
especficos. O Salesforce fornece alguns modos de exibio predefinidos.
No Console do agente, o modo de exibio de lista o quadro superior que exibe um
modo de exibio de lista dos registros com base em critrios especficos. Os modos de
exibio de lista que voc pode selecionar para exibir no console so os mesmos modos
de exibio de lista definidos nas guias de outros objetos. No possvel criar um modo
de exibio de listas no console.
Caixa de dilogo de pesquisa
A caixa de dilogo pop-up est disponvel para alguns campos que permitem que voc
pesquise por um novo item, como um contato, conta ou usurio.
Verso 8 | Glossrio | 417
Campo de pesquisa
Um tipo de campo que contenha um valor com link para outro registro. Voc pode exibir
campos de pesquisa em layouts de pgina em que o objeto tenha um relacionamento de
pesquisa ou entre mestre e detalhes com outro objeto. Por exemplo, os casos que tiverem
um relacionamento de pesquisa com patrimnios que permitam que usurios selecionem
um patrimnio usando uma caixa de dilogo de pesquisa da pgina de edio do caso e
clicar no nome do patrimnio da pgina de detalhes do caso.
Relacionamento de pesquisa
Um relacionamento entre dois registros para que voc possa associ-los um ao outro. Por
exemplo, casos tm um relacionamento de pesquisa com patrimnios que lhe permite
associar um determinado patrimnio a um caso. Em um lado do relacionamento, campo
de pesquisa permite que os usurios cliquem em um cone de pesquisa e selecionem outro
registro em uma janela popup. No registro associado, voc pode ento exibir uma lista
relacionada para mostrar todos os registros que foram vinculados a ele. Se um campo de
pesquisa fizer referncia a um registro que tenha sido excludo, por padro, o Salesforce
limpar o campo de pesquisa. Voc tambm pode, como alternativa, evitar que registros
sejam excludos se no estiverem em um relacionamento de pesquisa.
M
Compartilhamento manual
As regras de acesso no nvel do registro que permitem aos proprietrios do registro dar
permisses de leitura e edio a outros usurios que poderiam no ter acesso ao registro
de outra forma.
Relacionamento do tipo muitos a muitos
Um relacionamento em que cada lado do relacionamento pode ter vrios filhos no outro
lado. Os relacionamentos muitos a muitos so implementados por meio do uso de objetos
de juno.
Lista de opes mestre
Uma lista completa dos valores de lista de opes disponveis para um tipo de registro
ou processo de negcios.
Relatrio de matriz
Os relatrios de matriz so semelhantes aos relatrios de resumo, mas permitem a voc
agrupar e resumir dados por linhas e colunas. Eles podem ser usados como o relatrio de
origem para componentes do painel. Use esse tipo para comparar totais relacionados,
especialmente se voc tiver grandes quantidades de dados para resumir e precisar comparar
os valores em vrios campos diferentes, ou se voc quiser analisar os dados por data e por
produto, pessoa ou localizao geogrfica.
418 | Verso 8 | Glossrio
Metadados
Informaes sobre a estrutura, aparncia e funcionalidade de uma organizao e qualquer
uma de suas partes. O Force.com usa XML para descrever metadados.
Layout de pgina em miniatura
Um subconjunto de itens no layout de uma pgina existente de um registro que os
administradores optam por exibir no Modo de exibio em miniatura do Console do
agente e em Detalhes de navegao. Os layouts de pgina em miniatura herdam associaes
de perfil e tipos de registro, listas relacionadas, campos e configuraes de acesso ao
campo do layout de pgina.
Ocupao variada
Um modelo de aplicativo onde todos os usurios e aplicativos compartilham uma
infraestrutura e uma base de cdigo comuns e nicas.
N
Notas
Informaes variadas relacionadas a um registro especfico.
O
Objeto
Um objeto permite armazenar informaes na organizao do Salesforce. O objeto a
definio geral do tipo de informaes que est sendo armazenado. Por exemplo, o objeto
Caso permite armazenar informaes relacionadas a consultas de clientes. Para cada
objeto, sua organizao ter vrios registros que armazenam as informaes sobre instncias
especficas desse tipo de dados. Por exemplo, voc pode ter um registro de caso para
armazenar as informaes sobre uma dvida de treinamento do Joe Smith e outro registro
de caso para armazenar as informaes sobre um problema de configurao da Mary
Johnson.
Ajuda de nvel de objeto
O texto de ajuda personalizado que voc pode fornecer para qualquer objeto personalizado.
Ele exibido no incio do registro do objeto personalizado (viso geral), nos detalhes e
pginas de edio, como tambm em modos de exibio de listas e listas relacionadas.
Segurana em nvel de objeto
As configuraes que permitem que um administrador oculte objetos inteiros dos usurios
de modo que eles no saibam que tipos de dados existem. A segurana em nvel do objeto
especificada com as permisses de objeto.
Relacionamento do tipo de um para muitos
Um relacionamento em que um nico objeto est relacionado a vrios outros objetos.
Por exemplo, uma conta pode ter um ou mais contatos relacionados.
Verso 8 | Glossrio | 419
Organizao
Uma implantao do aplicativo Salesforce com um conjunto definido de usurios
licenciados. A organizao o espao virtual fornecido a um cliente individual do
salesforce.com. Sua organizao inclui todos os dados e aplicativos, e separada de todas
as outras organizaes.
Padres para toda a organizao
Configuraes que permitem que voc especifique o nvel de linha de base do acesso a
dados que um usurio tem na sua organizao. Por exemplo, possvel configurar os
padres no mbito da organizao de modo que qualquer usurio possa ver qualquer
registro de um objeto especfico que esteja ativado por meio de suas permisses de objeto,
mas ele precisa de permisses extras para edit-lo.
Mensagem de sada
Uma mensagem de sada uma ao de fluxo de trabalho, aprovao ou marco que envia
as informaes especificadas para o ponto final designado, como um servio externo.
Uma mensagem de sada envia os dados nos campos especificados na forma de uma
mensagem SOAP para o ponto final.A mensagem de sada est configurada no menu de
configurao do Salesforce. Em seguida, voc deve configurar o ponto final externo. Voc
pode criar um receptor para as mensagens usando a API SOAP.
Tela adicional
A tela adicional exibe informaes extras quando voc passar o mouse sobre determinados
elementos da interface do usurio. Dependendo da tela adicional, ela ser fechada quando
voc tirar o mouse, clicar fora da tela adicional ou clicar em um boto de fechamento.
Proprietrio
Um usurio individual para o qual um registro (por exemplo, um contato ou caso)
atribudo.
P
Platform as a Service (PaaS)
Um ambiente onde os desenvolvedores usam ferramentas de programao oferecidas por
um provedor de servios para criar aplicativos e implant-los em uma nuvem. O aplicativo
hospedado como um servio e fornecido aos clientes via Internet. O fornecedor de PaaS
oferece uma API para a criao e ampliao de aplicativos especializados. O fornecedor
do PaaS assume a responsabilidade pela manuteno diria, pela operao e pelo suporte
ao aplicativo implantado e aos dados do cliente. O servio diminui a necessidade de os
programadores instalarem, configurarem e fornecerem manuteno aos aplicativos em
seus prprios hardware, software e recursos de TI relacionados. Os servios podem ser
entregues usando o ambiente PaaS a qualquer segmento de mercado.
420 | Verso 8 | Glossrio
Platform Edition
Uma edio do Salesforce baseada na Enterprise Edition, Unlimited Edition ou
Performance Edition, que no inclui nenhum aplicativo Salesforce CRM padro, como
Vendas ou Servio e Suporte.
Chave primria
Um conceito de banco de dados relacional. Cada tabela em um banco de dados relacionado
tem um campo em que o valor de dados identifica exclusivamente o registro. Esse campo
chamado a chave principal. O relacionamento feito entre duas tabelas pela
correspondncia dos valores da chave estrangeira em uma tabela com os valores da chave
principal em outra.
Exibir rea de impresso
Uma opo que exibe uma pgina em um formato de impresso.
Compartilhamento particular
O compartilhamento privado o processo de compartilhar um pacote carregado, usando
o URL recebido do salesforce.com. Esse URL no est listado no AppExchange. Com
o URL no listado, voc pode compartilhar um pacote sem ter de passar pelo processo
de listagem ou torn-lo pblico.
Visualizador do processo
Uma ferramenta que exibe uma verso grfica de um processo de aprovao. O diagrama
de somente exibio apresentado na forma de um fluxograma. O diagrama e um painel
lateral de informaes podem ajud-lo a visualizar e entender as etapas definidas, os
critrios das regras e as aes que formam seu processo de aprovao.
Organizao de produo
Uma organizao do Salesforce que tem usurios em tempo real acessando dados.
Perfil
Define a permisso de um usurio para executar funes diferentes no Salesforce. Por
exemplo, o perfil Gerente de solues fornece a um usurio acesso de criao, edio e
excluso de solues.
T
Fila
Uma rea de parada para os itens antes de eles serem processados. O Salesforce usa filas
em vrios recursos e tecnologias diferentes.
Verso 8 | Glossrio | 421
R
Somente leitura
Um dos perfis padro ao qual um usurio pode ser atribudo. Os usurios Somente leitura
podem exibir e gerar relatrios sobre informaes com base no seu papel na organizao.
(Isto , se o usurio Somente leitura for o CEO, ele poder ver todos os dados do sistema.
Se o usurio Somente leitura tiver o papel de Representante ocidental, ele poder ver
todos os dados de acordo com o seu papel e com qualquer papel abaixo dele na hierarquia.)
Itens recentes
Lista de links numa barra lateral para a maioria dos registros acessados recentemente.
Observe que nem todos os tipos de registros esto listados nos itens recentes.
Registro
Uma nica instncia de um objeto do Salesforce. Por exemplo: John Jones pode ser o
nome de um registro de contato.
ID do registro
Consulte ID do registro doSalesforce.
Segurana em nvel de registro
Um mtodo de controle de dados em que voc pode permitir que um usurio especfico
visualize e edite um objeto, mas restringir os registros que o usurio pode visualizar.
Nome do registro
Um campo padro em todos os objetos do Salesforce. Sempre que um nome de registro
exibido em um aplicativo do Force.com, o valor representado como um link para uma
visualizao de detalhe do registro. Um nome de registro pode ser um campo de texto
em formato livre ou com numerao automtica. O Nome do registro no precisa
ser um valor exclusivo.
Tipo de registro
O tipo de registro um campo disponvel para determinados registros que podem incluir
alguns ou todos os valores padro e personalizados da lista de opes referentes ao registro.
Voc pode relacionar tipos de registro com perfis para disponibilizar apenas os valores
includos na lista de opes para os usurios com aquele perfil.
Lixeira
Pgina que permite a voc exibir e restaurar as informaes excludas. Acesso Lixeira
por meio do link na barra lateral.
Lista relacionada
Seo de um registro ou outra pgina de detalhes que lista os itens relacionados a esse
registro. Por exemplo, a lista Histrico da fase relacionada a uma oportunidade ou a lista
Atividades abertas relacionada a um caso.
422 | Verso 8 | Glossrio
Links de navegao da lista relacionada
Um tipo de link que permite que voc exiba informaes rapidamente em uma pgina
de detalhes sobre as listas relacionadas passando o mouse sobre o link. O seu administrador
deve habilitar a exibio dos links de navegao. O texto exibido contm a lista relacionada
correspondente e o seu nmero de registros. Voc pode tambm clicar neste tipo de link
para ir direto ao contedo da lista relacionada sem ter que rolar at o fim da pgina.
Objetos relacionados
Objetos escolhidos por um administrador para exibio no modo de exibio em miniatura
do Console do agente quando registros de um tipo especfico aparecem no modo de
exibio de detalhes do console. Quando um caso est no modo de exibio de detalhes,
por exemplo, um administrador pode exibir uma conta, um contato ou um patrimnio
associado no modo de exibio em miniatura.
Relacionamento
Uma conexo entre dois objetos, utilizados para criar listas relacionadas em layouts de
pgina e nveis de detalhe em relatrios. Os valores correspondentes em um campo
especificado so usados para vincular os dados relacionados; por exemplo, se um objeto
armazena dados sobre empresas e outro armazena dados sobre pessoas, o relacionamento
permite que voc descubra quais pessoas trabalham na empresa.
Relatrio
Um relatrio retorna um conjunto de registros que atendem a determinados critrios e
os exibe em linhas e colunas organizadas. Os dados do relatrio podem ser filtrados,
agrupados e exibidos como um grfico. Os relatrios so armazenados em pastas, que
controlam quem tem acesso. Consulte Relatrio tabular, Relatrio de resumo e Relatrio
de matriz.
Tipo de relatrio
Um tipo de relatrio define o conjunto de registros e campos disponveis para um relatrio
com base nos relacionamentos entre um objeto principal e seus objetos relacionados. Os
relatrios exibem apenas os registros que atendem aos critrios definidos no tipo de
relatrio. O Salesforce oferece um conjunto de tipos de relatrio padro predefinidos; os
administradores tambm podem criar tipos de relatrio personalizados.
Hierarquia de funes
Uma configurao de segurana de nvel de registro que define nveis diferentes de usurios
como, por exemplo, usurios em nveis mais altos podem exibir e editar informaes que
pertencem ou so compartilhadas com usurios abaixo deles na hierarquia de papis,
independentemente das configuraes do modelo de compartilhamento em toda a
organizao.
Campo de resumo de totalizao
Um tipo de campo que fornece automaticamente valores agregados de registros filho em
um relacionamento de detalhes mestres.
Verso 8 | Glossrio | 423
Usurio em execuo
Cada painel tem um usurio em execuo, cujas configuraes de segurana determinam
quais dados so exibidos em um painel. Se o usurio em execuo for um usurio especfico,
todos os visualizadores de painel vero os dados com base nas configuraes de segurana
desse usurio independentemente das configuraes de segurana pessoais. Para painis
dinmicos, voc pode definir o usurio em execuo como usurio logado, para que cada
um veja o painel de acordo com seu prprio nvel de acesso.
S
SaaS
Consulte Software como um servio (SaaS).
ID do registro do Salesforce.
Uma string alfanumrica de 15 ou 18 caracteres que identifica um nico registro no
Salesforce.
Organizao com sandbox
Uma cpia quase idntica de uma organizao de produo do Salesforce. possvel criar
vrios sandboxes em ambientes separados para uma variedade de propsitos, por exemplo,
teste e treinamento, sem comprometer os dados e aplicativos no seu ambiente de produo.
Salvar como
Opo em qualquer relatrio padro, pblico ou personalizado para salvar os parmetros
do relatrio sem alterar o relatrio original. Isto cria um novo relatrio personalizado
com as suas alteraes salvas.
Salvar e Novo
Como alternativa, "salve" na maioria das pginas em que voc pode salvar as suas alteraes
atuais e criar uma nova entrada.
Pesquisar
Recurso que permite que voc pesquise por informaes correspondentes a palavras-chave
especificadas. Se houver a pesquisa da barra lateral, insira os termos da pesquisa na seo
Pesquisar da barra lateral ou clique em Pesquisa avanada... para obter mais opes de
pesquisa. Se houver a pesquisa global, insira os termos de pesquisa na caixa de pesquisa
no cabealho.
Configurao
Um menu em que os administradores podem personalizar e definir as configuraes da
organizao e os aplicativos Force.com. Dependendo das configuraes da interface de
usurio da sua organizao, a Configurao pode ser um link no cabealho da interface
de usurio ou na lista suspensa sob o seu nome.
424 | Verso 8 | Glossrio
Mostrar/Ocultar detalhes
A opo disponvel para relatrios que permite que voc mostre/oculte os detalhes dos
valores de coluna individuais em resultados de relatrio.
Barra lateral
A coluna que aparece ao lado esquerdo de cada pgina fornecendo os links para itens
recentes e outros recursos.
SOAP (Simple Object Access Protocol)
Um protocolo que define um modo uniforme de passar dados codificados em XML.
Software as a Service (SaaS)
Um modelo de entrega no qual o software armazenado como servio e fornecido aos
clientes pela Internet. O fornecedor do SaaS assume a responsabilidade pela manuteno
diria, pela operao e pelo suporte ao aplicativo e aos dados do cliente. O servio diminui
a necessidade de os clientes instalarem, configurarem e darem manuteno em aplicativos
com hardware, software e recursos de TI prprios. Os servios podem ser entregues
usando o modelo SaaS a qualquer segmento de mercado.
Relatrio de origem
Um relatrio personalizado agendado para executar e carregar dados como registros em
um objeto de destino referente a um instantneo analtico.
Objeto padro
Um objeto integrado includo com a plataforma Force.com. Voc tambm pode criar
objetos personalizados para armazenar informaes que sejam exclusivas para seu aplicativo.
Relatrio de resumo
Os relatrios resumidos so semelhantes aos relatrios tabulares, mas tambm permitem
aos usurios agruparem filas de dados, exibir subtotais e criar grficos. Eles podem ser
usados como o relatrio de origem para componentes do painel. Use esse tipo para um
relatrio exibir os subtotais baseados no valor de determinado campo ou quando voc
quiser criar uma lista hierrquica, como todas as oportunidades para sua equipe, com um
subtotal por Fase e Proprietrio.
Administrador de sistemas
Consulte Administrador (Administrador do sistema).
T
Tab
Uma guia um componente de interface que permite que voc navegue em um aplicativo.
Uma guia serve como ponto de partida para a exibio, a edio e a insero de informaes
para um objeto especfico. Quando voc clica em uma guia na parte superior da pgina,
Verso 8 | Glossrio | 425
a pgina inicial da guia correspondente desse objeto aparece. Uma guia pode ser associada
a um objeto, uma pgina da Web ou uma pgina do Visualforce.
Resumo tabular
Os relatrios tabulares so a forma mais simples e rpida de analisar os dados. De forma
semelhante a uma planilha, eles so simplesmente um grupo ordenado de campos nas
colunas, com cada registro equivalente listado em uma linha. Os relatrios tabulares so
melhores para criar listas de registros ou uma lista com um nico total geral. Eles no
podem ser usados para criar grupos de dados ou grficos, e no podem ser usados em
painis a menos que as linhas sejam limitadas. Os exemplos incluem listas de mala direta
de contatos e relatrios de atividade.
Tarefa
Atribui uma tarefa a um usurio especificado. Voc pode especificar o Assunto, Status,
Prioridade e Data de vencimento da tarefa. As tarefas so aes de fluxo de
trabalho e aprovao acionadas por regras de fluxo de trabalho ou processos de aprovao.
Para tarefas relacionadas ao calendrio, consulte Atividade (Eventos/Tarefas de
calendrios).
Texto
Tipo de dados de um campo personalizado que permite entradas de qualquer combinao
de letras, nmeros ou smbolos, com um tamanho mximo de at 255 caracteres.
rea de texto
Um tipo de dados do campo personalizado que permite a entrada de at 255 caracteres
em linhas separadas.
rea de texto (longo)
Consulte rea de texto longo.
Ao de fluxo de trabalho dependente de tempo
Ao de fluxo de trabalho executada quando so alcanadas as condies de uma regra
de fluxo de trabalho e acionador de tempo associado.
Acionador de tempo
Um evento que iniciado de acordo com um tempo limite especificado, como, por
exemplo, sete dias antes de uma data de fechamento de oportunidade. Por exemplo, voc
pode definir uma ao de fluxo de trabalho baseada em tempo que envia um email para
o gerenciador de conta quando um marco agendado ocorrer em sete dias.
426 | Verso 8 | Glossrio
U
V
Regra de validao
Uma regra que evita que um registro seja salvo caso ele no atenda aos padres que so
especificados.
Visualforce
Uma linguagem de marcao simples e baseada em marcas que permite aos
desenvolvedores definirem com facilidade pginas personalizadas e componentes para
aplicativos incorporados na plataforma. Cada marca corresponde a um componente
genrico ou especfico, como uma seo de uma pgina, uma lista relacionada ou um
campo. Os componentes podem ser controlados pela mesma lgica usada em pginas
padro do Salesforce, ou os desenvolvedores podem associar sua prpria lgica a um
controlador escrito em Apex.
Controlador do Visualforce
Consulte Controlador, Visualforce.
Pgina do Visualforce
Uma pgina da Web criada usando o Visualforce. Normalmente, as pginas do Visualforce
apresentam informaes relevantes sua organizao, mas elas tambm podem modificar
ou capturar dados. Elas podem ser renderizadas de vrios modos, como, por exemplo,
um documento PDF ou um anexo de email, e podem ser associadas com um estilo CSS.
W
Servio da Web
Um mecanismo pelo qual dois aplicativos podem trocar dados facilmente pela Internet,
mesmo quando executam em plataformas diferentes, so escritos em linguagens diferentes
ou so geograficamente distantes um do outro.
Guia da Web
Uma guia personalizada que permite que usurios usem sites externos de dentro do
aplicativo.
Assistente
Uma interface do usurio que conduz um usurio por uma tarefa complexa em vrias
etapas.
Fluxo de trabalho e aes de aprovao
O fluxo de trabalho e as aes de aprovao consistem em alertas por email, tarefas,
atualizaes de campo e mensagens de sada que podem ser acionadas por uma regra de
fluxo de trabalho ou por um processo de aprovao.
Verso 8 | Glossrio | 427
Ao de fluxo de trabalho
Uma ao de fluxo de trabalho um alerta por email, atualizao de campo, mensagem
de sada ou tarefa que so acionados quando as condies de uma regra de fluxo de trabalho
so atendidas.
Alerta de email de fluxo de trabalho
Uma ao de fluxo de trabalho que envia um email quando uma regra de fluxo de trabalho
for acionada. De maneira diferente das tarefas de fluxo de trabalho, que podem ser
atribudas a usurios de aplicativos, os alertas de fluxo de trabalho podem ser enviados
para qualquer usurio ou contato, desde que tenham um endereo de email vlido.
Atualizao de campo do fluxo de trabalho
Uma ao de fluxo de trabalho que altera o valor de um campo especfico em um registro
quando uma regra de fluxo de trabalho acionada.
Mensagem de sada do fluxo de trabalho
Uma ao de fluxo de trabalho que envia dados para um servio da Web externo, como
outro aplicativo de computao em nuvem. Mensagens de sada so usadas principalmente
com aplicativos compostos.
Fila de fluxo de trabalho
Uma lista de aes de fluxo de trabalho que so planejadas para serem acionadas com
base nas regras de fluxo de trabalho que tm uma ou mais aes de fluxo de trabalho
dependente do tempo.
Regra de fluxo de trabalho
Uma regra de fluxo de trabalho define as aes de fluxo de trabalho quando as condies
designadas so atendidas. Voc pode configurar aes de fluxo de trabalho para que sejam
executadas assim que um registro atender s condies de sua regra de fluxo de trabalho
ou configurar acionadores de tempo para que executem as aes de fluxo de trabalho em
um dia especificado.
Tarefa de fluxo de trabalho
Uma ao de fluxo de trabalho que atribui uma tarefa para um usurio de aplicativo
quando uma regra de fluxo de trabalho acionada.
X
XML (Linguagem de marcao extensvel)
Uma linguagem de marcao que permite o compartilhamento e transporte de dados
estruturados. Todos os componentes do Force.com que so recuperados ou implementados
por meio da API de metadados so representados por definies em XML.
428 | Verso 8 | Glossrio
Y
No h itens de glossrio para esta entrada.
Z
Arquivo zip
Um formato de compactao e arquivamento de dados.
Uma coleo de arquivos recuperados ou implementados pela API de metadados. Consulte
tambm Projeto local.
Verso 8 | Glossrio | 429
ndice
__c suffix 47, 60
* curinga de pesquisa 150
A
Ao de fluxo de trabalho
acionadores de tempo 291
dependente de tempo 281, 290
objetos e 281
Acionadores
fluxo de trabalho dependente de tempo 291
regra de fluxo de trabalho 277
Aes de aprovao
Consulte tambm as aes do fluxo de trabalho
314
criando 315
sobre 314
Aes de editor
aes de atualizao 253
aes de criao 253
aes de registro de chamadas 253
aes especficas de objeto 253, 261263,
265, 267
aes globais 253254, 258, 260
atribuindo aes especficas de objeto 265
criando ao especfica de objetos 262263
criando aes globais 254, 258
criando valores de campo predefinidos 257
layouts de ao 255256
layouts de editor globais 259
layouts de pgina 265
personalizando layout de editor global 259
personalizando layouts de ao 256
sobre 253
valores de campo predefinidos 257
Aes, aprovao
Consulte as aes de aprovao 314
Aes, fluxo de trabalho
Consulte as aes do fluxo de trabalho 274
Administrao
delegando 235
Agendando painis 364
Agrupamentos, campo de layout de pgina 96
Agrupando registros de relatrios 334, 341
Alertas de email do fluxo de trabalho
criando 299
Alertas por email, fluxo de trabalho
Consulte Alertas de email do fluxo de trabalho
275
Alertas, fluxo de trabalho
Consulte Alertas de email do fluxo de trabalho
275
Amazon.com 2
ambiente mvel 64
Analtico
Consulte Relatrios 324
Anexos, ativando para objetos personalizados 49
Apex
sobre 17, 377
API
__c suffix 47, 60
nome 78
rtulos vs nomes de campo 59
rtulos vs nomes de objeto 46
rtulos vs nomes, campo 60
rtulos vs nomes, objeto 47
sobre 16, 375
API de metadados
sobre 16
API SOAP
Consulte API 16
Aplicativo de recrutamento
introduo 21
aprovaes e fluxos de trabalho 25
calculando o campo Dias em aberto (Days
Open) 77
codificando para 373
Conjunto de permisses do entrevistador 194
Conjunto de permisses do Gerente de
contratao 188
conjuntos de permisses 181
controlando o acesso aos dados 171
ndice
Aplicativo de recrutamento (continuao)
diagrama de entidades e relacionamentos 163
guias 24
hierarquia de papis 208
importando dados de amostra 165
Mapa do candidato 379
Objeto Candidato (Candidate) 119
Objeto Formulrio de emprego (Job
Application) 126
Objeto personalizado de posio 45
Objeto personalizado de publicao de emprego
152
objeto Publicao de emprego (Job Posting)
156
Objeto Reviso (Review) 136
objeto Site de empregos (Employment
Website) 154
objetos 31
objetos personalizados 23
Perfil padro de funcionrio 187
perfis 181
regras de segurana e compartilhamento 24
relatrios e painis 26
requisitos 22
viso geral do design 23
Visualforce 27
Aplicativo padro, configurando um 184
Aplicativos
assistente de aplicativo personalizado 40
bancos de dados 29
benefcios 11
centrados em dados 12
colaborativo 12
computao em nuvem 1
configurando um padro 184
construindo de forma iterativa 44
contrato 33
criando 40
depurando 44
distribuindo no AppExchange 19
elementos bsicos 9
exibio da guia padro 184
formulrios 9
guias 9, 42, 50
logotipos 42
multilocatrio 14
Aplicativos (continuao)
navegao 9
objetos 31
orientado por metadados 15
pginas de detalhes 9
pginas de edio 9
perfis e 43
sobre 40
Aplicativos centrados em dados 12
Aplicativos colaborativos 12
AppExchange
programa de parcerias 405
Aprovao de registros 320
Aprovaes no Chatter 303
Arquitetura de multilocatrio 14
Arquitetura, multilocatrio 14
Assistente de aplicativo personalizado 40
Assistente de guia personalizada 49
Assistentes
aplicativo personalizado 40
campo de frmula personalizada 79
configurao padro do processo de aprovao
304
etapa de nova aprovao 310
fase inicial do processo de aprovao 304
guia personalizada 4950
importar 166
regra de fluxo de trabalho 277
Atalho para inserir valores em nmeros 312
Ativando
fluxo de trabalho dependente de tempo 293
processos de aprovao 317
regras de fluxo de trabalho 283
Atividades, ativao para objetos personalizados 48
Atribuindo layouts de pgina 229
Atributos, Visualforce 382
Atualizaes de campo do fluxo de trabalho
criando 286, 289, 316
Atualizaes de campo, fluxo de trabalho
Consulte Atualizaes do campo de fluxo de
trabalho 274
Atualizaes, campo de fluxo de trabalho
Consulte Atualizaes do campo de fluxo de
trabalho 274
Atualizando painis 364
ndice
B
Bancos de dados
chaves estrangeiras 35
chaves principais 35
contrato 33
definio 31
entidades 31
objetos 31
registros 32
relacional 33
tabelas 31
valores de dados 33
Bancos de dados relacionais 33
Barra de guias 39
Boto Enviar para aprovao (Submit for Approval)
319
Botes
adicionando aos layouts de pgina 399
criando listas personalizadas 397
Enviar para aprovao 319
Botes da lista
criando personalizado 397
C
Caixa de seleo Conceder acesso usando hierarquias
(Grant Access Using Hierarchies) 208
Caixas de dilogo de pesquisa
* curinga de pesquisa 150
adicionando campos a 134
Campo de ID, externo 120
Campo de tipo de registro 228
campo Dias em aberto (Days Open), calculando 77
Campo Gerente (Manager) 305
Campo padro Proprietrio (Owner) 53
Campos
__c suffix 60
adicionando nas caixas de dilogo de pesquisa
134
adicionando nas listas relacionadas 134
adicionando nas listas relacionadas em objetos
sem uma guia 149
adicionando nas pginas iniciais da guia 134
adicionando nos resultados da pesquisa 134
alterando os tipos de dados 59
avanados 68
Campos (continuao)
chaves estrangeiras 35
chaves principais 35
criando de data 62
criando de moeda 61
criando de texto 58
criando frmulas 79
criando listas de opes 69
criando listas de opes dependentes 72
criando relacionamento entre mestre e detalhes
138
criando relacionamentos de pesquisa 116
criando relacionamentos entre mestre e detalhes
de vrios nveis 139
criando uma caixa de seleo 62
definio 33, 57
frmulas 76
ID externo 120
indexado 120
layouts compactos 108
layouts de pgina 93, 103
lista de opes dependente 72
lista de opes, padro 68
lista de opes, seleo mltipla 68
mesclar 77, 295
necessrios 41, 100
padro vs personalizado 33
pesquisvel 120
propriedades 100
Proprietrio 53
regras de validao 85
relao hierrquica 305
relacionamento de pesquisa 115
relacionamento entre mestre e detalhes 116
relatrio de resumo 342
restringindo com layouts de pgina 94
somente leitura 100
tipo de dados 57
valores padro 83
Campos avanados
celular 92
Campos da lista de seleo
criando 69
criando itens dependentes 72
dependentes vs de controle 72
ndice
Campos de busca de relacionamento
criando 116
cone 117
Campos de caixa de seleo 62
Campos de data 62
Campos de frmula
campos de mesclagem 77
criando 79
editor avanado 80
frmulas de amostra 77
funo IF() 78
funo ISBLANK() 78
funo TODAY() 77
resumo do relatrio personalizado 342
sobre 76
verificando a sintaxe 82
Campos de frmula personalizados
celular 92
Consulte Campos de frmula 76
campos de frmulas de ligao 140
campos de frmulas de objetos cruzados 140
Campos de ID externo 120
Campos de lista de opes de controle 72
Campos de lista de opes de seleo mltipla 68
Campos de lista de opes padro 68
Campos de mesclagem
nome 78
Campos de moeda 61
Campos de relao hierrquica 305
Campos de relacionamento 115
Campos de relacionamento entre mestre e detalhes
criando 138
criando vrios nveis 139
padres para toda a organizao 207
Campos de resumo de totalizao
criando 145
sobre 145
Campos de texto 58
Campos dependentes da lista de opes
criando 72
Campos do resumo, relatrio
criando personalizado 342
sobre 342
Campos indexados 120
Campos necessrios 41, 100
Campos pesquisveis 120
Campos somente leitura 100
Canal, Force.com iTunes 405
Capturas de tela, livro 5
Categoria Outros relatrios (Other Reports) 332
Celular
campos avanados 92
campos de frmula personalizados 92
dependncias de campo 92
habilitando a pgina do Visualforce 387
listas de opes 92
listas de opes dependentes 92
Mapa do candidato 387
painis 364
regras de validao 92
Chatter
adicionando elementos a pginas do Visualforce
396
grupos 250
notificaes 251252
rastreamento de feed 244
seguindo 248
sobre 244, 253
Chatter Desktop 249
Chaves
estrangeiras 153
principal e estrangeira 35
Chaves estrangeiras 35, 153
Chaves principais 35
Clonando perfis 183
Cdigo
Apex
17
sobre 17
Plataforma Force.com 373
Cdigo, Mapa dos candidatos 384
Comentrios, enviando livro 5
Compartilhamento
baseadas em critrios 222
substituindo 236
Compartilhamento de aplicativos 19
Compartilhamento manual
definindo 223
Compartilhamento, regras
Veja Regras de compartilhamento 178
Componentes, painel 357
Compromissos
ativando parar objetos personalizados 48
ndice
Computao em nuvem
aplicativos 1
bancos de dados e 29
plataformas 2
Concatenar 143
Conceitos de bancos de dados 35
Condies de erro, regra de validao 86
Condies, erro na regra de validao 86
Conjunto de permisses do entrevistador 194
Conjunto de permisses do Gerente de contratao
188
Conjuntos de permisses
criando 188
sobre 180
Consideraes, aplicativo de recrutamento 22
Console do desenvolvedor 301
Contedo, livro 3
Contexto 389
Controladores, Visualforce 382
Cores, guia 51
Criador de esquemas 118
Criador de relatrios
relatrio personalizado 332
Curinga, * pesquisa 150
D
Dados, importando 165
Delega, processo de aprovao 311
Delegando a administrao
grupos 237
grupos, definindo 238
grupos, verificando 240
permisses no nvel do objeto 236
sobre 235
Demonstrao de aplicativos 19
Dependncias de campo
celular 92
Depurando aplicativos 44
Desenvolvimento orientado por metadados 15
Desenvolvimento, orientado por metadados 15
Design da interface do usurio
Visualforce 17
Destaque, condicional
Consulte Destaque condicional 346
Destaques condicionais 346
Developer Edition 5
Developer Force
sobre 6
Diagrama de entidades e relacionamentos, aplicativo
Recruiting 163
Diretrio, AppExchange 19
Dispositivos sem fio, processos de aprovao e 308
Documentao, plataforma do Force.com 404
E
eBay 2, 14
Edio, registro 306
Editor de frmulas avanadas 80
Editor de pgina, Visualforce 378
Editor, frmulas avanadas 80
Entidades, banco de dados 31
Enviando comentrios sobre o livro 5
Espaos em branco, layouts de pgina 99
Especificaes, aplicativo de recrutamento 22
Estilos, guia 51
Etapas de aprovao
aes de aprovao e rejeio 311
criando 310
designao de um aprovador 311
ordem 310
sobre 309
Evento Dreamforce 404
Exerccios, livro 5
Exibio do contedo das filas 294
Exibio em rvore, hierarquia de papis 213
Exibio em lista classificada, hierarquia de papis
213
Exibio em lista, hierarquia de papis 213
Exibies, definio 231
F
Fila de fluxo de trabalho, dependente de tempo 294
Filas
criando 286
exibindo 294
fluxo de trabalho dependente de tempo 294
importar 168
notificando os membros 287
sobre 286
ndice
Filas de caso 286
Filas de lead 286
Filtros
adicionando campos na pesquisa 134
configurando o relatrio 337, 344
Fluxo de trabalho
Aplicativo de recrutamento 25
sobre 272
Fluxo de trabalho dependente de tempo
acionadores de tempo 291
ativando 293
criando 291
fila 294
sobre 290
usurio de fluxo de trabalho padro 293
Formulrios 9
Formulrios de emprego
Pgina do status de atualizao em massa 391
Status de atualizao em massa, sobre 389
Frmulas
ligando 140
objetos cruzados 140
valor padro 83
Frmulas de amostra 77
funo && 89
funo || 89
funo AND() 89
funo IF() 78
funo ISBLANK() 78, 88
funo ISPICKVAL() 88
funo OR() 89
funo TODAY() 77
Funcionalidade, aplicativo de recrutamento 22
Funes
&& 89
|| 89
AND() 89
HYPERLINK 142
IF() 78
ISBLANK() 78, 88
ISPICKVAL() 88
OR() 89
TODAY() 77
G
Google 2, 14
Grfico de combinao 347
Grficos
Consulte Relatrios 324
painel 357358
Grupos de administrao delegada
definindo 238
verificao 240
Grupos pblicos 218
Grupos, pblicos 218
Guia Incio
adicionando um painel 362
Guia Painel (Dashboard) 354
Guias
adicionando campos nas pginas iniciais da
guia 134
anexando s personalizaes dos usurios 52
aplicativo de recrutamento 24
configurao padro 329
criando 50
exibir padres 184
iniciando o assistente de guia personalizada 49
Incio 42, 349
Painel 354
perfis e 52
Relatrios 324, 329
sobre 50
style 51
H
Hierarquia de papis
Aplicativo de recrutamento 208
definindo 212
exibies 213
sobre 208
vs organograma 209
vs perfis 209
Hierarquias, papel
Consulte Hierarquias de papis 178
Hiperlinks
consulte Links 9
Histrico, processo de aprovao 308
HYPERLINK 142
ndice
I
ID do registro 142
Imagem do Yahoo! 2, 14
Imagem do Yahoo! Mapas
integrado com 375, 379
Importando dados
visualizando a fila de importao 168
Informaes estruturadas 12
Informaes, estruturadas 12
Instalando aplicativos 19
Integridade dos dados 225
iTunes, podcasts na plataforma do Force.com 405
J
JavaScript, com Visualforce 384
L
Layout do boto da exibio de lista 132
Layout do boto, exibio de lista 132
Layout, boto da exibio de lista 132
Layouts compactos 108, 124125, 129
Layouts de ao
personalizar 256
sobre 255
Layouts de pgina
adicionando a pgina do Visualforce 385
adicionando botes de lista personalizados 399
Aprovao 307
Atribuindo 229
Campos necessrios 100
Campos somente leitura 100
criando 228
editor 94
espaos em branco 99
gravao rpida 99
Link Editar layout (Edit Layout) 123
Mapa do candidato 385
paleta 95
propriedades da lista relacionada 149
restringindo o acesso ao campo com 94
salvando 99
sees 96
vs segurana em nvel de campo 197
Layouts de pesquisa
adicionando campos a 133
Layouts, compactos
Consulte Layouts compactos 108
Layouts, pgina
Consulte Layouts de pgina 93, 103
Layouts, pesquisa
Consulte Layouts de pesquisa (Search layouts)
132
Limpando dados 85
Limpeza de dados 85
Links 9
Lista relacionada Histrico de aprovao (Approval
History) 309, 319
Lista relacionada Itens para aprovao (Items to
Approve) 321
Lista suspensa Criar novo (Create New) 53
Listas de opes
celular 92
Listas de opes dependentes
celular 92
Listas relacionadas
adicionando campos a 134
adicionando campos a objetos sem uma guia
149
Histrico de aprovao 309, 319
Itens para aprovao 321
propriedades 149
Listas, relacionadas 56, 114
Livro Conceitos bsicos da plataforma Force.com
capturas de tela 5
contedo 3
enviando comentrios 5
pblico 3
seguindo exerccios em 5
verso online 3
Lgica comercial 272, 301
Lgica, negcios 272
Logotipos, aplicativo 42
M
Manual, compartilhamento
Veja Compartilhamento manual 178
Mapa do candidato
adicionando aos layouts de pgina 385
ativando para celular 387
ndice
Mapa do candidato (continuao)
cdigo 384
criando 379
testando 388
Marcao, Visualforce
usando 381
Marcas, Visualforce 376
Mash-ups
implementando 379
sobre 2, 375
Matriz de dependncias de campo 73
Matriz de dependncias, campo 73
Matriz, dependncias de campo 73
Mdias, relatrio 342
Medidores, painel 357, 359
Mensagens de sada de fluxo de trabalho 275
Mensagens de sada, fluxo de trabalho
Consulte Mensagens de sada do fluxo de
trabalho 275
Mensagens, sada de fluxo de trabalho
Consulte Mensagens de sada do fluxo de
trabalho 275
Menu, plataforma Force.com
sobre 43
Mtricas, painel 357, 361
Microsoft 12
Modelo, desenvolvimento orientado por metadados
15
Modelos de compartilhamento
Consulte Padres para toda a organizao 203
Modelos de comunicao 296
Modelos de email
campos de mesclagem 295
criao de nome 298
criando 296, 303
selecionando o tipo de campo de mesclagem
298
tipos 296
Modelos de email do Visualforce 296
Modelos de emails de texto 296
Modelos de emails HTML 296
Modelos de emails personalizados 296
Modelos, compartilhamento
Consulte Padres para toda a organizao 203
Modelos, email
Consulte Modelos de email 295
Modo de desenvolvimento, Visualforce 378
Modos de exibio de lista 9
Monitorando a fila de fluxo de trabalho 294
Mvel, plataforma Force.com 18
N
Navegao 9, 50
Nomes vs rtulos
campo 46, 59
objeto 46, 59
Notas, ativando para objetos personalizados 49
Notificaes
ativar 252
notificaes de upgrade automtico 251
notificaes em aplicativo 251
sobre 251
solicitaes de aprovao 303
Notificaes de aprovao 303
O
Objeto de usurio
Campo Gerente (Manager) 305
Objeto padro do usurio 117
Objeto personalizado de posio 45
Objeto personalizado de publicao de emprego
152, 156
Objeto personalizado do candidato
criando 119
Objeto personalizado do formulrio de emprego
criando 127
objeto personalizado Site de empregos (Employment
Website) 154
Objetos
__c suffix 47
aes de fluxo de trabalho e 281
adicionando campos de caixa de seleo 62
adicionando campos de data 62
adicionando campos de frmula 79
adicionando campos de lista de opes
dependente 72
adicionando campos de moeda 61
adicionando campos de pesquisa 116
adicionando campos de texto 58
adicionando campos do tipo mestre e detalhes
138
ndice
Objetos (continuao)
adicionando campos do tipo mestre e detalhes
de vrios nveis 139
adicionando listas de opes 69
apresentando relatrios sobre 332
ativando atividades 48
ativando notas e anexos 49
ativando o rastreamento do histrico de campos
48
ativando relatrios 48
criando 45
criando uma guia 50
definindo permisses em nvel de objeto 186
filas 286
fluxo de trabalho e 277
juno 152
layouts compactos 108
layouts de pgina 93, 103
listas relacionadas 56, 114
numerado automaticamente 47
padro vs personalizado 33, 44
personalizados 23
regras de validao 85
relacionamentos 24, 34, 114, 152
rtulos vs nomes 47
sobre 44
status de implantao 49
usurio padro 117
Objetos de juno 152
Objetos padro
Usurio 117
Objetos personalizados
Conceder acesso usando hierarquias 208
Consulte tambm Objetos. 23, 44
filas 286
pgina de detalhes 55
Opes de ajuda e treinamento 404
Opes de treinamento 404
Operadores
Concatenar 143
Oracle 12
Organizaes 40
Organizando campos em pginas 93
P
Padres para toda a organizao
campos de relacionamento entre mestre e
detalhes 207
definindo 206
determinando 203
padres, para toda a organizao 203
Pgina de configuraes do compartilhamento 206
Pginas
Compartilhando configuraes 206
detalhes vs edio 54
editor de layout de pgina 94
iniciais 41
lista 41, 55
Pginas da lista 41, 55
Pginas de detalhes 9, 54
Pginas de edio 9, 54
Pginas do Visualforce
Pgina do status de atualizao em massa 391
Pginas iniciais 41
Pginas iniciais introdutrias 41
Painis
adicionando na guia Incio (Home) 362
adicionando um componente de grfico 358
adicionando um componente de medidor 359
adicionando um componente de mtrica 361
adicionando um componente de tabela 360
agendando 364
Aplicativo de recrutamento 26
atualizando 364
celular 364
componentes 357
criando 354
segurana 356
sobre 349, 364
usurio em execuo 356
Paleta, layout de pgina 95
Papis
atribuio de tarefas de fluxo de trabalho 282
Pasta de modelos pblicos de email no arquivados
297
Pasta de painis da empresa 357
Pastas
Modelos pblicos de email no arquivados 297
Painis da empresa 357
relatrio 329330
ndice
Perfil do administrador de sistemas
permisses 235
Perfil Gerente de solues (Solution Manager) 180
Perfil Gerente do contrato (Contract Manager) 180
Perfil padro de funcionrio 187
Perfil Recrutador (Recruiter) 182
Perfil Somente leitura (Read Only) 180
Perfil Usurio do Marketing (Marketing User) 180
Perfil Usurio padro (Standard User) 180
Perfis
aplicativos e 43
clonando 183
configurando um aplicativo padro 184
criando 182
definindo a segurana no nvel do campo em
198
guias e 52
padro 180
permisses de campo 177
permisses de objeto 177
segurana em nvel de objeto 179
segurana no nvel do campo 196
sobre 179
vs papis 209
Perfis padro
editando 180
Perguntas para determinar os padres para toda a
empresa 203
Permisso Exibir todos os dados (View All Data)
235
Permisso Exibir tudo 236
Permisso Gerenciar usurios (Manage Users) 235
Permisso Modificar todos os dados (Modify All
Data) 235
Permisso Modificar tudo 236
Permisso Personalizar aplicativo (Customize
Application) 235
Permisses
administrativas 235
nvel do objeto vs nvel do registro 186
Permisses administrativas
globais 235
Permisses no nvel do objeto 236
Planejando, recurso Atualizao de status em massa
(Mass Update Status) 389
Plataforma Force.com
introduo 7
Plataforma Force.com (continuao)
ajuda e treinamento 404
API 16
API de metadados 16
aplicativos centrados em dados 12
aplicativos colaborativos 12
rea de Configurao (Setup) 38
bancos de dados 29
celular 18
codificando em 373
desenvolvimento orientado por metadados 15
Diretrio AppExchange 19
informaes estruturadas 12
integrado com 375
menu do aplicativo 43
objetos 31
ocupao variada 14
parceiros 405
podcasts 405
registros 32
tecnologias de suporte 13
vdeos 405
Plataforma, Salesforce
Consulte a plataforma Force.com 7
Plataformas, computao em nuvem 2
Podcasts 405
Processos de aprovao
aes 301
Aplicativo de recrutamento 25
aprovao e rejeio de registros 320
ativando 317
Boto Enviar para aprovao (Submit for
Approval) 319
criando 304
delegar aprovadores 311
dispositivos sem fio 308
edio de registro 306
fase inicial versus configurao padro 304
informaes de histrico 308
layouts de pgina 307
Lista relacionada Itens para aprovao (Items
to Approve) 321
planejando 303
testando 317
usurios relacionados 313
vrios aprovadores 313
ndice
Processos de aprovao (continuao)
visualizador 317
Processos, aprovao
Consulte processos de aprovao 301
Procurando registros em pesquisas 150
Programa de parcerias 405
Propriedades, campo 100
Pblico, livro 3
R
Rastreamento do histrico de campos
ativando parar objetos personalizados 48
Rastreamento do histrico, campos
ativando parar objetos personalizados 48
Rastreamento, histrico de campos
ativando parar objetos personalizados 48
Recurso de mapa, aplicativo de recrutamento
criando 379
Recursos do desenvolvedor 403
Recursos, desenvolvedor 403
Registros
agrupamento em um relatrio 334, 341
aprovao e rejeio 320
bloqueados 319
edio em processos de aprovao 306
enviando para aprovao 319
exibio de filas 294
validando antes de salvar 85
Registros bloqueados 319
Regras de compartilhamento
criando 220
grupos pblicos 218
sobre 216
Regras de validao
celular 92
condies de erro 86
criando 85
funo && 89
funo || 89
funo AND() 89
funo ISBLANK() 88
funo ISPICKVAL() 88
funo OR() 89
testando 90
Regras do fluxo de trabalho
ativao dependente de tempo 293
Regras do fluxo de trabalho (continuao)
ativando 283
criando 276, 289, 299
critrios de avaliao 277
objetos e 277
sobre 273
usurio de fluxo de trabalho padro 293
Regras, fluxo de trabalho
Consulte regras de fluxo de trabalho 273
Regras, validao
Consulte Regras de validao 85
Rejeio de registros 320
Relacionamento entre mestre e detalhes
principal 157
secundrio 158
secundrio, implicaes do compartilhamento
222
Relacionamentos
apresentando relatrios sobre 332
campos personalizados de pesquisa 115
campos personalizados entre mestre e detalhes
116
Diagrama de relacionamento de entidades 163
hierrquica 305
muitos com muitos 152
objetos de juno 152
sobre 114
viso geral 115
Relacionamentos do tipo de um para muitos 152
Relacionamentos do tipo muitos com muitos 152
Relatrios
agrupando relatrios 334, 341
Aplicativo de recrutamento 26
ativando parar objetos personalizados 48
campos do resumo 342
Categoria Outros relatrios (Other Reports)
332
celular 364
criando um resumo 331
criando uma matriz 340
destaques condicionais 346
filtrando dados 337, 344
formatos 325
Grfico de combinao 347
grficos 338, 346
guia 324, 329
ndice
Relatrios (continuao)
objetos em 332
painis 349, 364
pastas 329330
sobre 324
Relatrios combinados 326
Relatrios de matriz 326
Relatrios de resumo 326
Relatrios tabulares 326
Requisitos, aplicativo de recrutamento 22
Restringindo campos com layouts de pgina 94
Revisando aplicativos 19
Revisar objeto personalizado
criando 137
Rtulos vs nomes
campo 46, 59
objeto 46, 59
S
Salesforce Classic 18
salesforce.com
Treinamento e certificao 6
Salesforce1 18
Sandbox 5
Sees, layout de pgina 96
Segurana
compartilhamento baseado em critrios 222
Segurana e compartilhamento
Aplicativo de recrutamento 24
compartilhamento manual 178, 223
definindo permisses em nvel de objeto 186
hierarquias de papis 178, 208
login nico 241
padres para toda a organizao 178, 203
perfis vs papis 209
permisses de campo 177
permisses de objeto 177
projetando para nossa organizao 177
regras de compartilhamento 178, 216
segurana em nvel de objeto 179
segurana em nvel de registro 177, 203
segurana no nvel do campo 196
tipos de registro 225
viso geral 177
Segurana em nvel de objeto
vs segurana em nvel de campo 186
Segurana em nvel de registro
sobre 203
vs segurana no nvel do objeto 186
Segurana no nvel do campo
definindo em perfis 198
vs layouts de pgina 197
Servios da Web
sobre 375
Servios de aprendizado, plataforma do Force.com
404
Servios, Web
Consulte Servios da Web 375
Sintaxe, verificando a frmula 82
Sobre este livro 3
Somas, relatrio 342
Status
Pgina do status de atualizao em massa 391
Status de atualizao em massa, sobre 389
Status de atualizao em massa
pgina 391
planejando 389
sobre 389
testando 401
Status de implantao 49
Suffix, __c 47, 60
T
Tabelas
banco de dados 31
painel 357
Tables
painel 360
Tarefas
ativando parar objetos personalizados 48
Tarefas de fluxo de trabalho
atribuio para funes 282
criando 280
dependente de tempo 292
testando 284
Tarefas, fluxo de trabalho
Consulte Tarefas de fluxo de trabalho 274
Tecnologias, suporte 13
ndice
Testando
Recurso Atualizao de status em massa (Mass
Update Status) 401
Tipos de dados
alterando o campo 59
numerao automtica 47
texto 47
Tipos de dados de numerao automtica 47
Tipos de dados de texto 47
Tipos de registro
criando 226
sobre 225
Tipos de relatrio, personalizado
criando 367
sobre 366
Treinamento e certificao 6
U
Universal Containers, sobre 22
Usabilidade 225
Usurio de fluxo de trabalho padro 293
Usurio em execuo, painel 356
Usurio, fluxo de trabalho padro 293
Usurios
campos de relao hierrquica 305
criando 211
definindo 231
suportando vrios 12
usurio em execuo do painel 356
V
Valores de campo padro 83
Valores de dados
atalho para inserir nmeros 312
restringindo com layouts de pgina 94
Valores em nmeros, atalho para inserir 312
Valores, dados 33
Vrios usurios, suportando 12
Verificando erros em registros 85
Verso online do livro 3
Vdeos 405
Visualforce
adicionando aos layouts de pgina 385
Aplicativo de recrutamento 27
ativando para celular 387
atributos 382
controladores 382
criando botes personalizados 397
criando pginas 379
editor de pgina 378
editor de pgina, exibindo 381
JavaScript 384
Marca de pgina 382
marcao 376
marcao, usando 381
modo de desenvolvimento 378
painel 357
sobre 376
Visualizador do processo 317
ndice

You might also like