Guia do ISVforce

Transcrição

Guia do ISVforce
Version 29.0: Winter ’14
Guia do ISVforce
©
Copyright 2000–2013 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
proprietários.
Version 29.0 | Sumário | i
Conteúdo
Capítulo 1: Introdução.........................................................................................................................1
Funções no ciclo de vida do aplicativo.......................................................................................................................................2
Capítulo 2: ISVforce Início rápido........................................................................................................3
Tutorial nº 1: Inscrição..............................................................................................................................................................4
Etapa 1: Inscreva-se para o Programa de parceiro.........................................................................................................4
Etapa 2: Gerar ambientes de desenvolvimento e de teste..............................................................................................5
Etapa 3: Obtenha uma Business Org............................................................................................................................5
Etapa 4: Edite sua listagem do editor............................................................................................................................6
Resumo da inscrição......................................................................................................................................................7
Tutorial #2: Desenvolvimento de seu aplicativo........................................................................................................................7
Etapa 1: Criar um aplicativo..........................................................................................................................................7
Etapa 2: Empacote seu aplicativo..................................................................................................................................9
Etapa 3: Atribuir um namespace...................................................................................................................................9
Etapa 4: Carregar uma versão beta................................................................................................................................9
Etapa 5: Instalar e testar a versão beta.........................................................................................................................10
Resumo do desenvolvimento.......................................................................................................................................11
Tutorial #3: Publicação e licenciamento..................................................................................................................................11
Etapa 1: Carregamento para o AppExchange.............................................................................................................11
Etapa 2: Crie sua listagem de aplicativos.....................................................................................................................12
Etapa 3: Complete sua listagem..................................................................................................................................12
Etapa 4: Instale o LMA...............................................................................................................................................13
Etapa 5: Licenciamento e gerenciamento de aplicativo...............................................................................................14
Resumo de publicação e licenciamento........................................................................................................................14
Tutorial nº 4: Atualização de seu aplicativo.............................................................................................................................14
Etapa 1: Criando uma Organização de correções........................................................................................................15
Etapa 2: Desenvolvimento de uma correção................................................................................................................16
Etapa 3: Carregando a correção...................................................................................................................................16
Etapa 4: Instalar e atualizar automaticamente uma correção.......................................................................................17
Resumo da atualização de seu aplicativo......................................................................................................................17
Capítulo 3: Arquitetura e desenvolvimento do aplicativo......................................................................19
Entendendo pacotes gerenciados e não gerenciados................................................................................................................20
Planejando o lançamento de pacotes gerenciados........................................................................................................20
Componentes disponíveis........................................................................................................................................................21
Editando componentes e atributos após a instalação...................................................................................................25
Componentes adicionados automaticamente a pacotes...............................................................................................30
Comportamento especial dos componentes nos pacotes..........................................................................................................32
Componentes protegidos.............................................................................................................................................41
Considerações sobre a arquitetura para Group Edition e Professional Edition.......................................................................41
Recursos disponíveis na Group Edition e na Professional Edition..............................................................................42
Limites para Group Edition e Professional Edition....................................................................................................43
Controle de acesso na Group Edition e na Professional Edition.................................................................................43
Version 29.0 | Sumário | ii
Usando o Apex na Group Edition e na Professional Edition......................................................................................44
Acesso à API na Group Edition e na Professional Edition.........................................................................................44
Acessando a API REST na Group Edition e na Professional Edition............................................................45
Projetando seu aplicativo para oferecer suporte a múltiplas edições.............................................................................46
Suporte a várias edições usando um pacote de extensão...................................................................................46
Suporte a várias edições usando o Apex dinâmico...........................................................................................47
Os cenários do projeto de amostra para as Group Edition e Professional Edition......................................................47
Noções básicas sobre dependências..........................................................................................................................................48
Criando aplicativos em pacote com o Chatter ........................................................................................................................49
Correspondendo à aparência do Salesforce..............................................................................................................................50
Desenvolvendo documentação de aplicativo............................................................................................................................50
Criação de configurações de perfil personalizadas...................................................................................................................51
Sobre conjuntos de permissões e configurações do perfil.........................................................................................................52
Visão geral de aplicativos conectados.......................................................................................................................................54
Criando um Aplicativo conectado...............................................................................................................................54
Editando, empacotando ou excluindo um aplicativo conectado..................................................................................57
Instalando um Aplicativo conectado............................................................................................................................58
Exibindo detalhes de aplicativo conectado...................................................................................................................58
Gerenciando um aplicativo conectado.........................................................................................................................59
Editando um Aplicativo conectado..............................................................................................................................59
Monitoramento de uso de um Aplicativo conectado...................................................................................................60
Desinstalando um Aplicativo conectado......................................................................................................................61
Sobre o WSDL do parceiro.....................................................................................................................................................61
Trabalhando com serviços externos.........................................................................................................................................62
Provisionamento de serviços externos..........................................................................................................................62
Protegendo sua propriedade intelectual...................................................................................................................................63
Hub de ambiente.....................................................................................................................................................................63
Configurando o Hub de ambiente...............................................................................................................................64
Configurando Meu domínio para o Hub de ambiente................................................................................................66
Práticas recomendadas para o Hub de ambiente..........................................................................................................67
Conectando uma organização ao Hub de ambiente.....................................................................................................67
Exibindo os detalhes de um membro do Hub de ambiente.........................................................................................68
Editando os detalhes de um membro do Hub de ambiente.........................................................................................70
Criando uma nova organização a partir do Hub de ambiente......................................................................................70
Ativando login único no Hub de ambiente..................................................................................................................71
Desativando login único no Hub de ambiente.............................................................................................................72
Mapeando usuários para login único no Hub de ambiente..........................................................................................72
Capítulo 4: Empacotamento e teste do seu aplicativo............................................................................74
Registrando um prefixo de namespace....................................................................................................................................75
O que são as versões beta de pacotes gerenciados?...................................................................................................................75
Criando e carregando um pacote beta.....................................................................................................................................76
Sobre os ambientes de desenvolvimento e teste do parceiro....................................................................................................77
Como se inscrever para ambientes de teste..............................................................................................................................77
Instalando um pacote...............................................................................................................................................................77
Version 29.0 | Sumário | iii
Disponibilidade do componente depois da implantação..............................................................................................79
Configurando pacotes instalados.................................................................................................................................79
Resolução de problemas de instalação..........................................................................................................................81
Desinstalando um pacote.........................................................................................................................................................82
Instalando pacotes gerenciados usando a API.........................................................................................................................83
Criando e carregando um pacote gerenciado...........................................................................................................................84
Sobre versões do pacote...........................................................................................................................................................85
Executando o Apex em instalação/atualização de pacotes.......................................................................................................86
Executando o Apex na desinstalação de pacotes......................................................................................................................89
Capítulo 5: Passando pela análise de segurança....................................................................................92
Sobre a análise de segurança....................................................................................................................................................93
Etapas da análise de segurança................................................................................................................................................93
O Questionário de análise de segurança..................................................................................................................................95
Criar uma AppExchange Publishing Organization.................................................................................................................96
Alterar sua AppExchange Publishing Organization................................................................................................................97
Atualizar a versão do pacote em sua listagem do AppExchange..............................................................................................97
Envio de um aplicativo móvel para análise de segurança.........................................................................................................98
Envio de um pacote de extensão para análise de segurança.....................................................................................................99
Recursos na análise de segurança.............................................................................................................................................99
Perguntas frequentes sobre a análise de segurança...................................................................................................................99
Quanto tempo leva a análise de segurança? Com que frequência ela é necessária?....................................................100
Há alguma taxa?.........................................................................................................................................................101
Por que preciso testar meu aplicativo antes da análise se a equipe de segurança vai testá-lo de qualquer forma?.......101
Posso enviar meu aplicativo antes de concluí-lo para que eu possa realizar o processo de análise de segurança
antecipadamente?.................................................................................................................................................101
Por que a equipe de análise precisa testar a parte X ou Y da minha oferta?...............................................................102
Preciso corrigir todos os problemas relatados pela equipe da análise de segurança?...................................................102
Por que a equipe da análise de segurança não pode me enviar cada ocorrência de cada descoberta da minha
análise?.................................................................................................................................................................103
Se eu atualizar meu aplicativo, preciso pagar novamente a taxa da análise de segurança para que ele seja revisto?.....103
Quando eu criar um novo pacote gerenciado (efetivamente uma atualização do meu primeiro aplicativo), precisarei
pagar novamente a taxa para que a segurança dele seja analisada?........................................................................103
Por que preciso fazer análises de segurança periódicas?.............................................................................................104
Compreendo que soluções analisadas podem funcionar com organizações da PE e GE. Como isso funciona?........104
Capítulo 6: Publicando seu aplicativo................................................................................................105
O que é o AppExchange?......................................................................................................................................................106
Vendendo no AppExchange......................................................................................................................................106
Como o AppExchange funciona?..............................................................................................................................106
Quem pode usar o AppExchange?.............................................................................................................................107
Gerenciando suas organizações do Salesforce........................................................................................................................107
Publicando seu aplicativo ou serviço......................................................................................................................................108
Publicação de um aplicativo no AppExchange..........................................................................................................108
Criando ou editando seu perfil do fornecedor............................................................................................................108
Version 29.0 | Sumário | iv
Criando ou editando uma listagem........................................................................................................................................109
Inclusão da marca em seu aplicativo......................................................................................................................................117
Enviando sua listagem para aprovação...................................................................................................................................117
Registrando seu pacote e escolhendo configurações de licença..............................................................................................119
Notificações por email...........................................................................................................................................................119
Usando o Checkout do AppExchange..................................................................................................................................120
Perguntas frequentes do AppExchange Checkout................................................................................................................121
Trabalhando com leads do AppExchange.............................................................................................................................123
Relatórios analíticos para editores..........................................................................................................................................125
Relatório Instalações (Adquirir agora).......................................................................................................................127
Relatório de leads.......................................................................................................................................................127
Relatório de recursos e promoções.............................................................................................................................127
Relatório de test drives, demonstrações e telas...........................................................................................................128
Saiba mais, vídeos e relatório de telas........................................................................................................................128
Perguntas frequentes sobre o AppExchange..........................................................................................................................129
Capítulo 7: Gerenciando licenças e fornecendo suporte administrativo................................................135
Visão geral do Aplicativo de gerenciamento de licença (LMA)............................................................................................136
Entendendo o gerenciamento de licenças..................................................................................................................136
Diagrama de relacionamentos de entidades...............................................................................................................136
Terminologia do LMA..............................................................................................................................................137
Instalação do LMA...............................................................................................................................................................138
Configuração do LMA..........................................................................................................................................................139
Associação de um pacote ao seu LMO..................................................................................................................................140
Padrões de licença......................................................................................................................................................141
Utilização do LMA...............................................................................................................................................................141
Sobre Leads...............................................................................................................................................................142
Sobre pacotes.............................................................................................................................................................142
Detalhes do pacote.........................................................................................................................................142
Editando os proprietários do pacote..............................................................................................................143
Editando o gerenciador de lead para um pacote............................................................................................144
Sobre versões do pacote.............................................................................................................................................144
Detalhes da versão do pacote.........................................................................................................................145
Sobre licenças............................................................................................................................................................145
Detalhes da licença........................................................................................................................................146
Editando os proprietários de licença..............................................................................................................147
Editando licenças...........................................................................................................................................148
Integração com vendas e marketing.......................................................................................................................................149
Práticas recomendadas...........................................................................................................................................................150
Perguntas frequentes sobre o Aplicativo de Gerenciamento de Licença................................................................................151
Solução de problemas............................................................................................................................................................151
Capítulo 8: Fornecendo uma avaliação gratuita do seu aplicativo.........................................................153
Por que usar Trialforce?.........................................................................................................................................................154
Visão geral do Trialforce.......................................................................................................................................................154
Version 29.0 | Sumário | v
Configurando o Trialforce.....................................................................................................................................................155
Vinculação de um pacote à sua AppExchange Publishing Organization...................................................................156
Vinculação de um pacote à sua Organização de gerenciamento de licenças...............................................................156
Solicitando uma Organização de gerenciamento do Trialforce.................................................................................157
Configurando a marca personalizada para o Trialforce..............................................................................................158
Criando e-mails com marca...........................................................................................................................158
Criando uma página de login marcada...........................................................................................................159
Criando uma Organização de origem do Trialforce..................................................................................................160
Vinculando uma Organização de origem do Trialforce à APO.................................................................................160
Criando um modelo Trialforce..................................................................................................................................161
Avaliando um modelo do Trialforce..........................................................................................................................162
Fornecendo uma avaliação gratuita no AppExchange...........................................................................................................162
Proporcionando uma avaliação gratuita do AppExchange usando o Trialforce.........................................................162
Configurando um test drive no AppExchange..........................................................................................................163
Proporcionando uma avaliação gratuita do AppExchange com seu aplicativo instalado............................................164
Fornecendo uma avaliação gratuita no seu website................................................................................................................164
Solicitando um formulário de inscrição para o Trialforce..........................................................................................164
Vinculando um modelo do Trialforce ao formulário de inscrição..............................................................................165
Personalização do formulário de registro HTML......................................................................................................165
Fornecendo novas organizações de avaliação.............................................................................................................166
Modificando a avaliação para uma atualização......................................................................................................................167
Práticas recomendadas do Trialforce.....................................................................................................................................167
Criando inscrições usando a API...........................................................................................................................................167
Solicitação de inscrição..............................................................................................................................................168
Início da solicitação de inscrição................................................................................................................................174
Criando uma solicitação de inscrição.........................................................................................................................174
Exibindo detalhes da solicitação de inscrição.............................................................................................................175
Adicionando campos personalizados a solicitações de inscrição................................................................................176
Executando relatórios em solicitações de inscrição....................................................................................................176
Usando acionadores com solicitações de inscrição.....................................................................................................177
Criando inscrições de proxy para acesso à API e ao OAuth......................................................................................177
Perguntas frequentes do Trialforce........................................................................................................................................179
Capítulo 9: Dando suporte aos seus assinantes...................................................................................181
Guia Suporte (Support).........................................................................................................................................................182
Console de suporte do assinante............................................................................................................................................182
Exibindo detalhes do assinante..................................................................................................................................183
Solicitando acesso de login........................................................................................................................................183
Efetuando login às organizações do assinante............................................................................................................184
Práticas recomendadas...................................................................................................................................184
Solução de problemas em organizações de assinantes................................................................................................184
Capítulo 10: Atualizando seu aplicativo.............................................................................................185
Criando e carregando correções.............................................................................................................................................187
Trabalhando com versões de correção...................................................................................................................................188
Version 29.0 | Sumário | vi
Controle de versões do código Apex......................................................................................................................................189
Efeitos da depreciação do Apex para os assinantes....................................................................................................190
Capítulo 11: Atualização automática..................................................................................................192
Sobre atualizações automáticas..............................................................................................................................................193
Práticas recomendadas para a atualização automática............................................................................................................194
Atribuindo acesso a novos componentes e campos................................................................................................................195
Exemplo de script de pós-instalação para uma atualização automática.................................................................................195
Conheça as limitações da atualização automática..................................................................................................................197
Agendando upgrades automáticos.........................................................................................................................................197
Exibindo detalhes do upgrade automático.............................................................................................................................198
Exibindo o histórico de atualizações de uma organização.....................................................................................................200
Apêndices........................................................................................................................................201
Apêndice A: Desenvolvendo e distribuindo pacotes não gerenciados..........................................201
Apêndice B: Comparação da licença de usuário do ISVforce.......................................................205
Apêndice C: Comparação de licença do usuário OEM...............................................................208
Glossário.........................................................................................................................................212
Índice..............................................................................................................................................215
Capítulo 1
Introdução
Tópicos:
•
Funções no ciclo de vida do aplicativo
O ISVforce Guide (Guia do ISVforce) foi elaborado considerando fornecedores
de software independentes (ISV) que desejam criar e vender aplicativos criados
na plataforma do Force.com. Este guia está organizado segundo seguintes
capítulos:
•
•
•
•
•
•
•
•
•
Início rápido — Comece aqui a adquirir e configurar todos os ambientes
necessários para criar e vender aplicativos.
Arquitetura e desenvolvimento do aplicativo — Antes de começar o
desenvolvimento, é importante saber como todas as peças se encaixam. Este
capítulo cobre as decisões relacionadas à arquitetura a serem consideradas
antes do desenvolvimento.
Empacotamento e teste do seu aplicativo — Este capítulo também cobre
as especificidades acerca do desenvolvimento e teste de aplicativos
empacotados.
Passando pela análise de segurança — Saiba mais sobre as práticas
recomendadas de segurança e plano para uma análise de segurança.
Publicando seu aplicativo — Liste seu aplicativo no marketplace do
AppExchange.
Gerenciando licenças e fornecendo suporte administrativo — Use o
Aplicativo de gerenciamento de licença para gerenciar as licenças e aplicativos
de seu cliente.
Trialforce — Crie uma avaliação gratuita para ajudar a vender seu aplicativo
para clientes que não são cliente Salesforce.
Dando suporte aos seus assinantes — Dê suporte técnico aos seus clientes
para a instalação e uso de seu aplicativo.
Atualização — Quando está na hora de fazer a atualização de seu aplicativo
empacotado, você pode fazer atualizações automáticas de correções
secundárias ou criar versões mais significativas.
Introdução
Version 29.0 | Funções no ciclo de vida do aplicativo | 2
Funções no ciclo de vida do aplicativo
Este guia cobre todo o ciclo de vida do aplicativo de um pacote, de forma que alguns dos tópicos podem não ser relevantes
para você. A lista a seguir tem as sugestões de tópico por função.
Uma arquitetura de aplicativo
A arquitetura do aplicativo determina o escopo do aplicativo e as estruturas internas que o suportam. Os arquitetos
precisam saber detalhes sobre a plataforma do Force.com subjacente que determinará não apenas o uso do aplicativo,
mais quais edições ele suporta, como está instalado, configurado e atualizado. Os arquitetos precisam estar familiarizados
com todo este guia, mas especialmente com os seguintes capítulos:
• Arquitetura e desenvolvimento do aplicativo na página 19
• Passando pela análise de segurança na página 92
Um desenvolvedor cria, empacota e carrega um aplicativo
Um desenvolvedor, ou frequentemente uma equipe de desenvolvedores, cria um aplicativo, o empacota e o carrega para
o AppExchange. Os desenvolvedores também atualizam o aplicativo com correções de erro e novos recursos. Como
desenvolvedor, seria desejável ver os seguintes capítulos:
• Arquitetura e desenvolvimento do aplicativo na página 19
• Empacotamento e teste do seu aplicativo na página 74
• Desenvolvendo documentação de aplicativo na página 50
• Atualizando seu aplicativo na página 185
Um editor distribui, vende e oferece suporte ao aplicativo
O editor de um aplicativo é a pessoa ou empresa que possui um perfil e uma ou mais listagens para o aplicativo no
AppExchange. As listas do editor contêm um link para um aplicativo carregado para o AppExchange, ou para um site
de terceiros. Os editores também definem as configurações padrão da licença. Como editor, seria desejável ver os seguintes
capítulos:
• Publicando seu aplicativo na página 105
• Fornecendo uma avaliação gratuita do seu aplicativo na página 153
• Dando suporte aos seus assinantes na página 181
Um administrador instala o aplicativo
Um administrador, ou admin, faz o download de seu aplicativo do AppExchange e instala-o na sua organização. Os
administradores também podem personalizar o aplicativo para ajustar ainda mais às suas necessidades comerciais. Veja
o tópico a seguir para saber como os administradores irão interagir com seu aplicativo.
• Instalando um pacote na página 77
Capítulo 2
ISVforce Início rápido
Tópicos:
•
•
•
•
Tutorial nº 1: Inscrição
Tutorial #2: Desenvolvimento de seu
aplicativo
Tutorial #3: Publicação e
licenciamento
Tutorial nº 4: Atualização de seu
aplicativo
Este início rápido foi criado para conduzi-lo pelo ciclo de vida do aplicativo o
mais rapidamente possível. Após a conclusão, você terá tudo que você precisa
para desenvolver e publicar um aplicativo empacotado.
Nota: Você deve ser um parceiro ISVforce/OEM para concluir todas
as etapas desse início rápido, pois ele cobre alguns recursos que somente
estão disponíveis para parceiros qualificados.
Como este início rápido está organizado?
Este início rápido estão quebrado em quatro tutoriais, o que destinam-se a ser
lidos na ordem. Como algumas etapas exibem uma resposta de e-mail
automática, o tempo para concluir as etapas pode variar. Entretanto, você pode
parar em qualquer etapa e recomeçar do ponto em que parou.
•
•
•
•
O tutorial nº 1 conduz você pelo processo de inscrição para o Programa de
Parceiro ISV do Salesforce pelas formas de conseguir tudo o que precisa das
organizações (ambientes)..
O tutorial nº 2 o conduz na criação de um aplicativo Hello World simples.
O tutorial nº 3 ajuda você a publicar e gerenciar seu aplicativo.
O tutorial nº 4 explica como atualizar seu aplicativo para versões importantes
e secundárias.
Tell Me More....
No final de cada etapa existe uma seção opcional Conte-me mais. Se você gostar
de fazer coisas rapidamente, prossiga para a próxima etapa. Entretanto, se você
é do tipo que gosta de ir mais lentamente, há várias informações úteis aqui.
•
•
•
Para uma lista de termos úteis, veja o Glossário na página 212.
Para saber mais sobre o Force.com para acessar um conjunto cheio de
recursos, visite o Developer Force em http://developer.force.com.
Para uma introdução tranquila ao desenvolvimento do Force.com, consulte
o Livro de exercícios do Force.com em http://developer.force.com/workbook.
ISVforce Início rápido
Version 29.0 | Tutorial nº 1: Inscrição | 4
Tutorial nº 1: Inscrição
Neste tutorial, você reúne todas partes que precisa desenvolver, vender e para as quais precisa oferecer suporte em seus aplicativos.
Tudo tem início quando você se inscreve para o Programa de Parceiro AppExchange. Isto dará acesso ao Portal do Parceiro,
onde você pode obter as organizações de desenvolvimento e teste (ambientes ), e criar casos para outros recursos a serem
habilitados. O primeiro caso que você registrará para a organização de CRM que você usa para gerenciamento da publicação,
licenciamento e eventuais vendas de seu aplicativo. Embora você não precise daquela organização de imediato, é mais fácil
tirar essas tarefas adminitrativas do caminho agora.
Se você já estiver familiarizado com o Salesforce, você sabe que uma organização é uma nuvem em torno de si mesma. Se você
for novo para o Salesforce, poderá pensar em uma organização como um ambiente separado em que você pode desenvolver,
testar ou publicar seu aplicativo.
Figura 1: Organizações (ambientes) são nuvens
Etapa 1: Inscreva-se para o Programa de parceiro
A primeira etapa é inscrever-se no Programa de parceiro do AppExchange.
1. Em seu navegador, acesse www.salesforce.com/partners e clique em Aderir agora (Join Now).
2. Selecione a primeira caixa de seleção: Crie e comercialize aplicativos comerciais usando as tecnologias do salesforce.com
(Fornecedor de software independente — Parceiro ISV).
3. Preencha os campos sobre você e sua empresa.
4. Na área de perguntas adicionais, clique nas caixas suspensas e selecione a resposta apropriada.
5. Insira as palavras Captcha exibidas e clique em Enviar registro (Submit Registration).
6. Em um momento você receberá um e-mail com seu nome de usuário e senha temporária. Clique no link para o portal de
parceiro (https://sites.secure.force.com/partners/PP2PartnerLoginPage) e faça o login.
7. Aceite os termos de uso e, em seguida, descarte as pop-ups que aparecerem.
8. Marque a página como favorita, você a usará muito.
Parabéns, agora você faz parte do Programa de Parceiro ISV do Salesforce!
ISVforce Início rápido
Version 29.0 | Etapa 2: Gerar ambientes de desenvolvimento
e de teste | 5
Etapa 2: Gerar ambientes de desenvolvimento e de teste
Para criar e vender aplicativos na plataforma do Force.com, você precisa de diferentes ambientes para diferentes tarefas.
Chamamos estes ambientes de organizações. É fácil obter as organizações necessárias por meio do Portal do parceiro. A primeira
organização que você precisa é a organização Partner Developer Edition, que é onde você faz seu desenvolvimento e, no final,
empacota seu aplicativo. Se você já tem uma organização da Developer Edition, você também deve se inscrever na Partner
Developer Edition, porque isso permite mais armazenamento de dados, licenças e usuários.
1. Você deve estar conectado ao Portal do parceiro. Se não estiver, clique em seu favorito e faça login agora.
2. No Portal de parceiros, na seção Links rápidos (Quick Links), clique em Criar uma organização de teste (Create a Test
Org).
Figura 2: Crie uma org
3. Na caixa suspensa Edição (Edition) e selecione Partner Developer Edition. Para simplificar, vamos nos referir a isso como
sua dev org daqui em diante.
4. Marque a caixa de seleção para aceitar os termos e clique em Enviar (Submit). Em alguns momentos, você receberá um
e-mail com um link para login.
5. Enquanto você aguarda este e-mail, pode economizar tempo gerando outras organizações que precisar. Depois disso, você
fará inscrição para uma organização de teste, que é usada para testar o aplicativo desenvolvido. Na área Links rápidos (Quick
Links), clique em Criar uma organização de teste (Create a Test Org) novamente, mas, dessa vez, escolha
Enterprise/Platform Edition. Para simplificar, vamos nos referir a isso como sua test org daqui em diante.
6. Em breve, você receberá e-mails que solicitarão que você faça login e altere sua senha para suas orgs dev e test. Clique no
link, altere sua senha e crie uma pergunta e resposta de segurança para a senha.
Quero saber mais...
Talvez você tenha percebido que há alguns tipos diferentes de test orgs para as quais é possível se inscrever. As edições diferentes
do Salesforce têm recursos diferentes e, se você planeja distribuir seu aplicativo para outras edições diferentes, pode ser importante
testar seu aplicativo e certificar-se de que ele funciona em cada uma delas. Isso está além do escopo deste início rápido. Para
obter mais informações, consulte Considerações de arquitetura para a Group Edition e a Professional Edition na página 41.
Etapa 3: Obtenha uma Business Org
Na etapa anterior, você obteve organizações especificamente para desenvolvimento e teste. Para publicar seu aplicativo e
gerenciar suas licenças de aplicativo, você precisará de uma organização especificamente projetada para esta finalidade. Nesta
etapa, você registra um caso no Portal de parceiro para ter a ISV CRM Edition provisionada para você. Pense nisso como sua
“business org”, já que ela será usada para publicar e gerenciar as vendas e distribuição de seu aplicativo.
Nota: Este recurso está disponível para parceiros elegíveis. Para obter mais informações sobre o Programa de parceiros,
incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
1. No portal do parceiro, na seção Links rápidos (Quick Links), clique em Criar um caso (Create a Case).
ISVforce Início rápido
Version 29.0 | Etapa 4: Edite sua listagem do editor | 6
Figura 3: Criar um caso
2.
3.
4.
5.
6.
7.
8.
Na seção Categoria (Category), escolha a primeira opção.
Na primeira caixa de categoria, selecione AppExchange e Listagens de serviço (Service Listings).
Na segunda caixa de categoria, selecione Solicitar CRM para o parceiro (Request CRM for Partner).
Na caixa suspensa Razão (Reason), selecione Solicitação da administração (Administration Request).
Na caixa suspensa Severidade (Severity), selecione Alta (High).
Em Assunto (Subject), insira Need ISV CRM.
No campo Descrição (Description), informe se você tem uma organização existente ou se precisa de uma nova. Se você já
tem uma organização do Salesforce existente, pode fornecer a ID da organização no campo Descrição (Description) e duas
licenças CRM adicionais serão adicionadas à sua organização. Se você não tem uma organização existente, nós forneceremos
uma nova para você. Em qualquer situação, não esqueça de inserir seu endereço comercial e, em seguida, clique em Salvar
(Save).
Figura 4: Crie um caso no Portal do parceiro
9. Em breve você receberá outro e-mail, solicitando que você faça login e altere sua senha. Faça isso e marque a página como
favorito, assim como fez anteriormente.
Quero saber mais...
•
•
Sua organização de business pode ter muitos nomes. Às vezes, ela pode ser citada como sua AppExchange Publishing
Organization (APO), sua Organização de gerenciamento de licenças (LMO) ou sua CRM ISV Edition. Ela é todas essas
coisas ao mesmo tempo, então é mais fácil simplesmente pensar nela como sua “business org”.
Pode levar de 24h a 48h para que seu caso seja fechado. Você pode olhar no status de seus casos no Portal do parceiro
clicando em Meus casos (My Cases) no menu Links rápidos (Quick Links).
Etapa 4: Edite sua listagem do editor
Nesta etapa, você faz login no AppExchange e fornece informações sobre sua empresa.
ISVforce Início rápido
Version 29.0 | Resumo da inscrição | 7
1. Você ainda deve se conectar à sua business org. No canto superior direito, clique em Adicionar (Add) AppExchange
Aplicativos (Apps).
2. No canto superior direito, clique em Login ou registro (Login or Register).
3. Na página de login, use seu nome de usuário e senha para sua business org.
4. Clique na guia Publicação (Publishing).
5. Clique em Perfil do seu provedor (Your Provider Profile).
6. Preencha as informações no Perfil do provedor e, em seguida, clique em Salvar (Save).
Resumo da inscrição
Neste primeiro tutorial, você está inscrito no Programa de parceiro e em todas as organizações para as quais você precisa
desenvolver, testar e vender seus aplicativos. Vamos analisar os itens em que você se inscreveu e a finalidade de cada um deles.
Programa de parceiro ISV
O Programa de parceiro proporciona acesso ao Portal do parceiro, onde você pode criar organizações, registrar casos e
encontrar informações gerais sobre o Programa de parceiro.
Partner Developer Edition
Também conhecido como sua dev org, é o lugar em que você desenvolve seus aplicativos e, no final das contas, o empacota
para distribuição.
Organização de teste EE
Também conhecida como sua test org, é onde você instala e testa seu aplicativo, exatamente como um cliente fará.
Organização ISV do CRM
Também conhecida como sua business org, esta organização é usada para publicação, licenciamento e gerenciamento de
seu aplicativo a partir da perspectiva de negócios. Para ajudar a gerenciar sua licença, você instalou o Aplicativo de
gerenciamento de licença (LMA) em sua business org.
Tutorial #2: Desenvolvimento de seu aplicativo
Neste tutorial, você criará um aplicativo “Hello World” muito simples. Ele não fará muita coisa, mas é o suficiente para entender
onde o desenvolvimento acontece no ciclo de vida de um aplicativo empacotado.
Etapa 1: Criar um aplicativo
Nesta etapa, você vai criar um aplicativo que contém uma página e uma guia para exibir a página.
1. Em seu navegador, conecte-se à organização da Partner Developer Edition. A partir de agora, nós a chamaremos de sua
“dev org”.
2. Em Configuração, clique em Desenvolver > Páginas.
3. Na lista Visualforce, clique em Novo (New).
4. No campo Rótulo (Label) insira Greeting.
5. Na área de marcação do Visualforce, substitua o conteúdo da tag <h1> por Hello World.
ISVforce Início rápido
Version 29.0 | Etapa 1: Criar um aplicativo | 8
Figura 5: Página do editor do Visualforce
6. Clique em Salvar.
Agora você associará a página com uma guia.
1.
2.
3.
4.
5.
6.
No menu da barra lateral, clique em Criar (Create) > Guias (Tabs).
Na lista da guia Visualforce, clique em Novo (New).
No assistente da guia do novo Visualforce, clique na caixa suspensa e selecione a página Hello World que acabou de criar.
Na guia Rótulo (Label) , insira Hello.
Clique no campo Estilo de guia (Tab Style) e selecione qualquer ícone para representar sua guia.
Clique em Avançar (Next); em seguida, clique em Avançar (Next) novamente e em Salvar (Save) na página final.
Agora, você vai criar um novo aplicativo que contém sua guia e página.
1. No menu da barra lateral, clique em Criar (Create) > Aplicativos (Apps).
2. Clique em Novo.
3. No campo Rótulo do aplicativo (App Label), insira sua Hello World e clique em Avançar (Next) e em Avançar (Next)
novamente na página seguinte.
4. Na página Selecionar as guias (Choose the Tabs), role para a parte inferior da lista Guias disponíveis (Available Tabs),
localize a guia Hello e adicione-a à lista Guias selecionadas (Selected Tabs). Clique em Avançar.
5. Marque a caixa de seleção Visível (Visible) para tornar este aplicativo visível e, em seguida, clique em Salvar (Save).
Tell Me More....
Parece que você acabou de criar uma página em um contêiner dentro de outro contêiner. E você está prestes a colocar tudo
isso em outro contêiner! O que acontece com todos esses contêineres e o que eles fazem?
•
•
•
Uma guia é um contêiner para coisas que você deseja exibir na mesma página, como um gráfico, uma tabela ou uma página
do Visualforce criada por você.
Um aplicativo é um contêiner de guias que aparecem umas ao lado das outras. Quando você cria um aplicativo, ele fica
disponível no selecionador de aplicativos no canto superior direito da tela.
Um pacote é um contêiner para coisas que você carrega no AppExchange. Normalmente, um pacote contém um aplicativo
que seus clientes podem instalar em suas organizações, mas você também pode carregar pacotes que ampliam aplicativos
existentes. Você não criou um pacote ainda, você fará isso na próxima etapa.
ISVforce Início rápido
Version 29.0 | Etapa 2: Empacote seu aplicativo | 9
Etapa 2: Empacote seu aplicativo
Nesta etapa, você empacotará seu aplicativo para que ele seja distribuído no AppExchange. Um pacote é simplesmente um
contêiner para componentes. Neste caso, é seu aplicativo, guia e página.
1.
2.
3.
4.
No menu da barra lateral, clique em Criar > pacotes (Create Packages) e, em seguida, clique em Novo (New).
No campo Nome do pacote (Package Name), insira Hello World e, em seguida, clique em Salvar (Save).
Na página Detalhe do pacote (Package Detail), clique em Adicionar componentes (Add Components).
Selecione seu aplicativo de Hello World e, em seguida, clique em Adicionar ao pacote (Add to Package).
Tell Me More....
Quando você clicou em Adicionar ao pacote (Add to Package), notou que sua guia Olá (Hello) e a página de Saudação
(Greeting) foram automaticamente adicionadas ao pacote? Quando você cria um pacote, a estrutura detecta automaticamente
componentes dependentes e adiciona-os ao pacote.
Etapa 3: Atribuir um namespace
Nesta etapa você escolherá um identificador único chamado namespace. O namespace diferencia seus componentes de outros
componentes e permite que você faça coisas como atualizar o aplicativo depois que ele tenha sido instalado. Escolha
cuidadosamente seu namespace, pois ele não poderá ser alterado posteriormente.
1. In the sidebar menu, click Create > Packages.
2. Na lista Configurações do desenvolvedor (Developer Settings), clique em Editar (Edit) e, na pagina seguinte, clique em
Continuar (Continue).
3. No campo Prefixo de namespace (Namespace Prefix), insira um ID alfanumérico com 1 a 15 caracteres e, em seguida,
clique em Verificar disponibilidade (Check Availability). Repita esta etapa até que você tenha um namespace exclusivo.
4. No campo Pacote a ser gerenciado (Package to be managed), selecione seu pacote Hello World e clique
em Revisar suas seleções (Review Your Selections).
5. Revise as informações na página e clique em Salvar (Save).
Tell Me More....
No código subjacente, seu namespace está anexado como prefixo a todos os componentes empacotados em sua "dev org". Isto
permite que seu pacote e seus conteúdos sejam diferenciados dos de outros desenvolvedores, e garante o controle exclusivo de
todos os componentes empacotados.
Etapa 4: Carregar uma versão beta
Antes de carregar uma versão de produção de seu aplicativo, é uma prática comum carregar uma versão beta para teste.
1.
2.
3.
4.
5.
In the sidebar menu, click Create > Packages.
Na página Pacotes (Packages), clique em sue pacote Hello World e, em seguida, clique em Carregar (Upload).
Na página Carregar pacote (Upload Package), insira um nome e um número de versão.
Em Tipo de versão (Release Type), certifique-se de selecionar Gerenciado — Beta (Managed — Beta).
Scroll to the bottom and click Upload. Talvez leve algum tempo até que o upload seja concluído.
Parabéns, você carregou um aplicativo para o AppExchange! Seu aplicativo não está disponível para o público, mas você pode
acessá-lo por meio de um link de instalação. Você fará isso na próxima etapa.
ISVforce Início rápido
Version 29.0 | Etapa 5: Instalar e testar a versão beta | 10
Tell Me More....
Uma versão beta tem, como finalidade única, o teste. Portanto, uma versão beta somente pode ser instalada em uma Developer
Edition do test org, ou sandbox (falaremos sobre isso mais adiante). A seguir, você instalará a versão beta no test org, criado
na Etapa 2: Gerar ambientes de desenvolvimento e de teste.
Etapa 5: Instalar e testar a versão beta
Instalar a versão beta é fácil, basta clicar no link e fornecer o nome de usuário e senha usados para seu "test org".
1. Clique agora na URL de instalação.
Figura 6: Link da URL de instalação
2.
3.
4.
5.
Na página de login, insira o nome de usuário e senha de sua "test org".
On the Package Installation Details page, click Continue.
Clique em Avançar.
Na página Nível de segurança (Security Level), clique em Conceder acesso a todos os usuários (Grant access to all users)
e clique em Avançar (Next).
6. Clique em Instalar.
7. Depois de concluída a instalação, você poderá selecionar seu aplicativo no selecionador de aplicativos no canto superior
direito.
Figura 7: Aplicativo Hello World
8. Você deve consultar sua guia Hello e o texto de saudação na sua página.
Figura 8: Guia e página Hello World
ISVforce Início rápido
Version 29.0 | Resumo do desenvolvimento | 11
Neste ponto você normalmente testaria o aplicativo e verificaria se ele funciona como projetado. Seu aplicativo instala e exibe
o que você deseja. Então, vamos prosseguir.
Tell Me More....
Os pacotes beta também são instalados em sandboxes. Uma sandbox é uma replicação da organização de seu cliente que permite
que ele desenvolva, teste ou instale aplicativos e verifique as alterações que deseja confirmar. Nenhuma das organizações para
as quais você se inscreveu neste livro de exercícios tem uma sandbox, mas se você tem uma sandbox em outra organização e
deseja instalar seu aplicativo nela, você deve substituir a parte inicial da URL instalação por http://test.salesforce.com.
Resumo do desenvolvimento
Parabéns, você acabou de concluir uma parte importante do ciclo de vida do desenvolvimento de software! Alterações adicionais
ao seu aplicativo seguirão o mesmo procedimento:
1.
2.
3.
4.
5.
Modifique o aplicativo existente em sua "dev org"
Empacote o aplicativo.
Carregue como um pacote beta.
Instale a versão beta em uma "test org"
Teste o aplicativo instalado.
Tutorial #3: Publicação e licenciamento
Imagine que você passou por alguns ciclos de desenvolvimento com sua versão beta e está pronto para publicar um aplicativo
público. A próxima etapa é carregar um aplicativo em produção, ou o que chamamos de versão gerenciada-liberada de seu
aplicativo. Então, é possível criar uma listagem para que outras pessoas possam encontrar seu aplicativo e saber o que ele faz.
Finalmente, é preciso conectar seu aplicativo à sua "business org" para que você possa gerenciar as licenças para as pessoas que
instalarem seu aplicativo.
Etapa 1: Carregamento para o AppExchange
Esta etapa parecerá familiar, ela é semelhante ao carregamento de uma versão beta.
1. Se você acompanhou estas instruções sem interrupções, provavelmente ainda deve estar conectado à sua "test org". Vá em
frente e conecte-se agora à sua "dev org".
2. Observe que, no canto superior direito, existe um link que diz: Desenvolvimento do Hello World, versão 1.0 (Developing
Hello World, version 1.0). Clique no link para ir diretamente para a página Detalhe do pacote (Package Detail).
Figura 9: Developing Hello World, version 1.0
3. Na página Detalhe do pacote (Package Detail), clique em Carregar (Upload).
4. Em Tipo de versão (Release Type), selecione Gerenciado — Liberado (Managed — Released).
5. Scroll to the bottom and click Upload.
ISVforce Início rápido
Version 29.0 | Etapa 2: Crie sua listagem de aplicativos | 12
6. Clique em OK na janela pop-up.
Etapa 2: Crie sua listagem de aplicativos
Nesta etapa, você irá editar sua listagem de aplicativos e conectar sua "business org" ao seu aplicativo.
1. Depois de carregar o pacote, você verá um link para publicar no AppExchange, clique nele.
Figura 10: Publique no AppExchange
2. Será apresentada uma caixa de diálogo para login. Dessa vez, use seu nome de usuário e senha para sua "business org".
3. Leia e concorde com os termos e condições e, em seguida, clique em Eu concordo (I Agree).
4. A primeira pergunta é se você já listou no AppExchange. Você fez isso no Tutorial nº 1: Inscrição, Etapa 4: Edite sua
listagem do editor na página 6, então, selecione Sim (Yes) e em seguida, clique em Continuar (Continue).
5. Click Link New Organization.
6. Você será solicitado a informar seu nome de usuário e senha. Insira os valores para sua "dev org".
7. Click the Publishing tab.
8. Clique em Criar nova lista (Create New Listing).
9. Na janela pop-up, insira um Título da listagem do Aplicativo Hello World por <seu nome>. É preciso
adicionar seu nome porque o título da listagem deve ser exclusivo e nós não podemos ter ninguém listando aplicativos Hello
World genéricos.
10. Selecione o botão de seleção para Aplicativo (App) e, em seguida, clique em Enviar (Submit).
11. Preencha os campos obrigatórios na página Informações básicas (Basic Information).
12. Clique em Salvar.
Sua listagem está ativa, mas ainda há algumas coisas a serem feitas, inclusive preencher as guias na parte superior. Isso será
feito na próxima etapa.
Tell Me More....
Não fique preocupado demais em fazer com que sua listagem seja perfeita, ela ainda não é pública e você poderá alterá-la a
qualquer momento.
Etapa 3: Complete sua listagem
Existem outras guias na parte superior: Oferta (Offering), Visão geral (Overview), Especificações (Specs), Suporte (Support),
Conteúdo carregado (Uploaded Content) e Leads. É preciso preencher os campos obrigatórios nestas guias antes que sua
listagem esteja completa.
1. Clique em Oferta (Offering).
2. Para vincular seu aplicativo, clique em Alterar Pacotes (Change Packages).
3. Selecione seu aplicativo e mova-o para a lista Selecionado (Selected), e clique em OK.
ISVforce Início rápido
Version 29.0 | Etapa 4: Instale o LMA | 13
4. Na caixa suspensa com o rótulo Selecione a versão mais recente do seu aplicativo (Select the
latest version of your application), selecione seu aplicativo.
5. Clique em Salvar.
6. Clique na guia Visão geral (Overview).
7. Selecione Livre (Free).
8. Preencha o campo Descrição completa (Full Description) e clique em Salvar (Save).
9. Clique na guia Especificações (Specs).
10. Clique em Alterar edições (Change Editions).
11. Na janela pop-up, mova todas as edições para a lista Selecionado (Selected) e clique em Enviar (Submit).
Nota: A página Visualforce criada está disponível em todas as edições, mas isso nem sempre acontece com outros
recursos. Antes de desenvolver um aplicativo completo, você deve levar em consideração seu público-alvo e saber
qual edição eles possuem. Para obter mais informações sobre as edições e os recursos compatíveis, consulte:
Architectural Considerations for Group and Professional Editions na página 41
12. Clique em Alterar idiomas (Change Languages).
13. Selecione o idioma em que você desenvolveu o aplicativo (provavelmente inglês) e, sem seguida, clique em Enviar (Submit).
14. Clique em Salvar.
As outras guias não têm nenhum campo obrigatório. Deixe-os em branco por enquanto. É possível retornar e alterar
posteriormente tudo aquilo que você fez até agora.
Etapa 4: Instale o LMA
O Aplicativo de gerenciamento de licenças (LMA) ajuda você a gerenciar as vendas, licenciamento e suporte de seu aplicativo.
Para instalar o LMA, você precisará registrar um caso no Portal do parceiro. Depois que seu caso estiver resolvido, instale o
LMA em sua organização de negócios.
Nota: Este recurso está disponível para parceiros elegíveis. Para obter mais informações sobre o Programa de parceiros,
incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Clique no link LMA no e-mail que você recebeu.
Você pode ler o anúncio do aplicativo e, em seguida, clicar em Adquirir agora (Get It Now).
Na janela pop-up, selecione Em minha produção (In my production) Salesforce.
Leia e aceite os termos e condições e, em seguida, clique em Instalar (Install).
Confirme sua senha e clique em Enviar (Submit).
Na página Detalhes de instalação do pacote (Package Installation Details), clique em Continuar (Continue).
Clique em Avançar (Next), Avançar (Next) e Instalar (Install).
Clique em Implantar agora (Deploy Now) e, na página seguida, clique em Implantar (Deploy).
Clique no canto superior direito e verá que tem um novo aplicativo instalado.
ISVforce Início rápido
Version 29.0 | Etapa 5: Licenciamento e gerenciamento de
aplicativo | 14
Figura 11: Aplicativo de gerenciamento de licenças
Você não usará o LMA imediatamente, primeiro, você precisa desenvolver um aplicativo e publicá-lo. Você fará isso a seguir.
Etapa 5: Licenciamento e gerenciamento de aplicativo
Nesta etapa você conectará seu aplicativo ao Aplicativo de gerenciamento de licença (LMA) em sua "business org".
1.
2.
3.
4.
5.
6.
Click the Publishing tab.
Ao lado do pacote que você carregou, clique em Gerenciar licenças (Manage Licenses).
Click Register.
Clique em Atribuir (somente uma vez) (Assign (One-Time Only)).
Insira as credenciais de login de sua "business org" e clique em Enviar (Submit).
Clique em Salvar.
Pode levar até 30 minutos para que seu aplicativo se conecte ao LMA. Faça uma pausa, você merece!
Resumo de publicação e licenciamento
Neste tutorial, você carregou seu aplicativo gerenciado-liberado para o AppExchange e criou uma listagem para seu aplicativo.
Você também instalou o Aplicativo de gerenciamento de licença e o vinculou a seu aplicativo. Você pode usar o LMA tanto
para gerenciar e renovar licenças quanto para definir configurações de licenças padrão. Por exemplo, você pode licenciar seu
aplicativo como uma avaliação gratuita que expira depois de um número de dias especificado. Para obter mais informações,
consulte Gerenciando licenças fornecendo suporte administrativo na página 135.
Agora mesmo, seu aplicativo tem uma listagem privada no AppExchange que você pode compartilhar com clientes potenciais,
mas o público não o vê, a menos que tenha o link. Antes que você possa listar o aplicativo publicamente, precisará passar pela
análise de segurança, mas esse tema está além do escopo deste início rápido. Para obter mais informações, consulte Etapas da
análise de segurança na página 93.
Tutorial nº 4: Atualização de seu aplicativo
Se você está familiarizado com o Salesforce, já sabe que fornecemos versões de correção semanais para corrigir erros e, algumas
vezes por ano, distribuímos uma versão mais significativa a fim de introduzir novos recursos. Como um ISV, você pode fazer
a mesma coisa, distribuindo uma versão de correção para corrigir erros e uma versão mais significativa para novos recursos.
•
Para novos recursos, o processo é o mesmo que você já experimentou anteriormente. Você começa pela modificação de seu
aplicativo, empacota-o, carrega uma versão beta, testa a versão beta e, depois, carrega uma versão gerenciada-liberada. As
versões mais significativas incrementam a versão para o próximo número inteiro, de 1.0 para 2.0, por exemplo, e as versões
ISVforce Início rápido
•
•
Version 29.0 | Etapa 1: Criando uma Organização de
correções | 15
menos significativas para o primeiro número após o ponto, de 1.0 para 1.1. Não existem regras rígidas sobre o que constitui
uma versão mais ou menos significativa. Isso fica por sua conta.
Para as correções de erros, o processo é um pouco diferente. Você começa criando uma "patch org", um ambiente especial
que tem funcionalidade limitada e que somente pode ser usado para desenvolver uma correção de um pacote específico.
Depois de carregar sua correção, você terá a opção de distribuir automaticamente a correção para seus clientes, de forma
que eles obtenham as correções para seus erros na próxima vez que fizerem login. As versões menos significativas incrementam
o número de versão para o segundo decimal, ou seja, de 1.0 para 1.0.1, por exemplo.
As versões mais ou menos significativas devem ser instaladas pelos clientes (extraídas). Entretanto, é possível instalar
automaticamente versões de correção diretamente nas organizações do cliente. Este recurso está disponível somente para
parceiros registrados do ISVforce/OEM. Para obter mais informações sobre o Programa de parceiros, incluindo os requisitos
de elegibilidade, visite-nos em www.salesforce.com/partners.
Como o processo de desenvolvimento de uma versão mais significativa já é familiar, vamos fazer uma versão de correção e
distribuí-la de forma automática para nossos clientes.
Etapa 1: Criando uma Organização de correções
Para criar uma correção, você precisa gerar uma nova organização de desenvolvimento de correções.
Para criar uma versão de correção:
1.
2.
3.
4.
Em Configuração, clique em Criar > Pacotes.
Clique no nome do seu pacote gerenciado.
Clique na guia Organização de correções e, em seguida, clique em Novo.
Selecione a versão do pacote para a qual você deseja criar uma correção na lista suspensa Corrigindo a versão principal. O
tipo de lançamento deve ser Gerenciado - Lançado.
5. Digite um Nome de usuário para fazer login na organização de correção.
6. Digite um Endereço de email associado ao seu login.
7. Clique em Salvar.
Nota: Se você perder as informações de login, clique em Redefinir na página de detalhes do pacote em Organização
de desenvolvimento de correções para redefinir o login para sua organização de desenvolvimento de correções.
Em um instante, você receberá um e-mail com suas credenciais de login. Depois que estiver conectado e tiver alterado sua
senha, prossiga para a próxima etapa.
Tell Me More....
O desenvolvimento em uma organização de desenvolvimento de correção é limitado. Segue uma lista de advertências:
•
•
•
•
•
•
•
•
Novos componentes do pacote não podem ser adicionados.
Componentes existentes do pacote não podem ser excluídos.
Os controles de acesso da API e Apex dinâmicos não podem ser alterados para o pacote.
Nenhuma depreciação de nenhum código do Apex.
Nenhum relacionamento novo de classe do Apex, como extends, pode ser adicionado.
Nenhum modificador novo de acesso do Apex, como virtual ou global, pode ser adicionado.
Nenhum serviço da Web novo pode ser adicionado.
Nenhuma dependência de novo recurso pode ser adicionada.
ISVforce Início rápido
Version 29.0 | Etapa 2: Desenvolvimento de uma correção | 16
Etapa 2: Desenvolvimento de uma correção
Estamos fazendo uma simples alteração em seu aplicativo. Em vez de exibir somente um Hello World, você adicionará a data
de hoje.
1.
2.
3.
4.
In your patch org, from Setup, click Create > Packages and click your Hello World package.
Na lista de Componentes do pacote (Package Components), clique em sua página Saudação (Greeting).
Clique em Editar.
Logo após a tag </h1> de fechamento, insira o seguinte:
<br/>
<apex:outputText value="The date and time is: {!NOW()}"/>
5. Clique em Salvar.
6. Para ver o resultado, clique na guia Olá (Hello) e você poderá observar que o horário e a data de hoje serão exibidos.
Figura 12: Exibir a data e a hora
Isto é tudo o que você precisa fazer nesta correção. Vamos prosseguir.
Tell Me More....
A função !NOW retorna a data em um formato padrão. Existem muitas funções integradas e maneiras de formatar a saída. Para
obter mais informações, consulte o Visualforce Developer's Guide (Guia do desenvolvedor do Visualforce).
Etapa 3: Carregando a correção
Normalmente, a próxima etapa é carregar uma correção beta e instalá-la em uma organização de teste. Como isto é muito
semelhante à Etapa 4: Carregar uma versão beta e à Etapa 5: Instalar e testar a versão beta, que você concluiu no Tutorial nº
2: Desenvolvimento de seu aplicativo, não obrigaremos você a fazer isso novamente.
1.
2.
3.
4.
5.
In your patch org, from Setup, click Create > Packages and click your Hello World package.
Na página Pacote de upload, clique em Upload.
Insira um nome de versão, como por exemplo a data de hoje.
Observe que o númeroCorreção do Número da versão aumentou.
Selecione Gerenciado — Liberado (Managed — Released).
ISVforce Início rápido
Version 29.0 | Etapa 4: Instalar e atualizar automaticamente
uma correção | 17
6. Como opção, insira e confirme a senha para compartilhar o pacote de modo privado com alguém que tenha a senha. Não
insira uma senha se você quiser tornar o pacote disponível a qualquer pessoa no AppExchange e compartilhar o seu pacote
publicamente.
7. O Salesforce seleciona automaticamente os requisitos que encontra. Além disso, selecione qualquer outro componente
necessário das seções Requisitos do pacote e Requisitos do objeto para notificar instaladores sobre requisitos
para esse pacote.
8. Clique em Carregar.
Parabéns, você carregou uma versão de correção. É preciso compartilhar esta correção com outras pessoas, e você fará isso a
seguir.
Etapa 4: Instalar e atualizar automaticamente uma correção
Existem duas maneiras de entregar uma correção: você pode fazer com seus clientes a instalem ou distribuí-la automaticamente
a eles. A distribuição automática de atualizações ocorre na próxima vez que seu cliente se conectar. Vamos tentar fazer isso.
1. Conecte-se à sua "dev org".
2. No canto superior direito, clique em Desenvolvimento do Hello World, versão 1.0 (Developing Hello World, version
1.0).
Figura 13: Developing Hello World, version 1.0
3.
4.
5.
6.
7.
8.
Na página Detalhe do pacote (Package Detail), clique em Upgrades automáticos (Push Upgrades).
Clique em Agendar upgrades automáticos.
Na lista suspensa Versão de correção (Patch Version), selecione a versão de correção a ser atualizada automaticamente.
No campo Data de início agendada (Scheduled Start Date), insira a data de hoje.
Na seção Selecionar organizações de destino (Select Target Organizations), selecione sua "test org".
Clique em Agendar.
E pronto! Você distribuiu uma versão de correção para seus assinantes de forma que eles obtenham as atualizações
automaticamente. Você deve se certificar de que seus clientes receberam a correção para garantir que ela foi instalada com
sucesso.
Tell Me More....
As versões beta não são elegíveis para atualizações automáticas. Você deve desinstalar uma versão beta e depois instalar uma
nova.
Resumo da atualização de seu aplicativo
Neste tutorial você aprendeu a atualizar seu aplicativo em uma "patch org" e a distribuir atualizações automáticas para seus
clientes. Você começou criando uma "patch org" específica para uma versão de pacote liberada. Depois, você modificou seu
aplicativo, carregou-o e programou a distribuição de atualização automática para seus clientes.
ISVforce Início rápido
Version 29.0 | Resumo da atualização de seu aplicativo | 18
Parabéns, você terminou! Ou acabou de começar? É possível modificar seu aplicativo para ser qualquer coisa que você queira
que ele seja, ou criar uma nova "dev org" no Portal do parceiro e criar outro aplicativo. É possível usar as mesmas "sales org"
e "test org" e tudo mais que você tenha configurado para publicar e gerenciar muitos aplicativos. Você está a caminho do sucesso
com o ISVforce!
Capítulo 3
Arquitetura e desenvolvimento do aplicativo
Tópicos:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Entendendo pacotes gerenciados e
não gerenciados
Componentes disponíveis
Comportamento especial dos
componentes nos pacotes
Considerações sobre a arquitetura
para Group Edition e Professional
Edition
Noções básicas sobre dependências
Criando aplicativos em pacote com o
Chatter
Correspondendo à aparência do
Salesforce
Desenvolvendo documentação de
aplicativo
Criação de configurações de perfil
personalizadas
Sobre conjuntos de permissões e
configurações do perfil
Visão geral de aplicativos conectados
Sobre o WSDL do parceiro
Trabalhando com serviços externos
Protegendo sua propriedade
intelectual
Hub de ambiente
Esta seção contém conceitos importantes e decisões relacionadas à arquitetura
a serem consideradas antes de iniciar o desenvolvimento, como:
•
•
•
•
Componentes disponíveis
Limites para Group Edition e Professional Edition
Protegendo sua propriedade intelectual
Noções básicas sobre dependências
Links relacionados
Considerações sobre a arquitetura para Group Edition e Professional Edition
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Entendendo pacotes gerenciados e não
gerenciados | 20
Entendendo pacotes gerenciados e não gerenciados
Os pacotes vêm em duas formas — não gerenciados e gerenciados:
Pacotes não gerenciados
Pacotes não gerenciados geralmente são usados para distribuir projetos de código fonte aberto ou modelos de aplicativo
a fim de fornecer aos desenvolvedores as ferramentas básicas para um aplicativo. Quando os componentes são instalados
de um pacote não gerenciado, os componentes podem ser editados na organização em que estão instalados. O desenvolvedor
que criou e carregou o pacote não gerenciado não tem controle sobre os componentes instalados e não pode alterá-los
nem atualizá-los. Os pacotes não gerenciados não devem ser usados para migrar componentes de um sandbox para a
organização de produção. Em vez disso, use Conjuntos de alterações.
Pacotes gerenciados
Geralmente, os pacotes gerenciados são usados pelos parceiros do salesforce.com para distribuir e vender aplicativos para
clientes. Esses pacotes devem ser criados a partir de uma organização da Edição Developer. Usando o AppExchange e
o LMA (License Management Application), os desenvolvedores podem vender e gerenciar licenças baseadas no usuário
para o aplicativo. Pacotes gerenciados também são totalmente atualizáveis. Para garantir upgrades perfeitos, determinadas
alterações destrutivas, como a remoção de objetos ou campos, não podem ser executadas.
Os pacotes gerenciados também oferecem os seguintes benefícios:
• Proteção à propriedade intelectual do Apex
• Suporte integrado para controle de versão para componentes acessíveis da API
• Capacidade de dividir e corrigir uma versão anterior
• Capacidade de enviar perfeitamente atualizações de correção para assinantes
• Nomenclatura exclusiva de todos os componentes para garantir instalações sem conflito
As definições a seguir ilustram esses conceitos:
Componentes
O componente é parte integrante de um pacote. Define um item, como um objeto personalizado ou campo personalizado.
Você pode combinar componentes em um pacote para produzir recursos ou aplicativos poderosos. Em um pacote não
gerenciado, os componentes não podem sofrer upgrade. Em um pacote gerenciado, alguns componentes podem ser
atualizados, enquanto outros, não.
Atributos
O atributo é um campo em um componente, como o nome de um modelo de email ou a caixa de seleção Permitir
relatórios em um objeto personalizado. Em um componente não atualizável de um pacote não gerenciado ou
gerenciado, os atributos são editáveis pelo desenvolvedor (quem criou o pacote) e pelo assinante (quem instalou o pacote).
Em um componente passível de upgrade em um pacote gerenciado, alguns atributos podem ser editados pelo desenvolvedor,
outros podem ser editados pelo assinante e ainda outros ficam bloqueados, o que significa que eles não podem ser editados
nem pelo desenvolvedor nem pelo assinante.
Planejando o lançamento de pacotes gerenciados
O lançamento de um pacote do AppExchange é semelhante ao de qualquer outro programa quanto ao desenvolvimento de
software. Convém implantá-lo em iterações para garantir que cada componente funcione conforme planejado. Pode até mesmo
haver testadores beta que tenham se oferecido para instalar uma versão anterior de seu pacote e fornecer comentários.
Depois que você o pacote, publicando-o no AppExchange, qualquer pessoa poderá instalá-lo. Portanto, planeje o lançamento
com cuidado. Revise os estados definidos a seguir para se familiarizar com o processo de lançamento. O Salesforce aplica
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Componentes disponíveis | 21
automaticamente o estado adequado a seu pacote e componentes dependendo das configurações de carregamento escolhidas
e da fase em que está no processo de lançamento.
Estado
Descrição
Não gerenciado (Unmanaged)
O pacote não foi convertido em um pacote gerenciado ou o componente não foi
adicionado a um pacote gerenciado. Observe que um componente no estado
“Gerenciado - Beta (Managed - Beta)” pode se tornar “Não gerenciado
(Unmanaged)” se for removido de um pacote gerenciado. Todos os pacotes são não
gerenciados a menos que indicado de outra forma por um dos seguintes ícones
gerenciados.
Gerenciado - Beta (Managed - Beta) O pacote ou o componente foi criado na organização atual do Salesforce e é
gerenciado, mas não foi lançado por um destes motivos:
• Não foi carregado.
• Foi carregado com a opção Gerenciado - Beta (Managed - Beta)
selecionada. Essa opção impede que ele seja publicado e se torne publicamente
disponível no AppExchange. O desenvolvedor ainda poderá editar qualquer
componente, mas o instalador provavelmente não, dependendo dos componentes
incluídos.
Gerenciado - Lançado (Managed Released)
O pacote ou o componente foi criado na organização atual do Salesforce e é
gerenciado. Ele também foi carregado com a opção Gerenciado - Beta
selecionada, indicando que ele pode ser publicado no AppExchange e se tornar
publicamente disponível. Observe que, depois que um pacote passar para esse estado,
algumas propriedades dos componentes não poderão mais ser editadas pelo
desenvolvedor e pelo instalador.
Esse tipo de lançamento é considerado uma versão principal.
Correção (Patch)
Para fornecer uma pequena atualização a um pacote gerenciado, considere criar
uma versão de correção em vez de uma nova versão. Uma versão de correção permite
que um desenvolvedor altere a funcionalidade de componentes existentes em um
pacote gerenciado, assegurando que inscritos não vejam alterações visíveis no pacote.
Esse tipo de lançamento é considerado uma versão da correção.
Gerenciado - Instalado (Managed Installed)
O pacote ou o componente foi instalado a partir de outra organização do Salesforce,
mas é gerenciado.
Um desenvolvedor pode decidir refinar a funcionalidade de um pacote gerenciado com o passar do tempo conforme os requisitos
são desenvolvidos. Nesse processo, o editor pode projetar novamente alguns dos componentes no pacote gerenciado. Os
desenvolvedores não podem excluir alguns componentes em um pacote Gerenciado - Lançado, mas podem recusar um
componente de uma versão posterior do pacote para que novos assinantes não recebam o componente. Enquanto isso, o
componente continua funcionando para assinantes e integrações da API existentes.
Componentes disponíveis
Nem todos os componentes podem ser empacotados para distribuição. Se você criar um aplicativo que usa componentes que
não são empacotáveis, seus assinantes terão que criar e configurar esses componentes após instalar seu aplicativo. Se a facilidade
da instalação for uma preocupação importante para seus assinantes, preocupe-se com os componentes empacotáveis enquanto
desenvolve.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Componentes disponíveis | 22
A tabela a seguir mostra os componentes disponíveis em um pacote gerenciado e se eles podem ser atualizados ou excluídos.
As seções a seguir descrevem as colunas da tabela e seus valores.
Atualizável
Alguns componentes são atualizados para uma versão mais recente quando um pacote é atualizado.
• Não: O componente não é atualizado.
• Sim: O componente é atualizado.
Pode ser excluído pelo assinante
O assinante ou instalador de um pacote pode excluir o componente.
• Não: O assinante não pode excluir o componente.
• Sim: O assinante pode excluir o componente.
Pode ser excluído pelo desenvolvedor
Um desenvolvedor pode excluir alguns componentes depois da atualização do pacote para Gerenciado - Lançado. Os
componentes excluídos não são removidos da organização do assinante durante a atualização do pacote. O atributo
Protegível contém mais detalhes sobre a exclusão de componentes.
• Não: O desenvolvedor não pode excluir um componente Gerenciado - Lançado.
• Sim: O desenvolvedor pode excluir um componente Gerenciado - Lançado.
Protegível
Os desenvolvedores podem marcar determinados componentes como protegidos. Componentes protegidos não podem
ser vinculados ou fazerem referência a componentes criados na organização do assinante. O desenvolvedor pode excluir
um componente protegido em uma versão futura sem se preocupar com falha nas instalações. Mas assim que o componente
for marcado como desprotegido e lançado globalmente, o desenvolvedor não poderá excluí-lo. Quando o assinante
atualiza para a versão do pacote com o componente excluído, ele é removido da organização do assinante.
• Não: O componente não pode ser marcado como protegido.
• Sim: O componente pode ser marcado como protegido.
Proteção de IP
Determinados componentes incluem automaticamente proteção de propriedade intelectual, como o código ofuscante do
Apex. As únicas exceções são os métodos do Apex declarados como globais, o que significa que as assinaturas do código
podem ser visualizadas pelo assinante. As informações nos componentes incluídos em um pacote e publicados devem
ser visíveis para usuários no AppExchange. Tenha cuidado ao adicionar seu código ou qualquer outro componente que
você não possa esconder em um aplicativo a um s-control personalizado, fórmula ou página do Visualforce.
• Não: O componente não suporta proteção de propriedade intelectual.
• Sim: O componente suporta proteção de propriedade intelectual.
Componente
Atualizável
Pode ser excluído
pelo assinante
Pode ser excluído Protegível
pelo desenvolvedor
Proteção de IP
Ação
Sim
Não
Não
Não
Não
Instantâneo
analítico
Não
Sim
Sim
Não
Não
Classe do Apex
Sim
Não
Sim (caso não
Não
esteja definido para
acesso global)
Sim
Arquitetura e desenvolvimento do aplicativo
Componente
Atualizável
Version 29.0 | Componentes disponíveis | 23
Pode ser excluído
pelo assinante
Pode ser excluído Protegível
pelo desenvolvedor
Proteção de IP
Motivo de
Sim
compartilhamento
do Apex
Não
Não
Não
Não
Recálculo do
Não
compartilhamento
do Apex
Sim
Sim
Não
Não
Acionador do Apex Sim
Não
Sim (caso não
Não
esteja definido para
acesso global)
Sim
Aplicativo
Não
Sim
Sim
Não
Não
Tipo de artigo
Sim
Não
Não
Não
Não
Call Center
Não
Sim
Não
Não
Não
Layout compacto
Sim
Não
Sim
Não
Não
Aplicativo
conectado
Sim
Sim
Sim
Não
Não
Botão ou link
personalizado
Sim
Não
Sim, caso protegido Não, exceto links
personalizados
(somente para a
home page)
Não
Campo
personalizado
Sim
Sim
Sim
Não
Não
Rótulo
personalizado
Sim
Não
Sim, caso protegido Sim
Não
Objeto
personalizado
Sim
Não
Não
Não
Não
Tipo de relatório
personalizado
Sim
Não
Não
Não
Não
Configuração
personalizada
Sim
Não
Não
Não
Sim
Painel
Não
Sim
Sim
Não
Não
Documento
Não
Sim
Sim
Não
Não
Modelo de email
Não
Sim
Sim
Não
Não
Conjunto de
campos
Sim
Não
Não
Não
Não
Página flexível
Sim
Não
Não
Não
Não
Fluxo
Sim
Sim
Não
Não
Não
Pasta
Não
Sim
Sim
Não
Não
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Componentes disponíveis | 24
Componente
Atualizável
Pode ser excluído
pelo assinante
Pode ser excluído Protegível
pelo desenvolvedor
Proteção de IP
Componente da
home page
Sim
Não
Não
Não
Não
Layout de home
page
Não
Sim
Sim
Não
Não
Papel timbrado
Não
Sim
Sim
Não
Não
Modo de exibição Não
de lista
Sim
Sim
Não
Não
Layout de página
Não
Sim
Sim
Não
Não
Conjunto de
permissões
Sim
Não
Não
Não
Não
Tipo de registro
Sim
Não
Não
Não
Não
Configuração do
site remoto
Não
Sim
Sim
Não
Não
Relatório
Não
Sim
Sim
Não
Não
S-control
Sim
Não
Não
Não
Não
Recurso estático
Sim
Não
Não
Não
Não
Tab
Sim
Sim
Sim
Não
Não
Tradução
Sim
Não
Não
Não
Não
Regra de validação Sim
Não
Não
Não
Não
Componente do
Visualforce
Sim
Não
Sim (se definido
para acesso
public)
Não
Sim
Página do
Visualforce
Sim
Não
Não
Não
Não
Alerta de email de Sim
fluxo de trabalho
Não
Sim, caso protegido Sim
Não
Atualização de
Sim
campo do fluxo de
trabalho
Não
Sim, caso protegido Sim
Não
Mensagem de
saída do fluxo de
trabalho
Sim
Não
Sim, caso protegido Sim
Não
Regra de fluxo de
trabalho
Sim
Não
Não
Não
Não
Tarefa de fluxo de Sim
trabalho
Não
Sim, caso protegido Sim
Não
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Editando componentes e atributos após a
instalação | 25
Atributos e comportamentos do componente
Apenas alguns atributos de um componente podem ser atualizados. Além disso, muitos componentes se comportam de
forma diferente ou incluem restrições adicionais em um pacote gerenciado. É importante considerar esses comportamentos
ao projetar um pacote.
Links relacionados
Editando componentes e atributos após a instalação
Componentes adicionados automaticamente a pacotes
Editando componentes e atributos após a instalação
A tabela a seguir mostra quais componentes e atributos podem ser editados após a instalação a partir de um pacote gerenciado.
As seções a seguir descrevem as colunas da tabela e seus valores.
Editável pelo desenvolvedor
O desenvolvedor pode editar os atributos de componentes nesta coluna. Esses atributos estão bloqueados na organização
do assinante.
Editável pelo assinante e desenvolvedor
O assinante e o desenvolvedor podem editar os atributos de componentes nesta coluna. No entanto, eles não são
atualizáveis. Somente os novos assinantes recebem as alterações mais recentes.
Bloqueado
Uma vez que um pacote estiver Gerenciado - liberado, o assinante e o desenvolvedor não poderão editar os atributos de
componentes nesta coluna.
Componente
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
Bloqueado
Ação
•
•
•
Tipo de registro alvo
•
Layout de ação
Valores predefinidos para
campos de ação
Todos os campos exceto
Tipo de registro alvo
Instantâneo analítico
•
Todos os atributos exceto •
Nome exclusivo do
instantâneo analítico
Nome exclusivo do
instantâneo analítico
Classe do Apex
•
•
Motivo de compartilhamento •
do Apex
Versão da API
Código
•
Nome
Rótulo do motivo
•
Nome do motivo
•
Nome
Recálculo do
compartilhamento do Apex
Acionador do Apex
•
•
•
Versão da API
Código
Classe do Apex
Arquitetura e desenvolvimento do aplicativo
Componente
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
Aplicativo
Tipos de artigo
Version 29.0 | Editando componentes e atributos após a
instalação | 26
•
•
•
•
•
Todos os atributos exceto •
Nome do aplicativo
Nome do aplicativo
Descrição
•
Rótulo
•
Rótulo no plural
Começa com som de vogal •
Disponível para portal de •
clientes
O canal exibe
Modelo de
compartilhamento padrão
Nome
•
•
•
•
Layout compacto
•
Todos os atributos
Aplicativo conectado
•
•
•
•
Método de acesso
URL do aplicativo da tela
URL de callback
Nome do aplicativo
conectado
Email do contato
Telefone do contato
Descrição
URL do ícone
URL de informações
Intervalos de IP
Locais
URL da imagem do
logotipo
Escopos de OAuth
•
•
•
•
Comportamento
URL do botão ou link
Origem do conteúdo
Descrição
Caixas de seleção de
exibição
Rótulo
Codificação de links
•
•
•
•
•
•
•
•
•
•
•
•
Botão ou link personalizado •
•
•
•
•
•
•
Bloqueado
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Status de desenvolvimento
Ativar divisões
Conceder acesso usando a
hierarquia
Layouts de pesquisa
URL ACS
ID da entidade
Restrições de IP
Gerenciar conjuntos de
permissões
Gerenciar perfis
URL de início móvel
Usuários autorizados
Exigir o login dos usuários
Atributos de SAML
Certificado do provedor de
serviços
URL inicial
Tipo de assunto
•
•
•
•
•
•
•
•
Altura
•
Redimensionável
•
Mostrar barra de
endereços
Mostrar barra de menus
Mostrar barras de rolagem
Mostrar barra de status
Mostrar barras de
ferramentas
Largura
Posição da janela
Nome da API
Criado em/por
Chave do consumidor
Segredo do consumidor
Instalado por
Data instalada
Data da última
modificação/modificado
por
Versão
Tipo de exibição
Nome
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Editando componentes e atributos após a
instalação | 27
Componente
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
Campo personalizado
•
•
•
•
•
•
•
•
•
•
Formato de exibição da
numeração automática
Casas decimais
Descrição
Valor padrão
Rótulo de campo
Fórmula
Comprimento
Filtro de pesquisa
Rótulo da lista relacionada
Critérios de filtro de
resumo de totalização
Rótulo personalizado
•
•
•
Categoria
Descrição breve
Valor
Objeto personalizado
•
•
•
•
•
Descrição
Rótulo
Rótulo no plural
Nome do registro
Começa com som de vogal
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Tipo de relatório
personalizado
•
Configuração personalizada •
•
Todos os atributos exceto •
Status de desenvolvimento
e Nome do tipo de
relatório
Descrição
Rótulo
Rastreamento de feeds do
Chatter
Texto da Ajuda
Tipo de máscara
Mascarar caractere
Configuração de
compartilhamento
Classificar valores da lista
de opções
Rastrear histórico de
campos
Bloqueado
•
Nome do relacionamento
filho
Tipo de dados
ID externo
Nome do campo
Obrigatório
Campo de resumo de
totalização
Objeto de resumo de
totalização
Tipo de resumo de
totalização
Exclusivo
•
Nome
•
•
•
•
•
•
•
•
Permitir atividades
•
Permitir relatórios
•
Disponível para portal de
clientes
•
Configuração da Ajuda
sensível ao contexto
Modelo de
compartilhamento padrão
Nome do objeto
Tipo de dados de nome do
registro
Formato de exibição do
nome do registro
Status de desenvolvimento
Ativar divisões
Pesquisa avançada
Conceder acesso usando a
hierarquia
Layouts de pesquisa
Rastrear histórico de
campos
Status de desenvolvimento •
•
•
•
Nome do tipo de relatório
Nome do objeto
Tipo de configuração
Visibilidade
Arquitetura e desenvolvimento do aplicativo
Componente
Version 29.0 | Editando componentes e atributos após a
instalação | 28
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
Bloqueado
Painel
•
Todos os atributos exceto •
Nome exclusivo do painel
Nome exclusivo do painel
Documento
•
Todos os atributos exceto •
Nome exclusivo do
documento
Nome exclusivo do
documento
Modelo de email
•
Todos os atributos exceto •
Nome do modelo de email
Nome do modelo de email
•
Campos selecionados
(apenas controlados pelo
assinante)
•
Nome
•
•
•
Nome
Descrição
Status
•
•
Nome exclusivo do fluxo
URL
•
Todos os atributos exceto •
Nome exclusivo da pasta
Nome exclusivo da pasta
Conjunto de campos
•
•
•
Descrição
Rótulo
Campos disponíveis
Página flexível
•
Página flexível
Fluxo
•
Todo o fluxo
Pasta
Componente da home page
•
•
Corpo
Posição do componente
•
•
Nome
Tipo
Layout de home page
•
Todos os atributos exceto •
Nome do layout
Nome do layout
Papel timbrado
•
Todos os atributos exceto •
Nome do papel timbrado
Nome do papel timbrado
Modo de exibição de lista
•
Todos os atributos exceto •
Visualizar nome exclusivo
Visualizar nome exclusivo
Layout de página
•
Todos os atributos exceto •
Nome do layout de página
Nome do layout de página
Conjunto de permissões
•
•
•
•
Descrição
Rótulo
Permissões de objeto
personalizadas
Permissões de campo
personalizadas
•
Nome
Arquitetura e desenvolvimento do aplicativo
Componente
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
•
•
Tipo de registro
Version 29.0 | Editando componentes e atributos após a
instalação | 29
•
•
Bloqueado
Configurações de acesso à
classe do Apex
Configurações de acesso à
página do Visualforce
Descrição
•
Rótulo do tipo de registro •
Ativo
Processo de negócios
•
Nome
•
Nome do site remoto
Configuração do site remoto
Todos os atributos exceto
Nome do site remoto
Relatório
•
Todos os atributos exceto •
Nome exclusivo do
relatório
Nome exclusivo do
relatório
•
Pré-criar na página
•
•
Nome do S-Control
Tipo
•
Nome
•
Nome da guia
•
Pronto para dispositivos
móveis
Estilo de guia
•
Ativo
•
Nome da regra
•
Nome
S-control
•
•
•
•
•
Conteúdo
Descrição
Codificação
Nome do arquivo
Rótulo
Recurso estático
•
•
Descrição
Arquivo
Tab
•
•
•
•
•
•
•
•
•
•
Descrição
Codificação
Tem barra lateral
Altura
Rótulo
S-control
Link personalizado da
página inicial
Tipo
URL
Largura
Tradução
•
Todos os atributos
Regra de validação
•
•
Descrição
Fórmula de condição de
erro
Local do erro
Mensagem de erro
•
•
Componente do Visualforce •
Versão da API
•
Arquitetura e desenvolvimento do aplicativo
Componente
Página do Visualforce
Version 29.0 | Componentes adicionados automaticamente a
pacotes | 30
Editável pelo desenvolvedor Editável pelo assinante e
desenvolvedor
•
•
•
Descrição
Rótulo
Marcação
•
•
•
•
Versão da API
Descrição
Rótulo
Marcação
Alerta de email de fluxo de
trabalho
Bloqueado
•
Nome
•
•
•
•
Emails adicionais
Modelo de email
Endereço de email De
Destinatários
•
Descrição
Descrição
Valor do campo
Valor da fórmula
•
•
Pesquisa
Notificar destinatário
•
Nome
Mensagem de saída do fluxo •
de trabalho
•
•
•
Descrição
URL do ponto final
Campos para envio
Enviar ID da sessão
•
Usuário para enviar como •
Nome
Regra de fluxo de trabalho
Descrição
Critérios de avaliação
Critérios de regra
•
Ativo
•
Nome da regra
•
•
•
•
•
•
•
Atribuir a
Comentários
Data de vencimento
Notificar destinatário
Prioridade
Tipo de registro
Status
•
Assunto
Atualização de campo do
fluxo de trabalho
Tarefa de fluxo de trabalho
•
•
•
•
•
•
Componentes adicionados automaticamente a pacotes
Ao adicionar componentes ao seu pacote, alguns componentes relacionados são automaticamente adicionados, caso seja
necessário. Por exemplo, se você adicionar uma página do Visualforce a um pacote que faça referência a um controlador
personalizado, a classe do Apex correspondente também é adicionada.
Para entender quais componentes podem ser incluídos automaticamente, consulte a lista a seguir:
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Componentes adicionados automaticamente a
pacotes | 31
Ao adicionar este componente:
Estes tipos de componentes podem ser incluídos automaticamente:
Ação
Objeto-alvo da ação (caso seja um objeto personalizado), campo-alvo da ação, tipo de
registro da ação, valores de campos pré-definidos, layout da ação e qualquer campo
personalizado que seja referenciado pelo layout da ação ou pelos valores predefinidos
no objeto-alvo
Instantâneo analítico
Relatórios
Classe do Apex
Campos personalizados, objetos personalizados e outras classes do Apex às quais é feita
alguma referência explícita, além de qualquer outra coisa à qual a classe do Apex faça
referência direta
Nota: Se uma classe do Apex fizer referência a um rótulo personalizado e
esse rótulo tiver traduções, será necessário empacotar explicitamente os idiomas
individuais desejados para que essas traduções sejam incluídas.
Acionador do Apex
Campos personalizados, objetos personalizados e qualquer classe do Apex à qual é feita
alguma referência explícita, além de qualquer outra coisa à qual o acionador do Apex
faça referência direta
Tipo de artigo
Campos personalizados, o layout padrão da página
Layout compacto
Campos personalizados
Aplicativo personalizado
Guias personalizadas (incluindo guias da web), documentos (armazenados como
imagens na guia), pasta de documentos
Botão ou link personalizado
Campos personalizados e objetos personalizados
Campo personalizado
Objetos personalizados
Layouts da home page personalizados Componentes personalizados da home page no layout
Configurações personalizadas
Motivos de compartilhamento do Apex, recálculos de compartilhamento do Apex,
acionadores do Apex, botões ou links personalizados, campos personalizados, exibições
de listas, layouts de página, tipos de registro, regras de validação
Objeto personalizado
Campos personalizados, regras de validação, layouts de página, exibições de listas,
botões personalizados, links personalizados, tipos de registro, motivos de
compartilhamento do Apex, recálculos de compartilhamento do Apex e acionadores
do Apex
Nota:
•
•
Guia personalizada
Os motivos de compartilhamento do Apex não estão disponíveis em
extensões.
Quando estiverem empacotadas e instaladas, apenas as exibições de listas
públicas de um aplicativo serão instaladas. Caso um objeto personalizado
tenha alguma exibição de lista personalizada que você deseja incluir no seu
pacote, certifique-se de que ela possa ser acessada por todos os usuários.
Objetos personalizados (incluindo todos os seus componentes), s-controls e páginas
do Visualforce
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 32
Ao adicionar este componente:
Estes tipos de componentes podem ser incluídos automaticamente:
Painel
Pastas, relatórios (incluindo todos os seus componentes), s-controls e páginas do
Visualforce
Documento
Pasta
Modelo de email
Pasta, papel timbrado, campos personalizados e documentos (armazenados como
imagens no papel timbrado ou no modelo)
Conjunto de campos
Qualquer campo referenciado
Página flexível
Todas as ações rápidas associadas
Guia Página flexível (Flexible Page) Página flexível
Fluxo
Objetos personalizados, campos personalizados, classes do Apex e páginas do Visualforce
Pasta
Tudo na pasta
Layout de página
Botões personalizados, links personalizados, s-controls e páginas do Visualforce
Tipo de registro
Mapeamentos de tipo de registro, layout compacto
Relatório
Pasta, campos personalizados, objetos personalizados, tipos de relatórios personalizados
e s-controls personalizados
S-control
Campos personalizados e objetos personalizados
Tradução
Termos traduzidos para o idioma selecionado em qualquer componente no pacote
Regra de validação
Campos personalizados (referenciados na fórmula)
Páginas do Visualforce
Classes do Apex usadas como controladores personalizados, componentes personalizados
do Visualforce e conjuntos de campos referenciados
Regra de fluxo de trabalho
Todos os alertas de fluxo de trabalho, atualizações de campos, mensagens de saída e
tarefas associadas. Além disso, caso a regra de fluxo de trabalho seja feita para um
objeto personalizado, ele também será automaticamente incluído.
Nota: Alguns componentes do pacote, como as regras de validação ou tipos de registro, podem não ser exibidos na
lista de componentes do pacote, mas serão incluídos e instalados com os outros componentes.
Comportamento especial dos componentes nos pacotes
Ao criar um aplicativo para distribuição, é importante considerar como a embalagem afeta seu aplicativo e seus componentes.
Use as seguintes informações para ajudá-lo a determinar o que incluir nos seus pacotes, como projetar seu aplicativo e como
distribuir seus pacotes (gerenciados ou não).
Nota:
•
•
Para obter mais informações sobre as propriedades de cada componente nos pacotes, consulte a tabela de propriedade
dos componentes empacotados.
Para obter mais informações sobre os atributos de cada componente nos pacotes, consulte a tabela dos atributos
de componente.
Arquitetura e desenvolvimento do aplicativo
•
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 33
Os nomes de componente devem ser exclusivos dentro de uma organização. Para garantir que os nomes do
componente não estejam em conflito com a organização de um instalador, use um pacote gerenciado para que
todos os nomes dos seus componentes contenham seu prefixo do namespace.
Instantâneo analítico
Os desenvolvedores de pacotes gerenciados devem considerar as implicações de introduzir instantâneos analíticos que
façam referência a relatórios lançados em uma versão anterior do pacote. Se o assinante tiver excluído o relatório ou
movido o relatório para uma pasta pessoal, o instantâneo analítico, fazendo referência ao relatório, não será instalado,
embora a página de instalação do Pacote possa indicar que ele será. Ainda, se o assinante tiver modificado o relatório,
esse relatório pode retornar resultados que afetam as informações exibidas pelo instantâneo analítico. Como prática
recomendada, o desenvolvedor deve liberar um instantâneo analítico e os relatórios relacionados na mesma versão.
Uma vez que o usuário em execução é selecionado pelo assinante, alguns mapeamentos do campo de instantâneo analítico
podem se tornar inválidos se o usuário em execução não tiver acesso aos campos de origem ou destino.
Classes ou acionadores do Apex
Qualquer Apex incluído como parte de um pacote deve ter pelo menos 75% de cobertura de teste cumulativa. Cada
acionador também deve ter alguma cobertura de teste. Quando você carrega seu pacote para o AppExchange, todos os
testes são executados para garantir que executem sem erros. Além disso, todos os testes são executados quando o pacote
é instalado na organização do instalador. O instalador pode decidir se deseja ou não instalar o pacote se qualquer teste
falhar.
Dica: Para evitar conflitos de nomenclatura, o Salesforce recomenda usar pacotes gerenciados para todos os
pacotes contendo Apex. Assim, todos os objetos do Apex contêm seu prefixo de namespace. Por exemplo, se
houver uma classe do Apex chamada MyHelloWorld e o namespace para a sua organização for OneTruCode,
a classe é chamada de OneTruCode.MyHelloWorld.
Mantenha as seguintes considerações em mente ao incluir o Apex no seu pacote:
• Pacotes gerenciados recebem um único namespace. Esse namespace é automaticamente anexado como prefixo aos
nomes de classe, métodos, variáveis, etc., o que ajuda a evitar nomes duplicados na organização do instalador.
• Em uma transação única, é possível fazer referência a 10 namespaces únicos. Por exemplo, suponha que você tenha
um objeto que execute uma classe em um pacote gerenciado quando o objeto for atualizado. Então essa classe atualiza
um segundo objeto, que, por sua vez, executa uma classe diferente em um pacote diferente. Embora o segundo pacote
não tenha sido acessado diretamente pelo primeiro, porque ocorre na mesma transação, ele é incluído no número de
namespaces sendo acessados em uma única transação.
• Se você estiver expondo quaisquer métodos como serviços da web, inclua documentação detalhada para que os
assinantes possam escrever código externo que chame seu serviço da web.
• Se uma classe do Apex fizer referência a um rótulo personalizado e esse rótulo tiver traduções, será necessário empacotar
explicitamente os idiomas individuais desejados para que essas traduções sejam incluídas no pacote.
• Se você fizer referência a um objeto de compartilhamento do objeto personalizado (como MyCustomObject__share)
no Apex, isso adiciona uma dependência de modelo de compartilhamento ao seu pacote. Você deve definir o nível
de acesso padrão de compartilhamento corporativo para o objeto personalizado para Privado para outras organizações
instalarem seu pacote com sucesso.
• O código contido em uma classe ou acionador do Apex que é parte do pacote gerenciado é automaticamente ofuscado
e não pode ser visualizado em uma organização realizando a instalação. As únicas exceções são os métodos declarados
como globais, o que significa que as assinaturas de método podem ser visualizadas em uma organização executando
a instalação.
• Você pode usar a anotação recusada no Apex para identificar métodos, classes, exceções, enumerações, interfaces
e variáveis globais que não podem mais ser referidos em versões posteriores do pacote gerenciado em que residem.
Arquitetura e desenvolvimento do aplicativo
•
•
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 34
Isso é útil quando você está refatorando código em pacotes gerenciados conforme as exigências evoluem. Depois de
realizar o upload de outra versão de pacote como Gerenciado - Liberado, novos assinantes que instalam a última
versão do pacote não podem ver os elementos recusados, embora os elementos continuem a funcionar para assinantes
atuais e integrações da API.
Qualquer Apex contido em um pacote não gerenciado que explicitamente faça referência a um namespace não pode
ser carregado.
O código do Apex que faz referência a Categorias de dados não pode ser carregado.
Motivos de compartilhamento do Apex
Os motivos de compartilhamento do Apex podem ser adicionados diretamente a um pacote, mas estão disponíveis apenas
para objetos personalizados.
Layouts compactos
Quando você empacota um layout compacto, seus mapeamentos de tipo de registro não são incluídos. Os assinantes ou
instaladores de um pacote que contém um layout compacto devem recriar seus mapeamentos de tipo de registro nas suas
organizações.
Aplicativos conectados
•
•
•
•
•
Assinantes ou instaladores de um pacote não podem excluir um Aplicativo conectado em si; eles somente podem
instalar seu pacote. Um desenvolvedor pode excluir um Aplicativo conectado depois de um pacote ser carregado como
Gerenciado - Liberado. O Aplicativo conectado será excluído na organização do assinante durante a atualização do
pacote.
Se você atualizar um Aplicativo conectado e incluí-lo em uma nova versão de pacote, atualizar esse pacote em uma
organização do cliente atualiza o Aplicativo conectado existente.
Se você realizar a atualização automática de um pacote contendo um Aplicativo conectado cujo escopo OAuth ou
intervalos de IP tenham mudado com relação à versão anterior, a atualização falhará. Esse é um recurso de segurança
para bloquear o acesso amplo de usuários não autorizados a uma organização do cliente atualizando um pacote
instalado. Um cliente ainda pode realizar uma atualização manual do mesmo pacote; isso é permitido porque é feito
com o conhecimento e consentimento do cliente.
É possível adicionar um Aplicativo conectado existente (ou seja, um criado antes de Summer '13) para um pacote
gerenciado. Também ;e possível combinar Aplicativos conectados novos e existentes no mesmo pacote gerenciado.
Para Aplicativos conectados criados antes de Summer '13, o URL de instalação existente continua válido até que
você crie o pacote e faça upload de uma nova versão. Quando você carrega uma nova versão do pacote com um
Aplicativo conectado atualizado, o URL de instalação não funcionará mais.
Campos personalizados
•
•
•
Os valores do campo da lista de opções para campos personalizados podem ser adicionados, editados ou excluídos
por assinantes. Um desenvolvedor deve considerar cuidadosamente isso ao explicitamente fazer referência a um valor
da lista de opções no código. Os valores da lista de opções podem ser adicionados ou excluídos pelo desenvolvedor.
Durante uma atualização de pacote, nenhum novo valor de lista de opções é instalado na organização do assinante
para os campos existentes. Qualquer valor da lista de opções excluído pelo desenvolvedor ainda está disponível na
organização do assinante.
Os desenvolvedores podem adicionar campos personalizados obrigatórios e universalmente obrigatórios a pacotes
gerenciados, desde que tenham valores padrão.
Os campos obrigatórios e do tipo numeração automática não podem ser adicionados depois de o objeto ser carregado
em um pacote Gerenciado - Liberado.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 35
Rótulos personalizados
Se um rótulo for traduzido, o idioma deve ser explicitamente incluído no pacote para que as traduções sejam incluídas
no pacote. Os assinantes podem substituir a tradução padrão para um rótulo personalizado.
Objetos personalizados
•
•
Se um desenvolvedor habilitar os atributos Permitir relatórios ou Permitir atividades em um objeto
personalizado em pacote, a organização do assinante também tem esses recursos habilitados durante uma atualização.
Depois de ativado em um pacote Gerenciado - Liberado, o desenvolvedor e o assinante não podem desativar esses
atributos.
Substituições de botão e link padrão também podem ser incluídas no pacote.
Tipos de relatório personalizado
O desenvolvedor pode editar um tipo de relatório personalizado em um pacote gerenciado depois de ser liberado, e
adicionar novos campos. Os assinantes recebem automaticamente essas alterações ao instalarem uma nova versão do
pacote gerenciado. No entanto, os desenvolvedores não podem remover objetos ou campos do tipo de relatório depois
de o pacote ser liberado.
Configurações personalizadas
•
Se uma configuração personalizada estiver contida em um pacote gerenciado, e a Visibilidade for especificada
como Protegida, a configuração personalizada não é contida na lista de componentes para o pacote na organização
do assinante. Todos os dados para a configuração personalizada são ocultos do assinante.
Guias personalizadas
•
•
•
O Estilo da guia para uma guia personalizada deve ser único dentro do seu aplicativo. Porém, não precisa ser
único dentro da organização em que está instalado. Um estilo de guia personalizada não entra em conflito com uma
guia personalizada existente no ambiente do instalador.
Para fornecer nomes de guia personalizada em diferentes idiomas, em Configuração, clique em Personalizar >
Rótulos e nomes de guias > Renomear guias e rótulos.
Os assinantes não podem editar guias personalizadas em um pacote gerenciado.
Portal de clientes e Portal do parceiro
Pacotes referindo-se aos campos Portal de clientes ou portal do parceiro são compatíveis. O assinante que instalar o
pacote deve ter o portal respectivo habilitado para instalar o pacote.
Componentes do painel
Os desenvolvedores de pacotes gerenciados devem considerar as implicações de introduzir componentes do painel que
façam referência a relatórios lançados em uma versão anterior do pacote. Se o assinante tiver excluído o relatório ou
movido o relatório para uma pasta pessoal, o componente do painel fazendo referência ao relatório é descartado durante
a instalação. Ainda, se o assinante tiver modificado o relatório, esse relatório pode retornar resultados que afetam as
informações exibidas pelo componente de painel. Como prática recomendada, o desenvolvedor deve liberar um painel e
os relatórios relacionados na mesma versão.
Divisões
•
•
•
Quando as divisões são habilitadas em um objeto personalizado em um pacote, a organização assinante deve ter o
recurso de divisões habilitado para instalar o pacote.
Configurar o filtro de divisão em um relatório não causa uma dependência. A configuração é descartada quando
instalada na organização do assinante.
Resumir pelo campo de divisão de objeto (por exemplo, Divisão da conta) em um relatório, provoca uma dependência.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 36
Se o campo de divisão de objeto em um relatório for incluído em uma coluna, e a organização do assinante não tiver
suporte para divisões no objeto, a coluna é descartada durante a instalação.
Se você instalar um tipo de relatório personalizado que inclua um campo de divisão de objeto, como uma coluna, essa
coluna é descartada se a organização não tiver suporte para divisões.
•
•
Dependências de campo
Desenvolvedores e assinantes podem adicionar, alterar ou remover dependências de campo.
Se o desenvolvedor adicionar uma dependência de campo, ela é adicionada durante a instalação, a menos que o
assinante já tenha especificado uma dependência para o mesmo campo.
Se o desenvolvedor remover uma dependência, essa alteração não é refletida na organização do assinante durante uma
atualização.
Se o desenvolvedor introduzir um novo mapeamento de valor de lista de opções entre os campos dependente e
controlador, o mapeamento é adicionado durante uma atualização.
Se o desenvolvedor remover um mapeamento de valor de lista de opções, a alteração não é refletida na organização
do assinante durante uma atualização.
•
•
•
•
•
Conjuntos de campos
Conjuntos de campo em pacotes instalados realizam diferentes comportamentos de mesclagem durante uma atualização
de pacote:
Se um desenvolvedor de pacote:
Então, na atualização do pacote:
Altera um campo de Indisponível para Disponível para O campo modificado é colocado no fim de um conjunto
conjunto de campos ou No conjunto de campos
de campos atualizado em qualquer coluna a que for
adicionado.
Adiciona um novo campo
O novo campo é colocado no fim de um conjunto de
campos atualizado em qualquer coluna a que for adicionado.
Altera um campo de Disponível para o conjunto de
O campo é removido do conjunto de campos atualizado.
campos ou No conjunto de campos para Indisponível
Altera um campo de No conjunto de campos para
Disponível para o conjunto de campos (ou vice-versa)
A alteração não é refletida no conjunto de campos
atualizado.
Nota: Os assinantes não são notificados das alterações aos seus conjuntos de campos instalados. O desenvolvedor
deve notificar os usuários (por meio de notas de versão do pacote ou outra documentação) sobre quaisquer
alterações aos conjuntos de campos liberados. Mesclagem tem o potencial para remover campos no seu conjunto
de campos.
Quando um conjunto de campos é instalado, um assinante pode adicionar ou remover qualquer campo.
Páginas flexíveis
As exibições de lista não são incluídas automaticamente quando você empacota uma Página flexível, assim como os
objetos personalizados não são referenciados nas propriedades dos componentes da Página Flexível. Você deve adicioná-lo
manualmente.
Fluxos
•
Só é possível incluir fluxos ativos nos pacotes. A versão ativa do fluxo é determinada ao clicar para carregar uma versão
de pacote. O carregamento falha se não houver versões ativas do fluxo.
Arquitetura e desenvolvimento do aplicativo
•
•
•
•
•
•
•
•
•
•
•
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 37
Se desejar atualizar um pacote gerenciado com uma versão diferente do fluxo, ative essa versão e carregue o pacote
novamente. Não é preciso incluir a versão recém-ativada no pacote. No entanto, se você ativar uma versão de fluxo
por engano e carregar o pacote, distribuirá essa versão de fluxo para todos. Não deixe de verificar que versão você
realmente quer carregar.
Em uma organização de desenvolvimento, não se pode excluir um fluxo ou versão de fluxo depois de ter sido carregado
para um pacote gerenciado beta ou liberado.
Não é possível excluir componentes de fluxo de instalações de pacote gerenciadas - beta em organizações de
desenvolvimento.
Não é possível excluir um fluxo de um pacote instalado. Para remover um fluxo empacotado de sua organização,
primeiro é preciso desativá-lo, esperar 12 horas e depois desinstalar o pacote.
Se houver diversas versões de um fluxo instaladas a partir de diversos pacotes não gerenciados, você não poderá
remover apenas uma versão desinstalando seu pacote. Desinstalar um pacote — gerenciado ou não gerenciado —
que contenha uma única versão do fluxo remove todo o fluxo, incluindo todas as versões.
Os fluxos não podem ser incluídos em correções de pacote.
Um fluxo ativo em um pacote ficará ativo assim que instalado. A versão ativa anterior do fluxo na organização de
destino é desativada a favor da versão recém-instalada. Qualquer fluxo em andamento baseado na versão agora
desativada continuará a ser executado sem interrupção, mas refletirá a versão anterior do fluxo.
Atualizar um pacote gerenciado em sua organização instala uma nova versão do fluxo somente se houver uma versão
mais recente do fluxo do desenvolvedor. Após diversas atualizações, você acabará com diversas versões do fluxo.
Se você instalar um pacote contendo várias versões de fluxo em uma nova organização de destino, apenas a versão do
fluxo mais recente incluída no pacote será implementada.
Se você instalar um fluxo de um pacote não gerenciado que tenha o mesmo nome, mas um número de versão diferente
de um fluxo já na sua organização, o fluxo recém-instalado se tornará a versão mais recente do fluxo existente. No
entanto, se um fluxo empacotado tiver o mesmo nome e número de versão de um fluxo já na organização, a instalação
do pacote irá falhar. Não é possível substituir um fluxo.
O Cloud Flow Designer não pode abrir os fluxos instalados de pacotes gerenciados.
Pastas
•
•
•
•
Componentes que o Salesforce armazena em pastas, como documentos, não podem ser adicionados a pacotes quando
armazenados em pastas pessoais e não arquivadas. Coloque documentos, relatórios e outros componentes que o
Salesforce armazena em pastas em uma das suas pastas publicamente acessíveis.
Componentes como documentos, modelos de email, relatórios ou painéis são armazenados em novas pastas na
organização do instalador usando os nomes de pasta do editor. Atribua a essas pastas nomes indicando que são parte
do pacote.
Se um novo relatório, painel, documento ou modelo de email for instalado durante uma atualização, e a pasta contendo
o componente tiver sido excluída pelo assinante, a pasta é recriada. Quaisquer componentes na pasta que tenham
sido anteriormente excluídos não são restaurados.
O nome de um componente contido em uma pasta deve ser único em todas as pastas do mesmo tipo de componente,
excluindo pastas pessoais. Componentes contidos em uma pasta pessoal devem ser únicos apenas dentro da pasta
pessoal.
Componentes da home page
Quando você cria um pacote do layout personalizado da home page, todos os componentes da home page personalizados
incluídos no layout da página são automaticamente adicionados. Componentes padrão, como Mensagens e alertas, não
são incluídos no pacote e não substituem as Mensagens e alertas do instalador. Para incluir uma mensagem no layout
personalizado da home page, crie um componente da guia Inicial personalizado do tipo Área HTML contendo sua
mensagem, em Configuração, em Personalizar > Início > Componentes da home page e adicione-o ao layout da sua
home page.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 38
Layouts de home page
Depois de instalados, os layouts da home page personalizados são listados com todos os layouts de home page do assinantes.
Distinga entre eles incluindo o nome do seu aplicativo no nome do layout da página.
Modos de exibição de listas
Exibições de lista associadas a filas não podem ser incluídas em um pacote.
Multimoedas
•
•
•
•
•
•
Se um assinante instalar um relatório ou tipo de relatório personalizado que inclua um campo de moeda de objeto,
como uma coluna, essa coluna é eliminada se a organização do assinante não estiver habilitada para várias moedas.
Fazer referência ao campo de moeda de um objeto nos critérios de um relatório, por exemplo, Moeda da conta
(Account Currency), causa uma dependência.
Resumir pelo campo de moeda de um objeto em um relatório causa uma dependência.
Usar uma designação de moeda no valor de critérios de um relatório, por exemplo "Receita anual igual à GBP 100",
não causa uma dependência. O relatório gera um erro quando executado na organização dos instaladores se não tiver
suporte para a moeda.
Se o campo de moeda de um objeto em um relatório for incluído como uma coluna e a organização do assinante não
estiver habilitada para várias moedas, essa coluna é eliminada durante a instalação.
Se um assinante instalar um tipo de relatório personalizado que inclua um campo de moeda de objeto, como uma
coluna, essa coluna é eliminada se a organização não estiver habilitada para várias moedas.
Layouts de página
O layout da página da pessoa que carrega um pacote é o layout utilizado por organizações que usam as edições Group e
Professional e torna-se o layout de página padrão para organizações com as edições Enterprise, Unlimited, Performance
e Developer.
Layouts de página devem ser colocados em um pacote junto com tipos de registro complementares se o layout estiver
sendo instalado em um objeto existente. Caso contrário, os layouts da página instalados devem ser aplicados manualmente
a perfis.
Se um layout de página e um tipo de registro forem criados como resultado ao instalar um pacote, a atribuição de layout
da página do usuário realizando o upload para esse tipo de registro é designada para esse tipo de registro para todos os
perfis na organização do assinante, a menos que um perfil seja mapeado durante uma instalação ou atualização.
Conjuntos de Permissões
É possível incluir conjuntos de permissão como componentes em um pacote, com as seguintes permissões e configurações
de acesso:
• Permissões de objeto personalizadas
• Permissões de campo personalizadas
• acesso à classe do Apex
• Acesso à página do Visualforce
Nota: Aplicativos atribuídos e configurações de guia não são incluídos em componentes de conjunto de permissão.
Use conjuntos de permissões para instalar ou atualizar uma coletânea de permissões. Em contraste com configurações
de perfil, conjuntos de permissão não substituem perfis.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 39
Contas pessoais
Pacotes que fazem referência aos campos relacionados a contas pessoais no objeto Conta — por exemplo, É Conta
pessoal (Is Person Account), Nome (First Name), Sobrenome (Last Name) ou Título (Title) —
não podem ser carregados.
Lista de opções
•
•
Os assinantes podem renomear ou excluir valores do campo da lista de opções. Um desenvolvedor deve considerar
cuidadosamente isso ao explicitamente fazer referência a um valor no Apex.
Os valores do campo da lista de opções podem ser adicionados ou excluídos na organização do desenvolvedor. Após
a atualização, nenhum valor novo é instalado. Qualquer valor excluído pelo desenvolvedor ainda está disponível na
organização do assinante até o assinante o excluir.
Configurações do perfil
Configurações de perfil incluem o seguinte para componentes no pacote:
• Aplicativos atribuídos
• Configurações de guia
• Atribuições do layout de página
• Atribuições do tipo de registro
• Permissões de objeto personalizadas
• Permissões de campo personalizadas
• acesso à classe do Apex
• Acesso à página do Visualforce
Configurações de perfil substituem os perfis existentes na organização do instalador por alterações de configuração e
permissão específicas.
Tipos de registro
•
•
•
•
•
•
Se os tipos de registro forem incluídos no pacote, a organização do assinante deve ter suporte para tipos de registro
para instalar o pacote.
Quando um novo valor de lista de opções é instalado, ele é associado a todos os tipos de registro instalados de acordo
com os mapeamentos especificados pelo desenvolvedor. Um assinante pode alterar essa associação.
Fazer referência ao campo de tipo de registro de um objeto nos critérios de um relatório, por exemplo, Tipo de
registro da conta (Account Record Type), causa uma dependência.
Resumir pelo campo de tipo de registro do objeto nos critérios de um relatório, por exemplo, Tipo de registro
da conta (Account Record Type), causa uma dependência.
Se um campo de tipo de registro do objeto for incluído como uma coluna em um relatório, e a organização do assinante
não estiver usando tipos de registro no objeto ou não tiver suporte para tipos de registro, a coluna é eliminada durante
a instalação.
Se você instalar um tipo de relatório personalizado que inclua um campo de tipo de registro do objeto, essa coluna é
eliminada se a organização não tiver suporte para tipos de registro ou o objeto não tiver nenhum tipo de registro
definido.
Relatórios
Se um relatório incluir elementos que não podem ser incluídos em um pacote, esses elementos serão removidos ou
rebaixados, ou o upload do pacote falhará. Por exemplo:
• Detalhamentos de hierarquia são eliminados de relatórios de atividade e oportunidades.
• Filtros em campos que não podem ser colocados em um pacote são automaticamente eliminados (por exemplo, em
filtros em tipos de registro de objeto padrão).
Arquitetura e desenvolvimento do aplicativo
•
•
•
•
Version 29.0 | Comportamento especial dos componentes nos
pacotes | 40
O upload do pacote falha se um relatório incluir lógica de filtro em um campo que não pode ser empacotado (por
exemplo, em filtros em tipos de registro de objeto padrão).
Valores de pesquisa no campo Selecionar campanha dos relatórios de campanha padrão são eliminados.
Relatórios são eliminados de pacotes se tiverem sido movidos para uma pasta privada ou para a pasta de Relatórios
públicos não arquivados.
Quando um pacote é instalado em uma organização que não tem o Chart Analytics 2.0:
◊ Gráficos de combinação são rebaixados, ao invés de eliminados. Por exemplo, um gráfico de colunas vertical de
combinação com uma linha adicionada é rebaixado para um gráfico de coluna vertical simples; um gráfico de
barras de combinação com barras adicionais é rebaixado para um gráfico de barras simples.
◊ Tipos de gráficos incompatíveis, como pizza e funil, são eliminados.
S-Controls
Somente s-controls em pacotes não gerenciados criados antes de 1º de janeiro de 2010 podem ser instalados por assinantes.
Os s-controls foram recusados e são substituídos por páginas do Visualforce na Ajuda do Salesforce.
Workbench de tradução
•
•
•
Se você tiver habilitado o workbench de tradução e adicionado um idioma ao seu pacote, quaisquer valores traduzidos
associados são automaticamente incluídos no pacote para os componentes adequados no seu pacote. Certifique-se
de ter fornecido traduções para todos os componentes possíveis.
Um instalador do seu pacote pode ver que idiomas são compatíveis com a página de detalhes do pacote. O instalador
não precisa habilitar nada para as traduções do idioma incluídas no pacote aparecerem. O único motivo pelo qual os
instaladores podem desejar habilitar o workbench de tradução é alterar as traduções para componentes não gerenciados
após a instalação, substituir traduções de rótulo personalizado em um pacote gerenciado ou traduzir para mais idiomas.
Se você estiver projetando uma extensão de pacote, pode incluir traduções para componentes de extensão, mas não
traduções adicionais para componentes no pacote de base.
Regras de validação
Para objetos personalizados incluídos em um pacote, quaisquer regras de validação associadas são implicitamente incluídas
no pacote também.
Fluxo de trabalho
•
•
•
•
•
O Salesforce o impede de carregar alertas de fluxo de trabalho que tenham um grupo público, usuário parceiro ou
destinatário de papel. Altere o destinatário para um usuário antes de carregar seu aplicativo. Durante a instalação, o
Salesforce substitui esse usuário pelo usuário efetuando a instalação do aplicativo, e o instalador pode personalizá-lo
como julgar necessário.
O Salesforce o impede de carregar atualizações de campo do fluxo de trabalho que mudem um campo de
Proprietário para uma fila. Altere o valor do campo atualizado para um usuário antes de carregar seu aplicativo.
Durante a instalação, o Salesforce substitui esse usuário pelo usuário efetuando a instalação do aplicativo, e o instalador
pode personalizá-lo como julgar necessário.
O Salesforce o impede de carregar regras de fluxo de trabalho, atualizações de campo e mensagens de saída que fazem
referência a um tipo de registro em um objeto padrão ou gerenciado-instalado.
O Salesforce o impede de carregar tarefas de fluxo de trabalho que estejam designadas a um papel. Altere o campo
Atribuído a para um usuário antes de carregar seu aplicativo. Durante a instalação, o Salesforce substitui esse
usuário pelo usuário efetuando a instalação do aplicativo, e o instalador pode personalizá-lo como julgar necessário.
É possível criar um pacote de regras de fluxo de trabalho e todas as ações de fluxo de trabalho associadas, como
atualizações de campo e alertas. Entretanto, qualquer acionador baseado em tempo não é incluído no pacote. Notifique
Arquitetura e desenvolvimento do aplicativo
•
•
•
•
•
Version 29.0 | Componentes protegidos | 41
seus instaladores para configurarem quaisquer acionadores baseados em tempo que sejam essenciais para o seu
aplicativo.
Alertas de fluxo de trabalho, atualizações de campo, mensagens de saída e tarefas podem ser protegidos pelo
desenvolvedor. Para mais informações sobre componentes protegidos, consulte Componentes protegidos na Ajuda
do Salesforce.
Os desenvolvedores podem associar ou desassociar ações do fluxo de trabalho com uma regra de fluxo de trabalho a
qualquer momento. Essas alterações, incluindo desassociação, são refletidas na organização do assinante mediante a
instalação. Em pacotes gerenciados, um assinante não pode desassociar ações de fluxo de trabalho de uma regra de
fluxo de trabalho se a associação tiver sido feita pelo desenvolvedor.
Referências a um usuário específico em ações de fluxo de trabalho, como o destinatário do email de um alerta de
email de fluxo de trabalho, são substituídas pelo usuário instalando o pacote. Ações de fluxo de trabalho fazendo
referência a papéis, grupos públicos, equipe de conta, equipe de oportunidade ou papéis de equipe de caso não podem
ser carregadas.
Referências a um endereço corporativo, como Do endereço de email de um alerta de email de fluxo de trabalho,
são referidas para o Usuário atual durante a instalação.
Na instalação, todas as regras de fluxo de trabalho recém-criadas no pacote instalado ou atualizado têm o mesmo
status de ativação que no pacote carregado.
Componentes protegidos
Os desenvolvedores podem marcar determinados componentes como protegidos. Componentes protegidos não podem ser
vinculados ou fazerem referência a componentes criados na organização do assinante. O desenvolvedor pode excluir um
componente protegido em uma versão futura sem se preocupar com falha nas instalações. Mas assim que o componente for
marcado como desprotegido e lançado globalmente, o desenvolvedor não poderá excluí-lo. Desenvolvedores podem marcar
os seguintes componentes como protegidos nos pacotes gerenciados:
•
•
•
•
•
•
Rótulos personalizados
Links personalizados (somente para a página inicial)
Alertas de fluxo de trabalho
Atualizações de campo do fluxo de trabalho
Mensagens de saída do fluxo de trabalho
Tarefas de fluxo de trabalho
Considerações sobre a arquitetura para Group Edition e
Professional Edition
O CRM da Salesforce é oferecido em cinco camadas, ou edições:
•
•
•
•
•
Group Edition (GE)
Professional Edition (PE)
Enterprise Edition (EE)
Unlimited Edition (UE)
Performance Edition (PXE)
Nota: A Contact Manager Edition (CME) não permite instalações de pacote do AppExchange, então, isso não será
discutido aqui.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Recursos disponíveis na Group Edition e na
Professional Edition | 42
Se você planeja vender seu aplicativo a clientes Salesforce existentes, é importante compreender a diferença entre estas edições,
porque elas afetarão o projeto de seu aplicativo. É conveniente pensar sobre eles em clusters, GE/PE e EE/UE/PXE, porque
as edições em cada cluster têm funcionalidades semelhantes. Por exemplo, talvez você deseje compatibilidade com EE/UE/PXE se
seu aplicativo exigir determinados objetos e recursos que não estão disponíveis em GE/PE. Da mesma forma, em vez de uma
única solução compatível com todas as edições, você pode ter uma oferta em camadas. Esta solução consistiria de uma solução
básica para GE/PE e uma avançada para clientes de EE/UE/PXE que se beneficiam dos recursos adicionais.
As EE/UE/PXE têm a funcionalidade mais robusta. Elas são compatíveis com as licenças de plataforma Force.com, além de
licenças de CRM da Salesforce. Se seu aplicativo não exigir recursos de CRM da Salesforce (como Leads, Oportunidades,
Casos, etc.), as licenças de plataforma do Force.com oferecerão a maior flexibilidade na implantação de seu aplicativo para
usuários que podem normalmente não ser Salesforce. Seu aplicativo ainda está sujeito aos limites de edição e às regras de
empacotamento.
As GE/PE não contêm todas as funcionalidades que podem ser criadas em uma Developer Edition (DE). Portando, um
aplicativo desenvolvido em sua organização da DE talvez não possa ser instalado em uma organização da GE/PE. Se você
estiver projetando um aplicativo para funcionar especificamente nas GE/PE, você deve estar ciente de como estas edições são
diferentes.
Há várias outras considerações a serem levadas em conta ao decidir se será oferecido suporte a estas edições. As licenças de
plataforma do Force.com não podem ser provisionadas nas organizações da GE/PE. Isto significa que somente usuários de
CRM existentes no Salesforce podem usar seu aplicativo. Existem alguns recursos que não estão disponíveis em GE/PE.
Existem várias permissões especiais disponíveis para aplicativos de parceiros qualificados que superam estas limitações.
Consulte as seções a seguir para obter informações sobre recursos disponíveis, limites e outras considerações de projeto.
•
•
•
•
•
•
•
Recursos disponíveis na Group Edition e na Professional Edition
Limites para Group Edition e Professional Edition
Controle de acesso na Group Edition e na Professional Edition
Usando o Apex na Group Edition e na Professional Edition
Acesso à API na Group Edition e na Professional Edition
Projetando seu aplicativo para oferecer suporte a múltiplas edições
Cenários do projeto de amostra
Recursos disponíveis na Group Edition e na Professional Edition
A maneira mais fácil para determinar quais recursos e objetos estão disponíveis em uma determinada edição é por meio da
análise da Tabela de comparação de edições. Também é possível verificar quais edições são compatíveis com um recurso ou
objeto específico por meio da pesquisa na ajuda online. É importante que você verifique estes recursos antes de começar a
projetar seu aplicativo, de forma que você possa tomar uma decisão informada sobre as edições a serem utilizadas. Assim que
terminar de criar seu aplicativo, recomendamos que você teste-o instalando seu pacote em organizações de teste da GE e da
PE para garantir que tudo funcione adequadamente.
A tabela a seguir mostra os principais recursos que estão diferentes entre GE, PE e DE.
Recurso
Group Edition
Professional Edition
Developer Edition
Patrimônios
Não
Com custo adicional
Sim
Campanhas
Não
Sim
Sim
Contratos
Não
Sim
Sim
Previsões
Não
Sim
Sim
Ideias
Não
Sim
Sim
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Limites para Group Edition e Professional
Edition | 43
Recurso
Group Edition
Professional Edition
Developer Edition
Produtos
Não
Sim
Sim
Soluções
Não
Sim
Sim
Tipos de registro
Não
Não
Sim
Conjuntos de Permissões
Não
Não
Sim
Perfis personalizados
Não
Não
Sim
Tipos de relatório personalizado
Não
Sim
Sim
Fluxo de trabalho e aprovações
Não
Com custo adicional
Sim
Código do Apex
Consulte a observação a
seguir
Consulte a observação a
seguir
Sim
Regras de compartilhamento
Não
Sim
Sim
API
Consulte a observação a
seguir
Consulte a observação a
seguir
Sim
Sites
Não
Não
Sim
Nota: Um ID de cliente permite que seu aplicativo use a API para integração com aplicativos compostos. Para obter
mais informações, consulte Usando o Apex na Group Edition e na Professional Edition e Acesso à API na Group
Edition e na Professional Edition.
Limites para Group Edition e Professional Edition
Todas as edições do Salesforce têm limites que restringem o número de aplicativos, objetos e guias que podem ser usados. Para
obter mais detalhes sobre os limites para as várias edições, consulte a Tabela de limites da edição.
Para parceiros inscritos no Programa ISV, todos os pacotes gerenciados postados publicamente no AppExchange não mais
influem negativamente sobre os limites de aplicativos/objetos/guias para sua Salesforce Edition. Isto significa, efetivamente,
que os parceiros ISV não precisam mais se preocupar com as falhas na instalação de pacote nos casos em que os limites de
aplicativos/objetos/guias forem excedidos. Este recurso é automaticamente habilitado depois que seu aplicativo passar pela
aprovação de segurança.
Controle de acesso na Group Edition e na Professional Edition
A GE e a PE não são compatíveis com perfis personalizados nem com segurança no nível do campo. Como resultado, a
segurança no nível do campo também é tratada pelo layout de página para cada objeto. Portanto, quando um cliente instala
seu aplicativo, ele não poderá definir os níveis de acesso de cada perfil e você terá que garantir que seu projeto funcione para
o perfil de usuário padrão. As definições de permissão podem ser instaladas em organizações da GE/PE, mas não podem ser
atualizadas.
Como a segurança no nível do campo é tratada pelo layout de página, todos os campos que você deseja que fiquem visíveis
devem ser adicionados ao layout de página. Isso significa que, para os campos ficarem acessíveis por meio da API ou Visualforce,
eles devem ser adicionados ao layout da página.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Usando o Apex na Group Edition e na
Professional Edition | 44
Usando o Apex na Group Edition e na Professional Edition
Seu aplicativo pode conter uma lógica comercial como classes, acionadores, serviços de e-mail, etc., escritos em Apex. Como
regra geral, o Apex não é compatível com a GE/PE, de forma que não será executado nestas edições. Entretanto, o Apex
desenvolvido como parte de um aplicativo ISV e incluído em um pacote gerenciado pode ser executado em uma GE/PE,
mesmo que estas edições não sejam compatíveis com o Apex por padrão.
Você deve ser um parceiro qualificado no salesforce.com e seu aplicativo precisa passar pela aprovação de segurança. As
permissões apropriadas serão automaticamente habilitadas depois que você passar na aprovação de segurança.
Seguem algumas considerações importantes para o uso do Apex na GE/PE.
•
•
•
•
Os clientes da GE/PE não podem criar ou modificar um Apex em seu aplicativo; eles podem somente executar o Apex
existente.
Seu código Apex não deve depender de recursos e funcionalidade que existam somente nas DE, EE, UE ou PXE, pois seu
aplicativo apresentará falha de instalação.
Lembre-se de usar o REST se você planeja expor um método Apex como um serviço da Web. As classes de Apex que
foram expostas como um serviço da Web SOAP podem ser chamadas por um aplicativo Web externo na GE/PE.
É permitido usar Apex para fazer callouts de serviço Web na GE/PE. Por exemplo, se você planeja fazer uma callout do
serviço Web para um serviço Web externo, contanto que o pacote gerenciado seja autorizado, estas classes funcionarão na
GE/PE.
Acesso à API na Group Edition e na Professional Edition
O acesso à API normalmente não é compatível em organizações da GE/PE. Entretanto, depois que seu aplicativo passar pela
aprovação de segurança, você estará qualificado para usar algumas APIs para criar aplicativos compostos.
•
•
•
•
Atualmente, somente as APIs SOAP e as REST são compatíveis com aplicativos GE e PE. Você também pode solicitar
que um aplicativo conectado seja colocado na lista de aprovados para usar a API REST em organizações da GE ou PE.
Outras APIs como a API de metadados, API em massa e métodos Apex expostas por meio do serviço da Web SOAP
permanecem indisponíveis.
Os serviços da Web baseada em REST podem ser habilitados pela lista de aprovados para consumidores de aplicativos
conectados
Os serviços da Web baseada em SOAP podem ser habilitados por meio de uma chave de API chamada de ID de Cliente,
que precisa ser anexada a seus cabeçalhos do SOAP nas chamadas de integração. Esta chave especial possibilita que seu
aplicativo faça chamadas sucessivas para uma GE/PE, mesmo que o cliente não tenha acesso à API.
O ID de cliente tem estas propriedades.
1. Você não pode usar o ID de cliente com o kit de ferramentas de AJAX em um JavaScript, S-controls ou em qualquer
aplicativo personalizado em que seu valor seja exposto ao cliente final.
2. Para fins de desenvolvimento, as organizações da GE/PE criadas por meio do Portal do parceiro não precisam de ID de
cliente.
3. O ID de cliente somente concederá acesso GE/PE para a API SOAP, não para a API de metadados. A API de metadados
permite que você crie dinamicamente vários componentes que você normalmente cria na Configuração (Setup). Por exemplo,
a criação dinâmica de um campo personalizado não é possível em uma GE/PE mesmo com a chave de API.
Esta tabela mostra quais APIs são acessíveis quando usar a GE/PE e o método de acesso.
API
Acesso à GE/PE
Serviços da Web (SOAP)
Sim, com chave
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Acessando a API REST na Group Edition e
na Professional Edition | 45
API
Acesso à GE/PE
Métodos Apex expostos como serviços da Web (SOAP)
Não
Serviços da Web (REST)
Sim, com a lista de permissões do consumidor de aplicativos
conectados
Métodos Apex expostos como serviços da Web (REST)
Sim, com a lista de permissões do consumidor de aplicativos
conectados
API REST do Chatter
Sim
API de metadados
Não
API em massa
Não
Ferramenta do Data Loader (usa os serviços da Web SOAP)
Não, não é possível definir a chave
Acessando a API REST na Group Edition e na Professional Edition
A API REST do Force.com oferece uma API de serviço Web eficiente, conveniente e simples para interagir com o Force.com.
Parceiros qualificados podem solicitar que o salesforce.com para habilitar seu aplicativo para chamadas de API REST para
organizações da GE/PE. Para obter acesso à API REST, você deve atender a estas condições.
•
•
•
Acessar o Portal do Parceiro – Se você for novo, aprenda sobre os Programas do Parceiro ISV e junte-se a eles.
Ser aprovado na aprovação de segurança – Todos os aplicativos inscritos no AppExchange e/ou no Programa OEM devem
passar por uma aprovação de segurança periódica.
Acessar a Salesforce Developer Edition – Se você ainda não tem acesso a uma organização da DE, você pode obter a Partner
Developer Edition no Portal do Parceiro.
Para solicitar a chave de API REST:
1. Crie um novo aplicativo conectado em sua organização da DE. Faça login no salesforce.com com sua conta de desenvolvedor,
em Configuração, clique em Criar > Aplicativos (Create Apps), e clique em Novo (New) na seção Aplicativos conectados
(Connected Apps).
Nota: Recomendamos seriamente que você faça isso em uma organização que continuará usando por muito tempo,
como aquela em que você cria pacotes gerenciados ou na sua Organização de gerenciamento do Trialforce (TMO).
2. Insira as informações solicitadas e clique em Salvar (Save). Salvar seus aplicativos dá a você a Chave do consumidor e o
Segredo do consumidor que o aplicativo usa para se comunicar com o Salesforce.
3. Envie um caso no Portal do Parceiro e forneça seu ID da organização da DE e as credenciais para seu aplicativo conectado.
Nós avaliaremos sua solicitação e habitaremos a permissão apropriada. Depois de fazer isso, enviaremos a você uma notificação
de caso. Espere por 24 horas para se certificar de que a permissão esteja completamente ativada. Sua client_id (ou Chave do
consumidor) e client_secret (Segredo do consumidor) serão confrontados com as informações que você enviou por meio do
caso durante a autenticação OAuth. Se elas combinarem, o sistema permitira que você se comunique com GE/PE.
Nota:
•
•
Esta permissão é destinada somente à API REST. Ela não habilita seu aplicativo a usar a API Serviços Web
SOAP, API em massa, API de metadados, etc. na GE/PE.
Esta permissão é aplicada somente ao seu aplicativo. Nós não ativamos a API na organização da GE/PE.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Projetando seu aplicativo para oferecer suporte
a múltiplas edições | 46
Projetando seu aplicativo para oferecer suporte a múltiplas edições
A compatibilidade com várias edições oferece a oportunidade de liberar versões mais completas de seu aplicativo que sejam
compatíveis com recursos mais avançados em EE, UE e PXE. Existem duas tecnologias que podem ser aproveitadas para
compatibilidade com várias edições. A primeira abordagem usa pacotes de extensão e a segunda aproveita o Apex dinâmico.
Há benefícios para ambas, então, não deixe de analisar ambas as estratégias antes de projetar seu aplicativo.
Suporte a várias edições usando um pacote de extensão
Esta abordagem usa um pacote gerenciado de base que contém a funcionalidade central do aplicativo. O pacote de base contém
somente recursos compatíveis na GE/PE. Você usa, então, um segundo pacote gerenciado ou um pacote de extensão, que
amplia e aprimora o pacote de base. O pacote de extensão adiciona mais recursos compatíveis com a EE/UE/PXE. Por exemplo,
você tem um aplicativo de armazenamento que rastreia o estoque, assim como uma extensão para este aplicativo que inclui um
fluxo de trabalho (que não está disponível para Group). Seus clientes com Group e Professional Edition podem instalar o
aplicativo de armazenamento de base, enquanto seus outros clientes instalam o pacote de base para, depois, instalar o pacote
de extensão com os componentes do fluxo de trabalho.
Figura 14: Usando um pacote de base e de extensão para oferecer suporte a várias edições
A utilização de pacotes de extensão habilita você a evitar vários conjuntos de código e a fazer venda agregada para seus clientes.
A atualização de um cliente requer somente a instalação do pacote de extensão.
Aqui se encontra o processo para criação de um pacote de extensão.
1. Crie seu pacote gerenciado de base que otimiza os recursos compatíveis com GE/PE.
2. Instale seu pacote gerenciado de base em uma organização da DE separada.
3. Nesta organização, crie seu pacote de extensão que inclui funcionalidades adicionais compatíveis com GE/PE. Você pode
fazer referência ao pacote gerenciado de base para evitar a duplicação de funcionalidade. Qualquer componente que faça
referência ao pacote gerenciado de base acionará automaticamente este pacote para ser um pacote de extensão.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Suporte a várias edições usando o Apex
dinâmico | 47
Como seu pacote de extensão depende do pacote de base, é importante projetar seu aplicativo e as interfaces entre os pacotes.
Por exemplo, se o pacote de extensão precisa chamar uma classe Apex no pacote de base, você deve se certificar de que a classe
Apex desejada foi transformada em uma classe global.
Também é importante considerar todo o ciclo de vida do aplicativo. Por exemplo, se você deseja adicionar novos recursos, eles
devem ser incluídos no pacote apropriado. As atualizações para o pacote de base não devem interromper o pacote de extensão.
Suporte a várias edições usando o Apex dinâmico
Ao usar o Apex dinâmico, o SOQL dinâmico e o DML dinâmico, é possível criar um pacote gerenciado para todas as edições
para as quais você deseja oferecer suporte sem precisar usar pacotes de extensão. O comportamento de seu aplicativo pode
alterar dinamicamente com base nos recursos disponíveis em sua edição do cliente. Isto é útil ao projetar um aplicativo com o
objetivo de oferecer suporte a várias edições.
Certifique-se de que o Apex, os fluxos de trabalho, etc. em seu pacote não contenha nenhuma referência fortemente tipificada
para um recurso não compatível com GE/PE. Isto pode incluir a adição de um campo personalizado ou de um objeto padrão
não compatível, como campanhas, ou fazer uma referência do Apex a recursos como várias moedas ou gerenciamento de
território. Quando fizer referência a um recurso em seu pacote não compatível com GE/PE, esta dependência do pacote causará
uma falha na instalação.
Em vez disso, se você usar Apex dinâmico para verificar se estes recursos estão disponíveis antes de fazer referência a eles, você
poderá instalar seu pacote gerenciado na GE/PE. A peça importante a ser considerada é que você deve codificar seu Apex
dinâmico de tal forma que ele possa oferecer suporte em ambos os casos. Isso garante que, se seu cliente não tiver um recurso
ou objeto específico, seu aplicativo ainda funcionará.
Os cenários do projeto de amostra para as Group Edition e Professional
Edition
Aqui se encontram alguns cenários para ajudar você a compreender quando e como criar na GE/PE.
Cenário 1: Você deseja criar um aplicativo que usa tipos de registros e fluxo de trabalho.
Como os tipos de registro e o fluxo de trabalho são recursos não encontrados na GE nem na PE, você precisará decidir
se deseja a compatibilidade com GE/PE. Considerando que você queira, será possível criar um pacote gerenciado de
base que não inclua tipos de registro nem fluxo de trabalho. Depois de carregar este pacote gerenciado em um estado
liberado, você poderá instalá-lo em outra organização da DE para começar a criar a extensão. Sua extensão pode adicionar
tipos de registro de fluxos de trabalho que serão instalados e aproveitados pelos clientes de EE, UE e PXE.
Cenário 2: Você deseja criar um aplicativo com 80 objetos personalizados e 25 guias personalizadas.
Normalmente, isso apresentaria um problema para GE e PE por causa do limite de seus objetos e guias. Entretanto, se
você disponibilizar seu aplicativo no AppExchange, isso não contará para objetos personalizados, guias nem limites de
aplicativo. Dessa forma, mesmo que seu aplicativo tenha 80 objetos personalizados e 25 guias personalizadas, ele será
instalado e funcionará normalmente na GE e na PE.
Cenário 3: Você deseja criar um aplicativo que faz callouts do Apex para um serviço Web.
Geralmente, o Apex não pode ser executado em GE/PE, mas, se você obtiver seu pacote gerenciado autorizado durante
a aprovação de segurança, seu Apex será executado conforme o esperado. Dessa forma, para este cenário, você constrói
sua callout do Apex para seu serviço Web externo e, em seguida, inclui esta classe em seu pacote.
Cenário 4: Você deseja criar um aplicativo que aproveita Campanhas.
De maneira semelhante ao cenário 1, por padrão, as Campanhas são um recurso compatível com GE ou PE. A PE tem
a opção de comprar Campanhas como complemento, mas, para este cenário, você tem duas opções.
Arquitetura e desenvolvimento do aplicativo
•
•
Version 29.0 | Noções básicas sobre dependências | 48
Opção 1 - Crie um pacote gerenciado de base que não tenha Campanhas de referência. Depois de concluído, carregue
e instale em outra organização da DE para criar a funcionalidade de Campanha como um pacote de extensão. Agora,
seus clientes GE e PE (sem Campanhas) podem instalar a base, enquanto o resto também pode instalar a extensão
para obter recursos adicionais.
Opção 2 - Isso pode demandar somente um pacote, caso você esteja usando Apex dinâmico como única referência
para Campanhas, conforme descrito acima. Garanta que seu pacote não inclua um campo personalizado na Campanha.
Seu aplicativo pode, então, ser instalado na GE ou em uma edição superior e, se a Campanha estiver em sua edição
de cliente, seu Apex dinâmico poderá manipular as Campanhas conforme esperado.
Cenário 5: Você deseja criar um aplicativo composto em que você recebe chamada de API de entrada.
Você tem um aplicativo hospedado separado que você deseja integrar com o Salesforce, de forma que você precisará fazer
chamadas de API para clientes com GE/PE. Por padrão, não será possível, mas se você for um parceiro qualificado,
poderá solicitar uma chave de API especial que permite que suas chamadas SOAP se integrem ao GE/PE. Você apenas
precisará incorporar o ID do cliente no cabeçalho SOAP de seu código externo.
Noções básicas sobre dependências
Dependências de pacote são criadas quando um componente faz referência a outro componente, permissão ou preferência que
é exigido para que o componente seja válido. O Force.com rastreia determinadas dependências, inclusive:
•
•
•
Dependências organizacionais, como se multimoedas ou campanhas estiverem ativadas
Dependências específicas do componente, como determinados tipos de registro ou divisões existirem
Referências a objetos ou campos padrão e personalizados
Pacotes, classes do Apex, acionadores do Apex, componentes do Visualforce e páginas do Visualforce, podem ter dependências
em componentes de uma organização. Essas dependências são registradas na página Mostrar dependências.
As dependências são importantes para os pacotes, pois qualquer dependência em um componente de pacote é considerada
como sendo de todo o pacote.
Nota: A organização de instalação deve atender a todos os requisitos de dependência relacionados na página Mostrar
dependências; caso contrário, haverá falha na instalação. Por exemplo, a organização de instalação deve ter divisões
ativadas para instalar um pacote que faça referência às divisões.
As dependências são importantes para as classes ou acionadores do Apex, já que todo componente do qual uma classe ou um
acionador depende deve ser incluído na classe ou acionador quando o código é implantado ou inserido no pacote.
Além das dependências, o escopo operacional também aparece na página Mostrar dependências. O escopo operacional é uma
tabela que relaciona todas as operações de linguagem de manipulação de dados (DML, data manipulation language), como
insert ou merge, que o Apex executa em determinado objeto. É possível usar o escopo operacional na instalação de um
aplicativo para determinar a extensão total das operações de banco de dados desse aplicativo.
Para exibir as dependências e o escopo operacional de um pacote, a classe do Apex, o acionador do Apex ou a página do
Visualforce:
1. Navegue até o componente apropriado em Configuração:
•
•
•
•
•
Para os pacotes, clique em Criar > Pacotes.
Para as classes do Apex, clique em Desenvolver > Classes do Apex.
Para os acionadores do Apex em objetos padrão, clique em Personalizar, depois, no nome do objeto e em Acionadores.
Para os acionadores do Apex em objetos personalizados, clique em Criar, depois, no nome do objeto e em Acionadores.
Para as páginas do Visualforce, clique em Desenvolver > Páginas.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Criando aplicativos em pacote com o Chatter
| 49
2. Selecione o nome do componente.
3. Clique em Exibir dependências para um pacote, ou Mostrar dependências para todos os outros componentes, a fim de
visualizar uma lista de objetos que dependem do componente selecionado.
Se uma lista de objetos dependentes for exibida, clique em Campos para acessar os detalhes de campo do escopo operacional.
Os detalhes de campo incluem informações, como por exemplo se o campo foi atualizado pelo Apex. Para obter mais informações,
consulte Escopo operacional do campo na Ajuda do Salesforce.
Pacotes, códigos do Apex e páginas do Visualforce podem ser dependentes em vários componentes, incluindo, sem a eles se
limitar, os seguintes:
•
•
•
•
•
•
Definições de campo personalizado
Fórmulas de validação
Relatórios
Tipos de registro
Apex
Páginas e componentes do Visualforce
Por exemplo, se uma página do Visualforce incluir uma referência a um campo multimoedas, como {!contract.ISO_code},
essa página do Visualforce terá uma dependência sobre multimoedas. Se o pacote tiver essa página do Visualforce, também
terá uma dependência sobre multimoedas. Qualquer organização que queira instalar esse pacote deverá ter a opção multimoedas
ativada.
Criando aplicativos em pacote com o Chatter
Os objetos, as configurações de campo e o histórico das configurações de campo do Chatter são empacotáveis. Entretanto,
um campo de objeto somente é rastreado se o próprio objeto for rastreado. Por exemplo, é possível criar um novo campo
personalizado no objeto padrão da conta, mas o campo somente será rastreado se você habilitar o rastreamento de feed nas
contas.
Ao desenvolver aplicativos que usam o Chatter, é importante estar ciente de que algumas organizações podem não ter o Chatter
habilitado. Por padrão, quando você carrega aplicativos do Chatter, o pacote somente está disponível para organizações que
têm o Chatter habilitado. Você pode alterar este comportamento e permitir que as organizações instalem o pacote, mesmo
que elas não tenham o Chatter. Observe o seguinte:
•
•
•
Você deve usar um pacote gerenciado. Pacotes não gerenciados que incluem a funcionalidade do Chatter somente podem
ser instalados em organizações que tenham o Chatter habilitado.
As operações de chamada DML, SOSL e SOQL acionarão uma exceção de execução se a organização do assinante não
tiver o Chatter habilitado. Você deve capturar e tratar todas as exceções do Apex geradas como resultado de um recurso
ausente do Chatter. Estas exceções são do tipo REQUIRED_FEATURE_MISSING_EXCEPTION para chamadas de SOSL e
SOQL. Para chamadas DML, você deve procurar pelo código de status REQUIRED_FEATURE_MISSING específico em
uma exceção de DML.
Quando você carregar o pacote, desmarque a caixa de seleção necessária para o Chatter (ela é automaticamente selecionada
se você tiver uma referência do Apex para o Chatter).
Nota: Se a caixa de seleção necessária para o Chatter puder ser desmarcada, algum componente no pacote tem
uma exigência específica para o Chatter. Isto pode acontecer, por exemplo, se você empacotar um tipo de relatório
personalizado que depende do Chatter. Se a caixa de seleção necessária para o Chatter puder ser desabilitada, o
pacote somente poderá ser instalado em organizações que tenham o Chatter habilitado.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Correspondendo à aparência do Salesforce | 50
O exemplo a seguir tenta publicar em um feed e obter um feed de usuário. Se o Chatter não estiver habilitado na organização,
o código captura a exceção REQUIRED_FEATURE_MISSING. Observe que este é um exemplo de código incompleto e não
pode ser executado.
public void addFeedItem(String post, Id objId) {
FeedItem fpost = new FeedItem();
// Get the parent ID of the feed
fpost.ParentId = objId;
fpost.Body = post;
try{
insert fpost;
} catch (System.DmlException e) {
for (Integer i = 0; i < e.getNumDml(); i++) {
// Chatter not endabled, do not insert record
System.assertEquals(StatusCode.REQUIRED_FEATURE_MISSING, e.getDmlType(i));
System.Debug('Chatter not enabled in this organization:' + e.getDMLMessage());
}
}
}
public List<NewsFeed> getMyFeed() {
List<NewsFeed> myfeed;
try{
myfeed = [SELECT Id, Type, CreatedById, CreatedBy.FirstName,CreatedBy.LastName,
CreatedDate, ParentId, Parent.Name,FeedItemId, Body,
Title, CreatedById, LinkUrl,
(SELECT Id, FieldName, OldValue, NewValue
FROM FeedTrackedChanges ORDER BY Id DESC),
(SELECT Id, CommentBody, CreatedDate, CreatedById,
CreatedBy.FirstName, CreatedBy.LastName
FROM FeedComments ORDER BY CreatedDate DESC, ID DESC LIMIT 10)
FROM NewsFeed
ORDER BY CreatedDate DESC, ID DESC LIMIT 20];
} catch(System.RequiredFeatureMissingException e){
// The above has returned an empty NewsFeed
// Chatter is not enabled in this organization
myfeed = new List<NewsFeed>{};
System.Debug('Chatter not enabled in organization:' + e.getMessage());
}
return myfeed;
}
Correspondendo à aparência do Salesforce
Os aplicativos que lembram a aparência da interface de usuário do Salesforce são instantaneamente mais familiares aos usuários
e fáceis de usar. A maneira mais fácil para modelar o projeto de seu aplicativo para se parecer com a interface de usuário do
Salesforce é usar o Visualforce. Quando você usa um controlador padrão com uma página do Visualforce, sua nova página
assume o estilo da guia padrão do objeto associado no Salesforce. Para obter mais informações, consulte Usando estilos do
Salesforce no Visualforce Developer's Guide (Guia do desenvolvedor do Visualforce).
Desenvolvendo documentação de aplicativo
O Salesforce recomenda que você publique seu aplicativo no AppExchange com os seguintes tipos de documentação:
Opção Configurar
É possível incluir uma opção Configurar para os instaladores. Essa opção pode se vincular a detalhes de instalação e
configuração, como:
• Provisionar o serviço externo de um aplicativo composto
• Personalizar configurações dos aplicativos
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Criação de configurações de perfil
personalizadas | 51
A opção Configurar está incluída no seu pacote como um link personalizado. Você pode criar um link personalizado
para seus layouts de home page e adicioná-lo ao seu pacote.
1. Crie um link personalizado para um URL que contenha informações de configuração ou uma página do Visualforce
que implemente a configuração. Ao criar seu link personalizado, defina as propriedades de exibição para Abrir em
uma janela pop-up separada de modo que o usuário retorne à mesma página do Salesforce quando terminar.
2. Ao criar o pacote, escolha esse link personalizado no campo Configurar link personalizado de seu pacote
de detalhes.
Folha de dados
Fornece aos instaladores as informações fundamentais necessárias sobre o aplicativo antes de fazer a instalação.
Guia de personalização e aprimoramento
Permita que os instaladores saibam o que será necessário personalizar após a instalação como parte da implementação.
Ajuda personalizada
Se preferir, você pode fornecer ajuda personalizada para seus registros de objeto personalizados e campos personalizados.
Criação de configurações de perfil personalizadas
Ao projetar seu aplicativo para o AppExchange, crie perfis personalizados para vários usuários de seu aplicativo. Dê a cada
perfil personalizado o nível adequado de acesso ao seu aplicativo, tais como visibilidade de guia ou configurações de segurança
em nível de campo para campos de aprovação em objetos personalizados. Use as seguintes dicas para a criação de perfis
personalizados para os aplicativos que você deseja publicar:
•
•
•
•
Dê a cada perfil personalizado um nome significativo que torna óbvio que o perfil se aplica ao aplicativo. Por exemplo, se
você estiver criando um aplicativo de Recursos Humanos, com o nome de "HR2GO", talvez queira nomear um perfil
personalizado "HR2GO Approving Manager" para os gestores que aprovam solicitações.
Se os seus perfis personalizados têm uma hierarquia, certifique-se de que o nome indica onde o perfil está na hierarquia.
Por exemplo, o perfil de um gerente de nível sênior pode ter o nome de “HR2GO Level 2 Approving Manager”.
Evite dar seus nomes de perfis personalizados que possam ser interpretados de forma diferente em outras organizações.
Por exemplo, “HR2GO Level 2 Approving Manager” é um nome de perfil mais adequado do que “Sr. Manager.”
O perfil Descrição (Description) é exibido para o usuário que está instalando seu aplicativo. Forneça uma descrição
significativa para cada perfil personalizado para estes usuários.
Quando empacotar um aplicativo, será possível incluir seus perfis personalizados. As configurações do perfil são aplicadas a
perfis existentes na organização do assinante em instalar ou atualizar. Somente se aplicam as permissões relacionadas a novos
componentes criados como parte da instalação ou atualização. As configurações de segurança associadas a objetos padrão e
objetos personalizados existentes na organização do instalador não são afetadas.
De outra forma, é possível usar os conjuntos de permissão para evitar substituir permissões em perfis de assinante e a manter
o controle das configurações de permissões em todos os processos de atualização. Os conjuntos de permissão contêm um
subconjunto das configurações de acesso de perfil, incluindo permissões de objeto, permissões de campo, acesso de classe Após
e página de acesso do Visualforce. Essas permissões são as mesmas que estão disponíveis nos perfis. É possível adicionar um
conjunto de permissão como componente em um pacote.
Nota: Em pacotes, as configurações atribuídas a aplicativos e guias não estão incluídas nos componentes do conjunto
de permissões.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Sobre conjuntos de permissões e configurações
do perfil | 52
Sobre conjuntos de permissões e configurações do perfil
Os desenvolvedores podem usar conjuntos de permissões ou configurações de perfil para conceder permissões e outras
configurações de acesso a um pacote. Ao decidir se irá usar conjuntos de permissão, configurações de perfil, ou uma combinação
de ambos, considere as similaridades e as diferenças.
Comportamento
Conjuntos de Permissões
Quais permissões e configurações estão •
incluídas?
•
•
•
Permissões de objeto personalizadas
Permissões de campo personalizadas
acesso à classe do Apex
Acesso à página do Visualforce
Configurações do perfil
•
•
•
•
•
Nota: Os conjuntos de
permissões incluem aplicativos •
•
atribuídos e configurações de
•
guia, mas essas configurações
não podem ser empacotadas
como componentes de
conjuntos de permissões.
Aplicativos atribuídos
Configurações de guia
Atribuições do layout de página
Atribuições do tipo de registro
Permissões de objeto personalizadas
Permissões de campo personalizadas
acesso à classe do Apex
Acesso à página do Visualforce
Eles podem ser atualizados em pacotes
gerenciados?
Sim.
As configurações do perfil são aplicadas
a perfis existentes na organização do
assinante em instalar ou atualizar.
Somente se aplicam as permissões
relacionadas a novos componentes criados
como parte da instalação ou atualização.
Os assinantes podem editá-las?
Os assinantes podem editar conjuntos de Sim.
permissões em pacotes não gerenciados,
mas não em pacotes gerenciados.
Você pode cloná-los ou criá-los?
Sim. Entretanto, se um assinante clonar
um conjunto de permissões ou criar um
que seja baseado em um conjunto de
permissões em pacote, ele não será
atualizado em atualizações subsequentes.
Somente os conjuntos de permissão
incluídos no pacote são atualizados.
Eles incluem permissões de objeto
padrão?
Não. Além disso, você não pode incluir Não.
permissões de objeto em um objeto
personalizado que se encontre em um
relacionamento entre mestre e detalhes
no qual o mestre é um objeto padrão.
Eles incluem permissões do usuário?
Não.
Não.
Eles estão incluídos no assistente de
instalação?
Não. Os assinantes devem atribuir
conjuntos de permissões após a
instalação.
Sim. As configurações do perfil são
aplicadas a perfis existentes na
organização do assinante em instalar ou
atualizar. Somente se aplicam as
permissões relacionadas a novos
componentes criados como parte da
instalação ou atualização.
Sim. Os assinantes podem clonar
qualquer perfil que incluam permissões
e configurações relacionados a
componentes em pacote.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Visão geral de aplicativos conectados | 53
Comportamento
Conjuntos de Permissões
Configurações do perfil
Quais são os requisitos de licença do
usuário?
Um conjunto de permissões é instalado
somente se uma organização do assinante
tiver pelo menos uma licença do usuário
que corresponda ao conjunto de
permissões. Por exemplo, os conjuntos
de permissões com a licença de usuário
do Salesforce Platform não estão
instalados em uma organização que não
tenha licenças de usuário do Salesforce
Platform. Se um assinante adquirir
posteriormente uma licença, eles devem
reinstalar o pacote e obter conjuntos de
permissões associados à licença
recentemente adquirida.
Nenhuma. Em uma organização do
assinante, a instalação substitui as
configurações de perfil, não as suas
licenças de usuário.
Os conjuntos de permissões sem licença
de usuário sempre são instalados. Se você
atribuir um conjunto de permissões sem
licença de usuário, todas as suas
configurações e permissões ativadas
devem ser autorizadas pela licença do
usuário ou a atribuição falhará.
Como eles são atribuídos aos usuários?
Os assinantes devem atribuir conjuntos As configurações do perfil são aplicadas
de permissão em pacote após a instalação a perfis existentes.
do pacote.
Práticas recomendadas
•
•
•
Use conjuntos de permissões juntamente com perfis de pacotes para que os assinantes possam adicionar facilmente novas
permissões para usuários de aplicativos existentes.
Se os usuários precisarem de acesso a aplicativos, guias, layouts de página e tipos de registros, não utilize os conjuntos de
permissões como único modelo de concessão de permissão para o seu aplicativo. Configurações de aplicativo e de guia
atribuídas estão disponíveis na interface do usuário do conjunto de permissões, mas não estão incluídos em componentes
de pacote de conjunto de permissões.
Crie conjuntos de permissão empacotados que concedam acesso aos componentes personalizados de um pacote, mas não
aos componentes padrão do Salesforce.
Visão geral de aplicativos conectados
Permissões necessárias ao usuário
Para gerenciar aplicativos:
“Personalizar aplicativo”
Para exibir aplicativos:
“Exibir configuração”
Um aplicativo conectado é um aplicativo que se integra à salesforce.com usando APIs. Os aplicativos conectados usam protocolos
SAML e OAuth padrão para autenticar, fornecer login único e chaves de segurança para uso com APIs do Salesforce. Além
de recursos OAuth padrão, os aplicativos conectados permitem aos administradores definir várias políticas de segurança e ter
controle explícito sobre quem pode usar os aplicativos.
Os aplicativos conectados começam quando um desenvolvedor define os metadados de OAuth sobre o aplicativo, incluindo:
Arquitetura e desenvolvimento do aplicativo
•
•
•
•
Version 29.0 | Criando um Aplicativo conectado | 54
Informações básicas de descrição e contato para o aplicativo conectado
Escopos de OAuth e URL de callback do aplicativo conectado
Faixas opcionais de IP em que o aplicativo conectado pode estar em execução
Informações opcionais sobre políticas móveis que o aplicativo conectado pode aplicar
Por sua vez, o desenvolvedor recebe um ID de cliente do OAuth e segredo do cliente para o aplicativo conectado. O desenvolvedor
pode então empacotar o aplicativo e fornecê-lo a um administrador do Salesforce.
Há dois modos de implementação:
•
•
O aplicativo é criado e usado na mesma organização. Esse é um caso de uso típico para departamentos de TI, por exemplo.
O aplicativo é criado em uma organização e instalado em outras organizações. É assim que uma entidade com várias
organizações ou um ISV usa aplicativos conectados.
Os administradores podem instalar o aplicativo conectado em sua organização e usar perfis, conjuntos de permissões e restrições
de faixa de IP para controlar que usuários podem acessar o aplicativo. O gerenciamento é feito a partir de uma página de
detalhes do aplicativo conectado. Os administradores também podem desinstalar o aplicativo conectado e instalar uma versão
mais recente. Quando o aplicativo é atualizado, o desenvolvedor pode notificar os administradores de que há uma nova versão
dele disponível.
Nota: Os pacotes gerenciados pelo Salesforce, como aqueles dos aplicativos móveis do Chatter, não podem ser
desinstalados. Eles são atualizados automaticamente quando a próxima sessão do usuário é atualizada.
Criando um Aplicativo conectado
Execute as seguintes etapas para criar um aplicativo conectado:
1. Em Configuração, clique em Criar > Aplicativos.
2. Na seção Aplicativos conectados, clique em Novo.
As informações necessárias para criar um aplicativo conectado estão divididas nas seguintes partes:
•
•
•
•
•
Informações básicas
API (Ativar as Configurações do OAuth)
Configurações de aplicativo da Web
Configurações de aplicativo móvel
Configurações de aplicativo de telas
Quando você terminar de inserir as informações, clique em Salvar para salvar seu novo aplicativo. Agora você pode publicar
seu aplicativo, fazer outras edições ou excluí-lo. Se estiver usando OAuth, salvar seu aplicativo lhe dá dois novos valores que
o aplicativo usa para se comunicar com o Salesforce:
•
Chave do consumidor: Um valor usado pelo consumidor para se identificar ao Salesforce. Chamado de client_id
em OAuth 2.0.
•
Segredo do consumidor: Um segredo usado pelo consumidor para estabelecer a propriedade da chave do consumidor.
Chamado de client_secret em OAuth 2.0.
Informações básicas
Especifique as informações básicas do seu aplicativo nesta seção, incluindo o nome dele, o logotipo e as informações de contato.
1. Digite o Nome de aplicativo conectado. Esse nome é exibido na lista de aplicativos conectados.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Criando um Aplicativo conectado | 55
Nota: O nome deve ser completamente exclusivo em sua organização. Não é possível reutilizar um nome existente
ou o nome de um aplicativo conectado excluído.
2. Digite o Nome da API usado ao fazer referência ao seu aplicativo a partir de um programa. Ele retorna a uma versão do
nome sem espaços. Apenas letras, números e sublinhados são permitidos. Será necessário editar o nome padrão se o nome
original do aplicativo contiver qualquer outro caractere.
3. Forneça o Email de contato que a salesforce.com deve usar para entrar em contato com você ou sua equipe de suporte.
Esse endereço não será fornecido aos administradores que instalarem o aplicativo.
4. Forneça o Telefone de contato que a salesforce.com deve usar caso precise entrar em contato com você. Esse número
não será fornecido aos administradores que instalarem o aplicativo.
5. Digite uma URL da imagem de logotipo para exibir seu logotipo na lista de aplicativos conectados e na página de
consentimento que os usuários veem ao autenticar. O URL deve usar HTTPS, e o logotipo não pode ser maior que 125
pixels de altura ou 200 pixels de largura. O logotipo padrão é uma nuvem. É possível selecionar um logotipo entre as
amostras fornecidas clicando em Escolha um dos logotipos de exemplo (Choose one of our sample logos). Os logotipos
dos aplicativos salesforce.com, dos aplicativos de terceiros e dos organismos de padronização estão entre os disponíveis.
6. Digite uma URL do ícone para exibir um logotipo na página de aprovação do OAuth que os usuários veem quando usam
seu aplicativo pela primeira vez. O logotipo deve ter 16 pixels de altura e largura, com um plano de fundo branco. Os
logotipos de exemplo também estão disponíveis para ícones.
7. Se houver uma página da Web com mais informação sobre seu aplicativo, forneça uma URL de informações.
8. Digite uma Descrição para ser exibida na lista de aplicativos conectados.
Antes de Winter ‘14, a URL de início e a URL do início móvel eram definidas nessa seção. Esses campos agora se
encontram em Configurações de aplicativo da Web e Configurações de aplicativo móvel, abaixo.
API (Ativar as Configurações do OAuth)
Essa seção controla como seu aplicativo se comunica com o Salesforce. Selecione Ativar configurações OAuth para
definir as configurações de autenticação.
1. Digite a URL de callback (ponto final) que o Salesforce chama no seu aplicativo durante o OAuth. Trata-se do
redirect_uri no OAuth.
2. Se estiver usando o fluxo de OAuth JWT, selecione Usar assinaturas digitais. Se o aplicativo usar um certificado,
clique em Escolher arquivo e selecione o arquivo de certificado.
3. Adicione todos os escopos de OAuth suportados em Escopos OAuth selecionados. Esses escopos referem-se às
permissões dadas pelo usuário que executa o aplicativo conectado e são seguidos pelos seus nomes de chave de segurança
do OAuth entre parênteses:
Valor
Descrição
api
Permite o acesso à conta do usuário atual conectado usando APIs, como a API REST e a
API em massa. Esse valor também inclui a chatter_api, que permite o acesso aos recursos
da API REST do Chatter.
chatter_api
Permite acesso somente aos recursos da API REST do Chatter.
full
Permite o acesso a todos os dados acessíveis pelo usuário conectado. full não retorna uma
chave de atualização. Você deve solicitar explicitamente o escopo refresh_token para
obter uma chave de atualização.
id
Permite acesso somente ao serviço de URL de identidade.
refresh_token
Permite que um token de atualização seja retornado caso seja elegível para receber um.
visualforce
Permite acesso às páginas do Visualforce.
web
Permite a capacidade de usar o access_token na Web. Também inclui o visualforce,
que permite o acesso às páginas do Visualforce.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Criando um Aplicativo conectado | 56
Se sua organização selecionou a opção Nenhuma aprovação do usuário necessária para usuários nesta
organização em seu acesso remoto antes da versão Spring ’12, os usuários da mesma organização em que o aplicativo foi
criado ainda têm aprovação automática para o aplicativo. A caixa de seleção de somente leitura Nenhuma aprovação do
usuário necessária para usuários nesta organização é selecionada para mostrar essa condição. Para aplicativos
conectados, o procedimento recomendado depois de criar um aplicativo é os administradores o instalarem e, em seguida,
configurarem Usuários autorizados como Usuários aprovados pelo administrador. Se a opção de acesso
remoto não foi marcada originalmente, a caixa de seleção não será exibida.
Configurações de aplicativo da Web
Digite uma URL de início para que seu aplicativo direcione os usuários para um local específico depois da autenticação.
Se a URL de início não for fornecida, os usuários serão direcionados para a página de início padrão do aplicativo após a
conclusão da autenticação. Se o aplicativo conectado criado for um aplicativo de tela, não será preciso inserir um valor para
esse campo. O campo URL do aplicativo de tela contém o URL que é chamado para o aplicativo conectado.
Se seu aplicativo conectado usar um provedor de serviço SAML, selecione Ativar SAML. Digite ID da entidade, URL
do ACS, Tipo de assunto, Formato do ID do nome e Emissor, disponíveis por meio do seu provedor de serviço.
Selecione Certificado do provedor de serviços se ele lhe forneceu um certificado de segurança. Navegue no sistema
do certificado. Isso será necessário somente se você planejar iniciar o login no Salesforce pelo provedor de serviços, e o provedor
de serviços assinar suas próprias solicitações de SAML.
Importante: Se você fizer upload de um certificado, todas as solicitações de SAML deverão estar assinadas. Se
nenhum certificado for carregado, todas as solicitações de SAML serão aceitas.
Configurações de aplicativo móvel
Se o seu for um aplicativo móvel, insira a URL do início móvel para encaminhar os usuários para um local específico
quando o aplicativo for acessado a partir de um dispositivo móvel. Se não for inserida a URL do início móvel, os usuários
serão enviados à URL de início definida nas Configurações de aplicativo da Web. Se o aplicativo conectado criado for um
aplicativo de tela, não será preciso inserir um valor para esse campo. O campo URL do aplicativo de tela contém o URL que
é chamado para o aplicativo conectado.
A proteção por PIN é aplicada automaticamente pelo SDK do Salesforce Classic (http://developer.force.com/mobilesdk).
Você também pode implementá-la manualmente lendo o objeto mobile_policies a partir da URL de identidade do usuário.
Se o seu aplicativo impuser isso, selecione a Proteção por Pin para dar ao administrador a opção de definir o tempo limite
da sessão e o tamanho do PIN para os aplicativos móveis após a instalação do aplicativo conectado.
Nota: Se você remover a integração móvel a partir de uma nova versão de um aplicativo conectado existente, a
integração móvel não estará mais incluída em nenhuma versão do aplicativo conectado. Por exemplo, imagine a
publicação de um pacote contendo a versão 1.0 do seu aplicativo conectado com integração móvel. Em seguida, remova
a integração móvel do aplicativo, embale-o novamente e publique-o como versão 1.1. Se um cliente instalar o pacote
anterior com a versão 1.0 nesse ponto, a versão 1.0 do aplicativo conectado não conterá a integração móvel.
Configurações de aplicativo de telas
1. Se o seu aplicativo conectado for exposto como aplicativo de tela, selecione Tela do Force.com.
2. Digite a URL do aplicativo da tela no aplicativo de terceiro. O usuário é direcionado a esse URL quando clica no
link para o seu aplicativo de tela.
3. Selecione um Método de acesso. Isso especifica como o aplicativo de tela inicia o fluxo de autenticação OAuth.
•
Solicitação assinada (POST): A autenticação OAuth é usada, mas quando o administrador instala o aplicativo
de tela, ele permite acesso para usuários implicitamente. Então, o usuário não será solicitado a permitir que o terceiro
acesse suas informações de usuário. Quando você usa esse método de acesso, a autenticação é publicada diretamente
no URL do aplicativo de tela.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Editando, empacotando ou excluindo um
aplicativo conectado | 57
Se seu aplicativo de tela usa autenticação por solicitação assinada, certifique-se de não selecionar Fazer solicitações
em seu nome a qualquer momento em Escopos OAuth selecionados. A autorização de solicitação assinada
nunca retorna uma chave de atualização, mesmo se esse valor de campo for selecionado.
•
OAuth Webflow (GET): A autenticação OAuth é usada, e o usuário recebe a solicitação de permitir que o aplicativo
de terceiro acesse suas informações. Quando você usa esse método de acesso, o aplicativo de tela deve iniciar o fluxo de
autenticação de OAuth.
4. Em Locais, selecione o local onde o aplicativo de tela aparece para os usuários.
Nota: Algumas opções não aparecem em todas as organizações. O suporte para aplicativos de Tela do Force.com
no editor e no feed de Chatter está disponível atualmente por meio de um programa piloto em todas as novas
organizações com a edição Development. Para obter informações sobre como ativá-lo para sua organização, entre
em contato com salesforce.com.
•
•
•
•
•
•
Feed do Chatter: O aplicativo de tela pode aparecer como item de feed do Chatter.
Guia Chatter: O aplicativo de tela é exibido na lista de navegação de aplicativos, na guia Chatter.
CTI aberta: O aplicativo de tela aparece na ferramenta de controle de chamadas. Se essa opção for selecionada, será
preciso especificar o aplicativo de tela no arquivo de definição de seu centro de atendimento para que ele apareça.
Editor: O aplicativo de tela pode aparecer como ação de editor global.
Console do Salesforce: O aplicativo de tela aparece no rodapé ou nas barras laterais de um console do Salesforce.
Se essa opção for selecionada, será preciso escolher o local onde o aplicativo de tela aparece no console adicionando-o
como componente de console personalizado.
Página do Visualforce: O aplicativo de tela pode ser exibido em uma página do Visualforce. Se você adicionar
um componente <apex:canvasApp> para expor um aplicativo de tela em uma página do Visualforce, certifique-se
de selecionar esse local para o aplicativo de tela. Caso contrário, você receberá um erro.
5. Selecione Criar ações automaticamente a fim de criar uma ação global para seu aplicativo de tela. Para criar uma
ação global para o aplicativo de tela, selecione Editor em Local. Caso contrário, não serão criadas ações globais. Também
é possível criar a ação manualmente mais tarde.
Editando, empacotando ou excluindo um aplicativo conectado
Após criar um aplicativo conectado, você pode editá-lo, empacotá-lo ou excluí-lo. Os aplicativos conectados têm nomes
exclusivos e não podem ser reutilizados, mesmo que um aplicativo seja excluído da sua organização.
Editando um Aplicativo conectado
É possível atualizar um aplicativo conectado a qualquer momento. Em Configuração, clique em Criar > Aplicativos. Clique
em um Nome de aplicativo conectado na lista para abrir a página de detalhes do aplicativo. Clique em Editar para abrir a
página de edição onde é possível fazer alterações. Salve suas alterações clicando em Salvar.
Depois de criar o aplicativo, especifique as faixas de IP clicando em Novo e em Faixas de IP. Os intervalos de IP funcionam
com OAuth, não com SAML, e especificam os endereços que podem acessar o aplicativo sem precisar de autenticação do
usuário. Insira um endereço IP válido no campo Endereço IP de início e um endereço IP superior no campo Endereço IP de
término. Pode-se inserir várias faixas descontínuas, clicando em Novo para inserir cada faixa. Depois que o aplicativo é
instalado, o administrador de cada organização pode aprovar ou ignorar os intervalos definindo restrições de IP.
Depois de criar o aplicativo, especifique os atributos personalizados clicando em Novo em Atributos personalizados. Use
atributos personalizados para especificar os metadados de SAML ou parâmetros de OAuth que são lidos no tempo de execução
do OAuth. Cada atributo personalizado deve ter uma chave exclusiva e usar campos disponíveis no menu Inserir campo. Os
administradores podem substituir os atributos personalizados.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Instalando um Aplicativo conectado | 58
Empacotando um aplicativo conectado
Após a criação de um aplicativo conectado ou de uma nova versão de um aplicativo existente, embale-o para disponibilizá-lo
aos usuários em outras organizações do Salesforce. É possível adicionar um aplicativo conectado a um pacote gerenciado da
mesma forma e juntamente com outros componentes, como objetos personalizados, páginas do Visualforce ou classes do Apex.
Isso facilita a distribuição de um aplicativo conectado para outras organizações do Salesforce. Como componente que pode
ser empacotado, os aplicativos conectados também podem tirar proveito de todos os outros recursos de pacotes gerenciados,
como listagem no AppExchange, upgrade automático, scripts de Apex pós-instalação, gerenciamento de licenças e suporte
aprimorado ao assinante.
Nota: Só se pode embalar um aplicativo conectado em uma organização da Edição Developer.
Excluindo um Aplicativo conectado
Para excluir um aplicativo conectado, clique no Nome de aplicativo conectado na lista de aplicativos. Clique em Excluir na
página de edição e confirme clicando novamente em Excluir. Embora o aplicativo seja removido da sua lista, não é possível
reutilizar o nome dele.
Se um aplicativo conectado incluído em um pacote for excluído, ele permanecerá disponível até o pacote ser atualizado.
Instalando um Aplicativo conectado
Você instala um aplicativo conectado instalando um pacote gerenciado que inclui o aplicativo conectado como um componente.
Nota: Os aplicativos conectados criados antes do Summer ’13 podem ser instalados por meio de uma URL de
instalação, enquanto o aplicativo conectado não estiver atualizado. Depois que o desenvolvedor carregar um pacote
com a versão atualizada do aplicativo conectado, a URL não funcionará mais.
Exibindo detalhes de aplicativo conectado
A página Detalhes do Aplicativo Conectado (Connected App Detail) mostra informações sobre o aplicativo conectado, inclusive
sua versão e escopos. Nela, é possível editar e verificar o uso do aplicativo conectado e associar perfis e permissões ao aplicativo.
•
•
•
•
Clique em Edit (Editar) para fazer alterações no aplicativo na página Editar aplicativo conectado (Edit Connected App).
Clique em Fazer download de metadados (Download Metadata) para fazer o download dos metadados do provedor de
serviços específico para sua configuração. Este botão aparece somente se sua organização estiver habilitada como um
provedor de identidade e somente com os aplicativos conectados que usam SAML.
Clique em Exibir uso do OAuth para ver o relatório de uso dos aplicativos conectados na sua organização.
Clique em Gerenciar perfis para selecionar os perfis do aplicativo na página de Atribuição do perfil do aplicativo. Selecione
os perfis que terão acesso ao aplicativo.
Importante: Esta opção não será exibida caso a política OAuth para Usuários autorizados esteja definida como
Todos os usuários podem conceder autorização a si mesmo porque esta opção não é necessária
quando os usuários puderem conceder autorização a si mesmo.
•
Clique em Gerenciar conjuntos de permissões para selecionar os conjuntos de permissões dos perfis para esse aplicativo
na página de Atribuição do perfil do aplicativo. Selecione os conjuntos de permissões que terão acesso ao aplicativo.
Importante: Esta opção não será exibida caso a política OAuth para Usuários autorizados esteja definida como
Todos os usuários podem conceder autorização a si mesmo porque esta opção não é necessária
quando os usuários puderem conceder autorização a si mesmo.
Arquitetura e desenvolvimento do aplicativo
•
Version 29.0 | Gerenciando um aplicativo conectado | 59
Clique em Novo em Atributos SAML do provedor de serviços para criar novos pares de valor/chave de atributo. Também
é possível editar ou excluir os atributos existentes.
Somente os usuários pertencentes a pelo menos um dos perfis ou conjuntos de permissão selecionados podem executar o
aplicativo se a opção Usuários aprovados pelo administrador (Admin-approved users) estiver selecionada
para o valor Usuários autorizados (Permitted Users) na página Editar aplicativo conectado (Connected App Edit).
Se em vez disso você selecionar Todos os usuários, os perfis e conjuntos de permissões serão ignorados.
Gerenciando um aplicativo conectado
Para exibir e atualizar as propriedades de um aplicativo conectado, localize o aplicativo em Configuração, em Gerenciar
aplicativos > Aplicativos conectados e clique em Editar ao lado dele. Para exibir e atualizar os detalhes do aplicativo, clique
no nome dele.
Nota: As sessões são atualizadas automaticamente em intervalos que variam de 15 minutos a 12 horas, enquanto o
usuário está no aplicativo, dependo do Valor do tempo limite de sessão definido para sua organização, o que
muitas vezes não é detectado pelo usuário.
Editando um Aplicativo conectado
A página Editar aplicativo conectado permite editar as configurações e permissões de um aplicativo conectado
Siga estas etapas para editar as configurações de um aplicativo conectado.
1. Em Configuração, clique em Gerenciar aplicativos > Aplicativos conectados.
2. Clique em Editar ao lado do nome do aplicativo que deseja modificar. (Para revisar as informações sobre um aplicativo na
página Detalhes do aplicativo conectado, clique no nome do aplicativo.)
•
As políticas do OAuth estão disponíveis para qualquer aplicativo conectado.
◊ Usuários autorizados determina quem pode executar o aplicativo.
-
-
Todos os usuários podem se autoautorizar: Padrão. Qualquer um na organização pode conceder
autorização a si mesmo no aplicativo. Isso significa que cada usuário deve aprovar o aplicativo da primeira vez que
o acessar.
Os usuários aprovados pelo administrador são pré-autorizados: O acesso é limitado aos usuários
com o perfil ou conjunto de permissões especificado, mas eles não precisam aprovar o aplicativo antes de poder
acessá-lo. Gerencie perfis do aplicativo editando a lista Acesso a aplicativo conectado de cada perfil. Gerencie
conjuntos de permissões do aplicativo editando a lista Aplicativos conectados atribuídos de cada conjunto de
permissões.
Nota: Se você trocar de Todos os usuários podem conceder autorização a si mesmos para
Usuários aprovados pelo administrador estão pré-autorizados, qualquer um que atualmente
utiliza o aplicativo perderá seu acesso, a menos que pertença a um conjunto de permissões ou perfil especificado
para o aplicativo.
◊ Restrições de IP refere-se às restrições de IP às quais os usuários do aplicativo conectado estão sujeitos. Um
administrador pode optar por aplicar ou ignorar essas restrições, escolhendo uma das seguintes opções.
-
Impor restrições de IP: Padrão. Um usuário que executa esse aplicativo está sujeito a restrições de IP da
-
organização, como faixas de IP definidas no perfil do usuário.
Reduzir restrições de IP com o segundo fator: Um usuário que executa esse aplicativo ignora as
restrições de IP da organização se qualquer uma destas condições for verdadeira:
Arquitetura e desenvolvimento do aplicativo
-
Version 29.0 | Monitoramento de uso de um Aplicativo
conectado | 60
O aplicativo tem faixas de IP incluídas na lista aprovada e está usando o fluxo de autenticação do OAuth no
servidor da Web. Apenas as solicitações recebidas dos IPs na lista aprovada são permitidas.
O aplicativo não tem lista de faixa de IP aprovada, está usando o servidor da Web ou o fluxo de autenticação de
OAuth do agente do usuário e o usuário conclui com sucesso a Confirmação de identidade.
Reduzir restrições de IP: Um usuário que executa esse aplicativo conectado não está sujeito a quaisquer
restrições de IP.
◊ Exigir que os usuários efetuem login especifica a frequência com que o usuário precisa efetuar login para
manter as permissões que seu aplicativo de cliente precisa do aplicativo conectado. Você pode especificar que eles
precisam efetuar login apenas da primeira vez que usarem o aplicativo, toda vez que o usarem, depois de certo período
de inatividade ou após determinado período.
◊ As permissões atuais do aplicativo conectado também são listadas aqui.
Se seu aplicativo conectado for um aplicativo de tela que usa autenticação de solicitação assinada, certifique-se de:
◊ Definir Usuários autorizados para Usuários aprovados pelo administrador estão
pré-autorizados.
◊ Defina Exigir que os usuários efetuem login para Na primeira vez em que usarem esse
aplicativo.
◊ Forneça acesso por meio de conjuntos de permissão e perfis aos usuários.
•
•
Política de nível de sessão está disponível para todos os aplicativos conectados. Selecione a Sessão de alta garantia exigida
para obrigar os usuários a inserir uma chave de segurança com base no tempo durante o login para acessar o aplicativo.
Informações básicas estão disponíveis para todos os aplicativos conectados. Porém, se o seu aplicativo for um aplicativo de
tela, esses valores de campo não serão usados. Em vez disso, o URL do aplicativo de tela especificado quando o aplicativo
conectado foi criado é usado.
◊ URL inicial é usado se o aplicativo conectado usa login único. Nesse caso, defina o URL da página onde o usuário
inicia o processo de autenticação. Essa localização também aparecerá no menu do alternador do aplicativo.
◊ URL do início móvel é usada para direcionar os usuários a um local específico quando o aplicativo é acessado a
partir de um dispositivo móvel.
•
As configurações de aplicativo móvel estão disponíveis para aplicativos conectados móveis que impõem a proteção por PIN.
◊ Tempo limite da sessão especifica quanto tempo pode passar com o aplicativo inativo antes de o aplicativo
bloquear a si mesmo e exigir o PIN antes de continuar. Os valores permitidos são nenhum (sem bloqueio), 1, 5, 10 e
30 minutos.
◊ Tamanho do Pin define o comprimento do número de identificação enviado para uma confirmação de autenticação.
O comprimento pode ser de 4 a 8 dígitos.
•
Os atributos personalizados estão disponíveis para todos os aplicativos conectados. Os desenvolvedores podem definir
metadados de SAML personalizado ou atributos de OAuth personalizados para o aplicativo conectado. Os administradores
podem excluir ou editar esses atributos. Os administradores também podem incluir atributos personalizados adicionais.
Os atributos excluídos, editados ou adicionados por administradores substituem os atributos definidos pelos desenvolvedores.
Monitoramento de uso de um Aplicativo conectado
Permissões necessárias ao usuário
Para gerenciar aplicativos:
“Personalizar aplicativo”
Para exibir aplicativos:
“Exibir configuração”
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Desinstalando um Aplicativo conectado | 61
Para exibir as informações sobre o uso de aplicativos conectados na organização, em Configuração, clique em Gerenciar
aplicativos > Uso de OAuth em aplicativos conectados. Aparece uma lista de aplicativos conectados e informações sobre
cada um deles.
Aplicativo conectado
O nome do aplicativo. Os aplicativos conectados que foram instalados, mas que não foram utilizados por ninguém, não
aparecem na lista.
Exibir informações do aplicativo
Clique em Exibir informações do aplicativo para acessar a página de detalhes do aplicativo conectado. Como opção, se
o aplicativo conectado ainda não estiver instalado, clique em Instalar.
Contagem de usuários
O número de usuários que executaram o aplicativo. Clique na Contagem de usuários para ver informações sobre cada
usuário, incluindo:
• Quando eles usaram o aplicativo pela primeira vez
• A última vez que usou o aplicativo
• O número de vezes que usou o aplicativo
Na página Uso do usuário de aplicativo conectado, você pode encerrar o acesso de um usuário à sessão atual, clicando na
ação Revogar na fila daquela pessoa. Ou clique no botão Revogar tudo na parte superior da página para efetuar logout
de todos os que estão usando o aplicativo conectado.
Ação
Clique em Bloquear para encerrar todas as sessões de usuário atuais com o aplicativo conectado e bloquear todas as novas
sessões. O bloqueio de um aplicativo não é permanente. Você pode clicar em Desbloquear para permitir que os usuários
efetuem login e acessem o aplicativo em outro momento.
Desinstalando um Aplicativo conectado
Para remover um aplicativo conectado da sua organização, desinstale o pacote do qual o aplicativo faz parte.
Nota: Quando um aplicativo conectado é desinstalado, as chaves de acesso e de atualização de todos os usuários do
aplicativo são removidas. Isso impede que um usuário execute o aplicativo mais tarde, usando uma chave de acesso
existente, sem aprovar explicitamente o aplicativo ele mesmo.
Sobre o WSDL do parceiro
O WSDL de serviços Web do parceiro é usado para aplicativos de cliente que são voltados para metadados e que têm natureza
dinâmica. Ele é especialmente (mas não exclusivamente) útil para parceiros salesforce.com que estão criando aplicativos de
cliente para várias organizações. Como existe representação da identificação de tipos fraca dos modelos de dados do Salesforce
que trabalham com pares de nome-valor e valores em vez de tipos de dados específicos, ela pode ser usada para acessar dados
dentro de qualquer organização. Este WSDL é mais apropriado para desenvolvedores ou clientes que podem acionar uma
chamada de consulta para obter informações sobre um objeto antes de o cliente agir sobre o objeto. O documento de WSDL
do parceiro só precisa ser baixado e consumido uma vez por versão da API.
Para obter mais informações sobre o WSDL do parceiro, consulte Usando o WSDL do parceiro no SOAP API Developer's
Guide (Guia do desenvolvedor da API SOAP).
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Trabalhando com serviços externos | 62
Trabalhando com serviços externos
Talvez você deseje atualizar os seus dados no Salesforce quando ocorrerem alterações em outro serviço. Da mesma forma,
talvez você deseje atualizar os dados em outro serviço (fora do Salesforce) com base nas alterações de seus dados do Salesforce.
O Salesforce oferece maneiras de fazer ambas as transações. Por exemplo, talvez você queira enviar um e-mail em massa para
mais contatos e leads do que o Salesforce permite. Para fazer isso, você pode usar um serviço de correio externo que permite
aos usuários criar uma lista de destinatários com nomes e endereços usando as informações de contato e de lead em sua
organização do Salesforce.
Um aplicativo criado na plataforma Force.com pode se conectar a um serviço externo de várias maneiras diferentes. Por exemplo:
•
•
•
É possível criar um link personalizado ou um campo de fórmula personalizado que passe as informações para um serviço
externo.
É possível usar a API do Force.com para transferir dados para dentro e para fora do Salesforce.
É possível usar uma classe Apex que contenha um método para serviço Web..
Antes de qualquer página do Visualforce, callout do Apex ou código JavaScript usando XmlHttpRequest está um s-control
ou botão personalizado possa chamar um site externo, esse site precisa ser registrado na página de configurações de site remoto
ou ocorrerá falha na chamada. Para obter mais informações sobre registro de componentes, consulte Definindo configurações
remotas na Ajuda do Salesforce.
Cuidado: Não armazene nomes de usuário e senhas em nenhum serviço externo.
Provisionamento de serviços externos
Se seu aplicativo se vincula a um serviço externo, os usuários que instalam o aplicativo devem se inscrever para usar o serviço.
Forneça acesso em uma destas duas maneiras:
•
•
Acesso para todos os usuários ativos na organização sem nenhuma necessidade real para identificar um indivíduo.
Acesso feito pelo usuário em que a identificação individual é importante.
O serviço do Salesforce oferece dois IDs globalmente exclusivos para suporte a essas opções. O ID do usuário identifica um
indivíduo e é único em todas as organizações. Os IDs de usuário nunca são reutilizados. Da mesma forma, o ID da organização
identifica unicamente a organização.
Evite usar endereços de e-mail, nomes da empresa e nomes de usuário do Salesforce quando fornecer acesso a um serviço
externo. Os nomes de usuário podem mudar com o tempo e os endereços de e-mail e os nomes de empresa podem ser duplicados.
Se você está fornecendo acesso a um serviço externo, recomendamos o seguinte:
•
•
•
•
Use técnicas de login único (SSO) para identificar novos usuários quando eles usam seu serviço.
Para cada ponto de entrada em seu aplicativo, como o link personalizado ou guia da Web, inclua o ID do usuário na string
de parâmetros. Faça com que seu serviço examine o ID do usuário para garantir que ele não pertença a um usuário conhecido.
Inclua um ID de sessão na string de parâmetros, de forma que seu serviço possa ser lido por meio da API do Force.com e
garanta que este usuário esteja em uma sessão ativa e seja autenticado.
Ofereça um serviço externo para todos os usuários conhecidos. Para usuários novos, exiba uma página alternativa para
coletar as informações necessárias.
Não armazene senhas para usuários individuais. Além dos riscos óbvios à segurança, muitas organizações reiniciam senhas
regularmente, o que exige que o usuário atualize a senha também em seu sistema. Recomendamos projetar seu serviço
externo para usar o ID de usuário e o ID de sessão para autenticar e identificar usuários.
Arquitetura e desenvolvimento do aplicativo
•
Version 29.0 | Protegendo sua propriedade intelectual | 63
Se seu aplicativo exigir atualizações síncronas depois da expiração da sessão do usuário, dedique uma licença de usuário
administrador diferente para isso.
Protegendo sua propriedade intelectual
Os detalhes de seus objetos personalizados, links personalizados, relatórios e todos os outros itens instalados são completamente
revelados aos instaladores. Embora isso permita que um instalador analise um aplicativo e todos os seus componentes quanto
a conteúdo mal intencionado, ele também impede que os desenvolvedores protejam algumas propriedades intelectuais.
As seguintes informações são importantes ao considerar sua propriedade intelectual e sua proteção.
•
•
•
•
•
Somente componentes do pacote publicados que são de sua propriedade intelectual e para os quais você tem direito de
compartilhamento.
Quando os componentes estiverem disponíveis no AppExchange, você não poderá chamá-los novamente de ninguém que
os tenha instalado.
As informações nos componentes incluídos em um pacote e publicados devem ser visíveis para clientes. Tenha cuidado ao
adicionar seu código a uma fórmula, página do Visualforce, ou qualquer outro componente que não possa ocultar no seu
aplicativo.
O código contido em uma classe ou acionador do Apex que é parte do pacote gerenciado é automaticamente ofuscado e
não pode ser visualizado em uma organização realizando a instalação. As únicas exceções são os métodos declarados como
globais, o que significa que as assinaturas de método podem ser visualizadas em uma organização executando a instalação.
Se uma configuração personalizada estiver contida em um pacote gerenciado, e a Visibilidade for especificada como
Protegida, a configuração personalizada não é contida na lista de componentes para o pacote na organização do assinante.
Todos os dados para a configuração personalizada são ocultos do assinante.
Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
Para conectar uma organização ao Hub de ambiente:
“Conectar organização ao Hub de ambiente”
O Hub de ambiente permite exibir, conectar, criar e efetuar login em várias organizações do Salesforce a partir de um local.
Isso pode ser especialmente útil se você usar um grande número de organizações de negócios, desenvolvimento e testes.
É necessário escolher uma organização como o Hub de ambiente (ou organização de hub) e, em seguida, conectar todas as
suas outras organizações (ou organizações membro) ao hub. Você pode estabelecer o login único entre as organizações de hub
e membro, permitindo aos usuários alternar facilmente entre elas sem ter de fornecer credenciais de login.
Ao conectar uma organização ao hub, as organizações relacionadas são descobertas automaticamente, para que não seja preciso
conectá-las manualmente. Os seguintes tipos de organizações relacionadas são descobertos automaticamente.
•
•
•
•
No caso de qualquer organização, todas as organizações do sandbox criadas a partir dela.
No caso de uma organização de liberação, todas as organizações de correção relacionadas a ela.
No caso de uma Organização de gerenciamento do Trialforce, todas as Organizações de origem do Trialforce criadas a
partir dela.
No caso de uma Organização de gerenciamento de licenças (LMO), ou seja, uma organização que possui o Aplicativo de
gerenciamento de licenças instalado, qualquer organização de liberação (e, portanto, todas as suas organizações de correção
associadas) que possua um pacote gerenciado registrado na LMO.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Configurando o Hub de ambiente | 64
Para acessar o Hub de ambiente:
1. No menu do Aplicativo Force.com, clique em Hub de ambiente.
2. Clique na guia Hub de ambiente.
Nota: Para descobrir a organização de hub de qualquer organização membro, em Configuração, clique em Perfil da
empresa > Informações da empresa. O ID da organização central está listado na seção Detalhes da organização.
A página principal do Hub de ambiente exibe uma lista de todas as organizações membro conectadas ao hub. Para cada
organização, são exibidos o nome, a descrição, a edição, o ID da organização, o status de login único e outros detalhes. Na
guia Hub de ambiente, é possível executar as seguintes ações.
•
•
•
•
•
•
Clique em Conectar organização para adicionar outra organização.
Clique em Criar organização para criar uma nova organização.
Clique no nome de qualquer organização para exibir detalhes sobre ela, incluindo outras organizações relacionadas.
Clique em Editar ao lado da organização para atualizar seus detalhes.
Clique em Excluir ao lado da organização para excluí-la do Hub de ambiente.
Clique em Login ao lado de uma organização para efetuar login nela. Caso você já ativou o login único para essa organização,
poderá se conectar sem fornecer credenciais de login.
Se você tiver adicionado um grande número de organizações ao Hub de ambiente, poderá se concentrar em organizações de
um tipo específico, por exemplo, organizações de desenvolvimento ou aquelas criadas após determinada data. Para criar um
modo de exibição personalizado, clique em Criar novo modo de exibição no topo da página. Você pode filtrar as organizações
com base em vários critérios, como edição, data de criação, instância, origem, status de SSO, e assim por diante.
Cada organização membro corresponde a um objeto EnvironmentHubMember. Esse é um objeto padrão, semelhante a Contas
ou Contatos. Assim, você pode utilizar todas as funcionalidades da plataforma Force.com para estender ou modificar o Hub
de ambiente por meio da interface do usuário ou da API. Por exemplo, você pode criar campos personalizados, configurar
regras de fluxo de trabalho ou definir mapeamentos de usuário e ativar o login único usando a API, para qualquer organização
membro.
Configurando o Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
Execute estas etapas para configurar o Hub de ambiente pela primeira vez.
1. Escolha qual organização você deseja usar como sua organização de hub. Essa deve ser a organização em que a maioria dos
funcionários efetua login regularmente.
2. Configurar e implantar Meu domínio para sua organização de hub. Esse é um requisito para ativar o Hub de ambiente.
3. Entre em contato com o suporte da salesforce.com para que o Hub de ambiente seja ativado na sua organização de hub.
4. Depois que o recurso estiver ativado, efetue login na sua organização de hub por meio da URL de Meu domínio.
5. Edite perfis ou conjuntos de permissões para atribuir aos usuários acesso a recursos específicos do Hub de ambiente.
a.
b.
c.
d.
Em Configuração, clique em Gerenciar usuários > Perfis.
Clique em Editar ao lado do perfil apropriado.
Selecione as configurações que deseja ativar na página de edição de perfil.
Clique em Salvar.
Esta tabela resume as configurações para o Hub de ambiente na página de edição de perfil.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Configurando o Hub de ambiente | 65
Seção de perfil
Configurações do Hub de ambiente
Configurações dos aplicativos
personalizados
Ative o aplicativo personalizado de Hub de ambiente, para que esteja disponível
no menu do aplicativo Force.com.
Acesso ao aplicativo conectado
O aplicativo conectado do Hub de ambiente é apenas para uso interno e não
precisa ser ativado para os perfis.
Acesso ao provedor de serviços
Uma nova entrada aparece automaticamente aqui sempre que o login único estiver
ativado em uma organização membro. Ativar o acesso a um provedor de serviço
permite acesso por login único à organização membro correspondente. O provedor
de serviço é chamado "Provedor de serviço [OrganizationID]", onde
[OrganizationID] é o ID da organização membro. Os usuários que não têm
acesso ao provedor de serviço podem ver essa mensagem ao tentar efetuar login
via login único: "O usuário [UserID] não tem acesso ao provedor de serviço
[ServiceProviderID]."
Permissões administrativas
A permissão “Gerenciar o Hub de ambiente” controla os perfis que podem ativar,
criar e editar a configuração de login único para organizações membro. Também
controla quais perfis podem criar novas organizações a partir do hub (por meio
do botão Criar organização).
Permissões gerais do usuário
A permissão “Conectar organização ao Hub de ambiente” controla quais perfis
podem conectar organizações existentes ao Hub de ambiente.
Permissões de objetos padrão
As configurações de “Membros do hub” são usadas para controlar o acesso a
entidades de um membro do Hub de ambiente, como segue:
• Ler: A capacidade de exibir registros de membro de hub existentes.
• Criar: Essa configuração não tem impacto sobre a capacidade de criar registros
de membro de hub. Isso porque a criação do registro é feita conectando-se a
uma organização existente ou criando uma nova organização a partir do Hub
de ambiente.
• Editar: A capacidade de editar vários campos nos registros existentes de
membros de hub (Organização, Descrição, etc.). Note que nem todos os
campos são editáveis, visto que a maioria é gerenciada internamente.
• Excluir: A capacidade de "desconectar" uma organização do hub e excluir
seu registro correspondente de membro de Hub de ambiente e registro de
provedor de serviços (se o SSO tiver sido ativado no Membro).
• Exibir tudo: A capacidade administrativa de ler todos os registros de membros
de hub, independentemente de quem os criou.
• Modificar tudo: A capacidade administrativa de ler, editar e excluir todos os
registros de membros de hub, independentemente de quem os criou.
Além disso, as configurações “Convites do hub” são usadas para gerenciar a
conexão de organizações com o Hub de ambiente. Ao ativar a permissão
“Conectar organização ao Hub de ambiente”, Criar, Ler, Atualizar e Excluir
também devem ser ativados para o objeto Convites do hub. Caso contrário, ele
poderá ser desativado com segurança.
6. Defina os mapeamentos de usuário para configurar que usuários devem ter acesso por login único às organizações de
membros específicos. Para encontrar detalhes, consulte: Ativando o login único e Definindo um mapeamento de usuário
de SSO.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Configurando Meu domínio para o Hub de
ambiente | 66
Depois de serem concluídas as etapas acima, qualquer usuário com o perfil adequado poderá acessar o Hub de ambiente clicando
em Hub de ambiente no menu Aplicativo. Os tipos de ações que o usuário pode executar no Hub de ambiente dependerão
das configurações no perfil desse usuário.
Configurando Meu domínio para o Hub de ambiente
Permissões necessárias ao usuário
Para configurar um nome de domínio:
“Personalizar aplicativo”
Meu domínio deve estar totalmente funcional em sua organização antes que o Hub de ambiente possa ser ativado. Execute
estas etapas para configurar e implantar Meu domínio.
1. Encontre um nome de domínio que esteja disponível e inscreva-se para ele.
a.
b.
c.
d.
e.
Em Configuração, clique em Gerenciamento de domínio > Meu domínio.
Informe o nome do subdomínio que você deseja usar dentro do URL de exemplo. Você pode usar até 40 caracteres.
Clique em Verificar disponibilidade. Se o seu nome já tiver sido selecionado, escolha um diferente.
Clique em Termos e condições para revisar o seu contrato, em seguida, selecione a caixa de seleção.
Clique em Registrar domínio.
Você receberá um email quando o seu nome de domínio estiver pronto para a avaliação. Isso pode levar de 10 minutos a
24 horas.
2. Teste seu nome de domínio e implemente-o em toda sua organização.
a. Em Configuração, clique em Gerenciamento de domínio > Meu domínio e depois em Clique aqui para fazer login
ou então clique na URL no e-mail de confirmação, efetue login no Salesforce usando seu novo nome de domínio.
b. Teste o novo nome de domínio clicando nas guias e links dentro do seu aplicativo. Você notará que todas as páginas
mostram seu novo nome de domínio. Se você tiver personalizado a UI do Salesforce com recursos como botões
personalizados ou páginas do Visualforce, certifique-se de testar completamente os elementos personalizados antes de
implementar seu nome de domínio. Suas personalizações não devem usar URLs baseados em instância.
c. Para disponibilizar o novo nome de domínio para sua organização, na Configuração, clique em Gerenciamento de
domínio > Meu domínio e depois em Implantar para usuários .
O domínio é ativado imediatamente e todos os usuários são redirecionados para páginas com novos endereços de domínio.
3. Defina a política de login de domínio para os usuários que acessam suas páginas.
a. Em Configuração, clique em Gerenciamento de domínio > Meu domínio.
b. Em Configurações do meu domínio, clique em Editar.
c. Para desativar a autenticação para usuários que não utilizam sua página de login específica do domínio, selecione a
política de login. Por exemplo, isso irá impedir que os usuários efetuem o login na página de login
https://<instance>.salesforce.com/ genérica e sejam redirecionados para suas páginas após o login. Essa
opção melhora a segurança ao impedir tentativas de login por qualquer pessoa que não conheça seu nome de domínio.
d. Escolha uma política de redirecionamento com base no nível de segurança desejado. Você tem três opções, em ordem
crescente de segurança:
•
•
•
Redirecionar os usuários para a mesma página no domínio.
Redirecionar os usuários com um aviso.
Evitar o redirecionamento de modo que os usuários precisem inserir o novo nome de domínio.
4. Como opção, personalize sua página de login e adicione ou altere os provedores de identidade disponíveis na sua página
de login. Para mais detalhes, consulte a ajuda online do Salesforce.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Práticas recomendadas para o Hub de
ambiente | 67
Práticas recomendadas para o Hub de ambiente
Essas diretrizes podem ajudá-lo a usar o Hub de ambiente efetivamente.
Escolha a organização em que a maioria dos funcionários efetua login regularmente, como sua organização de hub.
Você deve ter apenas uma organização de hub.
Configure Meu domínio para cada organização membro, além da organização de hub.
Edite perfis ou conjuntos de permissões para atribuir aos usuários acesso a recursos específicos do Hub de ambiente. Algumas
configurações importantes estão listadas abaixo.
•
•
•
•
◊ O aplicativo personalizado do Hub de ambiente deve estar ativado para aparecer no menu do aplicativo do Force.com.
◊ “Gerenciar o Hub de ambiente” é necessário para criar novas organizações ou configurar acesso por login único. Essa
é uma funcionalidade poderosa e só deve ser atribuída a usuários administradores
◊ “Conectar organização ao Hub de ambiente” é necessário para adicionar novas organizações membros ao hub.
◊ Acesso do provedor de serviços deve estar ativado para cada organização membro à qual você deseja permitir o acesso
por login único.
Para mais informações sobre todas as configurações de perfil, consulte: Configurando o Hub de ambiente.
Decida uma estratégia para ativar o acesso por login único com base em requisitos de segurança da organização. Você pode
então escolher qual combinação dos três métodos de SSO (mapeamento explícito, ID de federação ou fórmula personalizada)
utilizar para suas necessidades específicas. Para encontrar detalhes, consulte: Ativando o login único.
Visto que cada organização membro é um objeto padrão (do tipo EnvironmentHubMember), você pode modificar seu
comportamento ou acessá-la programaticamente. Por exemplo, você pode criar campos personalizados, configurar regras
de fluxo de trabalho ou definir mapeamentos de usuário e ativar o login único usando a API, para qualquer organização
membro.
O login único não funcionará para usuários recém-adicionados ou para mapeamentos de usuário de SSO definidos em uma
organização do sandbox. Você deve apenas adicionar usuários, editar informações de usuário ou definir mapeamentos de
usuário de SSO na organização pai para o sandbox.
•
•
•
Conectando uma organização ao Hub de ambiente
Permissões necessárias ao usuário
Para conectar uma organização ao Hub de ambiente:
“Conectar organização ao Hub de ambiente”
Para conectar uma organização ao Hub:
1.
2.
3.
4.
5.
6.
Na página principal do Hub de ambiente, clique em Conectar organização.
Digite o nome do usuário administrador da organização membro, isto é, a organização que você deseja conectar ao hub.
Clique em Conectar organização.
Digite o nome de usuário administrador e a senha da organização membro na janela pop-up.
Clique em Efetuar login no Salesforce.
Clique em Permitir na próxima janela pop-up.
A organização está agora conectada ao hub e aparece na lista de organizações membro no Hub de ambiente.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Exibindo os detalhes de um membro do Hub
de ambiente | 68
Exibindo os detalhes de um membro do Hub de ambiente
Clique no nome de qualquer organização no Hub de ambiente para exibir detalhes sobre ela, como seu nome, descrição, ID
de organização, organizações relacionadas e usuários vinculados.
A página de detalhes possui as seguintes seções.
•
•
•
•
Detalhes do membro do hub
Organizações-pai
Organizações-filho
Mapeamentos de usuários de login único
Na página Detalhes do membro do hub, é possível executar as seguintes ações.
•
•
•
•
•
Clicar em Editar para editar as informações sobre essa organização.
Clique em Excluir para remover essa organização do Hub de ambiente.
Clicar em Ativar SSO para ativar o login único para essa organização. Isso permite que os usuários vinculados efetuem
login em sua organização a partir do Hub de ambiente sem fornecer credenciais.
Clique em Efetuar login na organização para efetuar login. Se você tiver ativado SSO para essa organização, será conectado
sem precisar digitar as credenciais de login.
Clique em Novo mapeamento de usuário SSO para vincular um nome de usuário na organização membro com um nome
de usuário na organização de hub para acesso por login único.
Detalhes do membro do hub
Essa seção exibe os atributos a seguir (em ordem alfabética).
Atributo
Descrição
Descrição
Uma descrição breve dessa organização.
Edição
A edição da organização, por exemplo, DE ou EE.
Origem
O método pelo qual essa organização foi adicionada ao Hub
de ambiente. Os valores possíveis são Descoberto
automaticamente e Adicionado por usuário.
Organização
O nome dessa organização.
ID da organização
O ID dessa organização.
Sandbox
Se for uma organização de sandbox.
Provedor de serviços
Um link Detalhes aqui indica que a organização foi ativada
para o login único no Hub de ambiente pelo suporte da
salesforce.com. É preciso ativar o acesso ao provedor de
serviços para essa organização em todos os perfis que o usarão
para login único.
Status
O status de licenciamento ou criação dessa organização. Os
valores possíveis incluem Avaliação, Gratuito, Ativo,
Suspenso e Excluído.
SSO
Se o login único foi ativado para essa organização. Os valores
possíveis são:
• Ligado — login único ativado.
• Desligado — login único desativado.
Arquitetura e desenvolvimento do aplicativo
Atributo
Version 29.0 | Exibindo os detalhes de um membro do Hub
de ambiente | 69
Descrição
•
•
Pendente — login único no processo de ativação.
Falha — falha na ativação do login único. Entre em
contato com o suporte da salesforce.com para obter ajuda.
Método de SSO 1 — Usuários mapeados
O número de mapeamentos de usuários de SSO definidos
entre essa organização e o hub de ambiente.
Método de SSO 2 — ID de federação
Se o login único tiver sido ativado com base na correspondência
de ID de federação.
Método de SSO 3 — Fórmula de nome de usuário Se o login único tiver sido ativado usando uma fórmula
personalizada para corresponder aos nomes de usuários.
Organizações pai e organizações filho
Ao conectar uma organização ao Hub de ambiente, os seguintes tipos de organizações relacionadas são detectados e conectados
automaticamente.
•
•
•
•
No caso de qualquer organização, todas as organizações do sandbox criadas a partir dela.
No caso de uma organização de liberação, todas as organizações de correção relacionadas a ela.
No caso de uma Organização de gerenciamento do Trialforce, todas as Organizações de origem do Trialforce criadas a
partir dela.
No caso de uma Organização de gerenciamento de licenças (LMO), ou seja, uma organização que possui o Aplicativo de
gerenciamento de licenças instalado, qualquer organização de liberação (e, portanto, todas as suas organizações de correção
associadas) que possua um pacote gerenciado registrado na LMO.
Essas seções exibem uma lista das organizações relacionadas a essa organização. Para cada organização na lista, são exibidos
seu nome e o relacionamento com essa organização.
Mapeamentos de usuários de login único
Esta seção apresenta uma lista de usuários mapeados, ou seja, os usuários da organização de hub que estão associados a um
usuário correspondente na organização membro. Se o login único tiver sido ativado para essa organização membro, todos os
usuários mapeados poderão efetuar login nela a partir do Hub de ambiente sem precisar fornecer credenciais.
Nessa seção, é possível executar as seguintes ações:
•
•
Clique em Novo mapeamento de usuário SSO para definir um novo mapeamento de usuário.
Clique em Excluir ao lado de um usuário para desativar o acesso por login único.
Os mapeamentos de usuário poderão ser de muitos para um (mas não de um para muitos). Isso significa que é possível associar
vários usuários na organização de hub ao mesmo usuário em uma organização membro. Isso pode ser útil, por exemplo, se
você desejar que um grupo de usuários efetue login em uma organização de teste com o mesmo usuário, para que eles usem
exatamente a mesma configuração.
Nota:
•
•
Se um mapeamento tiver sido definido e o usuário ainda não conseguir usar o login único, verifique se o perfil do
usuário tem as permissões adequadas ativadas. Para encontrar detalhes, consulte: Configurando o Hub de ambiente.
O login único não funcionará para usuários recém-adicionados ou para mapeamentos de usuário de SSO definidos
em uma organização do sandbox. Você deve apenas adicionar usuários, editar informações de usuário ou definir
mapeamentos de usuário de SSO na organização pai para o sandbox.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Editando os detalhes de um membro do Hub
de ambiente | 70
Editando os detalhes de um membro do Hub de ambiente
Para editar detalhes de uma organização membro no Hub de ambiente:
1. Clique em Editar ao lado do nome da organização na página principal ou na página de detalhes do Hub de ambiente.
2. Na página que aparece, edite o nome e a descrição da organização. É útil especificar um nome e uma descrição significativos.
Isso permite reconhecer facilmente a organização na lista de membros do Hub de ambiente.
3. Como opção, especifique um ou mais métodos de login único (veja detalhes abaixo).
4. Clique em Salvar.
Para corresponder usuários nas organizações de hub e membro para o login único, é possível usar qualquer um dos três métodos.
Método de SSO
Descrição
Usuários mapeados
Corresponde os usuários na organização de hub aos usuários em uma organização
membro manualmente. Esse método está ativado por padrão, caso você tenha
definido quaisquer mapeamentos de usuário de SSO a partir da página de detalhes
do membro. Para encontrar detalhes, consulte: Definindo um mapeamento de
usuário de SSO.
ID da federação
Corresponde os usuários que têm o mesmo ID de federação em ambas as
organizações. Para ativar esse método, selecione a caixa de seleção ao lado dele.
Fórmula do nome de usuário
Define uma fórmula personalizada para corresponder os usuários nas organizações
membro e de hub. Isso permite a você o máximo de flexibilidade. Para ativar esse
método, digite uma fórmula personalizada na caixa de texto fornecida. Por exemplo,
a fórmula a seguir corresponde à primeira parte do nome de usuário (a parte antes
do símbolo "@") com um nome de domínio explícito.
LEFT($User.Username, FIND("@", $User.Username)) &
("mydev.org")
Se você especificar mais de um método de login único, eles são avaliados na ordem de precedência listada acima no momento
em que o usuário tentar efetuar o login. O primeiro método que resultar em uma correspondência é usado para efetuar o login
do usuário e os outros métodos são ignorados. Se nenhum usuário correspondente puder ser identificado, você é redirecionado
para a página de login padrão da salesforce.com.
Criando uma nova organização a partir do Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
Para criar uma nova organização no Hub de ambiente:
1. No Hub de ambiente, clique em Criar organização.
2. No menu suspenso, escolha o tipo de organização que deseja criar. As opções possíveis são: Desenvolvimento, Teste
e Lançamento.
3. Na página que aparece, digite o nome da organização e Meu domínio, bem como o nome, nome de usuário e endereço de
email do usuário administrador. Se você estiver criando uma organização de teste, também precisará especificar sua edição
ou um ID de modelo do Trialforce.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Ativando login único no Hub de ambiente | 71
4. Clique em Criar.
Esta é uma comparação dos diferentes tipos de organizações utilizadas para o desenvolvimento.
•
•
•
Organização de desenvolvimento — organização padrão da edição Developer (DE).
Organização de lançamento — organização de DE usada para criar e carregar o pacote gerenciado.
Organização de teste — uma organização de avaliação criada para fins de teste e demonstração; similar a uma organização
criada em www.salesforce.com/trial. Os parceiros podem especificar um modelo de Trialforce para a criação de organizações
de avaliação. Isto lhes permite configurar e testar exatamente o que seus clientes potenciais acham da avaliação.
Ativando login único no Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
Para ativar o login único de uma organização:
1. Na página principal do Hub de ambiente, clique no nome da organização.
2. Clique em Ativar SSO na página de detalhes da organização.
3. Na página que é exibida, clique em Ativar SSO.
Você é direcionado à página de detalhes da organização. Seu status de login único é exibido no alto da página e ao lado do
campo SSO, na seção Detalhes do membro do hub.
Para corresponder usuários nas organizações de hub e membro para o login único, é possível usar qualquer um dos três métodos.
Método de SSO
Descrição
Usuários mapeados
Corresponde os usuários na organização de hub aos usuários em uma organização
membro manualmente. Esse método está ativado por padrão, caso você tenha
definido quaisquer mapeamentos de usuário de SSO a partir da página de detalhes
do membro. Para encontrar detalhes, consulte: Definindo um mapeamento de
usuário de SSO.
ID da federação
Corresponde os usuários que têm o mesmo ID de federação em ambas as
organizações. Para ativar esse método, selecione a caixa de seleção ao lado dele.
Fórmula do nome de usuário
Define uma fórmula personalizada para corresponder os usuários nas organizações
membro e de hub. Isso permite a você o máximo de flexibilidade. Para ativar esse
método, digite uma fórmula personalizada na caixa de texto fornecida. Por exemplo,
a fórmula a seguir corresponde à primeira parte do nome de usuário (a parte antes
do símbolo "@") com um nome de domínio explícito.
LEFT($User.Username, FIND("@", $User.Username)) &
("mydev.org")
Se você especificar mais de um método de login único, eles são avaliados na ordem de precedência listada acima no momento
em que o usuário tentar efetuar o login. O primeiro método que resultar em uma correspondência é usado para efetuar o login
do usuário e os outros métodos são ignorados. Se nenhum usuário correspondente puder ser identificado, você é redirecionado
para a página de login padrão da salesforce.com.
Arquitetura e desenvolvimento do aplicativo
Version 29.0 | Desativando login único no Hub de
ambiente | 72
Nota:
•
•
Se um mapeamento tiver sido definido e o usuário ainda não conseguir usar o login único, verifique se o perfil do
usuário tem as permissões adequadas ativadas. Para encontrar detalhes, consulte: Configurando o Hub de ambiente.
O login único não funcionará para usuários recém-adicionados ou para mapeamentos de usuário de SSO definidos
em uma organização do sandbox. Você deve apenas adicionar usuários, editar informações de usuário ou definir
mapeamentos de usuário de SSO na organização pai para o sandbox.
Desativando login único no Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
Para desativar o login único de uma organização:
1. Na página principal do Hub de ambiente, clique no nome da organização.
2. Clique em Desativar SSO na página de detalhes da organização.
3. Na página que é exibida, clique em Desativar SSO.
Você é direcionado à página de detalhes da organização. Seu status de login único é exibido no alto da página e ao lado do
campo SSO, na seção Detalhes do membro do hub.
Mapeando usuários para login único no Hub de ambiente
Permissões necessárias ao usuário
Para configurar o Hub de ambiente:
“Gerenciar o Hub de ambiente”
É possível definir um mapeamento entre um usuário na organização de hub e um ou mais usuários em uma organização
membro. Se o login único tiver sido ativado para essa organização membro, todos os usuários mapeados poderão efetuar login
nela a partir do Hub de ambiente sem precisar fornecer credenciais.
Os mapeamentos de usuário poderão ser de muitos para um (mas não de um para muitos). Isso significa que é possível associar
vários usuários na organização de hub ao mesmo usuário em uma organização membro. Isso pode ser útil, por exemplo, se
você desejar que um grupo de usuários efetue login em uma organização de teste com o mesmo usuário, para que eles usem
exatamente a mesma configuração.
Para definir um novo mapeamento de usuário de login único no Hub de ambiente:
1. Na página principal do Hub de ambiente, clique no nome da organização.
2. Clique em Novo mapeamento de usuário de SSO na página de detalhes de membro de hub.
3. Na página que aparece, digite o nome de usuário da organização membro e especifique o usuário correspondente para a
organização de hub que usa o campo de pesquisa.
4. Clique em Salvar (ou em Salvar e novo para salvar e adicionar um novo usuário mapeado).
Nota:
•
Se um mapeamento tiver sido definido e o usuário ainda não conseguir usar o login único, verifique se o perfil do
usuário tem as permissões adequadas ativadas. Para encontrar detalhes, consulte: Configurando o Hub de ambiente.
Arquitetura e desenvolvimento do aplicativo
•
Version 29.0 | Mapeando usuários para login único no Hub
de ambiente | 73
O login único não funcionará para usuários recém-adicionados ou para mapeamentos de usuário de SSO definidos
em uma organização do sandbox. Você deve apenas adicionar usuários, editar informações de usuário ou definir
mapeamentos de usuário de SSO na organização pai para o sandbox.
Capítulo 4
Empacotamento e teste do seu aplicativo
Tópicos:
•
•
•
•
•
•
•
•
•
•
•
•
Registrando um prefixo de namespace
O que são as versões beta de pacotes
gerenciados?
Criando e carregando um pacote beta
Sobre os ambientes de
desenvolvimento e teste do parceiro
Como se inscrever para ambientes de
teste
Instalando um pacote
Desinstalando um pacote
Instalando pacotes gerenciados
usando a API
Criando e carregando um pacote
gerenciado
Sobre versões do pacote
Executando o Apex em
instalação/atualização de pacotes
Executando o Apex na desinstalação
de pacotes
Esta seção contém informações sobre o empacotamento e teste de seu aplicativo
durante o desenvolvimento. O procedimento geral é da seguinte maneira:
1. Crie e carregue um pacote beta.
2. Instale o pacote beta na organização de teste de um parceiro (Enterprise,
Professional ou Group Editions estão disponíveis). Elas podem ser solicitadas
por meio do portal do parceiro.
3. Teste o pacote.
4. Corrija erros e faça alterações em sua organização de desenvolvimento.
5. Repita estas etapas até que você esteja pronto para liberar um pacote
gerenciado.
Links relacionados
Criando e carregando um pacote beta
Instalando um pacote
Empacotamento e teste do seu aplicativo
Version 29.0 | Registrando um prefixo de namespace | 75
Registrando um prefixo de namespace
No contexto de empacotamento, um prefixo de namespace é um identificador alfanumérico com 1 a 15 caracteres que distingue
o seu pacote e conteúdo dos pacotes de outros desenvolvedores do AppExchange. Os prefixos de namespace não diferenciam
maiúsculas de minúsculas. Por exemplo: ABC e abc não são reconhecidos como palavras distintas. O seu prefixo de namespace
deve ser globalmente exclusivo em todas as organizações do Salesforce. Ele mantém o pacote gerenciado sob o seu controle
exclusivo.
O Salesforce automaticamente acrescenta ao seu namespace um prefixo, seguido por dois sublinhados (“__”), para todos os
nomes de componentes exclusivos na sua organização do Salesforce. Um componente de pacote exclusivo é aquele que exige
um nome que nenhum outro componente tem dentro do Salesforce, como objetos personalizados, campos personalizados,
links personalizados, s-controls e regras de validação. Por exemplo, se o prefixo de namespace for abc e seu pacote gerenciado
contiver um objeto personalizado com o nome da API, Expense__c, use o nome da API abc__Expense__c para acessar esse
objeto usando a API. O prefixo do namespace é exibido em todas as páginas de detalhes de componentes.
O prefixo de namespace deve:
•
•
•
Começar com uma letra
Ter entre 1 a 15 caracteres alfanuméricos
Não conter dois sublinhados consecutivos
Para registrar um prefixo de namespace:
1. Em Configuração, clique em Criar > Pacotes.
2. Clique em Editar.
Nota: Esse botão não será exibido se você tiver definido suas configurações de desenvolvedor.
3.
4.
5.
6.
7.
8.
Verifique as seleções necessárias para definir as configurações do desenvolvedor e clique em Continuar.
Escolha o prefixo do namespace a ser registrado.
Clique em Verificar disponibilidade para determinar se já está sendo usado.
Repita se o prefixo de namespace inserido não estiver disponível.
Clique em Revisar minhas seleções.
Clique em Salvar (Save).
O que são as versões beta de pacotes gerenciados?
Um pacote beta é uma versão antecipada de um pacote gerenciado que é carregado em um estado Gerenciado - Beta (Managed
- Beta) O objetivo de um pacote Gerenciado - Beta (Managed - Beta) é permitir que o desenvolvedor teste seus aplicativos
em diferentes organizações do Salesforce e compartilhe o aplicativo com um conjunto piloto de usuários para avaliação e
feedback.
Antes de instalar uma versão beta de um pacote gerenciado, analise as observações a seguir:
•
•
•
Os pacotes beta podem ser instalados em sandbox ou em organizações da Developer Edition ou em organizações de teste
abastecidas somente pelo Portal do parceiro do salesforce.com
Os componentes de um pacote beta são editáveis pela organização do desenvolvedor até que um pacote Gerenciado Liberado (Managed - Released) seja carregado.
As versões beta não são consideradas importantes, de forma que o número da versão do pacote não muda.
Empacotamento e teste do seu aplicativo
•
Version 29.0 | Criando e carregando um pacote beta | 76
Os pacotes beta não são atualizáveis. Como os desenvolvedores ainda podem editar os componentes de um pacote beta, a
versão Gerenciada - Liberada (Managed - Released) pode não ser compatível com o pacote beta instalado. Desinstale o
pacote beta e instale um novo pacote beta ou versão liberada. Para obter mais informações, consulte Desinstalando um
pacote na página 82 e Instalando um pacote na página 77.
Criando e carregando um pacote beta
Use os procedimentos a seguir para criar e carregar um pacote beta.
1. Criar um pacote:
a.
b.
c.
d.
e.
f.
g.
h.
i.
Em Configuração, clique em Criar > Pacotes.
Clique em Novo (New).
Insira um nome para o pacote.
No menu suspenso, escolha o idioma padrão para todos os rótulos de componente no pacote.
Também é possível escolher um link personalizado no campo Configurar link personalizado (Configure
Custom Link) para exibir informações de configuração para os instaladores. O link personalizado é exibido como
um link Configurar (Configure) no Salesforce, nas páginas Pacotes instalados (Installed Packages) e Detalhes do pacote
(Package details) da organização do instalador.
No campo Destinatário da notificação de exceção Apex (Apex Exception Notification
Recipient), digite o nome de usuário da pessoa que receberá uma notificação por e-mail caso ocorra uma exceção
em um script Apex que não seja detectada pelo script.
Digite uma descrição do pacote.
No lado direito da tela, marque a caixa de seleção Gerenciado (Managed).
Clique em Salvar (Save).
2. Também é possível alterar os privilégios de acesso à API. Por padrão, o acesso à API é definido como Sem restrição
(Unrestricted), mas você pode alterar essa configuração para restringir o acesso à API para os componentes no pacote.
3. Adicionar componentes:
a.
b.
c.
d.
e.
Clique em Adicionar componentes (Add Components).
Na lista suspensa, selecione o tipo de componente.
Selecione os componentes que desejar adicionar.
Clique em Adicionar ao pacote.
Repita essas etapas até adicionar todos os componentes ao pacote.
Nota: Alguns componentes relacionados são incluídos automaticamente no pacote, mesmo que não sejam exibidos
na lista Componentes do pacote (Package Components). Por exemplo, quando você adiciona um objeto
personalizado a um pacote, seus campos personalizados, layouts de página e relacionamentos com objetos padrão
são incluídos automaticamente.
4. Como opção, clique em Mostrar dependências (Show Dependencies) e reveja uma lista de componentes que dependem
de outros componentes, permissões ou preferências dentro do pacote. Para obter mais informações sobre dependências,
consulte Noções básicas sobre dependências na página 48. Clique em Concluído para retornar à página de detalhes do
Pacote.
5. Clique em Carregar.
6. Na página Carregar pacote, faça o seguinte:
a. Insira um Nome de versão (Version Name), como Spring 11 — Beta.
b. Insira um Número da versão (Version Number) , como 1.0. Todos os pacotes beta usam o mesmo número
de versão até que você carregue um pacote Gerenciado - Liberado (Managed - Released).
Empacotamento e teste do seu aplicativo
Version 29.0 | Sobre os ambientes de desenvolvimento e teste
do parceiro | 77
c. Selecione um Tipo de versão (Release Type) do Gerenciado - Beta (Managed - Beta).
Nota: Os pacotes beta somente podem ser instalados na Developer Edition, na sandbox ou nas organizações
de teste solicitadas por meio do Portal do parceiro salesforce.com e, portanto, não pode ser atualizado
automaticamente nas organizações de cliente.
d. Como opção, insira e confirme a senha para compartilhar o pacote de modo privado com alguém que tenha a senha.
Não insira uma senha se você quiser tornar o pacote disponível a qualquer pessoa no AppExchange e compartilhar o
seu pacote publicamente.
e. O Salesforce seleciona automaticamente os requisitos que encontra. Além disso, selecione qualquer outro componente
necessário das seções Requisitos do pacote e Requisitos do objeto para notificar instaladores sobre requisitos
para esse pacote.
f. Clique em Carregar.
Você receberá um email com um link para instalação depois que o pacote for carregado com êxito.
Nota: Se você carregou da organização de produção do Salesforce, notifique os instaladores que desejam instalá-lo
em uma organização do sandbox para substituir a porção “login.salesforce.com” do link de instalação por
“test.salesforce.com”.
Sobre os ambientes de desenvolvimento e teste do parceiro
Como parceiro do Force.com ISV, você tem o direito a uma variedade de ambientes para desenvolvimento, teste e demonstrações
de seu aplicativo do Force.com. Em geral, é preciso testar seu aplicativo em todas as edições para as quais quer oferecer suporte.
Como se inscrever para ambientes de teste
Para se inscrever para ambientes de teste (organizações), use o Portal de parceiros.
1. Faça login no Portal de parceiros.
2. No Portal de parceiros, na seção Links rápidos (Quick Links), clique em Criar uma organização de teste (Create a Test
Org).
3. Na caixa suspensa Edição (Edition), selecione a edição que deseja testar. Para uma comparação das edições, consulte Sobre
os ambientes de desenvolvimento e teste do parceiro na página 77.
4. Marque a caixa de seleção para aceitar os termos e clique em Enviar (Submit).
5. Você receberá um e-mail que solicitará que você se conecte e altere sua senha. Clique no link, altere sua senha e crie uma
pergunta e resposta de segurança para a senha.
Instalando um pacote
Use o procedimento a seguir para localizar o aplicativo. Se você receber um link para o pacote, clique no link e ignore esta
etapa:
1.
2.
3.
4.
Clique no link AppExchange na sua organização para ir diretamente para www.appexchange.com.
No site do AppExchange, procure o aplicativo que deseja instalar.
Clique em Adquirir agora na página de informações de aplicativos.
Clique em Avançar.
Empacotamento e teste do seu aplicativo
Version 29.0 | Instalando um pacote | 78
Nota: Apenas uma pessoa em sua organização pode instalar ou carregar um pacote por vez.
Para instalar o pacote.
1. Insira o seu nome de usuário e a senha, leia os termos do usuário, selecione a caixa de seleção e clique em Continuar.
Nota: Se você estiver instalando em um sandbox, substitua a parte “www.salesforce.com” do link de instalação
com “test.salesforce.com”. Observe que esse pacote será removido do sandbox da sua organização sempre que você
criar uma nova cópia do sandbox.
2. Se o pacote for protegido por senha, insira a senha que você recebeu do editor.
3. Selecione uma opção de segurança e clique em Avançar (Next).
Conceder acesso somente aos administradores
Especifica as configurações a seguir sobre a instalação do perfil de administrador e qualquer perfil com a permissão
"Personalizar aplicativo":
• As permissões de objeto—"Leitura", "Criação", "Edição", "Exclusão", "Exibir todos" e "Modificar todos" estão
todas habilitadas
• Segurança em nível de campo—Definida como visível e editável para todos os campos
• Classes do Apex—Habilitadas
• Páginas do Visualforce—Habilitadas
• Configurações do aplicativo—Habilitadas
• Configurações da guia—Determinadas pelo criador do pacote
• Configurações do layout de página—Determinadas pelo criador do pacote
• Configurações do tipo de registro—Determinadas pelo criador do pacote
Após a instalação, se você tiver as edições Enterprise, Unlimited, Performance ou Developer, poderá definir as
permissões de usuário e objeto apropriadas nos perfis personalizados, conforme o necessário.
Conceder acesso a todos os usuários
Especifica as configurações a seguir em todos os perfis personalizados internos:
• As permissões de objeto—"Leitura", "Criação", "Edição", "Exclusão", "Exibir todos" e "Modificar todos" estão
todas habilitadas
• Segurança em nível de campo—Definida como visível e editável para todos os campos
• Classes do Apex—Habilitadas
• Páginas do Visualforce—Habilitadas
• Configurações do aplicativo—Habilitadas
• Configurações da guia—Determinadas pelo criador do pacote
• Configurações do layout de página—Determinadas pelo criador do pacote
• Configurações do tipo de registro—Determinadas pelo criador do pacote
Nota: O Usuário do portal de clientes, Gerente do portal de clientes, Portal de clientes de alto volume, Site
autenticado, Usuário parceiro e perfis padrão não recebem acesso.
Selecionar configurações de segurança
Permite que você escolha o acesso de uso de todos os perfis personalizados e padrão existentes na organização. Você
pode definir que cada perfil tenha acesso total ou nenhum acesso ao novo pacote e todos os seus componentes.
Empacotamento e teste do seu aplicativo
Version 29.0 | Disponibilidade do componente depois da
implantação | 79
Nota:
•
•
Dependendo do tipo de instalação, você pode não ver essa etapa. Por exemplo, nas edições Group e Professional,
ou se o pacote não contiver um objeto personalizado, o Salesforce ignorará essa e a próxima, dando a todos os
usuários acesso total.
Os conjuntos de permissões não estão incluídos nas opções de segurança. Se o seu pacote inclui conjuntos de
permissão, atribua-os após a instalação.
4. Selecione o nível de acesso a ser dado aos usuários em cada perfil e clique em Avançar (Next).
•
Acesso total—Especifica as configurações a seguir para cada perfil:
◊ As permissões de objeto—"Leitura", "Criação", "Edição", "Exclusão", "Exibir todos" e "Modificar todos" estão todas
habilitadas
◊ Segurança em nível de campo—Definida como visível e editável para todos os campos
◊ Classes do Apex—Habilitadas
◊ Páginas do Visualforce—Habilitadas
◊ Configurações do aplicativo—Habilitadas
◊ Configurações da guia—Determinadas pelo criador do pacote
◊ Configurações do layout de página—Determinadas pelo criador do pacote
◊ Configurações do tipo de registro—Determinadas pelo criador do pacote
•
Nenhum acesso—Especifica as mesmas configurações como Acesso total, exceto que todas as permissões do objeto estão
desativadas.
Você poderá ver outras opções se o editor tiver incluído configurações para perfis personalizados. É possível incorporar as
configurações dos perfis personalizados do editor a seus perfis sem afetar as configurações existentes. Escolha o nome das
configurações na lista suspensa ao lado do perfil ao qual elas serão aplicadas. As configurações atuais do perfil permanecerão
intactas.
5. Clique em Instalar. Se sua instalação falhar, consulte Resolução de problemas de instalação na página 81.
6. Antes de implantar o pacote para os seus usuários, faça as alterações necessárias para a implementação. Dependendo do
conteúdo do pacote, talvez seja necessário personalizar os alguns itens: Para obter mais informações, consulte Configurando
pacotes instalados na página 79.
7. Clique em OK.
8. Clique em Gerenciar licenças (Manage Licenses) para atribuir licenças a usuários.
Disponibilidade do componente depois da implantação
Muitos componentes têm um atributo Está implantado (Is Deployed) que controla se eles estão disponíveis para usuários
finais. Depois da instalação, todos os componentes estão imediatamente disponíveis se eles estiverem disponíveis na organização
do desenvolvedor.
Para obter dicas sobre personalização do pacote e dos componentes instalados, consulte Configurando pacotes instalados na
Ajuda do Salesforce. Os pacotes instalados estão disponíveis para usuários em sua organização com as permissões apropriadas
e configurações de layout de página.
Configurando pacotes instalados
Antes de disponibilizar o pacote para os seus usuários, faça as alterações necessárias para a implementação. Dependendo do
conteúdo do pacote, talvez seja necessário personalizar os seguintes itens:
Empacotamento e teste do seu aplicativo
Version 29.0 | Configurando pacotes instalados | 80
Opção Configurar
Se o editor incluiu um link para um site externo com informações sobre configuração, a página de Downloads do
AppExchange exibe a opção Configurar ao lado do pacote em Configuração ao clicar em Pacotes instalados. Clique
em Configurar para exibir as configurações sugeridas pelo editor.
Campos personalizados e links personalizados
Adicione os campos ou links personalizados necessários aos novos objetos personalizados.
Objeto personalizado
Ative o rastreamento de objetos que não estão nesse pacote, mas que tenham campos rastreados no Chatter. Por exemplo,
para rastrear um campo personalizado em Conta, certifique-se de que o objeto padrão Conta esteja ativado para
rastreamento.
Tipos de relatório personalizado
Se o Nome de tipo de relatório de um relatório personalizado corresponder a um relatório usado na sua
organização, altere o Nome de tipo de relatório após a instalação do pacote, para evitar qualquer confusão entre
os dois tipos de relatório.
Usuário em execução no painel
O Usuário em execução de qualquer painel é definido como o usuário que instala o pacote. Você pode editar as
propriedades do painel e alterar o Usuário em execução para um usuário que tenha as configurações de segurança
que você deseja aplicar ao painel.
Pastas
Quando os aplicativos contêm documentos, modelos de email, relatórios ou painéis, o Salesforce cria novas pastas na
organização do instalador usando os nomes de pasta do editor. Certifique-se de que esses nomes de pastas são exclusivos
na organização.
Todos os usuários podem ver as novas pastas. Defina as configurações de pasta antes da implantação caso deseje que
tenham visibilidade limitada.
Layouts de home page
Layouts personalizados de home page incluídos no pacote não são atribuídos a nenhum usuário. Para torná-los disponíveis
aos usuários, atribua-os aos perfis apropriados.
Modos de exibição de listas
Os modos de exibição de listas contidos nos aplicativos ficam visíveis para todos os usuários. Altere a visibilidade desses
modos de exibição de listas se necessário.
Layouts de página
A todos os usuários é atribuído o layout de página padrão dos objetos personalizados contidos no pacote. Os
administradores de organizações que usam as edições Enterprise, Unlimited, Performance e Developer podem configurar
o layout de página para os usuários apropriados.
Se um objeto personalizado do pacote contiver relacionamentos com objetos padrão, adicione-os como listas relacionadas
aos layouts de página apropriados.
Se o pacote contiver links personalizados, adicione-os aos layouts de página apropriados.
Se o gerenciamento avançado de moedas estiver ativado em sua organização, os campos de resumo de totalização de
moeda serão inválidos se estiverem em contas e resumindo os valores de oportunidade, ou em oportunidades e resumindo
os valores de objeto personalizado.Remova esses campos dos layouts de página.
Empacotamento e teste do seu aplicativo
Version 29.0 | Resolução de problemas de instalação | 81
Conjuntos de Permissões
Atribuir conjuntos de permissões incluídos em um pacote aos usuários que necessitam de acesso ao pacote.
Você não pode editar conjuntos de permissões que estejam incluídos em um pacote gerenciado. Se você clonar um
conjunto de permissões incluído no pacote ou criar o seu próprio conjunto, será possível fazer alterações ao conjunto de
permissões, mas as atualizações posteriores não o afetarão.
Workbench de tradução
Os valores traduzidos para componentes do pacote instalados também são instalados para qualquer linguagem incluída
pelo desenvolvedor. Os componentes do pacote personalizados pelo desenvolvedor na configuração, como um campo
ou tipo de registro personalizado, são exibidos nas páginas de configuração do instalador na linguagem do desenvolvedor
(a linguagem usada na definição desses itens). Os usuários na organização do instalador verão automaticamente os valores
traduzidos se sua linguagem pessoal for incluída no pacote. Além disso, os instaladores podem ativar linguagens adicionais
desde que o workbench de tradução esteja ativado.
Alertas de fluxo de trabalho
Se o destinatário de um alerta de fluxo de trabalho for um usuário, o Salesforce substituirá esse usuário pelo usuário que
estiver instalando o pacote. Você pode alterar os destinatários de quaisquer alertas de fluxo de trabalho instalados.
Atualizações de campo do fluxo de trabalho
Se uma atualização de campo for designada para alterar um campo do proprietário do registro para um usuário específico,
o Salesforce substituirá esse usuário pelo usuário que estiver instalando o pacote. Você pode alterar o valor do campo de
quaisquer atualizações de campo instaladas.
Mensagens de saída do fluxo de trabalho
O Salesforce substituirá o usuário no campo Usuário para enviar como de uma mensagem de saída pelo usuário
que estiver instalando o pacote. Você pode alterar este valor após a instalação.
Regras do fluxo de trabalho
As regras de fluxo de trabalho são instaladas sem quaisquer acionadores baseados em tempo que o desenvolvedor possa
ter criado. Configure os acionadores baseados em tempo de acordo com a necessidade.
Tarefas de fluxo de trabalho
O Salesforce substitui o usuário no campo Atribuído a pelo usuário que estiver instalando o pacote. Você pode alterar
este valor após a instalação.
Resolução de problemas de instalação
Uma instalação pode falhar por diversos motivos:
•
•
•
•
•
•
•
O pacote contém objetos personalizados que vão fazer com que a sua organização exceda o limite de objetos personalizados.
O pacote contém guias personalizadas que vão fazer com que a sua organização exceda o limite de guias personalizadas.
O desenvolvedor do pacote carregou uma versão mais recente dele e rebaixou a versão associada a esse URL de instalação.
Entre em contato com o editor do pacote para obter o URL de instalação mais recente.
Você está tentando instalar uma extensão em um pacote e ainda não tem o pacote de base instalado.
O pacote exige que determinados componentes sejam habilitados na sua organização, ou que os recursos exigidos estejam
disponíveis na sua edição.
O pacote contém o código do Apex e você não está autorizado a executar o Apex na sua organização.
O pacote que você está instalando tem um teste Apex em falha.
Se você for um desenvolvedor e a instalação falhar em decorrência de uma falha de teste do Apex, verifique o seguinte:
Empacotamento e teste do seu aplicativo
•
•
Version 29.0 | Desinstalando um pacote | 82
Verifique se você está preparando todos os dados necessários para o teste do Apex, em vez de confiar nos dados existentes
dos assinantes.
Se um assinante criar uma regra de validação, campo obrigatório ou acionador em um objeto ao qual seu pacote faz referência,
seu teste poderá falhar caso execute DML nesse objeto. Se esse objeto for criado somente para fins de teste, e nunca em
tempo de execução, e a criação falhar em função desses conflitos, você poderá ter a segurança de ignorar o erro e continuar
o teste. Caso contrário, entre em contato com o cliente e determine o impacto.
Desinstalando um pacote
Durante o ciclo de desenvolvimento e de teste, talvez você precise desinstalar periodicamente os pacotes antes de instalar o
próximo beta.
Para remover um pacote:
1.
2.
3.
4.
Em Configuração (Setup), clique em Pacotes instalados (Installed Packages).
Clique em Desinstalar ao lado do pacote a ser removido.
Marque Sim, eu quero desinstalar... e clique em Desinstalar.
Após uma desinstalação, o Salesforce cria automaticamente um arquivo de exportação que contém os dados do pacote,
assim como quaisquer avisos e anexos associados. Após a conclusão da desinstalação, o Salesforce envia um email com um
link para o arquivo de exportação ao usuário que está executando a desinstalação. O arquivo de exportação, as notas e os
anexos relacionados são listados abaixo da lista de pacotes instalados. Recomenda-se armazenar o arquivo em qualquer
outro lugar porque ele só está disponível por um período limitado de tempo após a conclusão da desinstalação.
Dica: Se você reinstalar o pacote depois e quiser reimportar os dados do pacote, consulte Importando dados do
pacote na Ajuda do Salesforce.
Ao desinstalar pacotes, considere o seguinte:
•
•
Se você estiver desinstalando um pacote que contém um objeto personalizado, todos os componentes desse objeto
personalizado também serão excluídos. Isso inclui campos personalizados, regras de validação, s-controls, botões e links
personalizados, além de regras de fluxo de trabalho e processos de aprovação.
Não será possível desinstalar um pacote sempre que qualquer um de seus componentes fizer referência a um componente
que não seja incluído na desinstalação. Por exemplo:
◊ Quando um pacote instalado inclui algum componente em um objeto padrão ao qual outro componente faz referência,
o Salesforce impede a desinstalação do pacote. Isso significa que você pode instalar um pacote que inclua um campo
de usuário personalizado e criar uma regra de fluxo de trabalho que seja acionada quando o valor desse campo for
específico. A desinstalação do pacote impediria a execução do seu fluxo de trabalho.
◊ Quando você instala dois pacotes não relacionados e cada um deles inclui um objeto personalizado e um componente
de objeto personalizado faz referência a um componente contido no outro, o Salesforce impede a desinstalação do
pacote. Isso significa que você pode instalar um aplicativo de relatório de despesas que inclua um campo de usuário
personalizado e criar uma regra de validação em outro objeto personalizado instalado que faça referência a esse campo
de usuário personalizado. Entretanto, a desinstalação do aplicativo de relatório de despesas impede a execução da regra
de validação.
◊ Quando uma pasta instalada contém componentes adicionados após a instalação, o Salesforce impede que o pacote seja
desinstalado.
◊ Quando um papel timbrado instalado é usado para um modelo de email adicionado após a instalação, o Salesforce evita
que o pacote seja desinstalado.
•
Os arquivos de exportação de desinstalação contêm dados do aplicativo personalizado para o pacote, excluindo alguns
componentes, como documentos e valores de campos de fórmula.
Empacotamento e teste do seu aplicativo
Version 29.0 | Instalando pacotes gerenciados usando a
API | 83
Instalando pacotes gerenciados usando a API
É possível instalar, atualizar e desinstalar pacotes usando a API em vez da interface do usuário. A automatização destas tarefas
repetitivas pode ajudar você a trabalhar com mais eficiência e acelerar o desenvolvimento do aplicativo.
Para instalar, atualizar ou desinstalar um pacote, use a chamada deploy() da API de metadados padrão com o tipo de
metadados InstalledPackage. As operações a seguir são compatíveis.
•
•
•
A implantação de um InstalledPackage instala o pacote na organização de implantação.
A implantação de uma versão mais nova de um pacote atualmente instalado atualiza o pacote.
A implantação de um InstalledPackage usando um manifesto chamado destructiveChanges.xml, em vez de
package.xml, desinstala-o da organização.
Nota: É possível implantar um pacote junto com outros tipos de metadados. Portanto, InstalledPackage deve
ser o único tipo de metadados especificado no arquivo do manifesto.
Este é um típico manifesto de projeto (package.xml) para a instalação de um pacote. O manifesto não deve conter um
elemento fullName ou namespacePrefix.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>InstalledPackage</name>
</types>
<version>28.0</version>
</Package>
O pacote é especificado em um arquivo chamado MyNamespace.installedPackage, onde MyNamespace é o prefixo do
namespace do pacote. O arquivo deve ser um diretório chamado installedPackages, e seu conteúdo deve ter este formato.
<?xml version="1.0" encoding="UTF-8"?>
<InstalledPackage xmlns="http://soap.sforce.com/2006/04/metadata">
<versionNumber>1.0</versionNumber>
<password>optional_password</password>
</InstalledPackage>
Para desinstalar um pacote, implante este arquivo de manifesto destructiveChanges.xml além do arquivo package.xml.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyNamespace</members>
<name>InstalledPackage</name>
</types>
</Package>
A recuperação de um InstalledPackage, usando a chamada retrieve() cria uma representação XML do pacote instalado
em uma organização. Se o pacote instalado tiver uma senha, ela não será recuperada. A implantação do arquivo recuperado
em uma organização diferente instala o pacote naquela organização.
Para obter mais informações sobre os comandos deploy() e retrieve(), consulte o Metadata API Developer’s Guide (Guia
do desenvolvedor de API de metadados (Metadata API Developer’s Guide).
Empacotamento e teste do seu aplicativo
Version 29.0 | Criando e carregando um pacote gerenciado | 84
Criando e carregando um pacote gerenciado
Use os procedimentos a seguir para criar e carregar um pacote gerenciado. O procedimento considera que você já tenha criado
um namespace e um pacote beta. Se você estiver carregando um pacote beta para teste, consulte Criando e carregando um
pacote beta na página 76.
1. Criar um pacote:
a.
b.
c.
d.
e.
f.
g.
h.
i.
Em Configuração, clique em Criar > Pacotes.
Clique em Novo (New).
Insira um nome para o pacote.
No menu suspenso, escolha o idioma padrão para todos os rótulos de componente no pacote.
Também é possível escolher um link personalizado no campo Configurar link personalizado (Configure
Custom Link) para exibir informações de configuração para os instaladores. O link personalizado é exibido como
um link Configurar (Configure) no Salesforce, nas páginas Pacotes instalados (Installed Packages) e Detalhes do pacote
(Package details) da organização do instalador.
No campo Destinatário da notificação de exceção Apex (Apex Exception Notification
Recipient), digite o nome de usuário da pessoa que receberá uma notificação por e-mail caso ocorra uma exceção
em um script Apex que não seja detectada pelo script.
Digite uma descrição do pacote.
No lado direito da tela, marque a caixa de seleção Gerenciado (Managed).
Clique em Salvar (Save).
2. Também é possível alterar os privilégios de acesso à API. Por padrão, o acesso à API é definido como Sem restrição
(Unrestricted), mas você pode alterar essa configuração para restringir o acesso à API para os componentes no pacote.
3. Adicionar componentes:
a.
b.
c.
d.
e.
Clique em Adicionar componentes (Add Components).
Na lista suspensa, selecione o tipo de componente.
Selecione os componentes que desejar adicionar.
Clique em Adicionar ao pacote.
Repita essas etapas até adicionar todos os componentes ao pacote.
Nota: Alguns componentes relacionados são incluídos automaticamente no pacote, mesmo que não sejam exibidos
na lista Componentes do pacote (Package Components). Por exemplo, quando você adiciona um objeto
personalizado a um pacote, seus campos personalizados, layouts de página e relacionamentos com objetos padrão
são incluídos automaticamente.
4. Como opção, clique em Mostrar dependências (Show Dependencies) e reveja uma lista de componentes que dependem
de outros componentes, permissões ou preferências dentro do pacote. Para obter mais informações sobre dependências,
consulte Noções básicas sobre dependências na página 48. Clique em Concluído para retornar à página de detalhes do
Pacote.
5. Clique em Carregar.
6. Na página Carregar pacote, faça o seguinte:
a. Insira um Nome de versão (Version Name), como Spring 12. O nome de versão é um nome de marketing
para uma versão específica de um pacote e permite que você crie um título mais descritivo, e não simplesmente um
número.
b. Insira um Número da versão (Version Number) , como 1.0. Para obter mais informações sobre versões,
consulte Atualizando seu aplicativo na página 185.
Empacotamento e teste do seu aplicativo
Version 29.0 | Sobre versões do pacote | 85
c. Selecione um Tipo de versão (Release Type) do Gerenciado - Liberado (Managed - Released).
d. Altere a Descrição, se necessário.
e. Como opção, insira e confirme a senha para compartilhar o pacote de modo privado com alguém que tenha a senha.
Não insira uma senha se você quiser tornar o pacote disponível a qualquer pessoa no AppExchange e compartilhar o
seu pacote publicamente.
f. O Salesforce seleciona automaticamente os requisitos que encontra. Além disso, selecione qualquer outro componente
necessário das seções Requisitos do pacote e Requisitos do objeto para notificar instaladores sobre requisitos
para esse pacote.
g. Clique em Carregar.
7. Depois que o carregamento estiver concluído, você pode fazer o seguinte:
•
•
Clique no link Trocar senha para alterar a opção de senha.
Clique em Recusar para impedir novas instalações deste pacote e permitir que as instalações existentes continuem sendo
realizadas.
Nota: Não é possível recusar a versão mais recente de um pacote gerenciado.
Ao recusar um pacote, lembre-se também de removê-lo do AppExchange. Consulte “Removendo aplicativos do
AppExchange” na ajuda online do AppExchange.
•
Clique em Não recusar para tornar uma versão recusada disponível para instalação novamente.
Você receberá um email com um link para instalação depois que o pacote for carregado com êxito.
Nota: Se você carregou da organização de produção do Salesforce, notifique os instaladores que desejam instalá-lo
em uma organização do sandbox para substituir a porção “login.salesforce.com” do link de instalação por
“test.salesforce.com”.
Sobre versões do pacote
Versão do pacote é um número que identifica o conjunto de componentes carregados em um pacote. O número da versão tem
o formato majorNumber.minorNumber.patchNumber (por exemplo, 2.1.3). Os números maiores e menores aumentam
para um valor escolhido em toda versão principal. O patchNumber é gerado e atualizado apenas para a versão do patch. Pacotes
não gerenciados não têm capacidade de upgrade; assim, cada versão de pacote é simplesmente um grupo de componentes para
distribuição. A versão de um pacote tem mais significado para pacotes gerenciados. Os pacotes podem exibir comportamento
diferente para versões diferentes. Os editores podem usar as versões do pacote para evoluírem os componentes nos pacotes
gerenciados com suavidade, lançando versões subsequentes do pacote sem romper as integrações existentes com clientes usando
o pacote.
Os números de versão dependem do tipo de versão do pacote, que identifica a forma como os pacotes são distribuídos. Existem
dois tipos:
Versão principal
Uma versão principal denota um pacote Gerenciado - Liberado. Durantes estas versões, os números principais e
secundários de uma versão de pacote aumentam para qualquer valor escolhido.
Versão da correção
Uma versão de correção serve somente para versões de correção de um pacote. Durante esses lançamentos, aumenta o
número da correção de uma versão do pacote.
Empacotamento e teste do seu aplicativo
Version 29.0 | Executando o Apex em instalação/atualização
de pacotes | 86
Quando um assinante existente instala uma nova versão do pacote, só há uma única instância de cada componente no pacote,
mas os componentes podem emular versões mais antigas. Por exemplo: um assinante pode estar usando um pacote gerenciado
que contenha uma classe do Apex. Se o editor decidir recusar um método na classe do Apex e liberar uma nova versão do
pacote, o assinante ainda só verá uma única instância da classe do Apex após instalar a nova versão. No entanto, essa classe do
Apex ainda pode emular a versão anterior de qualquer código que faça referência ao método recusado na versão antiga.
Os desenvolvedores de pacote podem usar lógica condicional nas classes de Apex e acionadores para exibir diferentes
comportamentos para diferentes versões. Isso permite que o desenvolvedor do pacote continue oferecendo suporte ao
comportamento existente nas classes e acionadores em versões anteriores do pacote enquanto continuam evoluindo o código.
Quando você estiver desenvolvendo aplicativos de clientes usando a API, poderá especificar a versão de cada pacote utilizado
nas integrações.
Executando o Apex em instalação/atualização de pacotes
Os desenvolvedores de aplicativo podem especificar um script Apex a ser executado automaticamente após o assinante instalar
ou atualizar um pacote gerenciado. Isso torna possível personalizar a instalação ou atualização de pacotes, com base em detalhes
da organização do assinante. Por exemplo, é possível usar o script para preencher configurações personalizadas, criar dados de
amostra, enviar um email para o instalador, notificar um sistema externo ou iniciar uma operação de lote para preencher um
novo campo em um grande conjunto de dados. Para simplificar, apenas um script pós-instalação pode ser especificado. Deve
ser uma classe do Apex que seja um membro do pacote.
O script pós-instalação é chamado após os testes serem executados e está sujeito a limites padrão do controlador. Ele executa
como se fosse um usuário especial do sistema que representa o seu pacote, portanto todas as operações realizadas pelo script
parecem ser realizadas pelo pacote. Esse usuário pode ser acessado usando UserInfo. Você verá esse usuário apenas no tempo
de execução, e não ao executar testes.
Se o script falhar, a instalação/atualização será abortada. Erros no script são enviados por email para o usuário especificado no
campo Notificar em erro do Apex do pacote. Se nenhum usuário for especificado, os detalhes de instalação/atualização não
estarão disponíveis.
O script pós-instalação tem as seguintes propriedades adicionais.
•
•
•
Pode iniciar trabalhos de lote, agendados e futuros.
Não pode acessar IDs de sessão.
Pode fazer callouts apenas usando uma operação assíncrona. O callout é feito após o script executar e após a instalação ser
concluída e confirmada.
Nota: Não é possível executar um script de instalação de publicação em uma organização sob nova avaliação com
fornecimento por Trialforce. O script só é executado quando um assinante instala seu pacote em uma organização
existente.
Como um script pós-instalação funciona?
Um script pós-instalação é uma classe do Apex que implementa a interface InstallHandler. Essa interface possui um único
método, chamado de onInstall, que especifica as ações a serem realizadas na instalação.
global interface InstallHandler {
void onInstall(InstallContext context)
}
O método onInstall aceita um objeto de contexto como argumento, o que fornece as seguintes informações.
•
O ID da organização na qual a instalação ocorre.
Empacotamento e teste do seu aplicativo
•
•
•
•
Version 29.0 | Como um script pós-instalação funciona? | 87
O ID do usuário que iniciou a instalação.
O número da versão do pacote instalado anteriormente (especificado usando a classe Version). É sempre um número
com três dígitos, como 1.2.0.
Se a instalação é uma atualização.
Se a instalação é uma atualização automática.
O argumento de contexto é um objeto cujo tipo é a interface InstallContext. Essa interface é implementada automaticamente
pelo sistema. A definição a seguir da interface InstallContext mostra os métodos que podem ser chamados no argumento
de contexto.
global interface InstallContext {
ID organizationId();
ID installerId();
Boolean isUpgrade();
Boolean isPush();
Version previousVersion();
}
Métodos e classe de versão
Os métodos na classe System.Version podem ser usados para obter a versão de um pacote gerenciado e para comparar
versões de pacote. Versão do pacote é um número que identifica o conjunto de componentes carregados em um pacote. O
número da versão tem o formato majorNumber.minorNumber.patchNumber (por exemplo, 2.1.3). Os números principais
e secundários aumentam para um valor escolhido em toda versão principal. Os aumentos dos números principais e secundários
sempre usam um número de correção 0.
A seguir estão métodos de instância da classe System.Version.
Método
Argumentos
Tipo de retorno
Comparar
(compareTo)
System.Version version Inteiro
Descrição
Compara a versão atual com a versão
especificada e retorna um dos seguintes
valores:
• Zero, se a versão do pacote atual for
igual à versão especificada
• Um valor inteiro maior que zero, se a
versão do pacote atual for maior que a
versão especificada
• Um valor inteiro menor que zero, se a
versão do pacote atual for menor que a
versão especificada
Se uma versão de duas partes estiver sendo
comparada a uma versão de três partes, o
número de correção será ignorado e a
comparação se baseia apenas nos números
principal e secundário.
principal (major)
Inteiro
Retorna a versão principal do pacote do
código de chamada.
secundário (minor)
Inteiro
Retorna a versão secundária do pacote do
código de chamada.
Empacotamento e teste do seu aplicativo
Método
Argumentos
correção (patch)
Version 29.0 | Exemplo de um script de pós-instalação | 88
Tipo de retorno
Descrição
Inteiro
Retorna a versão de correção do pacote do
código de chamada ou null, se não houver
versão de pacote.
A classe System contém dois métodos que podem ser usados para especificar lógica condicional, portanto diferentes versões
podem exibir comportamentos diferentes.
•
System.requestVersion: Retorna uma versão de duas partes que contém os números de versão principal e secundário
•
de um pacote. Usando esse método, é possível determinar a versão de uma instância instalada do pacote a partir da qual o
código de chamada está referenciando o pacote. Dependendo da versão do código de chamada, você pode personalizar o
comportamento do código do pacote.
System.runAs(System.Version): Altera a versão do pacote atual para a versão especificada no argumento.
Quando um assinante instala várias versões do pacote e cria código que faz referência a classes ou acionadores do Apex no
pacote, ele precisa selecionar a versão de referência. É possível executar diferentes caminhos de código no código Apex do
pacote dependendo da configuração de versão do código Apex de chamada que faz a referência. É possível determinar a
configuração da versão do pacote do código de chamada chamando o método System.requestVersion no código do
pacote.
Exemplo de um script de pós-instalação
O script de pós-instalação de amostra a seguir realiza essas ações na instalação/atualização de pacotes.
•
Se a versão anterior é nula, ou seja, se o pacote está sendo instalado pela primeira vez, o script então:
◊ Cria uma nova Conta chamada “Newco” e verifica se ela foi criada.
◊ Cria uma nova instância do objeto personalizado Pesquisa, chamado “Pesquisa de satisfação do cliente”.
◊ Envia um email ao assinante confirmando a instalação do pacote.
•
•
•
Se a versão anterior é 1.0, o script cria uma nova instância de Pesquisa chamada “Atualizando da versão 1.0”.
Se o pacote é uma atualização, o script cria uma nova instância de Pesquisa chamada “Pesquisa de amostra durante
atualização”.
Se a atualização é automática, o script cria uma nova instância de Pesquisa chamada “Pesquisa de amostra durante atualização
automática”.
global class PostInstallClass implements InstallHandler {
global void onInstall(InstallContext context) {
if(context.previousVersion() == null) {
Account a = new Account(name='Newco');
insert(a);
Survey__c obj = new Survey__c(name='Client Satisfaction Survey');
insert obj;
User u = [Select Id, Email from User where Id =:context.installerID()];
String toAddress= u.Email;
String[] toAddresses = new String[]{toAddress};
Messaging.SingleEmailMessage mail =
new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setReplyTo('[email protected]');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package install successful');
mail.setPlainTextBody('Thanks for installing the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
Empacotamento e teste do seu aplicativo
Version 29.0 | Especificando um script pós-instalação | 89
else
if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
Survey__c obj = new Survey__c(name='Upgrading from Version 1.0');
insert(obj);
}
if(context.isUpgrade()) {
Survey__c obj = new Survey__c(name='Sample Survey during Upgrade');
insert obj;
}
if(context.isPush()) {
Survey__c obj = new Survey__c(name='Sample Survey during Push');
insert obj;
}
}
}
É possível testar um script de pós-instalação usando o novo método testInstall da classe Test. Esse método aceita os
seguintes argumentos.
•
•
•
Uma classe que implementa a interface InstallHandler.
Um objeto Version que especifica o número da versão do pacote existente.
Um valor booleano opcional que é true se a instalação for automática. O padrão é false.
Essa amostra descreve como testar um script de pós-instalação implementado na classe PostInstallClass do Apex.
@isTest
static void testInstallScript() {
PostInstallClass postinstall = new PostInstallClass();
Test.testInstall(postinstall, null);
Test.testInstall(postinstall, new Version(1,0), true);
List<Account> a = [Select id, name from Account where name ='Newco'];
System.assertEquals(a.size(), 1, 'Account not found');
}
Especificando um script pós-instalação
Após criar e testar o script de pós-instalação, você pode especificá-lo no campo de pesquisa Script de pós-instalação na página
de Detalhes do pacote. Em versões de correção seguintes, você poderá alterar o conteúdo do script, mas não a classe do Apex.
A seleção de classe também está disponível através da API de metadados como Package.postInstallClass. Isso é
representado em package.xml como um elemento <postInstallClass>foo</postInstallClass>.
Executando o Apex na desinstalação de pacotes
Os desenvolvedores de aplicativo podem especificar um script do Apex a ser executado automaticamente após o assinante
desinstalar um pacote gerenciado. Isso permite realizar tarefas de atualização e notificação com base nos detalhes da organização
do assinante. Para simplificar, apenas um script de desinstalação pode ser especificado. Deve ser uma classe do Apex que seja
um membro do pacote.
O script de desinstalação está sujeito aos limites padrão de controlador. Ele executa como um usuário especial do sistema que
representa o seu pacote, portanto todas as operações realizadas pelo script parecem ser realizadas pelo pacote. Esse usuário
pode ser acessado usando UserInfo. Você verá esse usuário apenas no tempo de execução, e não ao executar testes.
Se o script falhar, a desinstalação continuará, mas nenhuma das alterações realizadas pelo script será confirmada. Erros no
script são enviados por email para o usuário especificado no campo Notificar em erro do Apex do pacote. Se nenhum usuário
for especificado, os detalhes de desinstalação não estarão disponíveis.
Empacotamento e teste do seu aplicativo
Version 29.0 | Como funciona um script de desinstalação? | 90
O script de desinstalação tem as seguintes restrições. Ele não pode ser usado para: iniciar trabalhos de lote planejados e futuros,
acessar IDs de sessão ou realizar callouts.
Como funciona um script de desinstalação?
Um script de desinstalação é uma classe do Apex que implementa a interface UninstallHandler. Essa interface possui um
único método, chamado de onUninstall, que especifica as ações a serem realizadas na desinstalação.
global interface UninstallHandler {
void onUninstall(UninstallContext context)
}
O método onUninstall aceita um objeto de contexto como argumento, o que fornece as seguintes informações.
O ID da organização na qual a desinstalação ocorre.
O ID do usuário que iniciou a desinstalação.
•
•
O argumento de contexto é um objeto cujo tipo é a interface UninstallContext. Essa interface é implementada
automaticamente pelo sistema. A definição a seguir da interface UninstallContext mostra os métodos que podem ser
chamados no argumento de contexto.
global interface UninstallContext {
ID organizationId();
ID uninstallerId();
}
Exemplo de um script de desinstalação
O script de desinstalação de amostra abaixo realiza as seguintes ações na desinstalação do pacote:
Insere uma entrada no campo descrevendo qual usuário fez a desinstalação e em qual organização
Cria e envia uma mensagem de email confirmando a desinstalação para esse usuário
•
•
global class UninstallClass implements UninstallHandler {
global void onUninstall(UninstallContext ctx) {
FeedItem feedPost = new FeedItem();
feedPost.parentId = ctx.uninstallerID();
feedPost.body = 'Thank you for using our application!';
insert feedPost;
User u = [Select Id, Email from User where Id =:ctx.uninstallerID()];
String toAddress= u.Email;
String[] toAddresses = new String[] {toAddress};
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setReplyTo('[email protected]');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package uninstall successful');
mail.setPlainTextBody('Thanks for uninstalling the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
}
É possível testar um script de desinstalação usando o método testUninstall da classe Test. Esse método aceita como
argumento uma classe que implementa a interface UninstallHandler.
Empacotamento e teste do seu aplicativo
Version 29.0 | Especificando um script de desinstalação | 91
Essa amostra descreve como testar um script de desinstalação implementado na classe UninstallClass do Apex.
@isTest
static void testUninstallScript() {
Id UninstallerId = UserInfo.getUserId();
List<FeedItem> feedPostsBefore =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
Test.testUninstall(new UninstallClass());
List<FeedItem> feedPostsAfter =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
System.assertEquals(feedPostsBefore.size() + 1, feedPostsAfter.size(),
'Post to uninstaller failed.');
}
Especificando um script de desinstalação
Após criar e testar o script de desinstalação e incluí-lo como membro do seu pacote, você poderá especificá-lo no campo de
pesquisa Script de desinstalação na página de Detalhes do pacote. Em versões de correção seguintes, você poderá alterar o
conteúdo do script, mas não a classe do Apex.
A seleção de classe também está disponível através da API de metadados como Package.uninstallClass. Isso é representado
em package.xml como um elemento <uninstallClass>foo</uninstallClass>.
Capítulo 5
Passando pela análise de segurança
Tópicos:
•
•
•
•
•
•
•
•
•
•
Sobre a análise de segurança
Etapas da análise de segurança
O Questionário de análise de
segurança
Criar uma AppExchange Publishing
Organization
Alterar sua AppExchange Publishing
Organization
Atualizar a versão do pacote em sua
listagem do AppExchange
Envio de um aplicativo móvel para
análise de segurança
Envio de um pacote de extensão para
análise de segurança
Recursos na análise de segurança
Perguntas frequentes sobre a análise
de segurança
O Salesforce.com analisa todos os novos aplicativos quanto à conformidade
com a segurança. Os aplicativos devem atender ou exceder estes requisitos para
serem certificados. Aplicativos certificados existentes também são testados
anualmente.
A segurança de informações do cliente é absolutamente essencial para nosso
sucesso mútuo e continuado. É necessário fazer a coisa certa desde o começo
para ajudar nossos clientes a manter a confiança de que o Force.com é uma
plataforma desejável e robusta para seus principais aplicativos corporativos.
Este capítulo contém orientações e tarefas específicas que ajudarão você a garantir
que seus aplicativos sejam aprovados no processo de análise de segurança do
AppExchange.
Passando pela análise de segurança
Version 29.0 | Sobre a análise de segurança | 93
Sobre a análise de segurança
A análise de segurança foi desenvolvida para avaliar a postura de segurança das organizações de parceiro e para garantir que
todos os aplicativos publicados no AppExchange sigam as práticas recomendadas quanto aos padrões de segurança. Para obter
as informações mais recentes sobre análise de segurança, visite http://wiki.developerforce.com/page/Security_Review.
A análise de segurança do AppExchange:
•
•
•
Capacita os clientes a confiar em aplicativos de terceiros para trabalhar com segurança com o seus aplicativos do Salesforce
Ajuda os parceiros a ter sucesso na oferta de aplicativos que abrangem vários sistemas e a atender às necessidades dos
usuários do AppExchange.
Permite que o salesforce.com facilite as relações abertas entre clientes, desenvolvedores de terceiros e fornecedores de
aplicativos, fornecendo um ecossistema seguro
O escopo da análise de segurança depende do tipo de aplicativo. Vamos realizar o teste indicado abaixo para cada tipo de
componente incluído em seu aplicativo.
Tipo de aplicativo
Descrição
Escopo da análise
Force.com
Aplicativos em que dados primários, lógica e •
interface com o usuário sejam criados
•
inteiramente na plataforma do Force.com. O
aplicativo pode chamar serviços Web de
•
terceiros aprovados, como Amazon, Google,
Facebook, etc.
•
Varredura de código automatizada
Análise de código e teste da caixa preta
manuais
Componentes do cliente (Flash,
JavaScript)
Integrações e serviços da Web
Aplicativos móveis e de clientes Aplicativos executados fora do ambiente do •
(Client and Mobile Apps)
Salesforce. Esses aplicativos tratam a
•
plataforma Force.com como uma origem de
•
dados, usando o modelo de desenvolvimento
de qualquer ferramenta e plataforma para a
qual eles foram projetados. Exemplos clássicos
deste tipo de aplicativo incluem o aplicativo
para iPhone e conectores do Microsoft
Outlook.
Teste prático manual
Integrações e serviços da Web
Análise da arquitetura e teste do servido
da Web
Aplicativos da Web (Web
Applications)
Testados automaticamente e teste de caixa
preta manual
Componentes do cliente (Flash,
JavaScript)
Integrações e serviços da Web
Análise da arquitetura e teste do servido
da Web
Aplicativos executados em um ambiente
•
hospedado por terceiros e integrado ao
Salesforce, aproveitando a API de serviços
•
Web do Force.com. Os dados, a lógica e a
interface de usuário do aplicativo podem ser •
armazenados fora do Force.com.
•
Etapas da análise de segurança
O processo de análise de segurança segue as etapas indicadas abaixo.
1. Preparação para a análise de segurança.
Passando pela análise de segurança
•
•
•
•
•
•
•
•
•
Version 29.0 | Etapas da análise de segurança | 94
Leia as orientações de segurança neste capítulo.
Analise os recursos gratuitos listados em nosso site Desenvolvimento seguro na nuvem.
Assista ao nosso vídeo do Webinar sobre análise de segurança para obter dicas de preparação.
Analise a Lista de verificação de requisitos.
Analise a Lista de verificação dos dez principais OWASP.
Execute uma análise de código fonte em autoatendimento gratuita para o código desenvolvido na plataforma Force.com.
Execute uma varredura do aplicativo da Web para seu aplicativo da Web externo que está integrado ao Force.com.
Teste manualmente seu aplicativo para garantir que ele atenda aos requisitos da análise não encontrados por ferramentas.
Para obter detalhes, consulte: Guia de testes do OWASP
Corrija todos os problemas encontrados durante o teste.
Em geral, seja o mais cuidadoso possível em seu teste, pois a falta de preparação pode atrasar a aprovação. Por exemplo,
durante a fase de desenvolvimento de seu aplicativo, você deverá executar a varredura de código várias vezes para não gastar
tempo demais em problemas de correção mais adiante na finalização. Se você tiver outras dúvidas, pode programar o horário
de expediente com a equipe de análise de segurança em: http://security.force.com/security/contact/ohours.
2. Iniciar a análise de segurança.
Nota: Antes de iniciar a análise de segurança, seu aplicativo deve ser inscrito no Programa do parceiro integrado
ao Force.com ou ao ISVforce. Se você não está inscrito, entre em contato com seu ISV AE ou registre um caso
no Portal do parceiro.
a. Faça login no AppExchange usando as credenciais da sua APO.
b. Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing
Console).
c. Clique na guia Oferta (Offering).
d. Selecione a opção mais apropriada ao seu aplicativo.
•
•
Seu aplicativo é um pacote (totalmente ou em parte)
Seu aplicativo não é um pacote e usa somente o Salesforce API
e. Clique em Salvar (Save)
f. Clique em Iniciar Avaliação (Start Review) para seu aplicativo. Para aplicativos existentes com previsão de passar por
uma análise de segurança subsequente, registre um caso no Portal do parceiro.
g. Para cada aplicativo, será preenchido um questionário e lista de verificação de segurança. Forneça à equipe de revisão
uma conta de teste totalmente configurada e permita o acesso de login à sua organização de publicação.
h. Você será solicitado a fornecer um Ambiente de teste e Documentação para sua oferta a pagar a Taxa anual de listagem.
A equipe de análise executará testes para identificar possíveis vulnerabilidades no código, e poderá contatá-lo para uma
sessão de acompanhamento, se necessário. É possível verificar o status da análise de segurança no Portal do parceiro. A
equipe de análise executará aplicativos e testes de segurança de rede e fornecerá os resultados a você.
3. Analisar os resultados. Existem três resultados possíveis.
•
•
Aprovado: Você será imediatamente autorizado a listar o aplicativo no AppExchange. Você provavelmente receberá
um token de API para acessar as contas da Professional Edition. Para obter mais informações sobre o Programa de
parceiros, incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Provisoriamente Aprovado: Questões de baixo ou médio risco foram identificadas, o que pode ser resolvido facilmente
e não representam risco significativo para o salesforce.com ou seus clientes. Você poderá criar uma lista pública para a
seu aplicativo na AppExchange. No entanto, a não resolução dos problemas observados durante o período de tempo
especificado resultará na remoção do aplicativo do AppExchange. Você provavelmente receberá um token de API para
acessar as contas da Professional Edition.
Passando pela análise de segurança
•
Version 29.0 | O Questionário de análise de segurança | 95
Não Aprovado: Problemas de alto risco foram identificados durante a fase de teste. Você não poderá listar seu aplicativo
no AppExchange até que todos os problemas tenham sido tratados e analisados pela equipe de segurança do
AppExchange. Se o aplicativo já estiver listado no AppExchange, você terá 60 dias para resolver os problemas. Você
não receberá um token de API para acessar as contas da Professional Edition.
Principais etapas a serem seguidas depois de passar pela análise de segurança
Depois de passar pela análise de segurança, você estará qualificado a:
•
•
Listar seu aplicativo publicamente no AppExchange
Solicitar um token de API
Nota: O Salesforce.com reserva o direito de conduzir testes aleatórios em aplicativos publicados no local ou
externamente. Se, durante esses testes, descobrirmos que o aplicativo deixou de cumprir qualquer requisito de nossas
práticas recomentadas, nós o notificaremos e daremos tempo para resolver o problema. Em casos extremos, poderemos
retirar a lista do AppExchange da visualização pública.
O Questionário de análise de segurança
Para começar a análise de segurança, é iniciado um questionário on-line que solicita todas as informações necessárias para
testar seu aplicativo. Disponha de tempo suficiente para concluir o questionário, pois ele é detalhado e abrangente. É possível
salvar suas respostas a qualquer momento e voltar mais tarde para concluir o processo.
Nota: Seja o mais abrangente possível em suas respostas. É melhor errar fornecendo informações demais do que de
menos. Quanto mais informações tivermos, mais rápido seremos capazes de testar e aprovar seu aplicativo.
O questionário é composto de uma série de telas que irão guiá-lo pelas informações necessárias, dependendo do tipo de
componentes em seu aplicativo (ou seja, se ele é Force.com, baseado na Web, híbrido ou móvel).
1. Preparação
Visão geral das etapas no questionário e indicadores para informações úteis.
2. Informações gerais
Seu nome e informações de contado.
3. Políticas e certificações
Detalhes sobre a política de segurança da informação da sua empresa e todas as certificações. Você possui a opção de
carregar um documento de política.
4. Componentes
Os componentes e tecnologias usados pelo seu aplicativo. É possível selecionar itens relevantes em uma lista de verificação
com base no tipo de aplicativo. Algumas exceções são:
• Force.com — Apex, Visualforce, API, SSO
• Web app — estruturas/linguagens (Java, .NET, Rails, etc.), SSO, Heroku
• aplicativo de cliente — aplicativo para desktop, plugin para navegador, implementação do kit de ferramentas de CTI
do Salesforce
• aplicativo móvel — iOS, Android, Blackberry, Windows
Passando pela análise de segurança
Version 29.0 | Criar uma AppExchange Publishing
Organization | 96
5. Ambientes de teste
Detalhes de acesso, como credenciais de login, links de instalação e dados de exemplo para ambientes de teste de trabalho
totalmente configurados. Eles dependem do tipo de aplicativo.
• Force.com — nomes de usuário e senhas para todos os níveis de usuários (admin, usuário final, etc.) em uma organização
de teste
• Aplicativo da Web — URLs, nomes de usuário e senhas para todos os níveis de usuários, tokens de API, SSO e
configurações OAuth/SAML
• aplicativo de cliente — instalar URLs, dados de configuração e instruções; incluir quaisquer arquivos necessários de
licença, de dados de amostra associados, guias de configuração, credenciais
• aplicativo móvel — link de instalação separado para cada tipo de aplicativo móvel
6. Relatórios
Carregue relatórios de seu teste anterior, por exemplo:
• Force.com — relatório de varredura do código de segurança
Nota: Os resultados de varredura de código devem ser limpos antes de enviados para a análise. Se você está
ciente de todos os problemas no relatório de varredura que são falsos positivos, forneça os detalhes.
•
•
Aplicativo da Web — relatório de varredura do aplicativo da Web
Outro — outro relatório ou documentação
7. Detalhes da análise
Isso consolida todas as informações que você forneceu, para que seja possível verificar se está tudo correto e completo.
É possível retornar a alguma tela anterior para modificar suas informações.
8. Pagamento
Isso capacita você a pagar pela análise de segurança, usando o serviço de pagamento recorrente. As informações de
pagamento são salvas, de forma que você só precisa fornecê-las uma vez. Se seu aplicativo for gratuito, não será necessário
efetuar o pagamento.
Criar uma AppExchange Publishing Organization
Todas as suas listagens de aplicativos e serviços devem ser publicadas em uma única organização do Salesforce, chamada de
AppExchange Publishing Organization (APO) mestre. A APO, que na maioria dos casos é a mesma organização que você
usa para gerenciar suas licenças, é onde você irá gerenciar toda a sua publicação do AppExchange. Informa os detalhes do perfil
que os clientes veem ao navegar em suas listagens.
Veja estas práticas recomendadas para sua APO.
•
•
•
As organizações da Developer Edition (DE) onde você cria e faz upload do seu aplicativo não devem ser indicadas como
sua APO. Em vez disso, as organizações da DE devem ser vinculadas à APO como organizações filhas. Isso permite fazer
login na APO para gerenciar todos os pacotes (aplicativos) e modelos de avaliação (versões de amostra do seu aplicativo)
fornecidos pelas suas listagens, independentemente de qual organização você usou para criar os aplicativos. Como parceiro
do salesforce.com, você tem uma APO e quantas organizações vinculadas precisar.
Use a mesma organização como sua APO e LMO. Isso permite monitorar os leads gerados pela sua listagem, bem como
os clientes que instalam seu aplicativo em um local.
Peça que o grupo de marketing da sua empresa preencha a listagem do aplicativo na sua APO. Isso se deve ao fato de que
sua listagem é uma informação pública que pode ser visualizada por clientes em potencial e clientes existentes.
Para criar sua APO:
Passando pela análise de segurança
Version 29.0 | Alterar sua AppExchange Publishing
Organization | 97
1. Faça login no AppExchange usando as credenciais da sua LMO. Se você ainda não tiver uma LMO, crie uma nova
organização da DE no Portal de parceiros e use essas credenciais. Caso você não use as credenciais da LMO para criar a
APO, posteriormente será possível alterar a organização.
2. Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing Console).
Se o link para o Console de publicação (Publishing console) não for exibido, siga estas etapas:
a. Clique em Listar no AppExchange (List on the AppExchange).
b. Você será direcionado para a página Termos e Condições (Terms and Conditions). Analise as informações e clique em
Aceitar (Accept).
c. Informe se você já publicou anteriormente um aplicativo no AppExchange. Você será redirecionado para a área de
publicação, onde poderá fornecer informações sobre o aplicativo.
d. Insira as informações especificadas e clique em Salvar (Save).
Alterar sua AppExchange Publishing Organization
Ao criar sua listagem do AppExchange, é necessário fazer login com suas credenciais do Salesforce para uma organização
existente. É recomendável que a APO e a LMO sejam iguais. Isso significa que você deve fazer login no Console de publicação
(Publishing console) do AppExchange com a organização onde seu Aplicativo de gerenciamento de licença está instalado.
Talvez você tenha criado a listagem do AppExchange fazendo login com alguma outra organização. Isso pode ter ocorrido
porque você ainda não havia criado uma LMO ou porque as pessoas responsáveis pela listagem do AppExchange talvez não
tivessem acesso à LMO.
Para alterar sua APO:
1.
2.
3.
4.
5.
6.
7.
Faça login no AppExchange usando as credenciais da sua APO.
Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing Console).
Clique na guia Publicação (Publishing).
Clique em Suas organizações (Your Organizations).
Clique em Alterar minha AppExchange Publishing Organization (Change my AppExchange Publishing Organization).
Insira as credenciais da organização que deseja designar como sua APO.
Clique em Salvar (Save).
Se você já tiver uma APO designada, esta ação moverá essa organização e todas as suas organizações vinculadas à nova
organização. Pode levar 30 minutos ou mais para que seu aplicativo apareça como associado à APO. Para confirmar que o
processo foi concluído, volte à seção Início (Home) do Console de publicação (Publishing Console) e clique na guia Seus
pacotes carregados (Your Uploaded Packages). A versão do seu pacote deverá ser exibida.
Só é possível alterar sua APO se você não tiver nenhuma listagem pública no AppExchange. Se você já tiver publicado uma
listagem, é necessário registrar um caso no suporte ao cliente do Salesforce para alterar a APO. Observe que a organização da
DE onde você cria aplicativos não deve ser sua APO; ela deve estar vinculada à sua APO. Ao registrar o caso:
•
•
•
Procure o ID da organização para sua LMO.
Informe o URL da listagem do AppExchange e explique que você deseja alterar sua APO para a nova organização.
Informe o ID da organização para sua LMO.
Atualizar a versão do pacote em sua listagem do AppExchange
Cada vez que você atualiza seu pacote, você deve atualizar sua listagem do AppExchange para indicar a versão mais recente.
Isso garante que os novos clientes terão a versão mais recente de seu aplicativo. O aplicativo atualizado deve atender aos
seguintes critérios:
Passando pela análise de segurança
Version 29.0 | Envio de um aplicativo móvel para análise de
segurança | 98
1. O aplicativo deve ter passado pela aprovação de segurança no último ano.
2. Você deve ter testado o pacote com o verificador de segurança e corrigido todos os problemas identificados.
3. O pacote deve ter o mesmo namespace que o outro que passou pela aprovação de segurança.
Para atualizar a versão do pacote na listagem do AppExchange:
1. Carregue a versão mais recente de seu pacote a partir da organização que distribui o pacote.
2. Faça login em AppExchange usando suas credenciais da APO.
3. Clique na guia Seus pacotes carregados (Your Uploaded Packages) para visualizar uma lista de todos os pacotes carregados.
Você deve ver a versão de pacote mais recente que acabou de carregar. Pode levar alguns minutos depois da carga para ele
aparecer nesta lista.
4. Na coluna Aprovação de segurança (Security Review), a versão do pacote aprovado contém a data de aprovação. As versões
subsequentes mostram o status "Nunca aprovado" (Never Reviewed) na mesma coluna. Clique em Iniciar avaliação (Start
Review) para obter a versão mais recente que você acabou de carregar.
5. Preencha o questionário de autoavaliação e clique em Enviar (Submit).
•
•
Seu pacote será executado por meio do scanner de fonte de segurança, e você receberá os resultados da varredura por
e-mail. Você deve corrigir todos os problemas listados pelo scanner.
Se seu aplicativo foi aprovado na aprovação de segurança no último ano, sua nova versão de pacotes será aprovada
automaticamente, e seu status será alterado para Aprovado (Reviewed). A alteração do status pode demorar até 24
horas.
6. Edite a listagem pública para seu aplicativo e clique na guia Oferta (Offering).
7. Na seção "Seus pacotes carregados" (Your Uploaded Packages), clique no link Alterar pacotes (Change Packages).
8. Mova a versão mais recente do pacote para a seção Selecionado (Selected) na lista de seleção.
9. Selecione a versão mais recente do pacote na lista de seleção da versão.
10. Clique em Salvar (Save).
Nota: Se a última aprovação de segurança foi concluída há mais de um ano, você será contatado pela equipe de
aprovação de segurança para uma aprovação subsequente. Até então, você pode continuar a listar a versão mais recente.
Envio de um aplicativo móvel para análise de segurança
A maioria dos requisitos que se aplicam a aplicativos de clientes e alguns que se aplicam a aplicativos da Web serão válidos
para aplicativos móveis, dependendo de como o aplicativo é construído. Estes são os cenários típicos:
•
•
O aplicativo móvel tem um componente do Force.com, que fica na organização do cliente. O componente do Force.com
deve ser um pacote gerenciado e acompanhar o processo de análise de segurança para um aplicativo empacotado.
O aplicativo móvel só usa APIs para se comunicar com o Salesforce. Neste caso, siga o processo de um aplicativo somente
de API para a análise de segurança.
Para os testes, pedimos que você forneça um aplicativo para todas as plataformas que você pretende distribuir. Nós podemos
aceitar um teste operacional ou uma implantação ad-hoc para iOS. Para outras plataformas podemos aceitar o aplicativo em
um arquivo (.APK, COR, etc.) semelhante ao de um aplicativo composto; se houver chamadas para outra coisa que não seja
o Salesforce, pedimos um relatório Burp. Se o aplicativo móvel tem um componente da Web mesmo que opcionalmente, é
necessário um relatório Burp.
Como com qualquer outro aplicativo:
•
•
Deve existir uma listagem do seu aplicativo no AppExchange.
A listagem do AppExchange deve ser vinculada à sua APO.
Passando pela análise de segurança
Version 29.0 | Envio de um pacote de extensão para análise de
segurança | 99
Envio de um pacote de extensão para análise de segurança
Os ISVs criam pacotes de extensão quando desejam fornecer recursos adicionais para seus aplicativos. Os pacotes de extensão
também ajudam quando os ISVs desejam oferecer suporte a edições do Salesforce como PE e GE com seus aplicativos. Outro
caso de uso é a criação de um pacote de "ponte" que permite que aplicativos do ISV funcionem com outros aplicativos.
Todos os pacotes, sejam de base ou de extensão, necessitam de uma análise de segurança. O mesmo processo deve ser seguido
para a análise de um pacote de extensão e de um pacote de base.
Alguns pacotes de extensão são muito pequenos, por exemplo, alguns links ou botões para chamar componentes do pacote
base. Independentemente do tamanho do pacote de extensão, o mesmo processo deve ser seguido. A única diferença é que o
processo de análise será mais rápido para pacotes menores.
O processo de envio de um pacote de extensão para uma análise de segurança do AppExchange é semelhante ao que é feito
para o pacote de base.
1. Carregue seu pacote de extensão (ele deve ser gerenciado-liberado como seu pacote de base). É óbvio que o pacote de
extensão só pode ser carregado a partir de uma organização distinta da do pacote de base.
2. Em sua listagem do AppExchange, vincule a organização onde o pacote de extensão foi criado. O pacote de extensão deve
aparecer na lista de pacotes em suas listas.
3. Clique em Iniciar Avaliação (Start Review) e preencha os campos no formulário. Garanta que sua conta de teste inclui
pacotes de base e de extensão.
4. Envie para análise.
É importante que todos os pacotes de extensão sejam analisados e aprovados pela equipe de segurança do Salesforce. Apesar
de o pacote ser pequeno, ele pode introduzir vulnerabilidades na plataforma. Siga o mesmo processo de fazer uma auto varredura
do código antes de enviar para uma análise. Se o pacote de extensão tem componentes que fazem interface com um aplicativo
externo, execute uma varredura Burp e envie os resultados correspondentes.
Recursos na análise de segurança
Estes recursos podem ajudar você a se preparar para a análise de segurança.
•
•
•
•
•
•
•
•
•
Processo de análise de segurança
Lista de verificação de requisitos da análise de segurança
Recursos do Force.com de desenvolvimento seguro na nuvem
Orientações do Force.com de codificação segura
Open Web Application Security Project (OWASP)
Os dez principais problemas do OWASP
Guia de testes do OWASP
Guia de codificação segura do OWASP
Referência rápida para práticas de codificação segura do OWASP
Perguntas frequentes sobre a análise de segurança
Esta seção contém uma lista de perguntas frequentes sobre a análise de segurança.
•
•
•
É necessária uma análise de segurança do AppExchange?
O que compõe uma análise de segurança?
Por que preciso realizar uma análise de segurança?
Passando pela análise de segurança
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Version 29.0 | É necessária uma análise de segurança do
AppExchange? | 100
Quanto tempo leva a análise de segurança? Com que frequência ela é necessária?
Há alguma taxa?
Aplicativos gratuitos precisam pagar pela análise de segurança?
Por que preciso testar meu aplicativo antes da análise se a equipe de segurança vai testá-lo de qualquer forma?
Quais os motivos comuns de reprovação na análise de segurança?
Posso enviar meu aplicativo antes de concluí-lo para que eu possa realizar o processo de análise de segurança antecipadamente?
Por que está sendo exibido um erro quando eu solicito uma análise de segurança?
Serei reprovado na análise se houver respostas "Não" no questionário de segurança ou se não houver documentação formal
ou detalhada?
Por que a equipe de análise precisa testar a parte X ou Y da minha oferta?
Preciso corrigir todos os problemas relatados pela equipe da análise de segurança?
Por que a equipe da análise de segurança não pode me enviar cada ocorrência de cada descoberta da minha análise?
O que acontece se eu for aprovado na análise de segurança?
O que acontece se meu aplicativo não for aprovado?
Qual é a diferença entre Aprovado, Aprovação temporária e Reprovado?
Se eu atualizar meu aplicativo, preciso pagar novamente a taxa da análise de segurança para que ele seja revisto?
Quando eu criar um novo pacote gerenciado (efetivamente uma atualização do meu primeiro aplicativo), precisarei pagar
novamente a taxa para que a segurança dele seja analisada?
Por que preciso fazer análises de segurança periódicas?
Compreendo que soluções analisadas podem funcionar com organizações da PE e GE. Como isso funciona?
É necessária uma análise de segurança do AppExchange?
Sim, todos os aplicativos AppExchange e OEM precisam ser aprovados pela análise de segurança.
O que compõe uma análise de segurança?
O processo de análise de segurança compreende dois tipos de avaliações:
•
•
Qualitativa: pergunta e resposta sobre as políticas e procedimentos da análise.
Quantitativa: teste de penetração da rede e do aplicativo (consulte Escopo).
Por que preciso realizar uma análise de segurança?
Queremos tornar o AppExchange o ecossistema para aplicativos on-demand mais confiável que existe. A realização de uma
análise de segurança ajuda a construir essa cultura de confiança, dado que analisa se os aplicativos atendem a um conjunto de
normas de segurança e de práticas recomendadas. Esta análise ajuda a oferecer credibilidade tanto ao AppExchange quanto
aos seus aplicativos. Esta confiança, por sua vez, ajuda a aumentar a adoção por parte do cliente.
Quanto tempo leva a análise de segurança? Com que frequência ela é
necessária?
O processo de análise leva cerca de 5 a 7 semanas a partir do momento em que tivermos todos os dados, desde que:
•
•
Sua documentação esteja completa e precisa.
O ambiente de teste esteja completo, totalmente configurado e inclua todas as informações necessárias.
Passando pela análise de segurança
•
•
Version 29.0 | Há alguma taxa? | 101
Você tenha atendido todos os requisitos.
Você esteja dentro das orientações do acordo
Este é um processo periódico. Próximo da data de expiração da análise de segurança, entraremos em contado para analisar
novamente seu aplicativo.
Há alguma taxa?
Clique aqui para saber mais sobre as taxas de listagem.
Aplicativos gratuitos precisam pagar pela análise de segurança?
Não, os aplicativos gratuitos são analisados gratuitamente. Para que o aplicativo seja qualificado, precisa ser gratuito durante
o ano inteiro.
Por que preciso testar meu aplicativo antes da análise se a equipe de
segurança vai testá-lo de qualquer forma?
O teste antes da análise é para aumentar as chances de aprovação da análise na primeira rodada. Nossa análise de segurança,
além de baseada nas práticas recomendadas, é muito completa. O esforço investido nas primeiras fases será recompensado ao
longo do processo, porque os novos testes produzem um atraso significativo no seu aplicativo e no processo como um todo.
Quais os motivos comuns de reprovação na análise de segurança?
De forma não hierárquica, apresentamos uma lista das principais razões para um aplicativo não ser aprovado. Para obter mais
detalhes, consulte o Os dez principais OWASP.
•
•
•
•
•
•
•
•
•
•
Injeção (SQL, XML etc.)
Cross Site Scripting (XSS)
Gerenciamento de autenticação e de sessão interrompidos
Referências diretas a objetos inseguros
Cross Site Request Forgery (CSRF/XSRF)
Erro de configuração de segurança
Armazenamento criptográfico inseguro
Falha ao restringir o acesso à URL
Proteção insuficiente da camada de transporte
Redirecionamentos e encaminhamentos invalidados
Posso enviar meu aplicativo antes de concluí-lo para que eu possa realizar
o processo de análise de segurança antecipadamente?
Não. É muito importante que a oferta enviada seja a versão que você pretende distribuir e esteja completa. Se a oferta enviada
não é a que você pretende distribuir ou está incompleta, não poderemos identificar corretamente os problemas. Isto resultará
em atraso dada a necessidade de uma nova análise completa.
Passando pela análise de segurança
Version 29.0 | Por que está sendo exibido um erro quando eu
solicito uma análise de segurança? | 102
Por que está sendo exibido um erro quando eu solicito uma análise de
segurança?
Podem ocorrer os seguintes erros quando você solicita uma análise de segurança para sua listagem.
Esta parceria já está vinculada a outro Perfil do fornecedor do AppExchange.
Este erro significa que sua conta de parceiro está associada a uma organização do Salesforce diferente. A organização
associada à sua conta de parceiro é conhecida como sua AppExchange Publishing Organization (APO) e é a única
organização a partir da qual você pode publicar no AppExchange. Para resolver esse erro, vincule as organizações onde
você desenvolveu seu aplicativo à sua APO. Se você não souber qual organização é sua APO, registre um caso no Portal
de parceiros para obter ajuda.
Para submeter seu aplicativo à análise de segurança, você deve ser um parceiro do salesforce.com e conectar suas
informações de parceria ao seu perfil do fornecedor. Para conectar essas informações, faça login usando sua APO
mestre e edite seu perfil do fornecedor.
Para que você possa enviar uma listagem para a análise de segurança, seu perfil do fornecedor do AppExchange (isto é,
o perfil do fornecedor associado à sua APO) deve ser vinculado à sua conta de parceiro. Esse requisito acelera o processo
de análise posterior garantindo que os parceiros tenham acesso ao Portal de parceiros e que concordaram com os termos
e condições. Para resolver esse erro, faça login na página Publicação (Publishing) do AppExchange usando as credenciais
da sua APO e adicione as informações da sua conta de parceiro ao seu perfil do fornecedor.
Serei reprovado na análise se houver respostas "Não" no questionário
de segurança ou se não houver documentação formal ou detalhada?
Não, não reprovaremos você. Embora as questões peçam documentação formal e detalhada, nós entendemos que, dependendo
da dimensão e maturidade da empresa, isso pode não ser possível. Nós tentamos fazer o questionário genérico para que ele
possa cobrir todo o espectro de empresas. Por exemplo, as empresas menores podem nos fornecer uma lista de verificação
informal em vez de uma documentação formal de suas políticas de segurança. Se você precisar responder "não" a alguma das
perguntas, insira alguns comentários na caixa indicada explicando a sua abordagem. Entendemos que a pontuação não pode
ser preto e branco, e vai levar em consideração os diferentes elementos como tamanho da empresa, maturidade, e assim por
diante.
Por que a equipe de análise precisa testar a parte X ou Y da minha oferta?
Nossa abordagem é para testar todas as partes da oferta, a fim de assegurar que nossos clientes mútuos e seus dados não estejam
em risco. Isso inclui aplicativos ou serviços da Web externos que são obrigatórios ou opcionais, os aplicativos de cliente/móveis
que são obrigatórios ou opcionais e todos os Apex e Visualforce (empacotados ou não) que estejam incluídos na oferta. Se você
não tem certeza se deve incluir parte da sua oferta, inclua-a mesmo assim. A equipe de análise não testará partes da oferta que
não estejam no escopo, mas, se a parte requerida não estiver incluída, sua análise será adiada.
Preciso corrigir todos os problemas relatados pela equipe da análise de
segurança?
Sim. A menos que seja observado algo em contrário nos relatórios de teste, será necessário que você corrija todas as classes de
problemas que foram enviados pela equipe de análise em todo o aplicativo.
Passando pela análise de segurança
Version 29.0 | Por que a equipe da análise de segurança não
pode me enviar cada ocorrência de cada descoberta da minha
análise? | 103
Por que a equipe da análise de segurança não pode me enviar cada
ocorrência de cada descoberta da minha análise?
A análise de segurança é uma análise de caixa preta, limitada por tempo, e seria pouco prático fornecer essas informações, dada
a visibilidade e o tempo que a equipe de análise tem para cada análise. As descobertas devem ser interpretadas como exemplos
e todos os problemas nas categorias fornecidas devem ser corrigidos em toda a oferta.
O que acontece se eu for aprovado na análise de segurança?
É possível listar seu aplicativo publicamente no AppExchange. Você também está qualificado a solicitar um token de API, se
seu aplicativo usar APIs SOAP ou REST.
O que acontece se meu aplicativo não for aprovado?
Não é possível publicar seu aplicativo no AppExchange até que todas as descobertas tenham sido tratadas e uma análise de
acompanhamento tenha sido conduzida.
Qual é a diferença entre Aprovado, Aprovação temporária e Reprovado?
Se você recebeu um Aprovado ou Provisoriamente Aprovado em sua análise de segurança, isso significa que não foram
encontradas vulnerabilidades de alto risco em seu aplicativo. Para aplicativos Provisoriamente Aprovados, é provável que
tenham sido encontradas vulnerabilidades de risco médio. Trabalharemos em uma linha de tempo mutuamente aceitável para
que você solucione estes itens. Nesse ínterim, o token de API será fornecido para que você possa listar seu aplicativo no
AppExchange. Para aplicativos Reprovados, será necessário, primeiramente, solucionar os problemas encontrados antes que
seja possível listar seu aplicativo no AppExchange ou obter acesso ao token de API.
Se eu atualizar meu aplicativo, preciso pagar novamente a taxa da análise
de segurança para que ele seja revisto?
Não. A análise de segurança é uma revisão periódica, point-in-time em um intervalo determinado pelo salesforce.com (geralmente
entre 6 meses e 2 anos). Quando você carrega uma nova versão de pacote para o AppExchange e tenta associá-la ao seu perfil,
executamos automaticamente uma análise de código fonte para seu código do Force.com a fim identificar possíveis
vulnerabilidades de segurança. Se identificarmos algum problema, nós lhe enviaremos um relatório por e-mail e solicitaremos
que você resolva os problemas imediatamente. Reservamo-nos o direito de realizar testes aleatórios de penetração de segurança
em seu aplicativo ao longo do ano. Eles estão cobertos pela taxa de listagem que você paga anualmente, não há cobrança extra.
No entanto, se acharmos que você está fora de nossos padrões de segurança e das práticas recomendadas, caberá a possibilidade
de que removamos o aplicativo do AppExchange.
Quando eu criar um novo pacote gerenciado (efetivamente uma
atualização do meu primeiro aplicativo), precisarei pagar novamente a
taxa para que a segurança dele seja analisada?
Não. Se você desenvolver uma nova versão de um pacote já aprovado, depois de clicar em "Iniciar Análise" (Start Review) para
a nova versão, ele será automaticamente aprovado e você poderá associar a nova versão à sua lista.
Passando pela análise de segurança
Version 29.0 | Por que preciso fazer análises de segurança
periódicas? | 104
Por que preciso fazer análises de segurança periódicas?
Exigimos análises de segurança periódicas (geralmente entre 6 meses e 2 anos, dependendo do risco do aplicativo) para todos
os aplicativos. Novas versões de aplicativos surgem a cada ano e é preciso garantir que as nossas soluções integradas continuam
a manter a conformidade com as práticas recomendadas de segurança publicadas. Além disso, nós atualizamos nosso processo
de análise para acompanhar as necessidades da indústria, bem como para verificar as vulnerabilidades de segurança mais recentes.
Também é importante garantir a aprovação de seu aplicativo nesses novos requisitos.
Compreendo que soluções analisadas podem funcionar com organizações
da PE e GE. Como isso funciona?
Os parceiros qualificados podem se inscrever para obter um token de API por meio do Portal do parceiro. Este token deve ser
usado em todas as chamadas de API do aplicativo específico. Após a análise de segurança e se você for um parceiro qualificado,
nós permitimos que transações de API identificadas com seu token de API operem com organizações da Professional Edition
e da Group Edition. Consulte a página Uso do ClientID para obter exemplos de código.
Capítulo 6
Publicando seu aplicativo
Tópicos:
•
•
•
•
•
•
•
•
•
•
•
•
•
O que é o AppExchange?
Gerenciando suas organizações do
Salesforce
Publicando seu aplicativo ou serviço
Criando ou editando uma listagem
Inclusão da marca em seu aplicativo
Enviando sua listagem para aprovação
Registrando seu pacote e escolhendo
configurações de licença
Notificações por email
Usando o Checkout do AppExchange
Perguntas frequentes do
AppExchange Checkout
Trabalhando com leads do
AppExchange
Relatórios analíticos para editores
Perguntas frequentes sobre o
AppExchange
Esta seção explica como publicar e distribuir seu aplicativo empacotado no
AppExchange.
Todas as suas listas de aplicativos e serviços devem ser publicadas em uma única
organização do salesforce.com conhecida como sua AppExchange Publishing
Organization ou APO. Na maioria dos casos, sua APO também é a mesma
organização usada para gerenciar suas licenças. É possível vincular-se a uma ou
mais organizações da Developer Edition ao APO como organizações filhas.
Isso permite que você se conecte à APO para gerenciar todos os aplicativos
empacotados e modelos de avaliação (versões de amostra de seu aplicativo) que
suas listas fornecem, independentemente de qual tenha sido a organização usada
para criar os aplicativos.
Publicando seu aplicativo
Version 29.0 | O que é o AppExchange? | 106
O que é o AppExchange?
Vendendo no AppExchange
Bem-vindo ao AppExchange, seu mercado completo para aplicativos de computação em nuvem e parceiros de consultoria.
Para disponibilizar publicamente seu aplicativo ou serviço para possíveis clientes (em outras palavras, publicar uma listagem), é
necessário ser um parceiro do salesforce.com. Se você não for um parceiro, visite http://www.salesforce.com/partners para
saber mais.
Antes de começar
Para publicar aplicativos no AppExchange, instale gratuitamente o Aplicativo de gerenciamento de licenças (LMA). Com o
LMA, você pode automaticamente receber notificações toda vez que seu pacote (aplicativo) for instalado ou desinstalado, o
que permite monitorar usuários e facilmente notificá-los sobre as atualizações publicadas.
Como o AppExchange funciona?
O poder criativo por trás de cada aplicativo do AppExchange é um usuário do Salesforce. O AppExchange oferece aos usuários
um lugar para criar, publicar ou instalar aplicativos e extensões no Salesforce. Em linhas gerais, veja como o Force.com
AppExchange funciona.
Criar
Qualquer usuário do Salesforce inicia o processo criando um objeto personalizado, uma guia personalizada ou um conjunto
de painéis e relatórios que aprimora seus negócios. Esses clientes podem compartilhar suas personalizações, como um
aplicativo ou uma extensão, com outros usuários do Salesforce.
Publicar
Qualquer cliente do Salesforce pode registrar e publicar seus aplicativos no AppExchange. Também podem criar uma
demonstração da funcionalidade incluída no aplicativo para que os clientes visualizem antes de instalar.
Instalar
Os administradores do Salesforce podem decidir instalar qualquer aplicativo publicado no AppExchange. A instalação
de um aplicativo publicado no AppExchange é segura e simples.
Navegar
Veja descrições, resenhas e demonstrações de qualquer aplicativo do AppExchange. Escolha um aplicativo adequado
às suas necessidades.
Test Drive
Avalie uma demonstração totalmente funcional do aplicativo como usuário somente leitura e planeje sua
implementação.
Instalar
Adicione o aplicativo e todos os respectivos componentes ao seu ambiente do Salesforce.
Implantar
Forneça aos seus usuários acesso imediato ao aplicativo ou personalize-o para um grupo selecionado de usuários.
Publicando seu aplicativo
Version 29.0 | Quem pode usar o AppExchange? | 107
Quem pode usar o AppExchange?
Qualquer um podem navegar e testar as listas do AppExchange. Os administradores e os usuários do Salesforce com a permissão
"Fazer download de pacotes do AppExchange" podem instalar aplicativos do AppExchange. Para publicar um aplicativo no
AppExchange, um usuário deve ter as permissões “Criar pacotes do AppExchange” e “Carregar pacotes do AppExchange”.
Gerenciando suas organizações do Salesforce
Decida o quanto você deseja estruturar suas organizações do salesforce.com. Todas as suas listagens de aplicativos e serviços
devem ser publicadas em uma única organização do salesforce.com, chamada de AppExchange Publishing Organization (APO)
mestre. A APO, que na maioria dos casos é a mesma organização que você usa para gerenciar suas licenças, é onde você irá
gerenciar toda a sua publicação do AppExchange. Informa os detalhes do perfil que os clientes veem ao navegar em suas
listagens. As organizações da Developer Edition onde você cria e carrega seu aplicativo devem ser vinculadas à APO como
organizações filhas. Isso permite fazer login na APO para gerenciar todos os pacotes (aplicativos) e modelos de avaliação
(versões de amostra do seu aplicativo) fornecidos pelas suas listagens, independentemente de qual organização você usou para
criar os aplicativos.
Como parceiro do salesforce.com, você tem uma APO e quantas organizações vinculadas precisar. Recomendamos que você
use a mesma organização como sua APO e sua Organização de gerenciamento de licenças (LMO). Essa consolidação permite
monitorar os leads gerados pela sua listagem, bem como os clientes que instalam seu aplicativo em um local.
Para gerenciar suas organizações, clique na guia Publicação (Publishing) no AppExchange e faça login. Siga o link Suas
organizações (Your Organizations). Nessa página, é possível:
Clicar em Alterar minha AppExchange Publishing Organization (Change my AppExchange Publishing Organization)
e inserir as credenciais da organização que deseja designar como sua APO. Se você já tiver uma APO designada, esta ação
moverá essa organização e todas as suas organizações vinculadas à nova APO. Só é possível alterar sua APO se você não
tiver nenhuma listagem pública no AppExchange. Se você já tiver publicado uma listagem, é necessário registrar um caso
no Suporte e Atendimento ao Cliente do Salesforce para alterar a APO. Observe que a organização da Developer Edition
onde você cria aplicativos não deve ser sua APO: ela deve estar vinculada à sua APO.
Visualizar uma lista das suas organizações vinculadas se você estiver conectado à sua APO.
Visualizar as informações da sua APO se você estiver conectado a uma organização vinculada.
Clicar em Vincular nova organização (Link New Organization) se você estiver conectado à sua APO e inserir as credenciais
da organização que deseja adicionar.
•
•
•
•
A lista de organizações vinculadas oferece as seguintes informações.
Campo
Descrição
Organização (Organization)
O nome da organização vinculada
ID
O ID da organização vinculada
Salesforce Edition
A edição da organização vinculada
Pacotes (Packages)
O número de pacotes carregados a partir da organização
vinculada
Modelos de avaliação (Trial Templates)
O número de modelos de avaliação carregados a partir da
organização vinculada
Vinculado em (Linked On)
A data em que a organização foi vinculada à APO.
Publicando seu aplicativo
Version 29.0 | Publicando seu aplicativo ou serviço | 108
Publicando seu aplicativo ou serviço
Para disponibilizar seu aplicativo ou serviço de consultoria no AppExchange, é necessário criar uma listagem:
1. Fala login na sua AppExchange Publishing Organization (APO) ou na organização que você designará como APO após
o login.
2. Crie um perfil do fornecedor.
3. Crie uma nova listagem.
4. Se sua listagem for um aplicativo em vez de um serviço, envie o pacote do aplicativo para a análise de segurança.
5. Depois que seu aplicativo for aprovado, clique em Tornar público (Make Public) para publicar sua listagem na comunidade
do AppExchange. Os serviços públicos de consultoria não requerem análise.
Publicação de um aplicativo no AppExchange
A listagem de seu aplicativo noAppExchange é flexível. Você não está limitado a uma única listagem. É possível publicar um
aplicativo que trata de um negocio genérico, assim como muitas variações do aplicativo que são específicas para determinados
mercados verticais. Depois de criar um perfil de provedor e carregar seu aplicativo, será possível começar a criar uma lista de
aplicativos clicando em Criar nova lista (Create New Listing) na página inicial de Publicação (Publishing).
As listagens constituem sua principal ferramenta de marketing para promoção de seu aplicativo. Quanto mais informações
você adicionar à sua listagem, maior a probabilidade de que os usuários a encontrem. Descreva sua solução, preços, suporte e
outros detalhes para que os clientes em potencial possam determinar se sua solução é a correta para eles. Carregue vídeos
informativos, artigos e outros conteúdos para enriquecer o conhecimento do cliente sobre o que seu aplicativo oferece.
Para listar publicamente seu aplicativo, você deve passar pela Análise de segurança do AppExchange. Esta análise garante que
seu aplicativo ou modelo de teste pode ser instalado com segurança pelos clientes.
Criando ou editando seu perfil do fornecedor
O perfil do fornecedor que você cria para sua APO inclui as informações sobre sua empresa que você deseja exibir para os
clientes. As pessoas que procurarem suas listagens veem as informações do perfil na guia Fornecedor (Provider). Você também
pode criar um perfil do fornecedor para suas organizações vinculadas, embora esse perfil não seja público. Atualmente, é possível
listar um serviço por perfil do fornecedor.
Para editar o perfil, verifique se você está conectado usando as credenciais da organização de destino e clique em Seu perfil do
fornecedor (Your Provider Profile) no canto superior esquerdo da página Publicação (Publishing). É possível fornecer as
seguintes informações:
Campo
Descrição
Nome do fornecedor (Provider Name)
O nome da sua empresa. Este é o único campo obrigatório.
Site da Web (Website)
A URL do website da sua empresa.
Email
O e-mail de contato da sua empresa.
Telefone (Phone)
O telefone de contato da sua empresa.
Sede (Headquarters)
O endereço completo da sede da sua empresa, incluindo cidade,
estado (se aplicável) e país.
Ano de fundação (Year Founded)
O ano da fundação da sua empresa.
Publicando seu aplicativo
Version 29.0 | Criando ou editando uma listagem | 109
Campo
Descrição
Funcionários (Employees)
O número de funcionários da sua empresa.
Descrição (Description)
Um ou dois breves parágrafos sobre sua empresa.
Parceiro Salesforce.com (Salesforce.com Partnership A conta de parceiro do Salesforce.com da sua empresa. Este
)
campo é obrigatório para listar publicamente seu aplicativo ou
serviço no AppExchange. Clique em Alterar parceria (Change
Partnership) para criar um vínculo entre sua conta no Portal
de parceiros e seu perfil do fornecedor do AppExchange. Isso
permite que sua certificação, projeto, índice de satisfação do
cliente e informações de parceiro apareçam no AppExchange.
Importante: Como só é possível vincular sua conta
do Portal de parceiros do Salesforce.com uma vez,
não se esqueça de vinculá-la à sua APO.
Logotipo (Logo)
O logotipo da sua empresa. Insira o local de um arquivo ou
clique em Procurar... (Browse...) e navegue até seu logotipo.
Criando ou editando uma listagem
As listagens são sua ferramenta de marketing principal para promover seu aplicativo ou serviço de consultoria no AppExchange.
The more information you add to your listing, the more likely it is that users can find it. Crie uma listagem para cada aplicativo
ou serviço de consultoria. Edite as seguintes guias, que correspondem às guias que os usuários veem ao visualizar sua listagem.
•
•
•
•
•
•
•
•
Guia Informações básicas (Basic) para aplicativos e serviços de consultoria
Guia Oferta (Offering) para aplicativos
Guia Preços (Pricing) para aplicativos
Guia Especificações (Specs) para aplicativos
Guia Suporte (Support) para aplicativos
Guia Experiência (Experience) para serviços de consultoria
Guia Conteúdo carregado (Uploaded Content) para aplicativos e serviços de consultoria
Guia Leads para aplicativos e serviços de consultoria
Guia Informações básicas (Basic)
A guia Informações básicas (Basic) inclui informações que ajudam os clientes a encontrar e avaliar sua listagem.
Campo
Descrição
Título da Listagem (Listing Title)
(Obrigatório) O nome da sua listagem.
Tag Line
(Obrigatório) Uma frase curta que descreve sua listagem.
Categorias
(Obrigatório) As categorias que os clientes podem usar para
procurar sua listagem. Se sua listagem for um aplicativo, as
categorias são atribuídas pelo salesforce.com logo após a
publicação da listagem. Isso garante que seu aplicativo tenha
Publicando seu aplicativo
Campo
Version 29.0 | Guia Oferta (Offering) (aplicativos) | 110
Descrição
melhores chances de ser encontrado por possíveis clientes.
Para alterar as categorias de um aplicativo, é necessário registrar
um caso no Portal de parceiros.
Informação de Contato (Privativo a
(Obrigatório) E-mail comercial/de marketing
salesforce.com) Contact Information (Private
(Business/Marketing Email): o endereço de e-mail pelo qual
to salesforce.com)
o salesforce.com pode entrar em contato com você sobre
informações relacionadas a negócios ou marketing.
(Obrigatório) E-mail técnico (Technical Email): o endereço
de e-mail pelo qual o salesforce.com pode entrar em contato
com você sobre informações técnicas ou relacionadas a
segurança.
(Obrigatório) E-mails sobre resenhas (Reviews Email):–o
endereço de e-mail onde você gostaria de receber notificações
por e-mail relacionadas a resenhas e comentários em sua
listagem.
Os endereços de e-mail acima não são compartilhados com
clientes.
Informação de Contato (Público) Contact
Information (Public)
E-mail: o e-mail de contato da sua empresa para clientes em
potencial.
Telefone (Phone): o telefone de contato da sua empresa para
clientes em potencial.
Website: o URL do website da sua empresa.
Breve Descrição (Brief Description)
(Obrigatório) Um resumo da sua listagem. The maximum
number of characters permitted is 255.
Destaques
Principais recursos relacionados à sua listagem.
Descrição Completa (Full Description)
Uma descrição detalhada da sua listagem. The maximum
number of characters permitted is 1200.
Guia Oferta (Offering) (aplicativos)
A guia Oferta (Offering) é onde você decide como os clientes podem instalar seu aplicativo.
Campo
Descrição
Que tipo de aplicativo você está listando?
(What kind of application are you listing?)
Um pacote é o recipiente que armazena todas as guias e objetos
personalizados e padrão que compõem seu aplicativo. Selecione
se sua listagem usa um pacote ou a API. Se a listagem incluir
um pacote e a API, selecione a opção API.
Como seu aplicativo deve ser instalado? (How Consulte Escolhendo a melhor opção de instalação.
should people install your application?)
Publicando seu aplicativo
Version 29.0 | Escolhendo a melhor opção de instalação | 111
Campo
Descrição
Enable free trial sign up of Salesforce and
your application
Selecione esta opção se você deseja que seus clientes se
inscrevam para uma avaliação gratuita de 30 dias do Salesforce
e do seu aplicativo. Para obter detalhes, consulte Como
oferecer uma avaliação gratuita do meu aplicativo?
Adicionar um ou mais de seus pacotes
Se sua listagem incluir um pacote, clique em Alterar pacotes
carregados a esta listagem (Link one or more (Change Packages) e inclua todas as versões do seu aplicativo.
of your uploaded packages to this listing)
Each package version can be associated with only one listing
at a time.
Selecione a versão mais atual do seu
Selecione a versão que deseja que os clientes instalem. As
aplicativo (Select the latest version of your informações desta versão são mostradas na guia Especificações
application)
(Specs) da sua listagem. Each package version can be associated
with only one listing at a time.
Adicione um ou mais de seus modelos de
avaliação a esta listagem (Link one or more
of your trial templates to this listing)
Se você estiver permitindo uma avaliação gratuita, associe pelo
menos um modelo de avaliação.
Selecione o modelo de avaliação registrado
(Select the sign-up trial template)
Selecione o modelo que os clientes receberão ao fazerem login
na sua avaliação gratuita. Para obter mais informações sobre
modelos de avaliação, consulte Como oferecer uma avaliação
gratuita do meu aplicativo?
Test Drive
Selecione esta opção se você deseja oferecer aos usuários do
Salesforce um test drive ou uma versão somente leitura do seu
aplicativo. Consulte Associando um test drive à sua listagem.
Escolhendo a melhor opção de instalação
Quanto mais fácil for para as pessoas instalarem e testarem seu aplicativo, maior será a probabilidade de eles se converterem
em clientes pagantes. No AppExchange, clientes em potencial clicam em Adquirir agora (Get It Now) na sua listagem de
aplicativos e, em seguida, respondem a algumas perguntas simples para orientá-los na instalação. O fluxo depende da resposta
à pergunta Como seu aplicativo deve ser instalado (How should people install your application)
no momento da criação da listagem.
Opção
Considerações
Instalar diretamente do AppExchange (Install Se seu aplicativo for um pacote, geralmente esta é a opção de
it directly from the AppExchange)
instalação mais simples. Essa opção permite que as pessoas
instalem seu aplicativo no sandbox ou no ambiente de produção
do Salesforce por meio da sequência de instalação do
AppExchange, sem necessidade de assistência da sua parte.
Instalar diretamente do site da companhia
(Install it directly from your company’s
website)
Se seu aplicativo for um cliente capaz de ser baixado ou precisar
de informações adicionais para ser instalado, esta é a melhor
opção para você. Depois que os usuários clicarem no botão
Adquirir agora (Get It Now), na sua listagem de aplicativos,
e aceitarem os termos e condições, serão direcionados ao seu
site para incluir o processo de instalação. Verifique se o seu
site tem instruções claras sobre como fazer download do
Publicando seu aplicativo
Opção
Version 29.0 | Associando um test drive à sua listagem | 112
Considerações
aplicativo e realizar as configurações necessárias. Se não for
possível instalar seu aplicativo sem ajuda, não selecione esta
opção.
Entre em contato com sua companhia para que Se sua instalação ou processo de seleção exigir sua assistência,
você possa ajudar na instalação (Contact your está é a única opção viável. Após aceitar os termos e condições,
company so you can help them install it)
seu cliente será informado de que você entrará em contato em
breve para ajudá-lo com a instalação. Verifique se sua empresa
tem os recursos necessários para auxiliar todos os possíveis
clientes.
Permitir inscrição na avaliação gratuita do
Salesforce e do seu aplicativo (Enable free trial
sign up of Salesforce and your application)
Esta opção oferece uma avaliação gratuita de 30 dias do
Salesforce e do seu aplicativo. Para conhecer os requisitos,
consulte Como oferecer uma avaliação gratuita do meu
aplicativo?
Associando um test drive à sua listagem
É possível oferecer a outros usuários do Salesforce a oportunidade de fazer um test drive de uma versão somente para leitura
de seu aplicativo em uma organização da Developer Edition. Esta organização, que inclui quaisquer dados amostrais que você
escolher, está em um ambiente tão seguro quanto qualquer outro ambiente do Salesforce. Tests drives contribuem para sua
popularidade.
Para associar um test drive à sua listagem:
1.
2.
3.
4.
Ao criar ou editar sua listagem, na guia Oferta (Offering), clique em Criar Test Drive (Create Test Drive).
Inserir um título.
Selecione o pacote. Ele será instalado em uma nova organização da Developer Edition.
Clique em Enviar (Submit). O Salesforce envia informações sobre a nova organização da Developer Edition para o endereço
de e-mail de seu Salesforce.
5. Depois de receber as informações de login, faça login como administrador na nova organização e crie dados de amostra ou
outras tarefas de configuração.
6. Depois que a organização estiver pronta, volte para a página do AppExchange Publishing.
7. Clique em Editar (Edit) na listagem de destino.
8. Na guia Oferta (Offering), clique em Alterar Organização (Change Organization) para especificar a nova organização
da Developer Edition.
9. Digite o login e a senha do usuário da avaliação que foram enviados a você junto com as credenciais de administrador. (A
senha de avaliação do usuário não pode ser finalizada com #). O usuário da avaliação tem permissão somente para leitura.
10. Clique em OK.
Depois que sua listagem for publicada, todos que realizaram o teste drive fazem login com o mesmo usuário de avaliação.
Guia Preços (Pricing)
Use a guia Preços (Pricing) para especificar informações de preço para seu aplicativo. Também é possível se inscrever no
Checkout, um serviço que permite aos clientes pagar pelos seus aplicativos diretamente no AppExchange. Para obter mais
informações, consulte Usando o AppExchange Checkout na página 120.
Publicando seu aplicativo
Campo
Version 29.0 | Guia Experiência (Experience) | 113
Descrição
Descrever as informações sobre o preço desse (Obrigatório) Especifique se seu aplicativo é gratuito ou pago
aplicativo (Describe the basic pricing for
e se você oferece descontos para ONGs.
this application)
Nota: Alguns dos campos a seguir são relevantes
apenas para aplicativos pagos e não serão exibidos se
você especificar que seu aplicativo é gratuito.
Como deseja cobrar e gerenciar esse
Especifique se você deseja gerenciar o pagamento e a cobrança
aplicativo? (How do you want to bill for and por meio do Checkout ou por conta própria.
manage this application?)
Quando deseja coletar as informações de
pagamento? (When do you want to collect
payment information?)
Especifique como você deseja coletar informações de
pagamento: antes de os clientes instalarem o aplicativo ou
depois que eles iniciarem uma avaliação gratuita.
Nota: Este campo só será exibido se você tiver se
inscrito para o Checkout e for usá-lo nesta listagem.
Preço de lista (List Price)
Taxa
O preço do seu aplicativo, por unidade. Especifique o
valor e a moeda.
Unidades
A unidade da qual o preço depende, como usuário ou
empresa. Se você não estiver usando o Checkout, também
poderá especificar unidades personalizadas.
Frequência
A frequência de cobrança. Pode ser mensal ou única. Se
você não estiver usando o Checkout, você também terá
a opção de preços anuais.
Avaliação gratuita
O número de dias pelos quais uma avaliação gratuita é
válida. Esta opção só estará disponível ao usar o Checkout
e quando você decidir coletar informações de pagamento
antes da instalação.
Detalhes adicionais (Additional Details)
Quaisquer informações adicionais sobre preços que você deseje
comunicar aos clientes. Essa descrição pode ter até 255
caracteres e pode incluir links, por exemplo, de uma planilha
completa de preços no seu site.
Guia Experiência (Experience)
Ao editar um serviço, na guia Experiência (Experience), informe a região, o idioma e informações de parceria da sua listagem.
Publicando seu aplicativo
Version 29.0 | Guia Especificações (Specs) | 114
Campo
Descrição
Foco Geográfico (Geographic Focus)
Os locais onde você oferece seu serviço. Você pode adicionar
ou alterar regiões.
Idiomas Falados (Languages Spoken)
Os idiomas nos quais o serviço é prestado. You can add or
change languages.
Certificações, Projetos e Satisfação do
Cliente (Certifications, Projects, and
Customer Satisfaction)
Essas informações são vinculadas ao seu Portal de parceiros.
Para atualizar sua parceira, clique em Vá para seu perfil do
fornecedor para gerenciar este link (Go to Your Provider
Profile to Manage this Link).
Guia Especificações (Specs)
Use a guia Especificações (Specs) para inserir as seguintes informações sobre seu aplicativo.
Campo
Descrição
Salesforce Editions
(Obrigatório) As edições do Salesforce que são compatíveis
com o seu aplicativo. É possível adicionar ou alterar edições.
Idiomas suportados (Supported Languages)
(Obrigatório) Os idiomas suportados pelo seu aplicativo. Você
pode adicionar ou alterar idiomas.
Requisitos do sistema
Os requisitos do seu aplicativo. Por exemplo, você pode listar
o sistema operacional, as versões do navegador ou outros
softwares necessários para que seu aplicativo funcione
corretamente.
Guia Suporte (Support)
A guia Suporte (Support) oferece aos clientes informações sobre o serviço que você deseja prestar.
Campo
Descrição
Suportado (Supported) ou Não suportado (No
Support)
Indique se seu aplicativo é suportado ou não. Se o seu aplicativo
for suportado, digite as informações de suporte solicitadas. Se
não for, é necessário digitar apenas o contrato de termos e
condições.
Número de telefone
O telefone de suporte da sua empresa. Indique se o telefone
de suporte tem uma cobrança adicional.
Email
O e-mail de suporte da sua empresa. Indique se o e-mail de
suporte tem uma cobrança adicional.
URL do bate-papo on-line (Online Chat URL)
O endereço do bate-papo on-line da sua empresa. Indique se
o suporte on-line tem uma cobrança adicional.
URL da base de conhecimento (Knowledge Base
URL)
O endereço da base de conhecimento da sua empresa. Indique
se o acesso à base de conhecimento tem uma cobrança
adicional.
Publicando seu aplicativo
Version 29.0 | Guia Conteúdo carregado (Uploaded
Content) | 115
Campo
Descrição
Suporte disponível 24h, 7 dias por semana
(Support Available 24 hrs × 7 days)
Indica se o suporte está disponível 24 horas por dia, 7 dias por
semana.
Suporte premium disponível (Premium Support
Available)
Indica se você oferece um pacote de suporte premium.
Contrato de prestação de serviço (Service
Level Agreement)
Indica se você oferece um contrato de prestação de serviço.
Detalhes do suporte (Support Details)
Insira informações detalhadas sobre seus recursos de suporte.
Termos e Condições (Terms & Conditions)
Insira os Termos e Condições que seus clientes devem analisar
e aceitar antes de instalar o aplicativo. Se os Termos e
Condições tiverem mais de 32.000 caracteres, insira um acordo
abreviado e informe que o cliente pode acessar os Termos e
Condições completos no seu site.
Guia Conteúdo carregado (Uploaded Content)
Na guia Conteúdo carregado (Uploaded Content), você pode adicionar ou remover arquivos da sua listagem, como logotipos,
banners e vídeos.
Campo
Descrição
Logotipo
Carregue os logotipos da sua listagem. Seus logotipos podem
aparecer em vários locais do AppExchange, incluindo em sua
listagem, nos resultados da pesquisa e na página inicial. Confira
nossas diretrizes para criar um ótimo logotipo. Se sua listagem
for privada e você não carregar logotipos da listagem, o
AppExchange exibirá logotipos padrão. Para tornar sua
listagem pública, carregue logotipos pequenos, lado a lado e
em alta resolução, conforme descrito a seguir.
• Logotipo pequeno: carregue um arquivo PNG de até 100
KB. O logotipo deve ter exatamente 60×60 pixels.
• Logotipo lado a lado: carregue um arquivo PNG de até
300 KB. O logotipo deve ter exatamente 280×205 pixels.
• Logotipo de alta resolução: carregue um arquivo PNG
de alta resolução, com um plano de fundo transparente,
de até 10 MB. Este logotipo tem apenas fins de marketing
e não é usado no site.
Efeitos como sombras são automaticamente aplicados, portanto
não é necessário incluí-los no logotipo.
Banner
Carregue um banner para sua listagem. Este banner é mostrado
na sua listagem, na página Resumo (Summary). É possível
carregar um arquivo PNG de até 1 MB. A imagem deve ter
exatamente 1200×300 pixels.
Publicando seu aplicativo
Version 29.0 | Diretrizes do logotipo | 116
Campo
Descrição
Vídeo
Forneça um vídeo para sua listagem. Você tem duas opções:
• Especificar um URL para visualizar um vídeo em uma
nova página. Isso leva o cliente para fora da página da sua
listagem, mas permite que você gere leads.
• Incorporar um vídeo do YouTube na mesma página. Isso
oferece uma experiência integrada ao cliente, mas não
permite a geração de leads. Será necessário especificar uma
legenda para o vídeo.
Images
Carregue até oito imagens para sua listagem. Não há restrições
quanto ao tamanho da imagem. Os arquivos devem ter a
extensão PNG e ter até 1 MB.
Recursos
Carregue até seis whitepapers, depoimentos, estudos de caso,
folhas de dados, webinários, guias de personalização ou outros
recursos que podem ser hospedados no AppExchange ou em
outro lugar. Os recursos podem ser arquivos PDF de até 10
MB.
Diretrizes do logotipo
Os logotipos são mais do que simples decoração. Um bom logotipo diz a seus clientes que eles podem confiar no seu aplicativo
ou serviço porque você dedicou tempo para investir na própria marca. O logotipo também transmite atributos importantes
sobre sua oferta.
Dicas para criar um ótimo logotipo:
1. Contrate um designer ou aproveite um serviço de logotipo crowdsourcing – é possível encontrá-lo na Internet e definir o
preço que deseja pagar pelo logotipo.
2. Não use apenas o logotipo da sua empresa – criar um logotipo e um nome próprio ao seu aplicativo ou serviço fornece uma
plataforma para expandir sua oferta.
3. Use imagens que as pessoas reconhecem – você deseja que as pessoas façam associações rápidas, não que percam tempo
decifrando referências obscuras.
4. Mantenha a simplicidade – evite fotos, excesso de palavras e imagens complexas.
5. Dedique tempo para observar seus concorrentes e aplicativos populares no espaço do consumidor – aproveite o mercado
para ganhar inspiração.
6. Teste seu logotipo em diferentes contextos – em planos de fundo branco, preto ou ao lado do logotipo da sua empresa.
Guia Leads
Na guia Leads, você pode especificar os cenários que geram leads a partir da sua listagem.
Campo
Descrição
Envie-me leads na instalação (Send me leads
on install)
Para listagens de aplicativo, um lead é enviado quando um
cliente instala seu aplicativo. Se você exigir que os clientes
entrem em contato com você para obter informações de
instalação, selecione esta opção.
Publicando seu aplicativo
Version 29.0 | Inclusão da marca em seu aplicativo | 117
Campo
Descrição
Envie-me leads no test drive (Send me leads
on test drive)
Para listagens de aplicativo, um lead é enviado quando um
cliente faz um test drive do seu aplicativo.
Envie-me leads na demonstração (Send me leads Para listagens de aplicativo, um lead é enviado quando um
on demo)
cliente visualiza sua demonstração.
Envie-me leads na inscrição na avaliação
gratuita (Send me leads on free trial sign
up)
Para listagens de aplicativo, um lead é enviado quando um
cliente se inscreve para uma avaliação gratuita.
Envie-me leads no saiba mais (Send me leads
on learn more)
Para listagens de serviço, um lead é enviado quando um cliente
clica em Saber mais na (Learn More) na sua listagem.
Envie-me leads no vídeo (Send me leads on
video)
Para listagens de serviço, um lead é enviado quando um cliente
visualiza seu vídeo.
Campanha (Campaign) (opcional)
Se você desejar associar os leads gerados pela sua listagem a
uma campanha, insira o ID de uma campanha. Os IDs de
campanhas começam com 701 e contêm 15 caracteres.
Enviar Leads para (Send Leads To)
Clique em Alterar organização (Change Organization) para
especificar a organização do Salesforce onde você deseja enviar
leads para esta listagem. A organização deve ter o
Web-To-Lead ativado.
Inclusão da marca em seu aplicativo
É importante considerar a importância da marca ao projetar suas listas de aplicativos. Determine uma marca significativa e
influente que você possa usar consistentemente no AppExchange para identificar seu aplicativo. Consulte Partner Logo and
Branding Usage Guidelines (Orientações para uso do logotipo e da marca do parceiro) no conteúdo do Portal do parceiro em relação
às convenções para logotipo e marca no aplicativo. É possível navegar até a página de Relações públicas de duas maneiras:
Início (Home) > Programas (Programs) > Programa de consultoria (Consulting Program) > Para o mercado (Go-to-market)
> Relações públicas (Public Relations) ou Início (Home) > Programas (Programs) > Programa ISV (ISV Program) > Para
o mercado (Go-to-market) > Relações públicas (Public Relations).
Enviando sua listagem para aprovação
Somente aplicativos listados publicamente podem ser pesquisados no AppExchange. Para que você liste seu aplicativo ou
forneça um modelo de avaliação publicamente no AppExchange, eles devem passar pelaAnálise de segurança do AppExchange.
Esta análise garante que seu aplicativo ou modelo de teste pode ser instalado com segurança pelos clientes. Como fornecedor,
você é obrigado a atualizar as informações da sua análise de segurança sempre que seu aplicativo ou modelo de avaliação são
alterados.
Nota: As informações fornecidas nesta avaliação são disponibilizadas a todos os clientes do AppExchange.
Para iniciar a avaliação de um aplicativo empacotado, siga estas etapas:
1. Clique em Iniciar avaliação (Start Review) na coluna Aprovação de segurança (Security Review) do pacote na página
inicial Publicação (Publishing) ou clique em Iniciar avaliação (Start Review) na guia Oferta (Offering) ao editar a listagem.
Publicando seu aplicativo
Version 29.0 | Enviando sua listagem para aprovação | 118
2. Determine se o aplicativo é pago ou gratuito. Aplicativos gratuitos devem ser submetidos à avaliação, mas neste caso a taxa
não é cobrada.
3. Se você cobrar pelo aplicativo, a equipe de Operações do parceiro enviará dentro de dois dias úteis um e-mail com informações
sobre como pagar pela avaliação. Esse pagamento é anual.
4. Indique se seu aplicativo faz parte de qualquer serviço da Web fora do Force.com, incluindo seus próprios servidores.
5. Se seu aplicativo fizer parte de outros serviços da Web, liste todos eles na caixa Webservices utilizados
(Webservices Used). Você pode inserir até 1000 caracteres.
6. Caso seu aplicativo integre outros serviços da Web, selecione como seu aplicativo será autenticado nesses serviços. Insira
comentários úteis na caixa exibida. Você pode inserir até 1000 caracteres.
7. Indique se seu aplicativo armazena credenciais do usuário do salesforce.com fora do Force.com.
8. Indique se seu aplicativo armazena dados do cliente do salesforce.com fora do Force.com.
9. Se seu aplicativo armazenar dados do cliente do salesforce.com fora do Force.com, liste todos os objetos do salesforce.com
acessados na caixa Objetos acessados (Objects Accessed). Você pode inserir até 255 caracteres.
10. Indique se seu aplicativo requer que os clientes instalem quaisquer componentes, como softwares ou plug-ins.
11. Se seu aplicativo exigir componentes do cliente, insira os detalhes na caixa Requisitos (Requirements). Você pode
inserir até 1000 caracteres.
12. Clique em Iniciar avaliação de segurança (Start Security Review) para iniciar a Análise de segurança do AppExchange.
Para descartar suas alterações e voltar à página anterior, clique em Cancelar (Cancel).
Importante: De acordo com o contrato, você é obrigado a manter essas informações atualizadas. Por exemplo,
se você atualizar seu aplicativo para usar um novo serviço da Web, deve editar as informações no envio da sua
análise de segurança. Para editar suas informações de envio, clique em Editar análise (Edit Review) na guia Oferta
(Offering) ao editar a listagem. Os aplicativos são revisados periodicamente.
Após você iniciar a análise, um membro da equipe de operações do parceiro enviará um e-mail dentro de dois dias úteis
informando as próximas etapas.
Para fornecer uma avaliação gratuita do seu aplicativo e do Salesforce, tanto seu aplicativo (pacote) como o respectivo modelo
do Trialforce devem receber uma avaliação. Para iniciar o processo de avaliação para um modelo do Trialforce:
1. Verifique se todos os pacotes incluídos no modelo do Trialforce foram aprovados na Análise de segurança do AppExchange.
Não há custo adicional para a avaliação do modelo.
2. Clique em Iniciar avaliação (Start Review) na coluna Aprovação de segurança (Security Review) do modelo do Trialforce,
na página inicial Publicação (Publishing).
3. Clique em Inscrever-se usando modelo de avaliação (Sign Up Using Trial Template).
4. Insira o nome de usuário desejado e o e-mail da sua nova organização. Suas novas credenciais (nome de usuário e senha)
são enviados para este e-mail.
5. Clique em Enviar (Submit).
6. Após receber um e-mail de inscrição com suas credenciais de usuário, faça login nessa organização e defina a senha
permanente.
7. Volte ao AppExchange e à página Aprovação de segurança (Security Review) do seu modelo. Para fazer isso, clique em
Iniciar avaliação (Start Review) na coluna Aprovação de segurança do modelo, localizada na página inicial Publicação
(Publishing).
8. Clique em Alterar organização (Change Organization).
9. Insira seu nome de usuário e senha da sua nova organização de avaliação.
10. Clique em Iniciar avaliação de segurança (Start Security Review) ou em Cancelar (Cancel) para descartar suas alterações
e voltar à página anterior. A avaliação do modelo leva alguns dias, e a equipe de avaliação entrará em contato com você em
caso de dúvidas.
Publicando seu aplicativo
Version 29.0 | Registrando seu pacote e escolhendo
configurações de licença | 119
Registrando seu pacote e escolhendo configurações de licença
Se você registrar seu pacote de aplicativos, receberá um registro de licença toda vez que um cliente instalar seu aplicativo. As
licenças permitem monitorar quem está usando seu aplicativo e por quanto tempo. Para que você possa registrar seu pacote,
sua listagem deverá atender às seguintes condições:
•
•
Seu aplicativo deve ser um pacote gerenciado.
Você deve ter instalado o Aplicativo de gerenciamento de licenças (LMA). A organização em que você instalar o LMA é
chamada de sua Organização de gerenciamento de licenças (LMO). Geralmente, seu LMA e sua APO são a mesma
organização.
Registre seu pacote e escolha as configurações padrão da licença:
1. Na página inicial Publicação (Publishing), clique em Gerenciar licenças (Manage Licenses) ao lado do pacote carregado
e gerenciado.
2. Na página Registre seu pacote carregado (Register Your Uploaded Package), clique em Registrar (Register). Se o pacote
nunca tiver sido associado a uma LMO, selecione uma. Se uma versão anterior do pacote tiver sido registrada, as configurações
dessa versão aparecerão automaticamente. Você pode editar essas configurações existentes, exceto a LMO. Para alterar
uma LMO, é necessário entrar em contato com a salesforce.com.
3. Selecione se o status da sua licença padrão é Avaliação gratuita ou Ativa. Se sua licença for gratuita, selecione Ativa (Active).
4. Se você tiver selecionado uma licença de avaliação gratuita, digite o número de dias inteiros, até 90. Se você tiver selecionado
uma licença ativa, digite a duração da licença, em dias inteiros. Se sua licença for gratuita ou não expirar, selecione Licença
sem expiração (License does not expire).
5. Digite o número de assentos associados à sua licença padrão ou selecione Licença para o site inteiro (License is site-wide)
para oferecer a licença a todos os usuários da organização do instalador.
6. Clique em Salvar (Save).
Notificações por email
E-mails de notificação de instalação
Um e-mail de notificação é enviado aos assinantes do seu aplicativo 30 dias após a instalação inicial. A notificação agradece
aos usuários por instalar o aplicativo e incentiva que escrevam uma resenha para compartilhar com outros usuários as experiências
que tiveram. Uma notificação é enviada somente quando são atendidas as seguintes condições:
•
•
•
O usuário tem um endereço de e-mail válido.
Ainda não foi enviada uma notificação para o mesmo usuário.
O usuário ainda não publicou uma resenha.
E-mails de notificação de resenha
Quando os usuários publicam resenhas e comentários sobre seu aplicativo e suas listagens de parceiro de consultoria, são
enviados e-mails de notificação às partes interessadas. Existem vários tipos de notificações por e-mail, que dependem da função
do usuário na conversa (fornecedor, autor ou comentador).
Tipo de e-mail de
notificação
Enviado para
Novo comentário sobre Você, o fornecedor
sua listagem
Detalhes
Enviado somente se você tiver especificado um endereço de e-mail no
campo E-mail sobre resenhas (Reviews Email) na guia Editar listagem
(Edit Listing) > Informações básicas (Basic).
Publicando seu aplicativo
Tipo de e-mail de
notificação
Version 29.0 | Usando o Checkout do AppExchange | 120
Enviado para
Detalhes
Novo comentário sobre O autor da resenha
sua resenha
Enviado somente se alguém diferente do autor da resenha fizer um
comentário sobre a resenha e se o autor tiver optado por receber notificações
por e-mail no perfil dele. Se o autor responder à notificação, a resposta será
publicada como novo comentário na resenha.
Também comentou
sobre a resenha
Enviado para as pessoas que comentaram sobre uma resenha, que não são
o autor da resenha nem o autor deste comentário e que optaram por receber
notificações por e-mail em seus perfis. No máximo uma notificação por
e-mail é enviada a cada comentador para cada novo comentário. Se a pessoa
responder à notificação, a resposta será automaticamente publicada como
novo comentário na resenha.
As pessoas que
comentaram sobre a
resenha
Novo comentário sobre Você, o fornecedor
a resenha da sua
listagem
Enviado sempre que alguém escreve um novo comentário sobre uma resenha
da sua listagem. A notificação é enviada somente se você tiver especificado
um endereço de e-mail no campo E-mail sobre resenhas (Reviews Email)
na guia Editar listagem (Edit Listing) > Informações básicas (Basic).
Usando o Checkout do AppExchange
O Checkout é um serviço do salesforce.com e do Recurly que permite aos clientes pagar pelos seus aplicativos diretamente no
AppExchange. O serviço cobra do cartão de crédito dos seus clientes automaticamente e deposita o dinheiro na sua conta. Se
o acesso ao seu aplicativo for vendido como uma assinatura, o serviço cobrará seus clientes periodicamente.
O Checkout oferece acesso integrado ao gerenciamento automático de assinaturas e cobranças recorrentes do Recurly, incluindo
pagamento inicial, complemento, redução, cancelamento e renovação automática. Ele também atualiza automaticamente
licenças no Aplicativo de gerenciamento de licenças (LMA). Para os seus clientes, o Checkout facilita o pagamento pelo seu
aplicativo. Para você, ele evita o trabalho de gerenciar cobranças recorrentes e licenças.
Para se inscrever no Checkout:
1.
2.
3.
4.
5.
Clique na guia Publicação (Publishing) no AppExchange.
Clique em Editar listagem (Edit Listing) do seu aplicativo.
Clique na guia Preços (Pricing) na página Listagem (Listing).
Clique em Inscrever-se no Checkout (Sign up for Checkout).
Uma sobreposição é exibida para explicar o serviço, verificar se você está usando sua AppExchange Publishing Organization
(APO) e se você vinculou sua conta de parceiro ao seu perfil de fornecedor do AppExchange. Clique em Inscrever-se
(Sign Up) para continuar.
6. É exibida uma sobreposição com os termos e condições do Recurly e do salesforce.com. Aceite os termos para continuar.
7. É exibida uma mensagem confirmando que você se inscreveu no Checkout. Finalize especificando as informações de preço
na guia Preços (Pricing) do seu aplicativo.
O processo de inscrição no Checkout está concluído. Para ativar o Checkout em sua listagem, é necessário registrar-se no
Recurly. Para fazer isso, clique no link Ir para o Recurly (Go to Recurly), que aparece na mensagem de aviso informando que
esta é a última etapa. No Recurly, será necessário:
1. Especificar o gateway de pagamento e as informações da conta bancária do comerciante.
2. Informar um cartão de crédito que será usado para efeitos de pagamento mensal. O valor cobrado é de 15% da sua receita
faturada pelo AppExchange Checkout.
3. Ative o serviço disponibilizando-o.
Para obter mais informações sobre essas tarefas, visite http://appexchange-docs.recurly.com.
Publicando seu aplicativo
Version 29.0 | Perguntas frequentes do AppExchange
Checkout | 121
Depois que você ativar o Checkout, todos os clientes que comprarem seu aplicativo no AppExchange serão solicitados a fornecer
informações do cartão de crédito. Se eles prosseguirem com a instalação do seu aplicativo, serão cobrados de acordo com os
detalhes de pagamento que você especificou.
Perguntas frequentes do AppExchange Checkout
Esta seção contém uma lista alfabética de Perguntas frequentes sobre o AppExchange Checkout.
•
•
•
•
•
•
•
•
•
•
•
•
•
Posso ter várias listagens para um aplicativo?
Posso usar meu sistema de processamento de cartão de crédito existente com o Checkout e o Recurly?
Há suporte para preço que não seja mensal por usuário? Por exemplo, um preço anual de US$ 5.000 por instância do
Salesforce?
Se o cartão de crédito for recusado, a licença se torna automaticamente inativa?
O Checkout substitui o LMA? O LMA seguirá controlando o status da licença (Ativa/Avaliação) ou as licenças são ativas
para qualquer compra realizada por meio do Checkout?
O Checkout oferece suporte para pagamento em várias moedas?
A divisão de lucros se aplica a transações não processadas pelo Checkout?
Como a cobrança funciona quando clientes adicionam/removem licenças durante o mês?
Como o Checkout afeta os processos existentes, como gerenciamento de lead, Trialforce e licenças de avaliação? Por
exemplo, como a inscrição do Checkout interage com o processamento de lead?
Como devo tratar faturas dos meus clientes?
Se uma cobrança for recusada, há um período gratuito antes que a licença seja desativada no LMA?
Se um administrador instalar o aplicativo, outra pessoa na empresa poderá acessar a conta do AppExchange desse
administrador e clicar em Comprar agora (Buy Now)?
Existe uma divisão de lucros mínima? Por exemplo, se 15% for menos de US$ 1,00, a divisão de lucros permanece sendo
15%?
Posso ter várias listagens para um aplicativo?
É possível ter duas listagens se você tiver dois pacotes separados. Um pacote só pode ser associado a uma listagem.
Posso usar meu sistema de processamento de cartão de crédito existente
com o Checkout e o Recurly?
O Recurly oferece suporte a um número limitado de gateways não pertencentes ao Recurly. Para obter detalhes, consulte
http://appexchange-docs.recurly.com/payment-gateways/additional.
Há suporte para preço que não seja mensal por usuário? Por exemplo,
um preço anual de US$ 5.000 por instância do Salesforce?
No momento, não. Atualmente, as opções de preço disponíveis são:
•
•
•
•
mensal por usuário
mensal por empresa
uso único por usuário
uso único por empresa
Publicando seu aplicativo
Version 29.0 | Se o cartão de crédito for recusado, a licença se
torna automaticamente inativa? | 122
Se o cartão de crédito for recusado, a licença se torna automaticamente
inativa?
Se um cartão de crédito for recusado, o Recurly tentará concluir a cobrança solicitando as informações de pagamento atualizadas
do assinante. Se o processo falhar, o Recurly pode cancelar a assinatura ou mantê-la ativa. É possível especificar esse
comportamento nas configurações da sua conta do Recurly.
O Checkout substitui o LMA? O LMA ainda controla o status da licença
ou as licenças são ativas para qualquer compra realizada por meio do
Checkout?
O Checkout não substitui o LMA. O Checkout funciona com o LMA para controlar se um aplicativo está ativo ou inativo,
bem como quantas licenças uma organização tem. O Checkout cria e atualiza automaticamente registros de licença no LMA,
conforme necessário. Não é possível editar diretamente registros de licença criados pelo Checkout. Para alterar qualquer um
desses registros, primeiro atualize as informações da assinatura correspondente no Recurly. Em seguida, o Checkout atualizará
automaticamente os registros no LMA.
O Checkout oferece suporte para compras em várias moedas?
O Checkout pode aceitar pagamento em qualquer moeda aceita pelo gateway de pagamento. Quando você se inscreve no
Recurly pela primeira vez, a moeda de pagamento padrão é escolhida com base no seu país (por exemplo, US$ se você estiver
nos Estados Unidos). Você pode ativar qualquer outra moeda aprovada pelo seu gateway de pagamento editando as configurações
da sua conta do Recurly. Em seguida, é possível especificar essa moeda no campo Cobrança (Charge) da guia Preços (Pricing)
da listagem do seu aplicativo. Quando os clientes comprarem seu aplicativo, o Checkout fará a cobrança nessa moeda e depositará
o valor na sua conta bancária comercial também nessa moeda.
Nota: No momento, é possível selecionar apenas um valor para a moeda. Não é possível listar o aplicativo várias vezes
para oferecê-lo em várias moedas.
A divisão de lucros se aplica a transações não processadas pelo Checkout?
A divisão de receita aplica-se somente às transações do Checkout, isto é, todas as cobranças na sua conta do Recurly vinculada
à AppExchange Publishing Organization (APO).
Como a cobrança funciona quando clientes adicionam/removem licenças
durante o mês?
Licenças adicionadas ou removidas ao longo de um mês são cobradas proporcionalmente a esse mês.
Publicando seu aplicativo
Version 29.0 | Como o Checkout afeta os processos existentes,
como gerenciamento de lead, Trialforce e licenças de avaliação?
Por exemplo, como a inscrição do Checkout interage com o
processamento de lead? | 123
Como o Checkout afeta os processos existentes, como gerenciamento
de lead, Trialforce e licenças de avaliação? Por exemplo, como a inscrição
do Checkout interage com o processamento de lead?
O Checkout não afeta a forma como os leads são enviados a você, nem a configuração do Trialforce. No entanto, o Checkout
afeta o modo com o qual as licenças de avaliação do AppExchange são gerenciadas. Quando um cliente se inscreve para uma
avaliação usando o Checkout, ele é listado como Ativo no LMA.
Como devo tratar faturas dos meus clientes?
O Recurly automaticamente envia faturas para os clientes. Os clientes também podem visualizar essas faturas diretamente no
AppExchange. Só é necessário criar faturas para clientes que não realizarem a compra por meio do Checkout.
Se um administrador instalar o aplicativo, outra pessoa na empresa
poderá acessar a conta do AppExchange desse administrador e clicar em
Comprar agora (Buy Now)?
Qualquer usuário que tiver permissões para instalar aplicativos pode executar ações Comprar agora (Buy Now), desde que
também tenha a permissão Gerenciar cobrança (Manage Billing). Essa é a mesma permissão necessária para visualizar a página
Minha conta (My Account) ou para comprar aplicativos usando o Checkout dentro do aplicativo Salesforce.
Se uma cobrança for recusada, há um período gratuito antes que a licença
seja desativada no LMA?
Sim. Por padrão, o período gratuito é de 10 dias e o cliente recebe duas notificações por e-mail antes da desativação da licença.
Para alterar o comportamento padrão, edite as configurações da sua conta do Recurly.
Existe uma divisão de lucros mínima? Por exemplo, se 15% for menos de
US$ 1,00, a divisão de lucros permanece sendo 15%?
Não há cobrança mínima para os aplicativos vendidos pelo Checkout. A divisão de receita é sempre de 15%, mesmo se o valor
for inferior a US$ 1,00.
Trabalhando com leads do AppExchange
O AppExchange coleta informações de contato quando as pessoas realizam várias ações na listagem do aplicativo ou de serviços
de consultoria de um fornecedor. Essas informações de contato são enviadas a uma organização do Salesforce escolhida pelo
fornecedor, na forma de um lead. Os fornecedores podem escolher quais ações capturam leads. As seguintes ações podem ser
configuradas para capturar leads:
•
•
•
•
Confirmar instalação (somente aplicativos)
Fazer um test drive (somente aplicativos)
Assistir a uma demonstração/vídeo
Inscrever-se para uma avaliação gratuita do aplicativo do fornecedor e do Salesforce (somente aplicativos)
Publicando seu aplicativo
•
Version 29.0 | Como receber leads do AppExchange? | 124
Clicar em Saber mais (Learn More) (somente serviços de consultoria)
Como receber leads do AppExchange?
Para receber leads do AppExchange, edite sua listagem do AppExchange e clique na guia Leads. Especifique as ações para as
quais deseja receber leads e a organização do Salesforce para a qual enviar os leads. Essa organização deve ter o Web-To-Lead
ativado e deve ser uma organização padrão do Salesforce, ou a organização CRM para ISVs do fornecedor, não uma organização
da Developer Edition. Os parceiros do Salesforce.com podem registrar um caso no Portal de parceiros do Salesforce.com para
obter uma organização CRM para ISVs. Além disso, os fornecedores podem optar por especificar um ID de campanha para
cada ação para as quais desejam receber leads. Os leads criados serão automaticamente associados à campanha correta na
organização Salesforce do fornecedor.
Posso receber leads apenas da minha solução principal do AppExchange,
e não das minhas outras listagens?
Cada listagem é ativada separadamente para a coleta de leads. Se você não deseja coletar leads para uma listagem específica,
não especifique essa organização para receber leads na guia Leads.
Como saber se este lead veio do AppExchange?
Os códigos fonte do lead oferecem informações sobre como o lead foi criado e podem ajudá-lo a decidir como proceder. O
código fonte do lead sempre tem o formato SFDC-XX|Listing Name ou SFDC-dup-XX|Listing Name. Se o código
fonte tiver -dup-, significa que o AppExchange já enviou a você um lead para esse usuário, essa listagem ou ação nos últimos
180 dias. O XX identifica a ação que o usuário realizou para gerar o lead.
O Salesforce pode eliminar leads duplicados antes que eles sejam
enviados para mim?
A maior parte dos parceiros que consultamos solicitaram o recebimento de todos os leads. Designamos leads duplicados do
AppExchange da seguinte forma: SFDC-dup-XX|Listing Name.
Se o código fonte tiver -dup-, significa que o AppExchange já enviou a você um lead para esse usuário, essa listagem ou ação
nos últimos 180 dias. Por exemplo, SFDC-dup-DM|VerticalResponse for AppExchange indica um lead duplicado de
um usuário que clicou para visualizar o vídeo de demonstração na VerticalResponse da listagem do AppExchange.
O que significam os códigos fonte do lead da minha listagem?
Os códigos fonte do lead oferecem informações sobre como o lead foi criado e podem ajudá-lo a decidir como proceder. O
código fonte do lead sempre tem o formato SFDC-XX|Listing Name ou SFDC-dup-XX|Listing Name. Se o código
fonte tiver -dup-, significa que o AppExchange já enviou a você um lead para esse usuário, essa listagem ou ação nos últimos
180 dias. O XX identifica a ação que o usuário realizou para gerar o lead.
Veja a tabela dos códigos de ação e o que eles significam.
Código fonte do lead
Descrição
IN
O usuário iniciou o processo de instalação do seu aplicativo
clicando em Adquirir agora (Get It Now) na sua listagem,
aceitando os termos e condições e clicando no botão Finalizar
Publicando seu aplicativo
Código fonte do lead
Version 29.0 | Como ver mais informações no registro do
lead? | 125
Descrição
instalação (Final Install) na página de confirmação. O usuário
pode não ter concluído a instalação ou ter desinstalado seu
aplicativo. Use o Aplicativo de gerenciamento de licenças
(LMA) para monitorar quem instalou seu aplicativo.
DM
O usuário assistiu sua demonstração, em parte ou inteira.
LM
O usuário clicou em Saiba mais (Learn More) na sua listagem
de serviços. Nota: Listagens de aplicativos que anteriormente
tinham botões Saiba mais (Learn more), no momento têm
botões Adquirir agora (Get it Now) e recebem códigos fonte
de lead com ações IN.
TS
O usuário clicou em Adquirir agora (Get It Now) na sua
listagem e optou por iniciar uma avaliação gratuita de 30 dias
do Salesforce e do seu aplicativo. Esses usuários podem ser
clientes pré-existentes do salesforce.com.
TD
O usuário realizou seu test drive clicando em Test Drive na
sua listagem.
Como ver mais informações no registro do lead?
Neste momento, os fornecedores não podem modificar o formulário de lead que os clientes são solicitados a preencher quando
visualizam uma demonstração, acessam um test drive, instalam um aplicativo ou clicam em Saber mais (Learn More). Indique
quais melhorias você gostaria de ver no IdeaExchange.
Qual é a diferença entre os leads e os registros de licença gerados pela
minha listagem?
Todas as pessoas que publicam uma listagem no AppExchange recebem leads, e você pode escolher quais cenários geram leads.
Se você tiver o Aplicativo de gerenciamento de licença (LMA) instalado, poderá configurar definições de licença padrão para
que, toda vez que um cliente instalar seu aplicativo, você receba um registro de licença na organização em que instalou o LMA.
Os leads e os registros de licença são completamente independentes um do outro.
O que acontece com minha listagem se eu decidir não receber nenhum
lead do AppExchange?
Se os fornecedores não selecionarem nenhum cenário para o quais desejam coletar leads, os usuários não serão solicitados a
preencher o formulário de inscrição de lead e nenhum lead será enviado. Independentemente das configurações do lead, os
usuários ainda podem visualizar a demonstração, fazer um teste drive, clicar em Saber mais (Learn More) e instalar o aplicativo.
Relatórios analíticos para editores
Os relatórios analíticos do AppExchange mostram como está o desempenho da sua listagem de aplicativos públicos ou da sua
listagem de parceiros de consultoria. Esses relatórios fornecem métricas para o número de instalações e outras atividades do
usuário em sua listagem ao longo do tempo. Com essas informações, é possível identificar áreas que exigem ajustes ou
Publicando seu aplicativo
Version 29.0 | Relatórios analíticos para editores | 126
esclarecimentos a fim de atrair e envolver usuários e, ao final, aumentar sua contagem de instalações. Para acessar os relatórios,
faça login no AppExchange Publishing e clique no link Relatórios (Reports) associado à sua listagem pública. Os relatórios
não estão disponíveis para listagens privadas.
Tipos de relatório
Para uma listagem de aplicativos, os relatórios disponíveis são:
•
•
•
•
Instalações (Adquirir agora)
Leads
Recursos e promoções
Test Drives, demonstrações e telas
Para uma listagem de parceiros de consultoria, os relatórios disponíveis são:
•
•
Leads
Saiba mais, vídeos e telas
Atributos de relatórios
Todos os relatórios compartilham os seguintes atributos comuns.
Nome da listagem
O título da listagem mostrado no topo de cada relatório.
Link Voltar à página inicial da publicação (Back to Publishing Home)
Use para retornar à página inicial da publicação.
Menu Mostrar (Show)
Permite selecionar um dos relatórios disponíveis. Os relatórios são classificados alfabeticamente.
Menu Intervalo de datas (Date Range)
Permite selecionar um dos intervalos de datas disponíveis, que incluem: Últimos 30 dias (Last 30 Days), Últimos 60 dias
(Last 60 Days), Últimos 90 dias (Last 90 Days), Últimos 120 dias (Last 120 Days) e Últimos 180 dias (Last 180 Days).
Por padrão, é selecionada a opção Últimos 30 dias (Last 30 Days).
Métricas
Relatório
Métricas
Instalações (Adquirir agora)
Adquirir agora, Instalações, Proporção clique para instalar
Leads
Leads únicos, leads duplicados, total de leads
Recursos e promoções
Estudos de caso, Folhas de dados, Promoções, Depoimentos
do cliente, Webinários, Guias de personalização,
Whitepapers
Test Drives, demonstrações e telas
Test Drives, demonstrações, telas
Saiba mais, vídeos e telas
Saiba mais, vídeos, telas
Gráfico linear
Mostra uma ou mais linhas para cada uma das métricas que você selecionou para exibição. Marque as caixas de seleção
abaixo do gráfico para obter as métricas que deseja ver. Por padrão, todas as métricas são incluídas no gráfico. Os relatórios
mostram métricas ao longo do tempo, agrupadas pela data de criação. Quando você clica no gráfico, a data e as métricas
Publicando seu aplicativo
Version 29.0 | Relatório Instalações (Adquirir agora) | 127
selecionadas para essa data são exibidas. Ao lado de cada métrica, é exibido o número total de itens na métrica ao longo
do intervalo de datas selecionado, independentemente de você ter optado ou não por incluir o gráfico dessa métrica.
Tabela
Cada relatório inclui uma tabela. A primeira coluna em todos os relatórios é a Data, e o restante das colunas corresponde
às métricas associadas ao relatório. A tabela exibe 30 linhas por vez. Clique em Próximo (Next) para ver mais dados. Por
padrão, a tabela é organizada por data, da entrada mais antiga para a mais recente. Para alterar a ordem de classificação,
clique nos cabeçalhos da coluna. Clique novamente na coluna de classificação selecionada para classificar os dados na
direção oposta. O pequeno triângulo apontando para cima ou para baixo ao lado do cabeçalho de uma coluna indica a
direção de classificação e identifica essa coluna como a coluna de classificação.
Relatório Instalações (Adquirir agora)
O relatório Instalações (Adquirir agora) mostra como está o desempenho da sua listagem com base no número de instalações.
As métricas disponíveis são:
•
•
•
Cliques em Adquirir agora (Get It Now)
Cliques em Confirmação de instalação (Install Confirmation)
Taxa de conversão: o número total de cliques em Confirmação de instalação (Install Confirmation) dividido pelo número
total de cliques em Adquirir agora (Get It Now), mostrado como percentual com duas casas decimais.
A tabela inclui:
•
•
•
•
Data
Números de Adquirir agora: o número total de cliques em Adquirir agora (Get It Now) para esta listagem até a data atual.
Instalações: o número total de cliques em Instalar (Install) para esta listagem até a data atual.
Proporção de cliques para instalar: o número total de cliques em Instalar (Install) para esta listagem até a data atual, dividido
pelo número total de cliques em Adquirir agora (Get It Now) até a data atual, mostrado como percentual com duas casas
decimais.
Relatório de leads
O Relatório de leads mostra quantos leads você recebeu em sua listagem.
As métricas disponíveis são:
•
•
•
Leads únicos: o número total de leads, não incluindo os duplicados.
Lead duplicados: o número total de leads duplicados. Um lead duplicado é criado quando a mesma pessoa realiza a mesma
ação na mesma listagem mais de uma vez nos últimos 180 dias.
Total de leads: o número total de leads, incluindo os duplicados.
A tabela inclui:
•
•
•
•
Data
Leads únicos
Leads duplicados
Total de leads
Relatório de recursos e promoções
O Relatório de recursos e promoções mostra o desempenho da sua listagem com base em recursos e promoções.
Publicando seu aplicativo
Version 29.0 | Relatório de test drives, demonstrações e
telas | 128
As métricas disponíveis são:
•
•
•
•
•
•
•
Estudos de caso: o número total de atividades de estudo de caso para a listagem por dia.
Depoimentos do cliente: o número total de atividades de depoimento do cliente para a listagem por dia.
Guias de personalização: o número total de atividades de guia de personalização para a listagem por dia.
Folhas de dados: o número total de atividades de folha de dados para a listagem por dia.
Webinários: o número total de atividades de webinário para a listagem por dia.
Whitepapers: o número total de atividades de whitepaper para a listagem por dia.
Promoções: o número total de atividades de promoção para a listagem por dia.
A tabela inclui:
•
•
•
•
•
•
•
•
Data
Estudos de caso
Depoimentos de cliente
Guias de personalização
Folhas de dados
Webinários
Whitepapers
Promoções
Relatório de test drives, demonstrações e telas
O Relatório de test drives, demonstrações e telas mostra o desempenho da sua listagem com base em atividades de avaliação.
As métricas disponíveis são:
•
•
•
Test drives: o número total de atividades test drive para a listagem por dia.
Demonstrações: o número total de atividades de demonstração para a listagem por dia.
Telas — o número total diário de atividades de tela para a listagem.
A tabela inclui:
•
•
•
•
Data
Test drives
Demonstrações
Telas
Saiba mais, vídeos e relatório de telas
O Relatório de Saiba mais, vídeos e telas mostra como está o desempenho da sua listagem de parceiro de consultoria com base
em atividades de Saiba mais, vídeo e tela.
As métricas disponíveis são:
•
•
•
Saiba mais: o número total de atividades "saiba mais" para a listagem por dia.
Vídeos: o número total de atividades de demonstração para a listagem por dia.
Telas — o número total diário de atividades de tela para a listagem.
A tabela inclui:
•
Data
Publicando seu aplicativo
•
•
•
Version 29.0 | Perguntas frequentes sobre o
AppExchange | 129
Saiba mais
Vídeos
Telas
Perguntas frequentes sobre o AppExchange
Esta seção contém uma lista alfabética de Perguntas frequentes sobre como vender no AppExchange.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Posso adicionar mais indústrias?
Posso adicionar mais idiomas?
Posso associar minha conta de parceiro a mais de um perfil de fornecedor (organização)?
Posso alterar o nome da minha empresa?
Posso criar meu aplicativo em um sandbox do Salesforce e enviá-lo para o AppExchange?
Posso editar uma análise?
Posso manter a mesma listagem mas alterar o pacote fornecido?
Posso atualizar meu aplicativo com uma nova versão (correção)?
Como os clientes encontram minha listagem?
Como editar um pacote após a criação de uma listagem?
Como obter um token de API para meu aplicativo?
Como aumentar a popularidade da minha listagem?
Como oferecer uma avaliação gratuita do meu aplicativo?
Como ver listagens que foram removidas pelo Salesforce?
Como atualizar meus clientes para uma nova versão do meu aplicativo?
O que os ícones da minha listagem representam?
O que é uma APO?
Qual a diferença entre uma avaliação gratuita e um test drive?
Onde posso compartilhar minhas ideias?
Onde posso carregar depoimentos?
Onde posso escrever uma avaliação?
Posso adicionar mais indústrias?
Não. Pra evitar o uso abusivo, você só pode especificar duas indústrias para cada listagem. Se você abranger mais indústrias,
mencione-as na descrição completa ou abreviada da sua listagem.
Posso adicionar mais idiomas?
Ao editar uma listagem, você poderá selecionar qualquer idioma na lista Idiomas utilizados (Languages Spoken).
Se você oferecer suporte a um idioma não listado, inclua o idioma na descrição completa ou abreviada da sua listagem.
Posso associar minha conta de parceiro a mais de um perfil de fornecedor
(organização)?
Para disponibilizar publicamente uma listagem no AppExchange, é necessário associar o perfil do provedor à sua AppExchange
Publishing Organization (APO) com sua conta de parceiro. Para gerenciar várias organizações do Salesforce em sua conta de
Publicando seu aplicativo
Version 29.0 | Posso alterar o nome da minha empresa? | 130
parceiro, é possível vincular as organizações à APO, mas uma conta de parceiro só pode ser associada diretamente a um perfil
de provedor. Para remover a associação entre sua conta de parceiro e uma organização, registre um caso do Suporte ao Cliente
do Salesforce, no Portal de parceiros.
Posso alterar o nome da minha empresa?
Sim, é possível alterar o nome da sua empresa no seu perfil de fornecedor. Faça login no AppExchange com as credenciais da
sua AppExchange Publishing Organization (APO) antes de atualizar o perfil do fornecedor, pois apenas o perfil do fornecedor
associado à APO pode ser visto pelas pessoas que procuram suas listagens no AppExchange. Lembre-se de também alterar o
nome da sua empresa no Portal de parceiros do salesforce.com.
Posso criar meu aplicativo em um sandbox do Salesforce e enviá-lo para
o AppExchange?
Não. Embora você possa usar um sandbox para instalar e testar seu aplicativo, é necessário criar e enviá-lo usando uma
organização da Developer Edition.
Posso editar uma análise?
Você pode editar as resenhas que você mesmo criou. Se você não for o autor da resenha, é possível apenas comentá-la.
Posso manter a mesma listagem mas alterar o pacote fornecido?
Sim, você pode alterar os pacotes gerenciados que são vinculados à sua listagem. Na página inicial do AppExchange, clique
na guia Publicação (Publishing) e faça login usando as credenciais da sua AppExchange Publishing Organization (APO).
Clique em Suas organizações (Your Organizations) e, em seguida, em Vincular nova organização (Link New Organization).
Adicione as credenciais da organização da Developer Edition onde seu novo pacote gerenciado foi criado. Isso torna todas as
suas listagens e os seus pacotes criados pela organização com Developer Edition visíveis na APO.
Posso atualizar meu aplicativo com uma nova versão (correção)?
Sim, mas é necessário enviar o novo aplicativo (pacote) para uma Análise de segurança do AppExchange e registrar o pacote
em seu Aplicativo de gerenciamento de licença (LMA).
Como os clientes encontram minha listagem?
As pessoas procuram por aplicativos e serviços de consultoria no AppExchange das mais variadas maneiras: inserindo termos
de pesquisa, navegando pelas categorias e pesquisando por meio de um provedor de pesquisa externo, como o Google. Saber
como sua listagem está classificada em cada um destes cenários ajuda você a ganhar maior visibilidade junto a seus clientes
potenciais.
•
Na maior parte do tempo, as pessoas procuram por aplicativos e serviços de consultoria inserindo um termo (palavra-chave)
na home page do AppExchange. O AppExchange retorna os resultados correspondentes e ordena-os com base na relevância
das palavras-chave. Seguem aqui algumas dicas sobre como isso funciona:
◊ Se você incluir uma palavra-chave em qualquer lugar em sua listagem, ela aparecerá nos resultados de pesquisa referentes
àquela palavra-chave.
◊ Geralmente, a relevância de uma palavra-chave é aumentada ao aparecer antes na listagem.
Publicando seu aplicativo
Version 29.0 | Como editar um pacote após a criação de uma
listagem? | 131
◊ Geralmente, a relevância de uma palavra-chave é aumentada ao aparecer mais de uma vez na listagem. Observe que a
listagem de uma palavra-chave várias vezes em uma linha não melhorará a posição da listagem.
◊ Quando duas ou mais palavras-chave são pesquisadas, somente as listagens com todas as palavras-chave na mesma
ordem são retornadas. Além disso, as pesquisas por várias palavras-chave também corresponderão a palavras camel-case
(por ex., pesquisar por "Great App" corresponderá a "GreatApp").
◊ As listagens no topo de uma pesquisa são mais relevantes quando consideradas a partir da perspectiva da palavra-chave
e da perspectiva de popularidade (por ex., instalado mais frequentemente, etc.).
•
•
•
Quando as pessoas procuram por aplicativos e serviços de consultoria navegando pelas categorias, seja na guia Início (Home),
Aplicativos (App) ou Consultoria (Consulting Services), as listagens em uma categoria são ordenadas com base na
popularidade durante os últimos 30 dias. A popularidade é baseada em todas as ações que os clientes podem realizar: instalar
de um aplicativo, realizar um test drive, assistir a uma demonstração ou outros recursos e clicar no link Saber Mais (Learn
More). As atividades que mostram maior compromisso, como a de instalar um aplicativo ou a de realizar um test drive
recebem um peso maior do que atividades que mostram menos compromisso, como a de clicar em capturas de tela. Observe
que o número de análises e a classificação média em uma listagem não estão relacionados com a popularidade da listagem.
As pessoas também ordenam os resultados por classificação, por data de liberação, por nome ou por nome de provedor.
Os resultados de pesquisa posicionados por classificação são primeiramente ordenados por número de estrelas e depois por
número de análises. Portanto, uma listagem com uma análise de cinco estrelas está posicionada acima de uma listagem
com 20 análises de quatro estrelas.
Como o AppExchange é um site público, os mecanismos de pesquisa como o Google e o Bing indexam suas páginas de
listagem e as retornam em seus resultados de pesquisa. Para aprimorar seu posicionamento em provedores de pesquisa
externos, garanta a referência cruzada entre a URL de sua listagem em seu site e as páginas de blog, Facebook e Twitter.
Como editar um pacote após a criação de uma listagem?
Quando você faz login na página Publicação (Publishing) do AppExchange usando as credenciais da sua APO, pode visualizar
uma lista de todos os pacotes enviados ao AppExchange. Nessa lista, é possível:
•
•
•
•
•
•
Selecionar Exibir apenas os pacotes não listado (Show only unlisted packages) para ver apenas as
versões dos seus pacotes enviados que ainda não foram vinculadas a uma listagem.
Clique em Iniciar avaliação (Start Review) para iniciar a Análise de segurança do AppExchange.
Clique em Editar análise (Edit Review) para fazer alterações no envio da sua análise de segurança.
Para pacotes não listados, clique em Listar (List It) para criar uma nova listagem e vinculá-la automaticamente a esta versão
do pacote.
Para qualquer pacote listado, clique em Editar listagem (Edit Listing) para editar a listagem atual.
Para aplicativos em pacotes gerenciados, clique em Gerenciar licenças (Manage Licenses) para atualizar as configurações
de licença desta versão empacotada, por exemplo: se seu aplicativo é gratuito ou para venda, quando deve expirar e quantas
pessoas na organização do instalador podem acessar o aplicativo.
Como obter um token de API para meu aplicativo?
Para obter um token de API para seu aplicativo, de modo que ele possa usar APIs SOAP e REST, ele deverá ser aprovado na
análise de segurança do AppExchange. Em seguida, você poderá registrar um caso no Portal de parceiros, na categoria Listagens
do AppExchange e de serviços (AppExchange and Services Listings) > Ativar API SOAP/REST para organizações GE/PE
(Enable SOAP/REST API for GE/PE Org). É necessário especificar o tipo de token (SOAP ou API) e se você está usando
OAuth.
Nota: Este recurso está disponível para parceiros elegíveis. Para obter mais informações sobre o Programa de parceiros,
incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Publicando seu aplicativo
Version 29.0 | Como aumentar a popularidade da minha
listagem? | 132
Como aumentar a popularidade da minha listagem?
A popularidade é baseada na atividade do cliente nas listagens. O AppExchange mede tudo aquilo que os usuários fazem em
sua listagem: instalar, saber mais, test drive, demonstração, telas, whitepapers, folhas de dados e mais. O AppExchange realiza
a ponderação utilizando o nível de importância como indicações de interesse, e exclui tentativas de uso abusivo do sistema.
O AppExchange recalcula a popularidade diariamente e, em seguida, resume e avalia os resultados nos últimos 30 dias. Ao
navegar por categoria, você vê as listagens classificadas pela sua popularidade relativa nos últimos 30 dias.
O modo como os clientes avaliaram ou classificaram a listagem não afeta a popularidade. Se desejarem, os visitantes do
AppExchange podem ordenar por classificação.
Veja algumas dicas para melhorar a classificação:
•
•
•
•
Inclua um test drive. As pessoas gostam da possibilidade de experimentar um aplicativo, e o número de test drives influencia
a popularidade. Você também recebe o benefício de coletar leads.
Adicione imagens. Uma das primeiras coisas que os visitantes fazem é clicar no botão Exibir telas (View Screenshots).
Sem as telas, muitas pessoas não visualizarão a listagem.
Adicione mais recursos, como folhas de dados e whitepapers.
Divulgue abertamente o preço: Se sua listagem não tiver preço, as pessoas rapidamente perderão o interesse.
Como oferecer uma avaliação gratuita do meu aplicativo?
Quando você cria ou edita a listagem de um aplicativo, a guia Oferta (Offering) pergunta se você deseja oferecer uma avaliação
gratuita do Salesforce e do seu aplicativo. Para oferecer uma avaliação gratuita, primeiro é necessário solicitar acesso registrando
um caso no seu Portal de parceiro do salesforce.com. Após receber direito de acesso, você precisará preparar uma organização
de exemplo do Salesforce que inclua seu aplicativo e dados de amostra. Essa organização criará um modelo de avaliação para
os clientes que selecionarem a opção de avaliação. Para disponibilizar o modelo de avaliação publicamente, é necessário enviá-lo
à análise de segurança e associá-lo à sua listagem. Clique aqui para saber mais sobre as avaliações gratuitas no AppExchange.
Como ver listagens que foram removidas pelo Salesforce?
Na página inicial Publicação (Publishing), clique em Exibir apenas listagens excluídas (Show only delisted
listings) para ver as listagens privadas que foram excluídas pelo salesforce.com, geralmente devido a problemas com a
análise de segurança periódica.
Como atualizar meus clientes para uma nova versão do meu aplicativo?
Crie uma nova versão do seu pacote gerenciado e carregue esta versão no estado lançado. Após o carregamento, será possível
compartilhar o URL de instalação com seus clientes existentes para que eles façam o upgrade. Se você quiser apenas implantar
uma correção de erro para que seus clientes façam o upgrade automaticamente, consulte “Agendando upgrades automáticos”
na ajuda on-line do Salesforce. É possível usar o Aplicativo de gerenciamento de licenças (LMA) para saber quais clientes
precisam fazer o upgrade.
O que os ícones da minha listagem representam?
Ao pesquisar listagens no AppExchange, os clientes em potencial podem rapidamente identificar recursos do seu aplicativo
ou serviço com os seguintes ícones.
Publicando seu aplicativo
Ícone
Version 29.0 | O que é uma APO? | 133
Descrição
Significa que este aplicativo está disponível para venda (não é
gratuito).
Significa que você oferece suporte ao aplicativo.
Significa que este é um aplicativo nativo. Um aplicativo nativo
é primeiramente criado na plataforma Force.com, com as
possíveis exceções de callouts para os seguintes provedores:
Google, Facebook ou Amazon. Aplicativos nativos oferecem
muitos dos mesmos benefícios do Salesforce CRM, por isso
são muito populares. Para que seu aplicativo seja designado
como nativo, registre um caso no portal de parceiros do
salesforce.com.
Identifica seu status de parceria no salesforce.com como um
parceiro de consultoria registrado.
Identifica seu status de parceria no salesforce.com como um
parceiro de consultoria selecionado.
Identifica seu status de parceria no salesforce.com como um
parceiro de consultoria premier.
Identifica o número de indivíduos certificados pelo Salesforce
na sua organização. Para atualizar suas informações de
certificação, faça login no Portal de parceiros do salesforce.com.
Identifica o número de projetos concluídos que sua empresa
de consultoria registrou no salesforce.com. Na página Listagem
(Listing), é exibido o percentual de clientes satisfeitos. O
percentual de satisfação é calculado a partir de pesquisas
enviadas pelo salesforce.com diretamente para seu cliente
quando você conclui um projeto registrado. Para atualizar as
informações do seu projeto, faça login no Portal de parceiros
do salesforce.com.
O que é uma APO?
Todas as suas listagens de aplicativos e serviços devem ser publicadas em uma única organização do salesforce.com, chamada
de AppExchange Publishing Organization (APO) mestre. Pense na APO como a organização onde você fará todo o
gerenciamento do AppExchange. Se você tiver uma Organização de gerenciamento de licenças (LMO), recomendamos que
use a mesma organização para sua LMO e sua APO. Essa consolidação permite monitorar em um só local os clientes que
instalam seu aplicativo e os leads gerados pela sua listagem. A organização da Developer Edition onde você cria aplicativos
não deve ser designada como sua APO.
Só é possível alterar sua APO se você não tiver nenhuma listagem pública no AppExchange. Após publicar pelo menos uma
listagem, você só poderá designar uma organização diferente como sua APO registrando um caso no Suporte ao Cliente do
Salesforce, em seu Portal de parceiros.
Publicando seu aplicativo
Version 29.0 | Qual a diferença entre uma avaliação gratuita e
um test drive? | 134
Qual a diferença entre uma avaliação gratuita e um test drive?
Quando você cria ou edita a listagem de um aplicativo, a guia Oferta (Offering) pergunta se você deseja oferecer uma avaliação
gratuita do Salesforce e do seu aplicativo. A avaliação gratuita é uma organização do Salesforce de não produção que inclui seu
aplicativo e dados de exemplo. Se um cliente escolher comprar o aplicativo em vez de deixar a avaliação expirar, a organização
torna-se uma versão de produção. Recomendamos que você ofereça aos clientes a opção de remover dados de exemplo gravando
um script de limpeza de dados e incluindo um botão no aplicativo.
Também é possível optar por oferecer um test drive, que é uma única versão somente leitura do seu aplicativo, na qual todos
os clientes que realizam o test drive fazem login. Assim como as avaliações gratuitas, os test drives são organizações da Developer
Edition que incluem dados de amostra e as configurações desejadas.
Onde posso compartilhar minhas ideias?
Você pode compartilhar suas ideias sobre como melhorar os programas de parceiros do AppExchange ou do salesforce.com
no Portal de parceiros do salesforce.com. Essas ideias só serão vistas pelo salesforce.com e por outros parceiros. Para compartilhar
ideias de forma mais ampla, publique-as no IdeaExchange.
Onde posso carregar depoimentos?
Envie seus depoimentos na guia Conteúdo carregado (Uploaded Content) ao editar sua listagem.
Onde posso escrever uma avaliação?
Na página da listagem, clique no número de resenhas ou em Escrever a primeira (Write the first). Se já houver resenhas, você
será redirecionado para a página de resenhas, onde pode clicar em Escrever uma resenha (Write a review). Cada usuário pode
escrever apenas uma resenha por listagem.
Importante: Não é possível escrever uma resenha para sua própria listagem. Analise os Termos de Uso do AppExchange
para obter mais informações legais.
Capítulo 7
Gerenciando licenças e fornecendo suporte administrativo
Tópicos:
•
•
•
•
•
•
•
•
•
Visão geral do Aplicativo de
gerenciamento de licença (LMA)
Instalação do LMA
Configuração do LMA
Associação de um pacote ao seu
LMO
Utilização do LMA
Integração com vendas e marketing
Práticas recomendadas
Perguntas frequentes sobre o
Aplicativo de Gerenciamento de
Licença
Solução de problemas
Se você instalou o Aplicativo de gerenciamento de licença (LMA), é possível
efetuar login na organização de um cliente e fornecer suporte administrativo a
ele. Estes tópicos são cobertos em detalhes nas seções a seguir.
Observe que o AppExchange oferece um mecanismo padrão para apresentar
um contrato de licença para o instalador e exigir a aceitação deste contrato antes
de continuar a instalação. Se você deseja exigir um contrato, cole o texto de seu
contrato de licença no campo de texto Contrato de licença (License
Agreement) na página de lista de aplicativo no diretório do AppExchange.
Se seu aplicativo exigir uma negociação de licença mais interativa, certifique-se
de que sua página inicial da guia Sobre (About) detalha claramente o contrato
de licença de usuário final obrigatório e declara o processo de sua preferência
para iniciar a utilização. Em todos os casos, o salesforce.com inclui uma isenção
de responsabilidade que limita suas responsabilidades sobre o aplicativo.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Visão geral do Aplicativo de gerenciamento de
licença (LMA) | 136
Visão geral do Aplicativo de gerenciamento de licença (LMA)
O Aplicativo de gerenciamento de licença (LMA) ajuda os desenvolvedores e editores a aplicar o licenciamento aos seus
aplicativos carregados e registrados no AppExchange. Cada vez que um cliente ou um cliente potencial instala seu pacote
gerenciado, um registro de lead e um registro de licença são criados no LMA. Ao especificar os padrões para os registros de
licença, é possível aplicar o licenciamento para controlar quantos usuários, na organização do cliente, podem acessar seu pacote
e por quanto tempo. Usando o LMA, é possível acompanhar quantos clientes instalaram um pacote e qual versão do pacote
eles estão usando atualmente. Também é possível usá-lo para gerenciar os leads associados às licenças.
Nota: O LMA está disponível somente em inglês.
O LMA é desenvolvido pelo salesforce.com e está disponível para parceiros qualificados. Para obter mais informações sobre
o Programa de parceiros, incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Entendendo o gerenciamento de licenças
O processo de gerenciamento de licenças começa quando alguém instala um aplicativo no AppExchange. O Salesforce realiza
automaticamente as seguintes ações:
•
•
•
Cria uma licença na organização do instalador. Uma cópia daquela licença é armazenada na guia Licenças (Licenses) do
LMA instalado em sua LMO.
Atualiza a versão do pacote com as informações de licença.
Cria um lead com o nome, a empresa e o endereço de e-mail do instalador. A origem do lead para os instaladores será
sempre Instalação do pacote (Package Installation).
Use o LMA para gerenciar licenças para pacotes gerenciados. Ao modificar os registros de licença, será possível controlar
quantos usuários na organização do cliente podem acessar seu pacote e por quanto tempo.
Diagrama de relacionamentos de entidades
O LMA tem três objetos personalizados que se relacional direta e indiretamente aos objetos do Salesforce padrão. Veja o
diagrama de relacionamentos de entidades abaixo para entender como os objetos personalizados se relacionam com outros
objetos.
Gerenciando licenças e fornecendo suporte administrativo
•
•
•
•
•
Version 29.0 | Terminologia do LMA | 137
O objeto do pacote é o objeto raiz para todas as informações no LMA.
Cada pacote pode ter várias versões de pacote. A versão de pacote tem um relacionamento de detalhe mestre com o objeto
do pacote.
Cada versão de pacote pode ter várias licenças. A licença tem um relacionamento de pesquisa com o objeto da versão do
pacote.
Cada licença tem um relacionamento direto com um único lead. A licença tem um relacionamento de pesquisa com o
objeto de lead.
O lead pode ser convertido manualmente em uma conta e contato. Quando isso acontece, o registro de licença é
automaticamente associado à conta convertida e aos registros de contato. A licença tem um relacionamento de pesquisa
com os objetos da conta e do contato.
Terminologia do LMA
Aplicativos
Uma coleção de componentes do Salesforce como guias, relatórios, painéis, classes e acionadores do Apex, etc., que
tratam de uma necessidade específica do negócio. É possível armazenar um aplicativo em um pacote para carregá-lo no
AppExchange.
Desenvolvedor
O desenvolvedor de um aplicativo é o usuário do Salesforce que criou o aplicativo e seus componentes. O desenvolvedor
de um aplicativo pode ser diferente do editor ou eles podem ser a mesma pessoa.
Instalador
O instalador de um aplicativo é a pessoa que o instalou a partir do Force.com AppExchange em sua organização do
Salesforce.
Gerenciador de Lead
O gerenciador do lead é o usuário responsável pelos acompanhamentos dos leads que são automaticamente criados quando
um pacote gerenciado é instalado. Por padrão, os novos leads são atribuídos ao gerenciador de licenças. O editor (que
possui a LMO) usa o gerenciador de lead para acompanhar os clientes que desinstalarem os pacotes gerenciados.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Instalação do LMA | 138
Licença
Uma instalação de um pacote por uma organização do Salesforce. Cada entrada de licença no LMA representa uma
instalação de um pacote gerenciado.
Gerenciador de licença.
O usuário gerenciador de licença é automaticamente criado quando uma organização instala o LMA. Um perfil de
Gerenciador de licenças do pacote também é criado. Este usuário é o proprietário padrão para todos os pacotes gerenciados
que usam o LMA e todas as licenças criadas para estes pacotes.
Organização de gerenciamento de licenças (LMO)
A organização de gerenciamento de licenças da organização do Salesforce usada para rastrear todos os usuários do
Salesforce que instalam o seu pacote gerenciado. Uma organização de gerenciamento de licenças deve ter o LMA instalado.
Ele recebe automaticamente uma notificação toda vez que seu pacote é instalado ou desinstalado, de modo que você
possa facilmente notificar os usuários sobre atualizações.
Pacote gerenciado
Os pacotes gerenciados são pacotes que podem ser atualizados na organização do instalador. Eles diferem dos pacotes
não gerenciados no sentido de que alguns componentes são bloqueados, considerando o processo de atualização.
Pacote
O contêiner para um aplicativo e seus componentes. No LMA, o termo pacote se refere somente a pacotes gerenciados.
Um pacote pode conter zero, um ou muitos aplicativos.
Gerenciador de licenças do pacote
O perfil de Gerenciador de licenças do pacote oferece ao único usuário, o gerenciador de licença, total acesso ao LMA.
Não é possível editar este perfil nem atribuí-lo a qualquer outro usuário.
Versão do pacote
Uma versão específica do pacote gerenciado. Uma nova versão é criada quando o desenvolvedor carrega o pacote atualizado
de uma organização do desenvolvedor.
Editor
O editor de um aplicativo é o usuário do Salesforce ou a organização que publicou o aplicativo no AppExchange. Depois
de registrar seus aplicativos, serão necessários editores para fazer o registro por meio de suas informações de contato.
Instalação do LMA
Antes de instalar o LMA, você precisa decidir qual organização é sua Organização de gerenciamento de licenças (LMO).
Como o LMA é parte integrante de vendas, faturamento e marketing de um pacote gerenciado, colocar o LMA na organização
errada dificulta o gerenciamento de licenças como parte do processo de vendas e marketing.
O LMA cria registros de lead e de licença quando os clientes instalam um pacote de avaliação. Quando os clientes compram
o pacote, estas licenças são convertidas para licenças pagas (pelo site ou baseadas em um número de usuários). O LMA rastreia
quem tem um pacote de avaliação instalado, quem está usando-o, quantas licenças foram comprada, quando ela será passível
de renovação, etc. Estas partes são todas importantes para o processo contínuo de vendas, faturamento e marketing em sua
organização de produção.
Se você ainda não solicitou um CRM para a organização ISV por meio do Portal do parceiro, faça isso agora. O CRM para
ISVs está disponível para parceiros qualificados. Para obter mais informações sobre o Programa de parceiros, incluindo os
requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Configuração do LMA | 139
Nota: Se você tem uma organização da Developer Edition que está sendo usada para criar um pacote gerenciado,
não a use como sua LMO.
Cuidado: Depois que você começar a gerenciar uma licença fora de uma LMO específica, não será possível mover
estas licenças, leads nem outras informações para outra organização. Depois de instalar o LMA, não será possível
desinstalá-lo. Entre em contato com o Suporte do Salesforce se desejar desinstalar o LMA.
Para instalar o LMA:
1. Registre um caso no portal do parceiro na categoria Listagens do AppExchange e de serviços (AppExchange and Services
Listings) > Solicitação de LMA (Request the LMA).
2. Depois que o caso for resolvido, você receberá um e-mail com uma URL de instalação. Faça login na organização que você
planeja usar como sua LMO e clique no link do LMA que está no e-mail.
3. Você pode ler o anúncio do aplicativo e, em seguida, clicar em Adquirir agora (Get It Now).
4. Na janela pop-up, selecione Em minha produção (In my production) Salesforce.
5. Leia e aceite os termos e condições e, em seguida, clique em Instalar (Install).
6. Confirme sua senha e clique em Enviar (Submit).
7. Na página Detalhes de instalação do pacote (Package Installation Details), clique em Continuar (Continue).
8. Clique em Avançar (Next), Avançar (Next) e Instalar (Install).
Clique no canto superior direito e confirme que tem um LMA instalado.
Figura 15: Aplicativo de gerenciamento de licenças
Configuração do LMA
Permissões necessárias ao usuário
Para configurar o LMA:
Perfil do Administrador do sistema
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
Para exibir licenças, pacotes e versões de pacotes:
Depois de instalar o LMA, configure-o da seguinte maneira:
"Leitura"
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Associação de um pacote ao seu LMO | 140
1. Atribuir um gerenciador do lead. É essencial que um usuário em sua organização seja o proprietário de todos os registros
do lead criados como resultado de instalações de pacote.
2. Defina as permissões de objeto personalizado.
a. Licenças: a maioria dos usuários em sua organização não precisam de nenhuma permissão. Os usuários que exibem
licenças precisam da permissão de "Leitura" e aqueles que modificam os registros de licença precisam de permissões de
"Leitura" e "Edição".
b. Pacotes: somente usuários que atribuem um gerenciador de lead precisam de permissões de "Edição". Outros usuários
têm permissões para "Leitura" ou não têm nenhuma permissão.
c. Versões do pacote: todos os usuários têm permissões para "Leitura" ou nenhuma permissão, já que eles não precisam
criar, modificar nem excluir estes registros.
Cuidado:
•
•
As licenças, os pacotes e as versões de pacotes gerenciados no LMA são diferentes da maioria dos registros
porque são criados automaticamente pelo AppExchange. Por esta razão, a licença, o pacote e os registros da
versão do pacote não devem ser modificados nem excluídos.
Os usuários com o perfil Administrador do sistema podem criar, modificar e excluir registros de todos estes
objetos personalizados, pois eles têm a permissão para "Modificar todos os dados".
3. Defina a segurança no nível de campo em perfis de usuário ou conjuntos de permissão.
a. Licenças: as definições dependem de como você deseja gerenciar estes campos para usuários diferentes em sua organização.
b. Pacotes: torne todos os campos Somente leitura (Read-Only). Se você deseja que os usuários editem o campo
Gerenciador do Lead (Lead Manager), é possível tornar este campo editável.
c. Versões do pacote: torne todos os campos Somente leitura (Read-Only).
4. Substitua o botão Edit (Editar) no registro de licença para usar a página do Visualforce Modificar licença (Modify License).
5. Adicionar listas relacionadas:
•
•
•
Adicionar lista relacionada Licenças aos layouts da página de Lead apropriada. Os gerenciadores de licença podem usar
esta lista na página de detalhes do lead para exibir as licenças associadas a um lead em particular.
Adicionar a lista relacionada Licenças aos layouts da página de Conta apropriados. Os usuários podem exibir esta lista
e identificar as licenças associadas a uma conta em particular.
Adicionar lista relacionada Licenças aos layouts da página de Contato apropriados. Os usuários podem exibir esta lista
e identificar as licenças associadas a uma contato em particular.
Associação de um pacote ao seu LMO
Para receber registros de licença e de leads das instalações do cliente, você deve associar seu pacote gerenciado à sua Organização
de gerenciamento de licenças (LMO), a organização do Salesforce onde o Aplicativo de gerenciamento de licença está instalado.
Cuidado: Depois de associar um pacote à sua LMO, estas licenças e estes leads do pacote devem ser permanentemente
gerenciados fora da LMO. Não é possível migrar licenças.
É possível associar seu pacote gerenciado à sua LMO no AppExchange.
1.
2.
3.
4.
Acesse http://www.appexchange.com
Clique na guia Publicação (Publishing).
Insira a organização da Developer Edition onde o pacote foi criado.
Concorde com os termos e condições.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Padrões de licença | 141
5.
6.
7.
8.
9.
Preencha um breve perfil; um nome bastará.
Clique na guia Seus pacotes carregados (Your Uploaded Packages) e localize a versão de seu pacote.
Clique no link Gerenciar licenças (Manage Licenses) ao lado da versão do pacote.
Clique em Registrar (Register).
Especifique a LMO fornecendo as credenciais do usuário para essa organização e especifique os outros parâmetros padrão
da licença.
10. Clique em Salvar (Save). Pode haver uma demora de 30 minutos ou mais para que um registro de pacote apareça como
associado à LMO.
Nota: Todas as versões de um pacote gerenciado são associadas à mesma LMO. Portanto, a LMO está associada
somente ao pacote.
Padrões de licença
Registre seu pacote e escolha as configurações padrão da licença:
1. Na página inicial Publicação (Publishing), clique em Gerenciar licenças (Manage Licenses) ao lado do pacote carregado
e gerenciado.
2. Na página Registre seu pacote carregado (Register Your Uploaded Package), clique em Registrar (Register). Se o pacote
nunca tiver sido associado a uma LMO, selecione uma. Se uma versão anterior do pacote tiver sido registrada, as configurações
dessa versão aparecerão automaticamente. Você pode editar essas configurações existentes, exceto a LMO. Para alterar
uma LMO, é necessário entrar em contato com a salesforce.com.
3. Selecione se o status da sua licença padrão é Avaliação gratuita ou Ativa. Se sua licença for gratuita, selecione Ativa (Active).
4. Se você tiver selecionado uma licença de avaliação gratuita, digite o número de dias inteiros, até 90. Se você tiver selecionado
uma licença ativa, digite a duração da licença, em dias inteiros. Se sua licença for gratuita ou não expirar, selecione Licença
sem expiração (License does not expire).
5. Digite o número de assentos associados à sua licença padrão ou selecione Licença para o site inteiro (License is site-wide)
para oferecer a licença a todos os usuários da organização do instalador.
6. Clique em Salvar (Save).
Quando um cliente instala um pacote, estes valores padrão são usados para definir os campos Status (Status), Data de
expiração (Expiration Date) e Estações (Seats) no registro de licenças no LMA e na organização do instalador.
Se você deseja atualizar estes valores, será possível modificar este registro de licença no LMA.
Nota: Os valores padrão estão no nível da versão do pacote. Portanto, diferentes versões do mesmo pacote podem
ter diferentes valores padrão.
Utilização do LMA
Permissões necessárias ao usuário
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
Para exibir licenças, pacotes e versões de pacotes:
"Leitura"
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Sobre Leads | 142
Utilize o Aplicativo de gerenciamento de licença (LMA) para aplicar licenciamento a seu pacote gerenciado a fim de controlar
como muitos usuários na organização do instalador podem acessar seu pacote e por quanto tempo. Toda vez que seu pacote
for instalado, um registro de lead será criado no LMA. É possível usar estas informações para entrar em contato com um
cliente potencial ou tentar converter o lead em cliente, ou comunicar a eles informações sobre atualizações de seus aplicativos.
Sobre Leads
Quando se instala um pacote gerenciado, um lead é automaticamente criado na LMO. O lead contém o nome, a empresa e o
endereço de e-mail do instalador. A origem do lead usa, como padrão, a Instalação do pacote (Istallation
Package).
Estas informações são importantes porque elas vinculam a licença a um usuário real do Salesforce com quem você pode entrar
em contato para notificar sobre as atualizações. Se um instalador desinstala o pacote de sua organização, o especialista em
retenção do cliente para a organização do desenvolvedor pode desejar entrar em contato com o instalador. Além disso, se
houver uma atualização para um determinado pacote, talvez seja necessário enviar e-mails em massa a todos os instaladores
com aquele pacote para informar sobre a nova atualização disponível.
Cada LMO deve ter um gerenciador de lead responsável por acompanhar todos os leads associados a licenças. Quando um
novo lead é criado como resultado de alguém ter instalado um pacote a partir do AppExchange, o campo Proprietário
do lead (Lead Owner) no registro do lead assume como padrão o gerente de lead especificado para o pacote. Se não houver
gerente de lead especificado para o pacote, o proprietário do lead padrão será o Gerenciador de licenças (License
Manager).
Sobre pacotes
Os pacotes no LMA referem-se a pacotes gerenciados que foram carregados para o AppExchange. No AppExchange, esses
pacotes são conhecidos como aplicativos, independentemente de quais componentes eles contenham. Cada pacote tem uma
ou mais versões de pacote, para as quais existem várias licenças. Uma organização da Developer Edition pode conter somente
um pacote gerenciado de cada vez, mas uma LMO pode gerenciar vários pacotes a partir de vários desenvolvedores.
Clique na guia Pacotes (Packages) para exibir todos os pacotes que um usuário exibiu recentemente. Para exibir todos os pacotes
que a LMO gerencia, selecione Todos (All) na exibição da lista. É possível clicar em um nome de pacote para exibir detalhes
incluindo datas de liberação, versão mais recente, proprietário e nome do desenvolvedor.
Detalhes do pacote
Na guia Pacotes (Packages), clique em um nome de pacote para exibir os detalhes do pacote. A página de detalhes do pacote
contém informações sobre o pacote, bem como listas relacionadas relevantes. Na lista relacionada Versão do pacote (Package
Version), é possível ver todas as versões de pacotes carregados e registrados no AppExchange. O objeto da versão de pacote
tem um relacionamento de detalhe mestre com o objeto do pacote.
Importante: Não edite, exclua, clone ou crie pacotes ou versões de pacote. Não exclua, clone ou crie licenças. Esses
registros são criados automaticamente e contêm informações importantes para o rastreamento de licenças e pacotes
no Aplicativo de gerenciamento de licenças. Não é possível preenchê-los novamente.
Aqui se encontram os atributos de um pacote.
Campo
Descrição
Criado por (Created By)
Assume como padrão o usuário Gerenciador de licenças.
Nome do desenvolvedor
(Developer Name)
O nome da organização do desenvolvedor do pacote.
Gerenciando licenças e fornecendo suporte administrativo
Campo
Version 29.0 | Editando os proprietários do pacote | 143
Descrição
ID da organização do
O ID de 18 caracteres da organização do desenvolvedor do pacote.
desenvolvedor (Developer Org
ID)
Modificado pela última vez
por (Last Modified By)
O nome do usuário que fez a última modificação neste registro, bem como a data e
hora em que o registro foi atualizado.
Versão mais recente (Latest A versão mais recente carregada e registrada no pacote. O desenvolvedor insere estas
Version)
informações ao carregar o pacote.
Gerenciador de Lead (Lead
Manager)_
Usuário da LMO que automaticamente se torna proprietário dos leads criados como
resultado da instalação do pacote. O Gerenciador do lead (Lead Manager)
está em branco quando o registro do pacote é criado. Se você não atribuir um
gerenciador de lead, o usuário do Gerenciador de licença se tornará o proprietário
dos leads.
Proprietário (Owner)
Assume como padrão o usuário Gerenciador de licenças. A qualquer momento, você
pode transferir a propriedade para outro usuário da organização. Para fazer isso, clique
em Alterar (Change) ao lado do nome do proprietário atual.
Id do pacote (Package ID)
O GUID (ID globalmente único) de 18 caracteres que identifica o pacote.
Nome do pacote (Package
Name)
O nome do pacote, conforme especificado pelo desenvolvedor.
Data de lançamento (Release Os dados do desenvolvedor que carregou esse pacote para o AppExchange.
Date)
Editando os proprietários do pacote
Permissões necessárias ao usuário
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
O proprietário do pacote, por padrão, é automaticamente o usuário do Gerenciador de licenças. É possível alterar o proprietário
de um pacote a qualquer momento, contanto que você tenha as permissões apropriadas.
Nota: Você pode atribuir a propriedade a qualquer usuário da sua organização. Por isso, é muito importante garantir
que o usuário para o qual você está transferindo a propriedade tenha acesso ao LMA e ao aplicativo personalizado e
também possua as permissões de usuário apropriadas.
Para alterar o proprietário de um único pacote:
1.
2.
3.
4.
Clique na guia Pacotes (Packages).
Selecione um pacote.
Clique no link Alterar (Change) ao lado do proprietário.
Clique no ícone de pesquisa e selecione um novo proprietário.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Editando o gerenciador de lead para um
pacote | 144
5. Outra alternativa é marcar a caixa de seleção Enviar email de notificação (Send Notification Email) para enviar um email
ao proprietário atual e ao novo proprietário.
6. Clique em Salvar (Save).
Você também pode transferir a propriedade de vários pacotes para um único proprietário visualizando uma exibição de lista
específica. Para alterar o proprietário de mais de uma licença:
1.
2.
3.
4.
5.
6.
Clique na guia Pacotes (Packages).
Selecione um pacote de lista de licença.
Selecione os pacotes que desejar alterar.
Clique em Alterar proprietário (Change Owner).
Clique no ícone de pesquisa e selecione um novo proprietário.
Outra alternativa é marcar a caixa de seleção Enviar email de notificação (Send Notification Email) para enviar um email
ao proprietário atual e ao novo proprietário.
7. Clique em Salvar (Save).
Editando o gerenciador de lead para um pacote
Permissões necessárias ao usuário
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
Quando um novo lead é criado como resultado de alguém ter instalado um pacote a partir do AppExchange, o campo
Proprietário do lead (Lead Owner) no registro do lead assume como padrão o gerente de lead especificado para o
pacote. Se não houver gerente de lead especificado para o pacote, o proprietário do lead padrão será o Gerenciador de
licenças (License Manager).
Para atribuir ou alterar o gerenciador de lead para um pacote:
1.
2.
3.
4.
5.
Selecione um pacote na guia Pacotes (Packages).
Clique em Editar.
Clique no ícone de pesquisa ao lado do campo Gerenciador de lead (Lead Manager) para procurar por um usuário.
Selecionar um usuário.
Clique em Salvar (Save).
Sobre versões do pacote
As versões do pacote são carregamentos específicos de um pacote. Uma versão de pacote pode conter objetos carregados ou
adicionais, que representam uma atualização de um pacote. Um pacote pode ter também uma nova versão se ele for originalmente
carregado como “Gerenciado — Beta (Managed — Beta)”, mas precisa ser alterado para “Gerenciado — Liberado (Managed
— Released)”.
As licenças representam a versão de pacote que um usuário instalou. Todas as versões de um pacote gerenciado estão associadas
à mesma LMO. Se você exibir os detalhes de uma versão de pacote, verá uma lista de todas as licenças para instaladores que
têm aquela versão instalada.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Detalhes da versão do pacote | 145
Nota: Não edite, exclua, clone ou crie pacotes ou versões de pacote. Não exclua, clone ou crie licenças. Esses registros
são criados automaticamente e contêm informações importantes para o rastreamento de licenças e pacotes no Aplicativo
de gerenciamento de licenças. Não é possível preenchê-los novamente.
Detalhes da versão do pacote
É possível acessar a página de detalhes da versão do pacote clicando no nome da versão do pacote nas guias Licenças (Licenses),
Pacotes (Packages) ou Versões de pacote (Package Versions) Na lista relacionada Licenças (Licenses), é possível ver todas as
licenças associadas a esta versão de pacote. O objeto de licença tem um relacionamento de pesquisa com um objeto de versão
de pacote.
Nota: Não edite, exclua, clone ou crie pacotes ou versões de pacote. Não exclua, clone ou crie licenças. Esses registros
são criados automaticamente e contêm informações importantes para o rastreamento de licenças e pacotes no Aplicativo
de gerenciamento de licenças. Não é possível preenchê-los novamente.
Aqui se encontram os atributos de uma versão de pacote.
Campo
Descrição
Beta
Uma versão antecipada de um pacote gerenciado que é carregada para o AppExchange
como uma amostra para seu público-alvo a fim de testá-la.
Criado por
Assume como padrão o usuário Gerenciador de licenças.
Modificado pela última vez
por
O nome do usuário que fez a última modificação neste registro, bem como a data e
hora em que o registro foi atualizado.
Pacote
O pacote para o qual esta é uma versão de pacote.
Nome da versão do pacote
(Package Version Name)
O nome da versão do pacote, conforme especificado pelo desenvolvedor durante a
carga.
Data de lançamento
Os dados da versão de pacote que foi carregada para o AppExchange pelo
desenvolvedor.
Versão
A versão, conforme especificada pelo desenvolvedor durante a carga para o Force.com
AppExchange.
Id da versão (Version ID)
O ID de 18 caracteres desta versão de pacote.
Sobre licenças
Quando um aplicativo é instalado, o Salesforce cria uma entrada de licença no LMA. Esta licença está diretamente relacionada
à versão do pacote que o instalador tem instalado. Clique na guia Licenças (Licenses) para exibir todas as licenças que um
usuário exibiu recentemente. Para exibir todas as licenças dos pacotes que a LMO gerencia, selecione Todas (All) na lista
suspensa e clique em Ir! (Go!).
Nota: Não edite, exclua, clone ou crie pacotes ou versões de pacote. Não exclua, clone ou crie licenças. Esses registros
são criados automaticamente e contêm informações importantes para o rastreamento de licenças e pacotes no Aplicativo
de gerenciamento de licenças. Não é possível preenchê-los novamente.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Detalhes da licença | 146
Detalhes da licença
Na guia Licença (License), é possível clicar em um nome de licença para exibir detalhes incluindo status, versão do pacote,
proprietário e data de instalação. Aqui se encontram os atributos de uma licença.
Campo
Descrição
Conta
A conta de um lead convertido.
Contato
O contato de um lead convertido.
Criado por
Assume como padrão o usuário Gerenciador de licenças.
Data de expiração
Exibe a data de expiração ou Não expira (Does not expire) se a licença não
expirar. O valor padrão é Não expira (Does not expire).
Data de instalação (Install
Date)
A data em que a versão do pacote foi inicialmente instalada pelo instalador.
Modificado pela última vez
por
O nome do usuário que fez a última modificação neste registro, bem como a data e
hora em que o registro foi atualizado.
Lead
O lead que o LMA criou automaticamente quando o aplicativo foi instalado. Este
lead representa o usuário que possui a licença.
Se o lead for convertido em uma oportunidade, o nome do lead será retido, mas o
registro do lead não existirá mais. Portanto, se você clicar neste link, será exibida uma
página indicando que o lead foi convertido.
Nome da licença (License
Name)
Representa uma instância de uma licença. O nome da licença é um número
automático, que aumenta de um em um a cada nova licença.
Estações licenciadas
(Licensed Seats)
O campo da fórmula que exibe o número de licenças ou Licença do local
(Site License). O valor padrão é Licença do local Site License).
Status da licença (License
Status)
Indica o tipo de licença. Os valores disponíveis são Trial (Avaliação), Ativa
(Active), Suspensa (Suspended), e Não instalada (Uninstalled).
Tipo de licença (License
Type)
Indica se a licença é editável.
Proprietário
Assume como padrão o usuário Gerenciador de licenças. A qualquer momento, você
pode transferir a propriedade para outro usuário da organização. Para fazer isso,
clique em Alterar (Change) ao lado do nome do proprietário atual.
Versão do pacote
Vincula à página de detalhes da versão do pacote que é a origem dessa licença.
ID da org do assinante
(Subscriber Org ID)
Um ID de 15 caracteres globalmente único que representa a organização do instalador.
Licenças usadas
Exibe o número de usuários na organização que possui a licença para um pacote.
(Somente leitura)
O campo estará em branco se:
•
•
Um cliente desinstalou ou pacote
Estações licenciadas (Licensed Seats) estão definidas para Licença
do local (Site License). Isto se deve a que todos os usuários em uma
Gerenciando licenças e fornecendo suporte administrativo
Campo
Version 29.0 | Editando os proprietários de licença | 147
Descrição
organização possuem implicitamente uma licença para o pacote quando Estações
licenciadas (Licensed Seats) estão definidas para Licença do local
(Site License).
Editando os proprietários de licença
Permissões necessárias ao usuário
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
O proprietário de licença, por padrão, é automaticamente o usuário Gerenciador de licenças. É possível alterar o proprietário,
contanto que você tenha as permissões apropriadas. Também é possível transferir a propriedade de várias licenças para um
único proprietário navegando até uma exibição de lista específica.
Nota: Você pode atribuir a propriedade a qualquer usuário da sua organização. Por isso, é muito importante garantir
que o usuário para o qual você está transferindo a propriedade tenha acesso ao LMA e ao aplicativo personalizado e
também possua as permissões de usuário apropriadas.
Para alterar o proprietário de uma licença:
1.
2.
3.
4.
5.
Clique na guia Licenças (Licenses).
Selecione uma licença.
Clique no link Alterar (Change) ao lado do proprietário.
Clique no ícone de pesquisa e selecione um novo proprietário.
Outra alternativa é marcar a caixa de seleção Enviar email de notificação (Send Notification Email) para enviar um email
ao proprietário atual e ao novo proprietário.
6. Clique em Salvar (Save).
Para alterar o proprietário de mais de uma licença:
1.
2.
3.
4.
5.
6.
Clique na guia Licenças (Licenses).
Selecione uma exibição de lista de licença.
Selecione as licenças que desejar alterar.
Clique em Alterar proprietário (Change Owner).
Clique no ícone de pesquisa e selecione um novo proprietário.
Outra alternativa é marcar a caixa de seleção Enviar email de notificação (Send Notification Email) para enviar um email
ao proprietário atual e ao novo proprietário.
7. Clique em Salvar (Save).
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Editando licenças | 148
Editando licenças
Permissões necessárias ao usuário
Para editar licenças e pacotes:
"Leitura"
E
"Edição"
É possível modificar licenças para cada instalador. Para modificar uma licença:
1. Clique na guia Licenças (Licenses).
2. Selecione a licença apropriada.
3. Clique em Modificar licença (Modify License).
Nota: Se Modificar licença (Modify License) não estiver visível, verifique o layout da sua página ou entre em
contato com o administrador.
4. Faça as alterações necessárias nos campos editáveis.
5. Clique em Salvar (Save).
Campos de licença editáveis
É possível modificar os campos de licença na tabela abaixo.
Campo
Descrição
Expiração (Expiration)
Insira a data de expiração para identificar o último dia em que
o instalador pode acessar o pacote sob o acordo de licença, ou
marque Não expira (Does not expire) se a licença não expirar.
Estações (Seats)
Insira um número positivo para determinar o número de
licenças ou marque Licença do local (Site License) para
disponibilizar o pacote a todos os usuários na organização do
instalador. O valor padrão é Licença do local.
Status
Use a lista suspensa para definir o status da licença. Os valores
disponíveis são:
• Avaliação (Trial): Defina para Avaliação (Trial) para
permitir que o instalador experimente o pacote por até 90
dias. Depois que uma licença de avaliação for convertida
em licença ativa, não é possível retornar para licença de
avaliação.
• Ativa (Active): Defina para Ativa (Active) a fim de
permitir que o instalador use seu pacote de acordo com seu
acordo de licença.
• Suspensa (Suspended): Defina como Suspensa
(Suspended) para impedir que o instalador acesse o pacote.
Talvez você queira definir um pacote como Suspenso
(Suspended) se um usuário não pagar pela licença.
Gerenciando licenças e fornecendo suporte administrativo
Campo
Version 29.0 | Integração com vendas e marketing | 149
Descrição
Nota: Quando o instalador desinstala o pacote, o
status é definido como Não instalado (Uninstalled).
O gerenciador de licença não pode definir nem alterar
este status. Depois que o pacote for desinstalado, a
licença se torna somente-leitura e não é mais editável.
As alterações de status permitidas são:
•
•
•
Avaliação (Trial) para Ativa (Active)
Ativa (Active) para Suspensa (Suspended)
Suspensa (Suspended) para Ativa (Active)
Integração com vendas e marketing
É possível usar as informações no LMA para enviar notificações aos clientes.
Cuidado: Não crie regras de fluxo de trabalho, acionadores nem regras de validação que exijam campos personalizados
nos objetos da licença ou do lead. Não imponha qualquer condição para a atualização ou a criação de registros de
licença ou de lead. Isso bloqueará a criação dos registros da licença ou do lead por parte do LMA, resultando em perda
de dados relacionada aos pacotes instalados pelos seus clientes.
Enviar notificações de atualização
Crie um modelo de email para notificar os clientes de que uma atualização está disponível.
Enviar notificações de expiração da licença
Crie uma regra de fluxo de trabalho que automaticamente envia emails ao representante de vendas ou ao gerente de conta
antes da expiração de uma licença. Para fazer isso, crie um modelo de email para a notificação. Depois disso, crie uma regra
de fluxo de trabalho que especifique um período de tempo (por exemplo, mês) antes da data de Expiração (Expiration).
Por fim, associe a regra de fluxo de trabalho a um alerta de fluxo de trabalho que envia um email para o membro da equipe ou
para o representante de vendas apropriado. É necessário configurar a regra para que seu representante e vendas e o cliente
tenham tempo suficiente para explorar as opções de renovação de contrato antes de a licença expirar. Também é recomendável
enviar emails para os clientes avisando-os da expiração da licença.
Reter clientes
Crie uma regra de fluxo de trabalho que envie um e-mail automático para um representante de serviço do cliente ou especialista
em retenção do cliente quando o pacote não estiver mais instalado naquela organização. Para fazer isso, crie um modelo de
email para a notificação. Em seguida, crie uma regra de fluxo de trabalho com um filtro que especifique o Status da licença
(License Status) como "Não instalada" ("Uninstalled"). Por fim, associe a regra de fluxo de trabalho a um alerta de fluxo de
trabalho que envia um email para o membro da equipe ou para o especialista em retenção de clientes apropriado.
Use a API para encontrar usuários licenciados
Você pode usar o método isCurrentUserLicensed para determinar se um usuário tem a licença para um pacote gerenciado.
Para obter mais informações, consulte o Apex Developer's Guide (Guia do desenvolvedor do Apex).
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Práticas recomendadas | 150
Práticas recomendadas
Evite campos obrigatórios
Não crie campos personalizados obrigatórios no lead, na licença, no pacote nem em objetos da versão do pacote.
Evite acionadores e regras de validação before-create.
Não defina acionadores nem regras de validação before-create no lead, na licença, no pacote nem em objetos de
versão de pacote.
Use domínios personalizados
Ao usar um Acesso ao suporte de pacote para resolver problemas de configuração do cliente, você poderá ser
automaticamente desconectado de sua LMO. Para evitar ser desconectado, use um domínio personalizado na sua LMO.
Para obter mais informações, consulte “Visão geral do Meu domínio” na ajuda online do Salesforce.
Certifique-se de que o usuário do lead é um usuário válido e ativo.
Isto é necessário para a criação do lead e da licença.
Controle as licenças
Crie um filtro de exibição de lista de leads para leads criados por pacotes instalados.
Configure o rastreamento do histórico para campos com licença.
Enviar notificações de expiração da licença
Crie uma regra de fluxo de trabalho que automaticamente envia emails ao representante de vendas ou ao gerente de conta
antes da expiração de uma licença. Para fazer isso, crie um modelo de email para a notificação. Depois disso, crie uma
regra de fluxo de trabalho que especifique um período de tempo (por exemplo, mês) antes da data de Expiração
(Expiration). Por fim, associe a regra de fluxo de trabalho a um alerta de fluxo de trabalho que envia um email para
o membro da equipe ou para o representante de vendas apropriado. É necessário configurar a regra para que seu
representante e vendas e o cliente tenham tempo suficiente para explorar as opções de renovação de contrato antes de a
licença expirar. Também é recomendável enviar emails para os clientes avisando-os da expiração da licença.
Enviar notificações de atualização
Crie um modelo de email para notificar os clientes de que uma atualização está disponível. A guia Leads no LMA tem
uma lista de todos os clientes.
Use a API para encontrar usuários licenciados
Você pode usar o método isCurrentUserLicensed para determinar se um usuário tem a licença para um pacote
gerenciado. Para obter mais informações, consulte Force.com Apex Code Developer's Guide (Guia do desenvolvedor do
Force.com Apex Code).
Reter clientes
Se um cliente desinstalar um pacote, o status da licença na LMO será alterado para Não instalado (Uninstalled). Crie
uma regra de fluxo de trabalho que envie um e-mail automático para um representante de serviço do cliente quando o
pacote não estiver mais instalado naquela organização. Para fazer isso, crie um modelo de email para a notificação. Em
seguida, crie uma regra de fluxo de trabalho com um filtro que especifique o Status da licença (License Status)
como "Não instalada" ("Uninstalled"). Por fim, associe a regra de fluxo de trabalho a um alerta de fluxo de trabalho que
envia um email para o membro da equipe ou para o especialista em retenção de clientes apropriado.
Cuidado: Não crie regras de fluxo de trabalho, acionadores nem regras de validação que exijam campos personalizados
nos objetos da licença ou do lead. Não imponha qualquer condição para a atualização ou a criação de registros de
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Perguntas frequentes sobre o Aplicativo de
Gerenciamento de Licença | 151
licença ou de lead. Isso bloqueará a criação dos registros da licença ou do lead por parte do LMA, resultando em perda
de dados relacionada aos pacotes instalados pelos seus clientes.
Perguntas frequentes sobre o Aplicativo de Gerenciamento de
Licença
Como eu troco minha Organização de gerenciamento de licenças?
Entre em contato com o suporte da salesforce.com Observe que os registros de licença na LMO atual não são usados na
nova LMO; eles permanecem com a LMO original.
Por que os registros de Lead e de Licença estão sendo criados em minha LMO?
•
•
•
•
•
Sua LMO não foi associado ao seu pacote.
A versão de seu pacote não foi registrada.
Talvez existam campos obrigatórios nos objetos personalizados do lead, licença, pacote e versão do pacote.
O Gerenciador de lead da LMO (o proprietário dos registros do lead) não é um usuário ativo válido.
Os acionadores before_ estão evitando a criação do lead.
Para possibilidades adicionais, consulte Resolução de problemas.
Por que eu não consigo ver o botão Modificar licença (Modify License)?
Você deve personalizar o layout da página e adicionar o botão Modificar licença (Modify License) à sua página.
Um cliente instalou meu pacote antes de eu associá-lo à minha LMO. Como posso gerenciar o registro de licença?
Peça ao cliente para instalar seu pacote outra vez sem desinstalá-lo.
O que acontece quando eu diminuo o número de licenças a um nível abaixo do número atual de usuários licenciados?
Todos os usuários ainda têm acesso até que um administrador do sistema na organização do instalador revogue as licenças
extra.
Por que eu devo instalar o LMA na minha organização do Salesforce de produção?
O LMA é uma parte importante das vendas, faturamento e marketing do parceiro de um pacote na plataforma do
Salesforce. Instalá-lo em uma organização separada significa que eles não podem gerenciar as licenças de pacote como
parte de seu processo de vendas e de marketing.
Instalar o LMA na organização de produção dos clientes significa que eles não poderão gerenciar o lead, a avaliação, o
licenciamento nem o faturamento como parte de seu conjunto de dados Salesforce geral.
Eu posso automatizar a atribuição das licenças do pacote para usuários na organização do assinante?
Não. A API não expõe as licenças do pacote na organização do assinante.
Solução de problemas
Os problemas mais frequentes surgem de leads e licenças que não estão sendo criados ou de um usuário proxy que está sendo
desativado.
Os leads e as licenças não estão sendo criados
Quando um assinante instala o meu pacote, não são criados os leads nem as licenças na LMO. Normalmente, isso é provocado
por um erro de configuração da organização em que o LMA está instalado. Aqui se encontram as coisas a serem verificadas.
Gerenciando licenças e fornecendo suporte administrativo
Version 29.0 | Solução de problemas | 152
O assinante realmente instalou o pacote?
O AppExchange contabiliza a instalação quando o usuário clica em "Adquirir agora" (Get It Now), mas a instalação
pode falhar ou ser cancelada e a licença não será entregue, a menos que a instalação seja concluída.
Existe algum acionador no objeto do lead ou da licença na LMO?
Nunca deve existir um acionador before_create ou um before_update em um lead ou em uma licença na LMO.
Em vez disso, tente usar acionadores after_. Ou tente remover o acionador; se o acionador falhar por alguma razão,
ele poderá bloquear a criação da licença.
Existe algum campo personalizado obrigatório no registro do lead ou da licença?
Em caso positivo, remova a obrigatoriedade; o LMA não preencherá aquele campo obrigatório, de forma que isso poderá
bloquear a criação da licença ou do lead.
O Gerenciador de lead da LMO é um usuário válido e ativo?
O Gerenciador de lead (o proprietário dos registros de lead) deve ser um usuário válido e ativo. Caso contrário, ele
bloqueará a criação da licença ou do lead.
Existe alguma regra de validação no registro do lead ou da licença?
Com frequência, elas bloquearão a criação dos registros de lead ou de licença do LMA porque este campo obrigatório
não está presente.
Existe uma regra de fluxo de trabalho no lead ou nas licenças?
Elas podem evitar que eu faça a criação da licença. Tente remover a regra de fluxo de trabalho.
O lead foi convertido para uma conta?
Quando os leads são convertidos em contas, não existem mais leads.
Nota: As licenças que não foram entregues para uma LMO normalmente serão entregues novamente depois de
alguns dias se o problema for resolvido nas etapas acima.
Um usuário proxy foi desativado
Se a mensagem "usuário proxy foi desativado" (proxy user has deactivated) aparecer durante a edição de uma licença na LMO,
uma organização do assinante pode ser bloqueada, excluída ou desabilitada em algum aspecto. Verifique o seguinte:
Verifique se a organização está ativa
Verifique junto ao administrador da organização se ela está ativa ou foi excluída. Se a organização foi excluída, exclua
também o registro de licença correspondente.
Certifique-se de que o pacote esteja instalado.
Verifique junto ao administrador da organização se o pacote ainda está instalado. Se a organização estiver bloqueada ou
o pacote não estiver mais instalado, a licença poderá não ser atualizada. Faça com que o assinante reinstale o pacote.
Capítulo 8
Fornecendo uma avaliação gratuita do seu aplicativo
Tópicos:
•
•
•
•
•
•
•
•
•
Por que usar Trialforce?
Visão geral do Trialforce
Configurando o Trialforce
Fornecendo uma avaliação gratuita
no AppExchange
Fornecendo uma avaliação gratuita
no seu website
Modificando a avaliação para uma
atualização
Práticas recomendadas do Trialforce
Criando inscrições usando a API
Perguntas frequentes do Trialforce
Todo mundo gosta de experimentar antes de comprar. As avaliações gratuitas
proporcionam essa oportunidade para seus clientes potenciais. Avaliações
gratuitas permitem que você alcance uma grande variedade de clientes e
maximize a distribuição e a adoção de seu aplicativo. É comum para os parceiros
mais que dobrar seus leads ao permitir avaliações gratuitas de seus aplicativos.
Há várias opções para fornecer uma avaliação gratuita de seu aplicativo:
•
•
•
•
No AppExchange, fazendo com que clientes potenciais instalem seu
aplicativo.
No AppExchange, configurando um test drive.
No AppExchange, usando o Trialforce.
No seu site, usando o Trialforce.
O Trialforce é uma tecnologia de provisionamento para as organizações do
salesforce.com. Ele capacita parceiros do ISV a configurar e gerenciar avaliações
gratuitas de seus aplicativos. Com o Trialforce, é possível configurar seu
aplicativo do Force.com para suas especificações, incluir dados de exemplos
relevantes e até mesmo personalizar a aparência de seu aplicativo para refletir
a marca de sua empresa.
Nota: Este recurso está disponível para parceiros elegíveis. Para obter
mais informações sobre o Programa de parceiros, incluindo os requisitos
de elegibilidade, visite-nos em www.salesforce.com/partners.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Por que usar Trialforce? | 154
Por que usar Trialforce?
O Trialforce fornece uma maneira simples de provisionar avaliações gratuitas e implementar o aplicativo Force.com a partir
de seu site ou de qualquer outro site. Usando o Trialforce, é possível:
•
•
•
•
Realizar suas próprias campanhas de marketing para maximizar o alcance e a adoção do cliente.
Personalizar seu aplicativo, incluindo marca, funcionalidade, design, dados e experiência de avaliação.
Gerenciar avaliações para vários aplicativos, versões e edições a partir de um local conveniente.
Permitir que clientes, como usuários não administradores, que não podem instalar seu aplicativo desenvolvam a avaliação
deles em uma nova organização.
Além de fornecer uma instância de avaliação de seu aplicativo para cada novo assinante, o Salesforce também coloca um lead
em sua Organização de gerenciamento de licenças.
Visão geral do Trialforce
Uma configuração do Trialforce consiste de várias partes, configuradas em momentos diferentes. É importante compreender
essas partes e as relações entre elas antes de você começar a usar o Trialforce.
Organização de gerenciamento do Trialforce (TMO)
Este é o ponto de partida para configurar o Trialforce e a localização central para gerenciamento do Trialforce depois
que ele estiver configurado. É preciso registrar um caso no Portal do parceiro para receber sua TMO. As duas tarefas
que você executará na TMO são: criar organizações de origem do Trialforce e definir modelos de marca personalizada.
Organização de origem do Trialforce (TSO)
Esta organização é usada para criar um modelo para as organizações de avaliação recebidas por seus clientes. Você as cria
em sua TMO. As tarefas executadas em uma TSO são: instalar o aplicativo, juntamente com todos os dados do exemplo;
especificar marca, escolhendo entre os modelos criados anteriormente na TMO; configurar a TSO para ser exatamente
como você quer que seus clientes o experimentem e gerar um modelo do Trialforce, que será a base para todas as
organizações de avaliação.
Modelo do Trialforce
Este é um instantâneo ou cópia exata da sua TSO em uma instância específica no tempo. É possível criá-lo em uma
TSO depois de instalar o aplicativo e fazer todas as alterações de configuração. O modelo do Trialforce é especificado
na página HTML na qual os clientes se inscrevem para avaliações e define a organização de avaliação que é provisionada
cada vez que um cliente se inscreve.
Formulário de inscrição em HTML
É um formulário em HTML que serve como página de registro em seu site, onde os clientes se inscrevem para avaliações.
Você deve registrar um caso no Portal do parceiro para obter este formulário e personalizá-lo com os detalhes da sua
empresa. Ele está associado ao modelo do Trialforce que você planeja usar para avaliações. Isso garante que, cada vez
que um cliente se inscrever para uma avaliação em seu site, ele receberá uma organização que é a cópia exata do modelo
do Trialforce escolhido.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Configurando o Trialforce | 155
Figura 16: Relação entre as organizações usadas para configurar o Trialforce
A TMO, as TSOs e os modelos do Trialforce têm uma relação hierárquica, conforme ilustrada acima.
•
•
É possível criar várias TSOs a partir de uma determinada TMO. Por exemplo, se você quiser oferecer avaliações para dois
aplicativos diferentes, seria possível gerar duas TSOs diferentes na mesma TMO, uma para cada aplicativo. Isso permite
que você use a TMO como um hub central para gerenciar as avaliações para todos os aplicativos do Force.com produzidos
por sua empresa.
É possível criar vários modelos do Trialforce a partir da mesma TSO. Por exemplo, se você lançar uma nova versão do seu
aplicativo depois de começar a usar o Trialforce, seria possível instalar a versão atualizada na TSO anterior, e, em seguida,
gerar um novo modelo do Trialforce a partir dela. Se você logo atualizar o formulário de inscrição em HTML para apontar
para o novo modelo do Trialforce, todas as organizações de avaliação criadas posteriormente terão, automaticamente, a
nova versão do pacote.
Como prática recomendada, aconselhamos você a ter uma única TMO na sua empresa, uma TSO para cada aplicativo, e um
modelo do Trialforce para cada versão ou edição de aplicativo. Dividir o processo de configuração em todos estes diferentes
níveis faz com que seja mais fácil manter e atualizar suas avaliações. Isso ocorre porque, cada vez que você precisa mudar algo,
como a versão de um aplicativo, sua marca, ou um detalhe de configuração da organização de avaliação, somente é preciso
fazer a mudança em um nível na hierarquia. Isso minimiza as etapas de configuração envolvidas e torna mais fácil de gerenciar
simultaneamente as avaliações de vários produtos, versões e edições.
Configurando o Trialforce
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Vinculação de um pacote à sua AppExchange
Publishing Organization | 156
Para ativar o Trialforce, é necessário ter um contrato assinado como ISVforce/OEM. Após criar e testar seu aplicativo e ser
aprovado na análise de segurança do AppExchange, siga estas etapas.
1. Crie seu pacote gerenciado.
2. Crie uma AppExchange Publishing Organization (APO). A APO, que na maioria dos casos é a mesma organização que
você usa para gerenciar suas licenças, é onde você irá gerenciar toda a sua publicação do AppExchange.
3. Vincule seu pacote gerenciado à APO.
4. Crie sua Organização de gerenciamento de licenças (LMO). A LMO é onde você irá gerenciar o acesso dos seus clientes
ao aplicativo. Você deve instalar o Aplicativo de gerenciamento de licenças na sua organização CRM do Salesforce existente
(é necessária a versão Enterprise Edition).
5. Associe a versão do seu pacote gerenciado à LMO e configure os padrões da sua licença. Isso garante que, toda vez que
um cliente em potencial criar uma avaliação do seu aplicativo, sua LMO receberá um lead e um registro de licença novos.
6. Solicite uma Organização de gerenciamento do Trialforce (TMO).
7. Como alternativa, crie uma página de login com marca personalizada e e-mails com marca na sua TMO.
8. Crie uma Organização de origem do Trialforce (TSO) a partir da sua TMO.
9. Vincule a TSO à sua APO.
10. Instale seu pacote gerenciado na TSO e personalize-o conforme deseja que seja a experiência dos seus clientes em potencial.
Isso inclui aplicar marca personalizada, carregar alguns dados de exemplo ou criar perfis personalizados.
11. Crie um novo modelo do Trialforce a partir da TSO.
12. Envie o modelo do Trialforce para análise e aprovação.
Agora, você pode usar esse modelo para criar avaliações gratuitas de duas formas. Consulte as seções a seguir para obter detalhes.
•
•
Fornecendo uma avaliação gratuita no AppExchange
Fornecendo uma avaliação gratuita no seu website
Vinculação de um pacote à sua AppExchange Publishing Organization
É possível vincular seu pacote gerenciado à sua AppExchange Publishing Organization (APO) por meio do console de edição
do AppExchange.
1.
2.
3.
4.
5.
6.
Faça login no AppExchange usando as credenciais da sua APO.
Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing Console).
Clique na guia Publicação (Publishing).
Clique em Suas organizações (Your Organizations).
Clique em Vincular nova organização (Link New Organization).
Insira as credencias para sua organização de empacotamento (a organização da Developer Edition em que você criou o
pacote gerenciado) e clique em Salvar (Save).
Pode levar 30 minutos ou mais para que seu aplicativo apareça como associado à APO. Para confirmar que o processo foi
concluído, volte à seção Início (Home) do Console de publicação (Publishing Console) e clique na guia Seus pacotes carregados
(Your Uploaded Packages). A versão do seu pacote deverá ser exibida.
Você só precisa vincular seu pacote ao AppExchange uma vez. As novas versões do pacote aparecerão automaticamente no
Console de Edição.
Vinculação de um pacote à sua Organização de gerenciamento de licenças
Para receber registros de licença e de leads das instalações do cliente, você deve associar seu pacote gerenciado à sua Organização
de gerenciamento de licenças (LMO), organização do Salesforce onde o Aplicativo de gerenciamento de licença está instalado.
Também é possível especificar as configurações de licença padrão para seu aplicativo como parte deste processo.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Solicitando uma Organização de gerenciamento
do Trialforce | 157
Nota: Depois de vincular um pacote à sua LMO, os leads e as licenças do pacote devem ser permanentemente
gerenciados fora da LMO. É possível migrar licenças para outra organização.
Para vincular um pacote à sua LMO e configurar as definições de licença padrão.
1.
2.
3.
4.
5.
6.
Faça login no AppExchange usando as credenciais da sua AppExchange Publishing Organization (APO).
Clique no seu nome no canto superior direito e selecione Console de publicação (Publishing Console).
Clique na guia Seus pacotes carregados (Your Uploaded Packages) e localize a versão de seu pacote.
Clique em Gerenciar licenças (Manage Licenses) ao lado do pacote.
Clique em Registrar (Register).
Especifique a LMO fornecendo as credenciais do usuário para essa organização e especifique os outros parâmetros padrão
da licença.
7. Selecione se o status da sua licença padrão é Avaliação gratuita (Free Trial) ou Ativa (Active). Se você não cobra pela
licença, selecione Ativa (Active).
8. Insira a duração da licença em número de dias. Se sua licença for gratuita ou não expirar, selecione Licença sem expiração
(License does not expire).
9. Digite o número de assentos associados à sua licença padrão ou selecione Licença para o site inteiro (License is site-wide)
para oferecer a licença a todos os usuários da organização do instalador.
10. Clique em Salvar (Save).
Para garantir que seu pacote esteja vinculado à LMO:
1. Conecte-se à sua LMO.
2. Clique na guia Versões de pacote (Package Versions).
3. Clique em Ir (Go) ao lado de Exibir todos (View All).
O nome de seu pacote deverá aparecer na lista.
Nota:
•
•
Todas as versões de um pacote gerenciado estão associadas à mesma LMO. Portanto, você só precisa associar seu
pacote à LMO uma vez.
Quando um cliente instala um pacote, os valores padrão são usados para definir os campos Status, Data de expiração
(Expiration Date) e Estações (Seats) no registro de licenças no LMA e na organização do instalador. Se você
deseja atualizar estes valores, será possível modificar este registro de licença no LMA.
Solicitando uma Organização de gerenciamento do Trialforce
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
As avaliações de um aplicativo são gerenciadas em uma Organização de gerenciamento do Trialforce (TMO). Isso permite
criar sua Organização de origem do Trialforce (TSO) e especificar uma marca personalizada para sua página de login e seus
e-mails. Para receber uma TMO, é necessário ser um parceiro ISV qualificado e seu aplicativo deve ser aprovado na análise
de segurança do AppExchange. A TMO deve ser uma organização separada da sua organização de negócios ou da organização
da Developer Edition na qual você desenvolveu seu aplicativo.
Para solicitar uma TMO:
1. Faça login no Portal de parceiros.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Configurando a marca personalizada para o
Trialforce | 158
2. Se você ainda não tiver uma organização da Developer Edition (DE) para servir como sua TMO, solicite uma clicando
em Criar uma organização de teste (Create a test org) na página principal do portal de parceiros.
3. Assim que tiver a organização da DE, clique em Criar um caso (Create a case) na página principal do Portal de parceiros.
4. Especifique a categoria como Solicitação geral do portal (General Portal Request) > Solicitar uma Organização de
gerenciamento do Trialforce (Request Trialforce Management Organization).
5. Preencha o formulário para criar um tíquete solicitando uma TMO. No corpo do tíquete, forneça as informações solicitadas,
incluindo detalhes do seu pacote e o ID da organização da DE que você deseja usar como TMO.
Nota: Para encontrar o ID da organização, acesse Perfil da empresa (Company Profile) > Informações da
empresa (Company Information) no menu Configuração (Setup) e veja a seção Detalhes da organização
(Organization Details).
6. Clique em Salvar (Save).
Um tíquete é gerado e enviado à equipe de operações do parceiro. A equipe irá analisar o caso e configurar sua organização da
DE para ser a TMO, ou entrará em contato com você em caso de dúvidas.
Configurando a marca personalizada para o Trialforce
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
Os desenvolvedores de aplicativos que usam o Trialforce para criar novas versões de avaliação de seu produto podem configurar,
se desejarem, um site de login marcado e emails do sistema. Ao criar essas áreas com a aparência da sua empresa, os usuários
do seu aplicativo serão imersos em sua marca desde a inscrição até o login. A marca personalizada deve ser usada apenas para
aplicativos não CRM, não para aplicativos que estendem o Salesforce CRM e requerem objetos padrão do Salesforce como
Leads, Oportunidades e Casos.
Uma página de login marcada permite que você especifique o domínio e o site de login.
•
•
Os domínios de login terminam com .cloudforce.com; portanto, caso o nome da sua empresa seja “mycompany”, o
domínio de login será mycompany.cloudforce.com.
O site de login personalizado inclui seu texto e o logo da empresa, e versões para dispositivos móveis do seu site de login
também.
Os emails marcados permitem que você especifique campos em emails gerados pelo sistema para que o nome, endereço e outros
detalhes pertinentes da sua empresa sejam usados na correspondência de email. Você pode criar vários conjuntos de email com
marca para diferentes campanhas ou segmentos de clientes.
Nota: Para configurar a marca, você deve estar conectado em uma Organização de gerenciamento do Trialforce
(TMO). Para obter sua TMO, crie um registro de caso no Portal de parceiro do Salesforce.
Criando e-mails com marca
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
É possível personalizar a marca dos e-mails enviados para assinantes das novas organizações de avaliação.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Criando uma página de login marcada | 159
Para criar um conjunto de e-mail com marca:
1. Efetue o login em sua Organização de gerenciamento do Trialforce.
2. Em Configuração (Setup), clique em Configuração do aplicativo (App Setup) > Trialforce > Marca (Branding) >
Conjuntos de e-mails (Email Sets).
3. Clique em Novo conjunto de emails (New Email Set) ou Editar (Edit) ao lado de um conjunto de e-mails existente.
4. Insira um nome para o conjunto de e-mails e informações de sua empresa.
5. Na área Visualizar emails, clique nos diferentes tipos de emails gerados e verifique se estão escritos corretamente.
Nota:
A URL de login exibida na visualização será sempre http://login.salesforce.com, mesmo se você usar uma página
de login com marca. Esses dois processos são distintos.
6. Clique em Salvar (Save).
7. Se estiver pronto para disponibilizar esses e-mails a Organizações de origem do Trialforce, clique em Publicar (Publish).
Caso contrário, suas alterações são salvas e você pode publicá-las posteriormente.
Para atribuir um e-mail de marca à sua TSO:
1. Em Configuração (Setup), clique em Configuração do aplicativo (App Setup) > Trialforce > Organizações de Origem
(Source Organizations).
2. Clique em Editar (Edit) ao lado da sua TSO.
3. Selecione o conjunto de e-mails.
4. Clique em Salvar (Save).
5. Clique em Login se você desejar ver a página de login com sua marca em ação.
Criando uma página de login marcada
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
Normalmente, os clientes efetuam o login no aplicativo usando o site login.salesforce.com tradicional. Uma página de login
marcada permite personalizar esse domínio e partes da página de login para que seja possível fornecer uma experiência com
marca para seus clientes. O site de login personalizado inclui seu texto e o logo da empresa, e versões para dispositivos móveis
do seu site de login também.
Para criar uma página de login marcada:
1.
2.
3.
4.
Efetue o login em sua Organização de gerenciamento do Trialforce.
Em Configuração, clique em Trialforce > Marca > Site de login.
Clique em Configurar site de login.
Selecione um subdomínio para o site de login fornecendo um nome do campo fornecido. Normalmente, esse é o nome da
sua empresa.
Nota: Os domínios de login terminam com .cloudforce.com; portanto, caso o nome da sua empresa seja
“mycompany”, o domínio de login será mycompany.cloudforce.com.
5. Verifique a disponibilidade do domínio e aceite os termos de uso.
6. Clique em Salvar e iniciar editor.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Criando uma Organização de origem do
Trialforce | 160
7. Use o Editor de marca de login para alterar a aparência da página de login. Para obter mais ajuda sobre como usar o editor,
clique em Ajuda para esta página.
8. Clique em Salvar e fechar.
9. Se estiver pronto para disponibilizar essas alterações para a TSO, clique em Publicar. Caso contrário, suas alterações são
salvas e você pode publicá-las posteriormente.
Criando uma Organização de origem do Trialforce
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
Com uma Organização de gerenciamento do Trialforce (TMO), é possível criar uma Organização de origem do Trialforce
(TSO) para atuar como base para novas organizações de avaliação. Instale seu pacote na TSO e também alguns dados para
que seus clientes potenciais tenham algo com que possam brincar quando eles fizerem seu primeiro login em sua organização
de avaliação. A TSO é sempre uma organização da Enterprise Edition.
Para criar uma nova TSO:
1.
2.
3.
4.
5.
Efetue o login em sua Organização de gerenciamento do Trialforce.
Em Configuração (Setup), clique em Trialforce > Organizações de Origem (Source Organizations).
Clique em Novo (New).
Insira um novo nome de usuário e endereço de email para a conta do administrador.
Insira um nome para a TSO e, caso deseje, especifique a marca personalizada, escolhendo um conjunto de e-mails de marca
ou local de login.
6. Clique em Criar (Create).
Você receberá um e-mail com os detalhes de login para sua TSO. Você pode, então, conectar-se à TSO e instalar seu pacote,
juntamente com todos os dados e configurações da amostra. Caso deseje, também é possível:
•
•
•
criar um perfil personalizado
criar novos usuários
criar registros de amostras
O objetivo é configurar a TSO exatamente como você quer que seus clientes a experimentem. É possível criar um modelo do
Trialforce que é um instantâneo ou uma cópia exata de sua TSO em um ponto específico do tempo.
Nota: Aqui se encontram algumas considerações especiais ao trabalhar com uma TSO.
•
•
•
Sempre associe um pacote gerenciado à sua Organização de gerenciamento de licenças (LMO) antes de instalar
o aplicativo em sua TSO. Se você não seguir essa ordem, as organizações de avaliação provisionados na TSO não
irão gerar leads nem licenças na LMO.
Assegure-se de que o admin da TSO tem uma licença de aplicativo na TSO antes de criar o modelo do Trialforce.
É possível criar várias TSOs a partir de sua TMO. Isso permite que você configure as avaliações para produtos
diferentes, cada um com sua própria configuração e marca.
Vinculando uma Organização de origem do Trialforce à APO
Para vincular sua Organização de origem do Trialforce (TSO) à AppExchange Publishing Organization (APO):
1. Faça login no AppExchange usando as credenciais da sua APO.
Fornecendo uma avaliação gratuita do seu aplicativo
2.
3.
4.
5.
6.
7.
Version 29.0 | Criando um modelo Trialforce | 161
Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing Console).
Clique na guia Publicação (Publishing).
Clique em Suas organizações (Your Organizations).
Clique em Vincular nova organização (Link New Organization).
Insira as credenciais de login da sua TSO.
Clique em OK.
Quando a vinculação estiver concluída, todos os modelos do Trialforce que você criar serão exibidos na área Seus modelos
(Your Templates).
Criando um modelo Trialforce
Permissões necessárias ao usuário
Para gerenciar o Trialforce:
“Personalizar aplicativo”
Um modelo do Trialforce é um instantâneo ou cópia exata de sua Organizações de origem do Trialforce (TSO) em uma
determinada instância temporal. É possível criar vários modelos a partir da mesma TSO. Certifique-se de que você tenha
instalado o pacote para a TSO e configurado exatamente como você quer que seus clientes o experimentem, com os dados
apropriados de amostra, perfis, usuários e registros.
Nota: Você somente pode criar um modelo do Trialforce se a Organização de Origem do Trialforce for menor que
256 MB.
Para criar um modelo de Trialforce:
1.
2.
3.
4.
Conecte-se à sua TSO.
Em Configuração (Setup), clique em Configuração do aplicativo (App Setup) > Trialforce.
Clique em Novo modelo do Trialforce (New Trialforce Template).
Especifique uma descrição para o modelo e se devem ser incluídos dados na caixa de diálogo que aparecer. A opção padrão
deve ser boa para a maioria dos casos.
5. Clique em Salvar (Save).
Será recebido um email com o ID da organização do novo modelo, assim que ele for gerado. Será necessário enviar o modelo
para revisão antes que seja possível usá-lo para inscrever organizações de avaliação. Lembre-se de gerar um novo modelo sempre
que fizer atualizações na TSO, para que suas avaliações sempre reflitam o estado mais recente.
Cada modelo do Trialforce tem um status com um dos seguintes valores.
Em andamento
Quando um modelo do Trialforce é criado, ele sempre tem esse status. Depois, ele passa automaticamente para o status
de Sucesso ou de Erro.
Sucesso
O modelo do Trialforce pode ser usado para criar organizações de avaliação.
Erro
O modelo do Trialforce não pode ser usado porque algo deu errado e é necessária depuração adicional.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Avaliando um modelo do Trialforce | 162
Excluído
O modelo do Trialforce não está mais disponível para uso. Os modelos excluídos são removidos automaticamente durante
as atualizações do sistema.
Avaliando um modelo do Trialforce
Para fornecer uma avaliação gratuita no AppExchange usando o Trialforce, é necessário ser aprovado na avaliação do modelo.
Antes de solicitar uma avaliação do modelo, vincule sua Organização de origem do Trialforce à sua AppExchange Publishing
Organization (APO) e crie um modelo do Trialforce a partir da sua TSO.
Nota: Só é possível solicitar a avaliação de um modelo do Trialforce que tenha pelo menos um pacote instalado.
Todos os pacotes instalados já devem ter sido aprovados pela análise de segurança.
1.
2.
3.
4.
Faça login no AppExchange usando as credenciais da sua APO.
Clique no seu nome no canto superior direito e, no menu suspenso, selecione Console de publicação (Publishing Console).
Clique na guia Modelos de avaliação (Trial Templates).
Clique em Iniciar avaliação (Start Review) ao lado do modelo que deseja analisar.
Você receberá um e-mail de confirmação quando iniciar a avaliação e outro e-mail quando a avaliação for concluída. A avaliação
é gratuita para parceiros e, geralmente, dura de dois a três dias.
Fornecendo uma avaliação gratuita no AppExchange
Nota: As avaliações gratuitas só estão disponíveis para parceiros elegíveis. Para obter mais informações sobre o
Programa de parceiros, incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Para criar avaliações no AppExchange, seu aplicativo deve:
•
•
•
•
•
Ser um pacote gerenciado.
Ser gerenciado por meio do Aplicativo de gerenciamento de licenças.
Autoprovisionamento — ou seja, o usuário não deve precisar interagir com você em nenhum ponto para ter o aplicativo
ativo e em execução.
Ter passado pela Aprovação de segurança.
Ter passado pela análise de modelo do Trialforce.
É possível proporcionar uma avaliação gratuita do AppExchange de três maneiras.
•
•
•
Usando o Trialforce.
Configurando um test drive.
Instalando seu aplicativo em uma organização existente.
Proporcionando uma avaliação gratuita do AppExchange usando o
Trialforce
Nota: As avaliações gratuitas só estão disponíveis para parceiros elegíveis. Para obter mais informações sobre o
Programa de parceiros, incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Para fornecer avaliações gratuitas do AppExchange usando o Trialforce:
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Configurando um test drive no
AppExchange | 163
1. Crie um novo modelo do Trialforce com seu aplicativo instalado e configurado como você deseja que seus clientes potenciais
o experimentem. Para obter mais detalhes, consulte Configuração do Trialforce.
2. Enviar o modelo do Trialforce para análise. Esta análise é gratuita e levará consideravelmente menos tempo do que a
aprovação de segurança para seu aplicativo. Você receberá um e-mail quando seu modelo for aprovado.
3. Conecte o modelo do Trialforce à sua listagem do AppExchange.
a.
b.
c.
d.
e.
Faça login no AppExchange com as credenciais de sua Publishing Organization.
Clique em Organizações (Organizations) no topo da página inicial da publicação.
Clique em Vincular nova organização (Link New Organization).
Insira as credenciais para sua Organização de origem do Trialforce e clique em Salvar (Save).
Retorne à página inicial da publicação e clique na guia Modelos de avaliação (Trial Templates). Pressione o link de
atualização na parte inferior da página. Agora, deve ser possível ver seu modelo.
4. Acesse sua listagem, clique em Editar (Edit) e, em seguida, clique na guia Oferta (Offering).
5. Selecione Permitir avaliações (Enable Trials ), selecione seu modelo aprovado e clique em Salvar (Save).
Você está ao vivo! Agora você pode acessar sua avaliação por meio do botão Adquirir agora (Get It Now) em sua listagem.
Também é possível direcionar pessoas diretamente para a URL associada ao seu formulário lead de avaliação.
Quando alguém clica em Adquirir agora (Get It Now) em sua listagem, essa pessoa receberá a opção de iniciar uma avaliação
gratuita em seu aplicativo pré-instalado, se ela ainda não tiver uma conta salesforce.com. Depois de fazer essa seleção, o usuário
será solicitado a inserir as informações que normalmente coletamos para as avaliações gratuitas do Salesforce e a concordar
com seus termos e condições e nosso MSA. Depois de concluir este formulário, o usuário receberá um e-mail, solicitando que
ele faça login e reinicie a senha.
Configurando um test drive no AppExchange
Um test drive é uma organização pré-configurada da Developer Edition (DE) que permite aos clientes potenciais experimentar
seu aplicativo com os dados de amostra que você configurou. Esta organização é pré-carregada com seu pacote e inclui todos
os dados de amostra que você selecionar. Um test drive é tão seguro quanto qualquer outro ambiente do Salesforce. Tests drives
contribuem para sua popularidade.
O test drive tem dois usuários: um administrador e um usuário de avaliação somente leitura. O usuário administrador é utilizado
para criar dados de amostra e preparar a organização. Quando clientes potenciais clicam no botão Test Drive (Test Drive) em
sua listagem, eles são conectados em seu ambiente de test drive como um usuário de avaliação somente leitura.
Para configurar um test drive:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Faça login no AppExchange usando as credenciais da sua AppExchange Publishing Organization (APO).
Clique no seu nome no canto superior direito e selecione Console de publicação (Publishing Console).
Clique na guia Seus pacotes carregados (Your Uploaded Packages) e localize a versão de seu pacote.
Clique em Editar Listagem (Edit Listing) ao lado da versão do pacote.
Clique na guia Oferta (Offering).
Clique em Criar Test Drive (Create Test Drive).
Na pop-up, insira um título. Ele deve ser uma palavra sem nenhum espaço, já que será usado para criar o nome de usuário.
Selecione o pacote. Ele será instalado em uma nova organização da Developer Edition.
Clique em Enviar (Submit).
Você receberá um e-mail com as credenciais de login para a nova organização da DE. Depois de receber este e-mail:
1. Faça login como administrador na nova organização e crie dados de amostra ou outras tarefas de configuração.
2. Faça login como o usuário da avaliação para definir sua senha.
3. Conecte-se de novo ao AppExchange.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Proporcionando uma avaliação gratuita do
AppExchange com seu aplicativo instalado | 164
4. Na guia Oferta (Offering), em Test Drive, clique em Alterar organização (Change Organization) para especificar a nova
organização da DE.
5. Digite o login e a senha do usuário da avaliação que foram enviados a você junto com as credenciais de administrador. O
usuário da avaliação tem permissões somente para leitura.
6. Clique em OK.
7. Clique em Salvar (Save).
Proporcionando uma avaliação gratuita do AppExchange com seu
aplicativo instalado
Você pode oferecer avaliações gratuitas de seu aplicativo configurando as definições da licença padrão em seu pacote. Quando
um cliente instala seu aplicativo em uma organização do Salesforce existente, ele está apto a usar seu aplicativo pelo período
de avaliação especificado.
Fornecendo uma avaliação gratuita no seu website
Para oferecer uma avaliação gratuita em seu site, siga estas etapas:
1.
2.
3.
4.
5.
Configure o Trialforce.
Solicite um formulário de registro em HTML.
Conecte seu modelo Trialforce ao formulário HTML.
Personalize o formulário HTML.
Provisione novas organizações de avaliação.
Você está pronto para entrar em ação. Agora, todas as vezes que um usuário potencial inserir suas informações e enviar seu
formulário, o salesforce.com provisionará uma avaliação em seu modelo Trialforce.
Nota: Além do uso de um formulário Web, também é possível criar inscrições do Trialforce usando a API. Isso lhe
oferece mais controle sobre o processo de inscrição e maior visibilidade sobre seus possíveis clientes.
Solicitando um formulário de inscrição para o Trialforce
Os parceiros que desejam usar o Trialforce precisam vincular seu site a um formulário HTML que coleta informações importantes
sobre o indivíduo que está solicitando a avaliação gratuita. O Salesforce.com oferece uma forma fácil de solicitar um formulário
HTML de exemplo cuja marca pode ser personalizada de acordo com seu site e, ao mesmo tempo, reter as informações
necessárias para assegurar que os envios do formulário fornecerão a avaliação correta.
Para solicitar um formulário de inscrição:
1. Faça login no Portal de parceiros.
2. Clique no botão para registrar um tíquete.
3. Selecione Tenho dúvidas ou problemas relacionados a um programa de parceiros do salesforce.com (I have a question
or issue relating to a salesforce.com partner program).
4. Selecione Trialforce > Solicitar um nome de formulário para o Trialforce (Request a form name for Trialforce).
5. Em Motivo do caso (Case Reason), selecione: Pergunta geral do usuário (General User Question).
6. Na seção Descrição (Description), informe um nome de aplicativo exclusivo para sua avaliação.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Vinculando um modelo do Trialforce ao
formulário de inscrição | 165
Você receberá um e-mail com o formulário de inscrição, bem como instruções sobre como modificá-lo para garantir o
fornecimento da avaliação correta. Siga as instruções do e-mail fornecido para fazer as alterações necessárias no formulário
HTML padrão.
Nota: É possível solicitar o formulário de inscrição antes que o modelo do Trialforce esteja pronto. Uma vez que o
formulário não será vinculado a nenhum modelo específico, a organização resultante será uma organização de avaliação
simples, que expira em dois dias. No entanto, esse é um bom método de testar o formulário sem a necessidade de uma
cópia do modelo do Trialforce.
Vinculando um modelo do Trialforce ao formulário de inscrição
Você pode associar um modelo do Trialforce específico ao seu formulário de inscrição HTML. Isso garante que quando os
usuários preencherem o formulário para solicitar uma avaliação, receberão uma nova organização de avaliação com seu aplicativo
instalado, juntamente com qualquer conteúdo ou registro de exemplo que você tenha adicionado ao modelo. Se esta etapa for
ignorada, os usuários que preencherem o formulário receberão uma organização de avaliação genérica, que irá expirar em dois
dias.
Para vincular um modelo ao formulário de inscrição:
1.
2.
3.
4.
5.
Efetue o login em sua Organização de origem do Trialforce.
Em Configuração (Setup), clique em Configuração do aplicativo (App Setup) > Trialforce.
Observe o ID o modelo do Trialforce que você deseja usar. O valor do ID é semelhante a: 0TTi0000000Sxd8.
Observe o valor de Nome do formulário (Form name) no formulário de inscrição.
Registre um caso para associar seu modelo do Trialforce ao formulário de inscrição.
a. Faça login no Portal de parceiros.
b. Clique em Criar um caso (Create a case).
c. Selecione Tenho dúvidas ou problemas relacionados a um programa de parceiros do salesforce.com (I have a question
or issue relating to a salesforce.com partner program).
d. Selecione Trialforce > Atualização do Trialforce (Trialforce Update).
e. Na descrição, informe o ID do seu modelo do Trialforce (de acordo com a Etapa 3) e o Nome do formulário de inscrição
(conforme a Etapa 4).
Você receberá um e-mail confirmando que sua solicitação foi processada. Para testar se o modelo foi corretamente associado
ao formulário de registro, preencha e envie o formulário. Você receberá um e-mail quando a nova avaliação tiver sido fornecida.
Personalização do formulário de registro HTML
O exemplo de formulário de registro HTML que você recebeu ao registrar um caso no Portal do parceiro é apenas um modelo,
e você vai precisar modificá-lo. Existem algumas alterações obrigatórias que devem ser feitas para garantir que a avaliação
adequada esteja provisionada. É possível, opcionalmente, modificar o arquivo para refletir a aparência de seu site e marca.
Você precisará atribuir os valores de formName e de Lead.Partner_Account no formulário HTML fornecidos pela equipe
de suporte do parceiro. Estes valores serão fornecidos a você no e-mail que contém a amostra de formulário de registro HTML.
1. Abra seu arquivo HTML de formulário de registro em um texto ou ferramenta de edição HTM.
2. Altere as linhas a seguir do HTML no formulário de registro para refletir estas informações ao atualizar o atributo de valor.
Pesquise pelo comentário TODO, que ajudará você a localizar as linhas a serem alteradas.
<!-- TODO: Add Signup Config Item Name of Config record as formName -->
<!-- TODO: Add Partner Account Record Id for Partner Lookup on Lead
(Provided by Salesforce.com-->
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Fornecendo novas organizações de
avaliação | 166
<input type="hidden" name="formName" value=""/>
<input type="hidden" name="Lead.Partner_Account__c" value=""/>
3. Pesquise e modifique outras seções no formulário com o rótulo "TODO". Isso permitirá que você faça coisas como especificar
logotipos da empresa, substituir páginas de sucesso ou falha, e assim por diante.
a. Abra seu arquivo HTML de formulário de registro em um texto ou ferramenta de edição html.
b. Pesquise pelo termo "TODO".
c. Siga as instruções nos comentários para alterar a porção apropriada do formulário. Exemplos de itens que podem ser
alterados dessa maneira:
•
•
•
•
•
fornecer um logotipo personalizado
modificar o nome de exibição do aplicativo (não use espaços)
especificar seu nome de empresa como entidade de referência para todos os leads gerados pelo formulário
especificar as URLs personalizadas para redirecionamento de sucesso e falha
atualizar o idioma/local do formulário
4. Modifique o HTML e o CSS para corresponder à aparência de seu site
Nota: Não faça alterações no JavaScript, exceto em seções especificamente identificadas para garantir que o formulário
irão provisionar adequadamente uma nova avaliação.
Depois que as alterações forem feitas, será possível testar o preenchimento e o envio do formulário para se certificar de que as
novas organizações de avaliação foram provisionadas corretamente.
Se você ainda não fez isso, registre outro caso no Portal do parceiro para associar seu ID de instantâneo do modelo de avaliação
ao seu FormName. De outra forma, as avaliações provisionadas por meio de preenchimento do formulário serão avaliações
genéricas do Force.com com validade de dois dias.
Fornecendo novas organizações de avaliação
Após configurar o Trialforce, será possível fornecer novas organizações de avaliação de dois modos diferentes.
•
•
Transmissão: você fornece uma avaliação em nome de um cliente preenchendo o formulário de registro com as informações
do cliente em potencial.
Extração: o cliente em potencial solicita uma avaliação por conta própria preenchendo um formulário de registro em seu
site público.
1. Carregue o formulário de registro HTML nos seus servidores públicos da web.
2. Edite e publique as páginas HTML apropriadas no site da sua empresa, onde deseja incluir um link para o formulário de
registro do Trialforce.
3. Navegue até a página de registro no site da sua empresa.
4. Preencha os campos obrigatórios e envie o formulário.
Qualquer pessoa com acesso ao formulário de registro pode criar manualmente uma avaliação em nome de um cliente em
potencial, sem a necessidade de expor o formulário de registro no site da empresa. Basta abrir o arquivo HTML do formulário
de registro em um navegador, preencher os campos em nome do cliente e enviar o formulário. Seu cliente em potencial receberá
um e-mail, que pode ou não trazer informações da sua empresa, indicando que a nova avaliação está disponível.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Modificando a avaliação para uma
atualização | 167
Modificando a avaliação para uma atualização
Às vezes, pode ser importante manter suas avaliações para refletir alterações em seu aplicativo ou sua marca personalizada.
Para fazer isso, será necessário:
Criar e publicar uma nova versão de seu pacote gerenciado (ou um pacote de extensão) com as alterações de seu aplicativo.
Ter uma Organização de origem do Trialforce (TSO) para carregar seu novo pacote. Você pode reutilizar a TSO que usou
para criar seu modelo Trialforce original ou pode criar um modelo novo. Se você decidir criar uma nova TSO, não esqueça
de vinculá-la à sua listagem do AppExchange.
•
•
Para atualizar sua avaliação:
1.
2.
3.
4.
Instale seu pacote gerenciado atualizado (ou pacote de extensão) em sua TSO.
Faça todas as outras alterações desejadas no TSO, como carga de dados de amostra ou atualização de marca personalizada.
Crie um novo modelo Trialforce para sua avaliação.
Envie o modelo para análise. Se não houver nenhuma alteração significativa em seu aplicativo, a análise deverá ser
relativamente rápida.
5. Depois de obter a aprovação, vincule seu novo modelo ao seu formulário de solicitação em HTML.
Depois de concluir estas etapas, novos envios de sua solicitação resultarão em uma avaliação atualizada.
Práticas recomendadas do Trialforce
Apresentamos aqui algumas práticas recomendadas sobre uso do Trialforce.
•
•
•
•
•
Crie várias Organizações de origem do Trialforce (TSOs) para experiências de avaliação personalizadas, por exemplo, uma
para cada pacote gerenciado, solução vertical do setor, país.
Carregue os dados de amostra na TSO.
Aplique a marca personalizada no seu formulário de inscrição da avaliação, página de login e e-mails.
Atualize seu modelo do Trialforce cada vez que você liberar uma nova versão de seu aplicativo.
Depois de configurar o Trialforce, vá até o fluxo de inscrição para confirmar se tudo está funcionando conforme esperado.
Isso também ajuda a identificar áreas em que o processo de inscrição possa ser melhorado.
Embora o Trialforce tenha sido inicialmente projetado para possibilitar avaliações gratuitas, ele também é útil em outros
contextos. Por exemplo, ele pode ser usado para:
•
•
Criar organizações de avaliação para demonstrações de vendas.
Criar organizações de tese com dados de amostra para QA interno.
Criando inscrições usando a API
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
É possível usar chamadas da API para o objeto SignupRequest e criar organizações de teste para possíveis clientes. Ao criar
organizações de teste (ou inscrições) usando um formulário da web, não há como personalizar o processo de inscrição ou rastrear
seu status. Usando a API, é possível coletar e analisar informações detalhadas sobre todas as inscrições da sua organização de
negócios. Isso lhe oferece mais controle sobre o processo de inscrição e maior visibilidade sobre seus possíveis clientes. Por
exemplo, você pode:
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Solicitação de inscrição | 168
Executar relatórios e coletar métricas, como o número de inscrições por dia ou o número de inscrições em diferentes países.
Personalizar o objeto SignupRequest para adicionar campos de interesse especial para a sua empresa.
Criar acionadores para iniciar ações específicas, como enviar uma notificação de email, sempre que uma nova solicitação
de inscrição for feita.
Ativar inscrições de uma ampla variedade de aplicativos e dispositivos clientes de modo que você tenha canais adicionais
para aquisição de clientes.
•
•
•
•
Nota: Embora seja possível criar novas inscrições de qualquer organização (com as permissões adequadas),
recomendamos fazer isso a partir da sua organização de negócios. Então, é possível integrar facilmente dados e métricas
em todas as inscrições com seus processos de negócios existentes.
Para começar a criar novas inscrições usando a API:
1.
2.
3.
4.
5.
Crie uma Organização de origem do Trialforce (TSO) a partir da sua Organização de gerenciamento do Trialforce.
Instale seu aplicativo na TSO junto com quaisquer dados de amostra que possam ser úteis para o teste.
Configure a TSO como deseja que os clientes o vejam, incluindo especificar qualquer marca personalizada.
Crie um modelo do Trialforce a partir da TSO.
Arquive um caso no Portal do parceiro especificando o ID da organização da sua TSO e o ID de modelo do Trialforce.
Quando o modelo for aprovado, um email será enviado. Ele então pode ser usado para criar novas inscrições fazendo chamadas
de API para o objeto SignupRequest. Consulte abaixo para detalhes do objeto SignupRequest e uma amostra de código
demonstrando seu uso.
Nota: Para obter mais informações sobre como trabalhar com objetos, consulte Referência de objeto para Salesforce e
Force.com.
Solicitação de inscrição
Representa uma solicitação para uma nova inscrição no Trialforce. Este objeto está disponível na versão de API 27.0 e posterior.
Chamadas com suporte
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete()
Campos
Nome do campo
Detalhes
AuthCode
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
Um código de autorização utilizável somente uma vez, que pode ser trocado por um
token de acesso OAuth e um token de atualização usando o padrão de APIs do Salesforce.
É usada junto com o ConnectedAppCallbackUrl e o ConnectedAppConsumerKey,
quando o aplicativo conectado não foi configurado com o certificado X.509. Esse é um
campo somente leitura fornecido pelo sistema depois que a solicitação de inscrição é
processada. Este campo está disponível na API versão 29.0 e posterior.
Fornecendo uma avaliação gratuita do seu aplicativo
Nome do campo
Detalhes
Empresa
Tipo
string
Version 29.0 | Solicitação de inscrição | 169
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O nome da empresa que solicita a inscrição de avaliação.
ConnectedAppCallbackUrl
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
Quando usado junto com ConnectedAppConsumerKey, especifica um aplicativo
conectado que deve ser aprovado automaticamente durante a criação da inscrição. Este
campo está disponível na API versão 28.0 e posterior.
ConnectedAppConsumerKey
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
Quando usado junto com ConnectedAppCallbackUrl, especifica um aplicativo
conectado que deve ser aprovado automaticamente durante a criação da inscrição. Este
campo está disponível na API versão 28.0 e posterior.
País
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O código de país ISO-3166, com dois caracteres em letras maiúsculas. Há uma lista
completa desses códigos em diversos sites, como:
www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
CreatedOrgId
Tipo
string
Propriedades
Criar (Create), Grupo (Group), Anulável (Nillable), Classificar (Sort)
Descrição
O ID com 15 caracteres da organização de avaliação criada. Esse é um campo somente
leitura fornecido pelo sistema depois que a solicitação de inscrição é processada.
Fornecendo uma avaliação gratuita do seu aplicativo
Nome do campo
Detalhes
CreatedOrgInstance
Tipo
string
Version 29.0 | Solicitação de inscrição | 170
Propriedades
Criar (Create), Grupo (Group), Anulável (Nillable), Classificar (Sort)
Descrição
A instância de servidor da nova organização de avaliação, por exemplo, “na8.” Este campo
está disponível na API versão 29.0 e posterior.
ErrorCode
Tipo
string
Propriedades
Criar (Create), Grupo (Group), Anulável (Nillable), Classificar (Sort)
Descrição
O código de erro se a solicitação de inscrição não for bem-sucedida. Esse é um campo
somente leitura fornecido pelo sistema e para ser utilizado para fins de suporte.
Nome
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Anulável (Nillable), Classificar (Sort)
Descrição
O nome do usuário administrador da inscrição de avaliação.
Sobrenome
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O sobrenome do usuário administrador da inscrição de avaliação.
SignupEmail
Tipo
email
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O endereço de email do usuário administrador da inscrição de avaliação.
Status
Tipo
lista de seleção
Propriedades
Filtro (Filter), Grupo (Group), Classificação (Sort) , Atualização (Update)
Fornecendo uma avaliação gratuita do seu aplicativo
Nome do campo
Version 29.0 | Solicitação de inscrição | 171
Detalhes
Descrição
O status da solicitação. Os valores possíveis são Novo, Em andamento, Erro ou
Sucesso. O valor padrão é Novo.
Subdomain
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O subdomínio da nova organização de avaliação quando ela usa um Meu domínio
personalizado. O comprimento máximo é de 33 caracteres para Developer Edition (DE)
e de 40 caracteres para todas as outras edições (porque um sufixo é acrescentado a todas
as organizações da DE).
SuppressSignupEmails
Tipo
booleano
Propriedades
Criar (Create), Grupo (Group), Anulável (Nillable), Classificar (Sort)
Descrição
Quando definido para true, nenhum e-mail de inscrição é enviado quando a organização
de avaliação é criada. Esse campo é criado para o recurso Inscrições de proxy e está
disponível na versão de API 29.0 e posterior.
TemplateId
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O ID de 15 caracteres do modelo do Trialforce aprovado que serve de base para a inscrição
de avaliação. O modelo é obrigatório e deve ser aprovado pela salesforce.com.
TrialDays
Tipo
anyType
Propriedades
Criar (Create), Padronizado na criação (Defaulted on create), Filtro (Filter), Grupo
(Group), Classificar (Sort)
Descrição
A duração da inscrição de avaliação em dias. Ela deve ser igual ou menor do que os dias
de avaliação do modelo de Trialforce aprovado. Se não for fornecido, o padrão é o período
de avaliação especificado para o modelo do Trialforce.
TrialSourceOrgId
Tipo
string
Fornecendo uma avaliação gratuita do seu aplicativo
Nome do campo
Version 29.0 | Solicitação de inscrição | 172
Detalhes
Propriedades
Criar (Create), Grupo (Group), Anulável (Nillable), Classificar (Sort)
Descrição
O ID com 15 caracteres da Organização de origem do Trialforce a partir da qual o modelo
do Trialforce foi criado.
Nome do usuário
Tipo
string
Propriedades
Criar (Create), Filtro (Filter), Grupo (Group), Classificar (Sort)
Descrição
O nome de usuário do usuário administrador da inscrição de avaliação. Deve seguir a
convenção de endereços especificada em RFC822: www.w3.org/Protocols/rfc822/#z10
Uso
A classe Java abaixo usa a API REST para criar um objeto SignupRequest. Ele autentica para a Organização de gerenciamento
do Trialforce e publica uma solicitação para o objeto SignupRequest.
Aqui se encontram as variáveis necessárias para especificar este exemplo.
•
•
•
•
•
SERVIDOR — O nome do servidor do host da Organização de gerenciamento do Trialforce (TMO), por exemplo,
“na1.salesforce.com.”
NOME DE USUÁRIO — O nome de usuário do admin da TMO.
SENHA — A concatenação da senha do admin e a chave de segurança da TMO. Para obter um e-mail com a chave de
segurança a partir de suas configurações pessoais no Salesforce, selecione Redefinir chave de segurança (Reset My Security
Token) e clique em Redefinir chave de segurança (Reset Security Token).
CLIENT_ID — Em configurações, no Salesforce, clique em Criar (Create) > Aplicativos (Apps) e clique em Novo
(New), em Aplicativos Conectados. Insira os valores para os campos obrigatórios (a URL de retorno é necessária, mas,
inicialmente, pode ser definida como qualquer URL válida, uma vez que não é usada), conceda acesso total para os escopos
do OAuth no seletor "Escopos OAuth selecionados" (Selected OAuth Scopes) e clique em Salvar (Save). Então, copie o
valor de "Chave do consumidor" (Consumer Key) e use-o para esta variável.
CLIENT_SECRET — Na mesma página, clique em Clique para exibir (Click to reveal). Então, copie o valor de "Segredo
do consumidor" (Consumer Secret) e use-o para esta variável.
public class IsvSignupDriver {
private static final String
private static final String
private static final String
private static final String
private static final String
SERVER = server_name:port;
USERNAME = tmo_username;
PASSWORD = tmo_passwordsecurity_token;
CLIENT_ID = consumer_key;
CLIENT_SECRET = consumer_secret;
private static SignupRequestInfo signupRequest = null;
public static String createSignupRequest (SignupRequestInfo sr)
throws JSONException, IOException {
JSONObject createResponse = null;
signupRequest = sr;
JSONObject loginResponse = login(SERVER, USERNAME, PASSWORD);
String instanceUrl = loginResponse.getString("instance_url");
String accessToken = loginResponse.getString("access_token");
createResponse = create(instanceUrl, accessToken);
System.out.println("Created SignupRequest object: " + createResponse + "\n");
return createResponse.toString();
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Solicitação de inscrição | 173
}
/* Authenticates to the TMO using the required credentials */
private static JSONObject login(String server, String username, String password)
throws ClientProtocolException, IOException, JSONException {
String authEndPoint = server + "/services/oauth2/token";
HttpClient httpclient = new DefaultHttpClient();
try {
HttpPost post = new HttpPost(authEndPoint);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("grant_type", "password"));
params.add(new BasicNameValuePair("client_id", CLIENT_ID));
params.add(new BasicNameValuePair("client_secret", CLIENT_SECRET));
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
BasicResponseHandler handler = new BasicResponseHandler();
String response = httpclient.execute(post, handler);
return new JSONObject(response);
} finally {
httpclient.getConnectionManager().shutdown();
}
}
/* Posts a request to the SignupRequest object */
private static JSONObject create(String instanceUrl, String accessToken)
throws ClientProtocolException, IOException, JSONException {
HttpClient httpClient = new DefaultHttpClient();
try {
HttpPost post = new HttpPost(instanceUrl +
"/services/data/v27.0/sobjects/SignupRequest/");
post.setHeader("Authorization", "Bearer " + accessToken);
post.setHeader("Content-Type", "application/json");
JSONObject requestBody = new JSONObject();
requestBody.put("TemplateId", signupRequest.getTemplateID());
requestBody.put("SignupEmail", signupRequest.getEmail());
requestBody.put("username", signupRequest.getUsername());
requestBody.put("Country", "US");
requestBody.put("Company", signupRequest.getCompanyName());
requestBody.put("lastName", signupRequest.getLastName());
StringEntity entity = new StringEntity(requestBody.toString());
post.setEntity(entity);
BasicResponseHandler handler = new BasicResponseHandler();
String response = httpClient.execute(post, handler);
return new JSONObject(response);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
Códigos de erro
Se houver falha na inscrição, o sistema irá gerar um código de erro para ajudá-lo a identificar a causa. Esta tabela mostra os
códigos de erro mais importantes.
Código de erro
Descrição
C-1007
Nome de usuário duplicado.
C-1015
Erro ao estabelecer as configurações do Meu domínio na nova organização. Entre em contato com
o suporte da salesforce.com para obter ajuda.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Início da solicitação de inscrição | 174
Código de erro
Descrição
C-1016
Erro ao configurar o Aplicativo conectado de OAuth para a Inscrição do proxy. Certifique-se de
que o Aplicativo conectado tenha uma chave de consumidor válida, URL de retorno e um certificado
não expirado (se aplicável).
C-1018
Valor de subdomínio inválido fornecido durante a inscrição.
C-1019
Subdomínio em uso. Selecione um novo valor de subdomínio.
C-9999
"Erro fatal" genérico. Entre em contato com o suporte da salesforce.com para obter ajuda.
S-1006
Endereço de e-mail inválido (formato de endereço de e-mail não apropriado).
S-2006
Código de país inválido.
T-0001
ID de modelo não válido (fora do formato 0TTxxxxxxxxxxxx).
T-0002
Modelo não encontrado. O modelo não existe (pode ter sido apagado) ou ele não existe na versão
adequada.
T-0003
Modelo não aprovado para uso pelo salesforce.com.
Início da solicitação de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
Clique na guia Solicitações de inscrição para exibir a home page correspondente. Na seção Solicitações recentes de inscrição:
•
•
•
•
Clique em Novo para criar uma nova inscrição.
Clique no número de qualquer solicitação de inscrição para ver os detalhes sobre ela, incluindo seu histórico e o status de
aprovação.
Selecione um item na lista suspensa para exibir uma lista de solicitações de inscrição correspondentes a esse critério. Na
lista, é possível clicar em qualquer nome de solicitação de inscrição para acessar diretamente seus detalhes.
Para exibir uma lista filtrada de itens, selecione uma lista predefinida na lista suspensa Exibir ou clique em Criar novo
modo de exibição para definir seus próprios modos de visualização personalizados. Para editar ou excluir qualquer exibição
que você tenha criado, selecione-a na lista suspensa Modo de exibição e clique em Editar.
Nota: É necessário obter aprovação do seu modelo do Trialforce, preenchendo um caso no Portal do parceiro, antes
de ser possível criar novas inscrições nessa página.
Criando uma solicitação de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
1. Selecione Solicitação de inscrição na lista suspensa Criar novo na barra lateral ou clique em Novo ao lado de Solicitações
recentes de inscrição na home page de solicitações de inscrição.
2. Insira as informações para a solicitação de inscrição.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Exibindo detalhes da solicitação de
inscrição | 175
3. Clique em Salvar quando tiver concluído ou clique em Salvar e novo para salvar a solicitação de inscrição atual e adicionar
outra.
Exibindo detalhes da solicitação de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
Na página de detalhes da Solicitação de inscrição:
•
•
Clicar em Excluir para excluir a solicitação de inscrição
Clique em Clonar para criar uma nova solicitação de inscrição com os mesmos atributos dessa
A página de detalhes possui as seguintes seções.
•
•
Detalhes da solicitação de inscrição
Histórico da solicitação de inscrição
Detalhes da solicitação de inscrição
Essa seção exibe os atributos a seguir (em ordem alfabética).
Atributo
Descrição
Empresa
O nome da empresa que solicita a inscrição de avaliação.
País
O código de país ISO-3166, com dois caracteres em letras maiúsculas. Há uma lista completa
desses códigos em diversos sites, como:
www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
Org. criada
O ID com 15 caracteres da organização de avaliação criada. Esse é um campo somente leitura
fornecido pelo sistema depois que a solicitação de inscrição é processada.
Email
O endereço de email do usuário administrador da inscrição de avaliação.
Código de erro
O código de erro se a solicitação de inscrição não for bem-sucedida. Esse é um campo somente
leitura fornecido pelo sistema e para ser utilizado para fins de suporte.
Nome
O nome do usuário administrador da inscrição de avaliação.
Sobrenome
O sobrenome do usuário administrador da inscrição de avaliação.
Org. de origem
O ID com 15 caracteres da Organização de origem do Trialforce a partir da qual o modelo
do Trialforce foi criado.
Status
O status da solicitação. Os valores possíveis são Novo, Em andamento, Erro ou Sucesso.
O valor padrão é Novo.
Modelo
O ID de 15 caracteres do modelo do Trialforce aprovado que serve de base para a inscrição
de avaliação. O modelo é obrigatório e deve ser aprovado pela salesforce.com.
Descrição do modelo
A descrição do modelo do Trialforce aprovado que serve de base para a inscrição de avaliação.
Dias de avaliação
A duração da inscrição de avaliação em dias. Ela deve ser igual ou menor do que os dias de
avaliação do modelo de Trialforce aprovado. Se não for fornecido, o padrão é o período de
avaliação especificado para o modelo do Trialforce.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Adicionando campos personalizados a
solicitações de inscrição | 176
Atributo
Descrição
Nome do usuário
O nome de usuário do usuário administrador da inscrição de avaliação. Deve seguir a convenção
de endereços especificada em RFC822: www.w3.org/Protocols/rfc822/#z10
Histórico da solicitação de inscrição
Essa seção mostra a data que a solicitação de inscrição foi criada, o usuário que a criou e as ações que foram realizadas nela.
Adicionando campos personalizados a solicitações de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
É possível adicionar campos personalizados ao objeto SignupRequest, assim como para qualquer outro objeto padrão.
1. Na sua Organização de gerenciamento do Trialforce, em Configuração (Setup), clique em Customize (Personalizar) >
Solicitações de inscrição (Signup Requests) > Campos (Fields).
2. Clique em Novo (New).
3. Especifique os detalhes do campo personalizado e clique em Salvar (Save).
Para ver o campo personalizado em uma lista de registros existentes do SignupRequest, crie uma exibição personalizada que
contenha esse campo na guia Solicitações de inscrição (Signup Requests).
Executando relatórios em solicitações de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
Depois que alguns registros SignupRequest forem criados, você poderá executar relatórios personalizados neles.
1. Na Organização de gerenciamento do Trialforce, em Configuração (Setup), clique em Criar (Create) > Tipos de relatórios
(Report Types) e clique em Tipos de relatórios personalizados (Custom Report Types).
2. Selecione Solicitações de inscrição (Signup Requests) como Objeto principal (Primary Object).
3. Digite um rótulo, um nome e uma descrição e armazene em uma categoria como Relatórios administrativos (Administrative
Reports).
4. Finalize o assistente e salve o Tipo de relatório (Report Type).
5. Configure o relatório com os campos desejados e clique em Salvar (Save).
6. Selecione a guia Relatórios (Reports) e clique em Novo relatório (New Report) para criar um relatório a partir do seu novo
Tipo de relatório (Report Type).
7. Selecione o nome do seu tipo de relatório e clique em Criar (Create).
Após criar o relatório, será possível executá-lo periodicamente para ver as tendências dos dados.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Usando acionadores com solicitações de
inscrição | 177
Usando acionadores com solicitações de inscrição
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
É possível configurar acionadores para iniciar ações específicas toda vez que uma solicitação de inscrição for enviada.
1. Na sua Organização de gerenciamento do Trialforce, em Configuração (Setup), clique em Personalizar (Customize) >
Solicitações de inscrição (Signup Requests) > Acionadores (Triggers).
2. Clique em Novo (New).
3. Adicione o código do acionador e clique em Salvar (Save).
Por exemplo, esse acionador insere um novo lead com base nas informações da solicitações de inscrição.
trigger SignupRequestTrigger on SignupRequest (after insert) {
private SignupRequest[] sr = Trigger.new;
Lead l = new Lead(
LastName = sr[0].LastName,
FirstName = sr[0].FirstName,
Company = sr[0].Company,
Email = sr[0].SignupEmail,
LeadSource = 'Trial Signup'
);
insert l;}
Sempre que você criar um SignupRequest, poderá confirmar que um registro de Lead foi criado. Para encontrar facilmente
um lead específico, é possível classificar os leads por e-mail.
Criando inscrições de proxy para acesso à API e ao OAuth
Permissões necessárias ao usuário
Para criar ou visualizar solicitações de inscrição:
“API da solicitação de inscrição”
Usando o objeto SignupRequest, é possível, de forma programática, criar uma nova organização sem que e-mails gerados pelo
sistema sejam enviados ao usuário. Em seguida, você pode obter um token de acesso OAuth para fazer login na organização
e fazer solicitações de API a partir dela, sem qualquer ação por parte do usuário. Isso é chamado de inscrição de proxy porque
permite criar e operar a organização em nome do usuário, sem que ele saiba que você está usando o Salesforce nos bastidores.
No processo de inscrição tradicional, quando você cria uma nova organização, o usuário recebe um e-mail gerado pelo sistema,
que contém a URL de login e a senha inicial para fazer login na organização. +Em seguida, o usuário deve fazer login e conceder
explicitamente a você o acesso à API, para que você possa fazer chamadas na organização em nome dele. Com a inscrição de
proxy, nenhum e-mail é gerado para o usuário e nenhuma ação é necessária por parte dele para que você tenha acesso à API.
A capacidade de criar e gerenciar organizações por proxy amplia suas opções para integrar o Salesforce a aplicativos externos
em outras plataformas. Isso permite que você incorpore qualquer recurso da plataforma Force.com em seu próprio aplicativo,
sem expor a interface do usuário do Salesforce. De fato, todos os recursos do Salesforce podem ser desacoplados da UI e estão
disponíveis para serem integrados em qualquer outro tempo de execução ou UI de aplicativo, de forma perfeita e invisível.
Por exemplo, imagine que um ISV tem um aplicativo da Web, criado na plataforma .NET, que ajuda as empresas a gerenciar
relatórios de despesas de viagens e reembolso para funcionários. O ISV pode querer integrar o Chatter em seu aplicativo, para
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Criando inscrições de proxy para acesso à API
e ao OAuth | 178
que todos os funcionários de uma empresa possam compartilhar uns com os outros feedback e dicas sobre suas experiências
de viagem. O ISV pode fazer isso usando as APIs adequadas do Salesforce para implementar a solução a seguir.
1.
2.
3.
4.
5.
Use a inscrição de proxy para criar uma organização do Salesforce para cada um de seus clientes.
Crie usuários na organização de cada cliente para todos os funcionários da empresa.
Configure e realize a manutenção de um grupo do Chatter para o compartilhamento de informações de viagem.
Monitore o feed do Chatter de cada usuário e extraia informações de publicações individuais.
Insira as informações no aplicativo e as mostre na UI existente.
Isso permite que o ISV forneça aos seus clientes o acesso à funcionalidade do Chatter, sem a necessidade de desenvolver essa
funcionalidade a partir do zero. O cliente do ISV utiliza o Chatter como uma extensão natural do aplicativo existente, em uma
interface familiar e sem que tenha que tomar conhecimento ou fazer login no Salesforce. A mesma abordagem pode ser ampliada
para qualquer outro recurso do Salesforce, incluindo objetos padrão e personalizado, Apex e Visualforce. De fato, a assinatura
de proxy oferece aos ISVs a capacidade de consumir o Salesforce como um serviço, integrando seus recursos em aplicativos de
qualquer plataforma, sem expor a UI do Salesforce. A imaginação do ISV determina quais são os aplicativos possíveis.
Estas são as etapas para criar uma assinatura de proxy.
1. Faça login na organização da Developer Edition, que tem a permissão de usuário Aplicativos conectados (Connected Apps)
ativada por padrão.
2. No menu Configuração (Setup), clique em Criar (Create) > Aplicativos (Apps) e em Novo (New) na seção Aplicativos
conectados (Connected Apps).
3. Digite os valores nos campos obrigatórios. É preciso especificar um certificado X.509 e conceder acesso total aos escopos
OAuth no seletor Escopos OAuth selecionados (Selected OAuth Scopes). O URL de callback é necessário mas, inicialmente,
pode ser definido como qualquer URL válido, uma vez que não será usado. Clique em Salvar (Save) ao terminar.
4. Registre o valor de Chave do consumidor (Consumer Key) na mesma página. Além disso, selecione Clique para exibir
(Click to reveal) e registre o valor do Segredo do consumidor (Consumer Secret).
5. Empacote o Aplicativo conectado (Connected App) adicionando-o como um componente a um novo pacote. Registre o
valor da URL de instalação (Installation URL) do pacote.
6. Faça login na sua Organização de gerenciamento do Trialforce e crie uma nova Organização de origem do Trialforce a
partir dela.
7. Faça login na sua Organização de origem do Trialforce e instale o pacote que contém o Aplicativo conectado, usando a
URL de instalação usada na etapa 5.
8. Quando o Aplicativo conectado estiver instalado na Organização de origem do Trialforce, você poderá personalizá-lo
acessando Configuração (Setup) > Gerenciar aplicativos (Manage Applications). Então, é possível ver o Aplicativo
conectado e editar seus atributos. Especifique os perfis e conjuntos de permissão apropriados e selecione a opção "Usuários
aprovados pelo administrador estão pré-autorizados" (Admin approved users are pre-authorized) na seção Políticas do
OAuth (OAuth policies). Isso garante que você possa realizar autenticações na organização em nome dos usuários com
esses critérios.
9. Depois de configurar a Organização de origem do Trialforce de acordo com seus requisitos, crie um modelo do Trialforce
a partir dela. Selecione o botão de opção Todas as configurações e dados (All Setup and Data) ao criar um modelo do
Trialforce.
10. Registre um caso no Portal de parceiros a fim de obter aprovação para criar novas inscrições usando o modelo.
11. Assim que o modelo for aprovado, será possível inscrever uma nova organização usando o objeto SignupRequest. Será
preciso especificar os valores OAuth necessários para se conectar a organização recentemente criada, isto é: Chave do
consumidor (Consumer Key) e URL de callback (Callback URL).
POST https://mycompany-tmo.salesforce.com/services/data/v27.0/sobjects/SignupRequest/
Authorization Bearer
00Dxx0000001gR6!ARoAQAS3Uc6brlY8q8TWrrI_u1THuUGmSAp
XrksSniyjom9kXfDac4UP.m9FApjTw9ukJfKqWuD8pA9meeLaltRmNFvPqUn7
Content-Type application/json Body:
{
"TemplateId":"0TT000000000001",
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | Perguntas frequentes do Trialforce | 179
"SignupEmail":"[email protected]",
"Username":"[email protected]",
"Country":"US",
"Company":"salesforce.com",
"LastName":"Smith",
"ConnectedAppConsumerKey":
"3MVG9AOp4kbriZOLfSVjG2Pxa3cJ_nOkwhxL1J1AuV22u8bm82FtDtWFVV__
Vs6mvqoVbAnwsChp9YT4bfrYu",
"ConnectedAppCallbackUrl":
"https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp" }
Quando os campos Chave do consumidor do aplicativo conectado (ConnectedAppConsumerKey) and URL de
callback do aplicativo conectado (ConnectedAppCallbackUrl) são especificados no objeto SignupRequest, um
fluxo de inscrição de proxy é acionado para aprovar automaticamente um Aplicativo conectado existente a ser usado nesta nova
organização. Nesse fluxo, nenhum e-mail relacionado à inscrição é enviado ao usuário. Agora que sabe o nome de usuário do
administrador, a chave do consumidor e o segredo do consumidor, você tem todas as informações necessárias para:
•
•
fazer solicitações de API para a organização recentemente criada como usuário administrador dessa organização.
solicitar um token de acesso atualizado a qualquer momento.
Perguntas frequentes do Trialforce
Esta seção contém uma lista de perguntas frequentes sobre o Trialforce.
•
•
•
•
Como atualizar minha avaliação com uma nova versão do meu aplicativo?
Posso oferecer meu aplicativo tanto por meio do Trialforce como do AppExchange?
Qual é a diferença entre as avaliações e o Trialforce?
É possível instalar outro aplicativo em uma organização de avaliação?
Como atualizar minha avaliação com uma nova versão do meu aplicativo?
Instale a nova versão do pacote na sua Organização de origem do Trialforce. Após o upgrade, crie um novo modelo do Trialforce
e use-o como base para sua avaliação.
Posso oferecer meu aplicativo tanto por meio do Trialforce como do
AppExchange?
Claro que sim! O Trialforce e o AppExchange são complementares e se transformam em um mecanismo de distribuição
eficiente quando usados juntos. Talvez você queira anunciar sua página do Trialforce em sua lista do AppExchange e vice-versa.
Em geral, o AppExchange é eficiente para clientes de CRM do Salesforce existentes, enquanto o Trialforce funciona muito
bem com novos clientes.
Qual é a diferença entre as avaliações e o Trialforce?
As avaliações são administradas a partir do AppExchange, enquanto o Trialforce é administrado a partir do seu site. Para obter
mais informações sobre avaliações, consulte Criando uma avaliação no AppExchange.
Fornecendo uma avaliação gratuita do seu aplicativo
Version 29.0 | É possível instalar outro aplicativo em uma
organização de avaliação? | 180
É possível instalar outro aplicativo em uma organização de avaliação?
Sim. A organização mestre Trialforce é uma organização do Salesforce totalmente funcional. O cliente instalará seu aplicativo
e poderá, em seguida, instalar aplicativos adicionais na mesma organização, conforme desejar. Tudo funciona da mesma forma
como em qualquer outra avaliação gratuita do Salesforce.
Capítulo 9
Dando suporte aos seus assinantes
Tópicos:
•
•
Guia Suporte (Support)
Console de suporte do assinante
Os editores de aplicativos são responsáveis pelo suporte aos usuários finais de
todas suas listagens. Quando os clientes entram em contato com o Suporte ao
Cliente do salesforce.com perguntando sobre sua listagem, direcionamos o
usuário às informações de suporte nas guias Sobre e Suporte de sua listagem.
Certifique-se de que suas listagens do AppExchange incluem informações de
suporte.
Se você instalou o License Management App (LMA), é possível efetuar login
na organização de um cliente e fornecer suporte administrativo a ele. Esse
recurso só está disponível para pacotes gerenciados que passaram pela análise
de segurança. Para obter mais informações, consulte Fazendo login em
organizações do assinante.
Dando suporte aos seus assinantes
Version 29.0 | Guia Suporte (Support) | 182
Guia Suporte (Support)
A guia Suporte (Support) oferece aos clientes informações sobre o serviço que você deseja prestar.
Campo
Descrição
Suportado (Supported) ou Não suportado (No
Support)
Indique se seu aplicativo é suportado ou não. Se o seu aplicativo
for suportado, digite as informações de suporte solicitadas. Se
não for, é necessário digitar apenas o contrato de termos e
condições.
Número de telefone
O telefone de suporte da sua empresa. Indique se o telefone
de suporte tem uma cobrança adicional.
Email
O e-mail de suporte da sua empresa. Indique se o e-mail de
suporte tem uma cobrança adicional.
URL do bate-papo on-line (Online Chat URL)
O endereço do bate-papo on-line da sua empresa. Indique se
o suporte on-line tem uma cobrança adicional.
URL da base de conhecimento (Knowledge Base
URL)
O endereço da base de conhecimento da sua empresa. Indique
se o acesso à base de conhecimento tem uma cobrança
adicional.
Suporte disponível 24h, 7 dias por semana
(Support Available 24 hrs × 7 days)
Indica se o suporte está disponível 24 horas por dia, 7 dias por
semana.
Suporte premium disponível (Premium Support
Available)
Indica se você oferece um pacote de suporte premium.
Contrato de prestação de serviço (Service
Level Agreement)
Indica se você oferece um contrato de prestação de serviço.
Detalhes do suporte (Support Details)
Insira informações detalhadas sobre seus recursos de suporte.
Termos e Condições (Terms & Conditions)
Insira os Termos e Condições que seus clientes devem analisar
e aceitar antes de instalar o aplicativo. Se os Termos e
Condições tiverem mais de 32.000 caracteres, insira um acordo
abreviado e informe que o cliente pode acessar os Termos e
Condições completos no seu site.
Console de suporte do assinante
Com o Console de suporte do assinante, é possível acessar facilmente as informações sobre todos os seus assinantes, como qual
Salesforce Edition eles estão usando e se eles estão acima de seus limites. Os assinantes também podem conceder-lhe acesso
de login com a finalidade de resolver problemas diretamente no aplicativo, assim como eles concedem acesso a administradores.
Depois do acesso concedido, você poderá fazer login na organização do assinante e exibir diretamente sua configuração e os
dados para auxiliar na resolução de problemas.
Nota: Este recurso está disponível para parceiros elegíveis do salesforce.com. Para obter mais informações sobre o
Programa de parceiros, incluindo os requisitos de elegibilidade, visite-nos em www.salesforce.com/partners.
Dando suporte aos seus assinantes
Version 29.0 | Exibindo detalhes do assinante | 183
Exibindo detalhes do assinante
A página Visão geral do assinante, acessada clicando no nome da organização a partir da guia Assinantes do LMA, fornece
informações detalhadas sobre cada organização assinante. Isso lhe dá informações sobre como um cliente está usando seu
aplicativo e o ajuda na resolução de problemas.
Em Detalhes da organização:
•
•
•
O nome e as informações de contato estão em Configuração, na página Perfil da empresa > Informações da empresa na
organização do assinante. Isso talvez seja diferente das informações mostradas nos registros de líder, conta e contato de
LMA.
O ID da organização é um ID exclusivo que identifica a organização Salesforce desse cliente.
A instância determina em que datacenter salesforce.com a organização desse cliente reside. Também determina quando o
cliente será atualizado para uma nova versão do Salesforce. Consulte trust.salesforce.com durante o período de release para
entender qual versão do Salesforce o cliente está usando.
A página também inclui estas listas relacionadas.
Limites
Informações sobre o espaço para armazenamento de arquivos, espaço de dados e número de solicitações de API associado
a este cliente, na forma de percentual.
Acesso de login concedido (Login Access Granted)
A lista de usuários que têm acesso de login concedido e a data de expiração do acesso.
Pacotes e licenciamento (Packages and Licensing)
Uma lista de todos os pacotes instalados nesta organização e associados a este LMA. Para cada pacote, ele mostra a versão
do aplicativo que um cliente está usando no momento, o número total de licenças provisionadas para o assinante e o
número que eles usaram. Estas informações devem corresponder ao registro de licença para o assinante em seu LMA.
Solicitando acesso de login
Peça ao usuário para acessar as configurações pessoais e clicar em uma das opções que aparecem, Conceder acesso de login à
conta ou Conceder acesso de login, e conceder acesso. Se o editor não estiver listado nessa página, será devido a um destes
motivos:
•
•
•
•
Um administrador de sistema desativou a capacidade de conceder acesso para aqueles que não são administradores.
O usuário não possui uma licença para o pacote.
O pacote é licenciado para a organização inteira. Apenas administradores com permissão de "Gerenciar usuários" ativada
em seus perfis podem conceder acesso.
A preferência da organização Administradores podem fazer login como qualquer usuário está ativada.
Nota: A menos que a preferência da organização Administradores podem fazer login como qualquer usuário esteja
ativada, o acesso será concedido por um período limitado e o assinante poderá revogar o acesso a qualquer momento.
Quaisquer alterações feitas enquanto você estiver conectado como assinante são registradas na pista de auditoria.
Dando suporte aos seus assinantes
Version 29.0 | Efetuando login às organizações do
assinante | 184
Efetuando login às organizações do assinante
Permissões necessárias ao usuário
Para fazer login nas organizações do assinante:
"Efetuar login à organização do assinante"
Para efetuar login após um usuário lhe conceder acesso:
1. No Aplicativo de gerenciamento de licença (LMA), clique na guia Assinantes.
2. Para encontrar uma organização do assinante rapidamente, digite o nome do assinante ou ID da organização na caixa de
pesquisa e clique em Pesquisar.
3. Clique no nome da organização do assinante.
4. Na página de Detalhes da organização, clique em Login ao lado do nome do usuário. Note que você tem as mesmas
permissões que o usuário que lhe concedeu login.
5. Após concluir a solução de problemas, em Configuração, clique em Retornar à visão geral do assinante para retornar a
sua organização.
Nota: Somente os assinantes que instalaram pelo menos um pacote gerenciado conectado ao LMA aparecerão na
lista.
Práticas recomendadas
•
•
•
Ao acessar uma organização de assinante, você será desconectado de sua LMO (Organização de gerenciamento de licenças).
Você pode configurar um Meu domínio para não ser automaticamente desconectada de sua LMO ao fazer login em uma
organização de assinante. Para configurar um domínio, em Configuração, clique em Gerenciamento de domínio > Meu
domínio.
Seja cuidadoso e permita somente o login de pessoal de suporte e engenharia confiável em uma organização de assinante.
Como este recurso pode incluir acesso total de leitura/gravação aos dados e configurações do cliente, é essencial para sua
reputação preservar a segurança deles.
Controle quem tem acesso, concedendo a permissão de usuário “Efetuar login à organização do assinante” a pessoal de
suporte específico, através de um perfil ou conjunto de permissões.
Solução de problemas em organizações de assinantes
Ao se conectar como um usuário em uma organização de assinante, você pode gerar registros de depuração Apex contendo a
saída de seus pacotes gerenciados. Isso inclui registros que, normalmente, não seriam expostos ao assinante. É possível usar
essas informações de registro para resolver problemas específicos à organização de assinante.
1. Inicie o Console do desenvolvedor em Seu nome > Console do desenvolvedor.
2. Execute a operação e visualize o registro de depuração com sua saída. Se o usuário tiver acesso, configure um Log de
Depuração: em Configuração, clique em Monitoramento > Registros de depuração ou Registros > Registros de depuração.
Observe que os assinantes não serão capazes de ver os registros que você configurar ou gerar, pois eles contêm seu código Apex
explícito. Além disso, quando estiver conectado como usuário, você também pode exibir e editar os dados contidos nas
configurações personalizadas protegidas de seus pacotes gerenciados.
Capítulo 10
Atualizando seu aplicativo
Tópicos:
•
•
•
Criando e carregando correções
Trabalhando com versões de correção
Controle de versões do código Apex
Depois de carregar um aplicativo empacotado, será possível atualizá-lo para
corrigir erros ou introduzir uma nova funcionalidade. Quando você atualiza um
pacote, cria uma nova versão de pacote.
Versão do pacote é um número que identifica o conjunto de componentes
carregados em um pacote. O número da versão tem o formato
majorNumber.minorNumber.patchNumber (por exemplo, 2.1.3). Os
números maiores e menores aumentam para um valor escolhido em toda versão
principal. O patchNumber é gerado e atualizado apenas para a versão do patch.
Pacotes não gerenciados não têm capacidade de upgrade; assim, cada versão de
pacote é simplesmente um grupo de componentes para distribuição. A versão
de um pacote tem mais significado para pacotes gerenciados. Os pacotes podem
exibir comportamento diferente para versões diferentes. Os editores podem usar
as versões do pacote para evoluírem os componentes nos pacotes gerenciados
com suavidade, lançando versões subsequentes do pacote sem romper as
integrações existentes com clientes usando o pacote.
Os números de versão dependem do tipo de versão do pacote, que identifica a
forma como os pacotes são distribuídos. Existem dois tipos:
Versão principal
Uma versão principal denota um pacote Gerenciado - Liberado.
Durantes estas versões, os números principais e secundários de uma versão
de pacote aumentam para qualquer valor escolhido.
Versão da correção
Uma versão de correção serve somente para versões de correção de um
pacote. Durante esses lançamentos, aumenta o número da correção de
uma versão do pacote.
A tabela a seguir mostra uma sequência dos números de versão para uma série
de cargas:
Sequência Tipo
de
upload
Número Notas
da versão
Primeiro Gerenciado 1.0
upload
- Beta
O primeiro upload Gerenciado - Beta.
Segundo Gerenciado 1.0
upload
Lançado
Um upload Gerenciado - Lançado. Observe
que o número da versão não muda.
Atualizando seu aplicativo
Version 29.0 | | 186
Sequência Tipo
de
upload
Número Notas
da versão
Terceiro
upload
Gerenciado 1.1
Lançado
Observe a alteração do número menor da
versão para o carregamento do Gerenciado
- Liberado (Managed - Released). Se você
estiver carregando uma nova versão de
correção, não poderá alterar o número da
correção.
Quarto
upload
Gerenciado 2.0
- Beta
O primeiro upload Gerenciado - Beta para
a versão número 2.0. Observe a atualização
do número da versão maior.
Quinto
upload
Gerenciado 2.0
Lançado
Um upload Gerenciado - Lançado. Observe
que o número da versão não muda.
Quando um assinante existente instala uma nova versão do pacote, só há uma
única instância de cada componente no pacote, mas os componentes podem
emular versões mais antigas. Por exemplo: um assinante pode estar usando um
pacote gerenciado que contenha uma classe do Apex. Se o editor decidir recusar
um método na classe do Apex e liberar uma nova versão do pacote, o assinante
ainda só verá uma única instância da classe do Apex após instalar a nova versão.
No entanto, essa classe do Apex ainda pode emular a versão anterior de qualquer
código que faça referência ao método recusado na versão antiga.
Links relacionados
Trabalhando com versões de correção
Sobre atualizações automáticas
Atualizando seu aplicativo
Version 29.0 | Criando e carregando correções | 187
Criando e carregando correções
Nota: As versões de correção e os upgrades automáticos só estão disponíveis para parceiros ISV do Salesforce.
Para criar uma versão de correção:
1.
2.
3.
4.
Em Configuração, clique em Criar > Pacotes.
Clique no nome do seu pacote gerenciado.
Clique na guia Organização de correções e, em seguida, clique em Novo.
Selecione a versão do pacote para a qual você deseja criar uma correção na lista suspensa Corrigindo a versão principal. O
tipo de lançamento deve ser Gerenciado - Lançado.
5. Digite um Nome de usuário para fazer login na organização de correção.
6. Digite um Endereço de email associado ao seu login.
7. Clique em Salvar (Save).
Nota: Se você perder as informações de login, clique em Redefinir na página de detalhes do pacote em Organização
de desenvolvimento de correções para redefinir o login para sua organização de desenvolvimento de correções.
Depois de receber um email indicando que o Salesforce criou sua organização de desenvolvimento de correção, você pode clicar
em Login e começar a desenvolver a sua versão de correção.
O desenvolvimento em uma organização de desenvolvimento de correção é limitado. Segue uma lista de advertências:
•
•
•
•
•
•
•
•
Novos componentes do pacote não podem ser adicionados.
Componentes existentes do pacote não podem ser excluídos.
Os controles de acesso da API e Apex dinâmicos não podem ser alterados para o pacote.
Nenhuma depreciação de nenhum código do Apex.
Nenhum relacionamento novo de classe do Apex, como extends, pode ser adicionado.
Nenhum modificador novo de acesso do Apex, como virtual ou global, pode ser adicionado.
Nenhum serviço da Web novo pode ser adicionado.
Nenhuma dependência de novo recurso pode ser adicionada.
Quando concluir o desenvolvimento da correção em sua organização de desenvolvimento de correções:
1.
2.
3.
4.
5.
Clique em Criar > Pacotes e selecione o nome do pacote.
Na página Pacote de upload, clique em Upload.
Insira um Nome de versão. Como uma prática recomendada, é útil ter uma descrição curta e a data.
Observe que o númeroCorreção do Número da versão aumentou.
Para pacotes gerenciados, selecione um Status do pacote:
•
•
Escolha Gerenciado - Lançado para carregar uma versão atualizável. Após o carregamento, alguns atributos de
componentes do Salesforce serão bloqueados.
Escolha Gerenciado - Beta se desejar carregar uma versão do pacote para uma amostragem pequena de seu público com
objetivos de avaliação. Ainda será possível alterar os componentes e carregar versões beta adicionais.
Nota: Pacotes beta só podem ser instalados na Developer Edition ou em organizações do Sandbox, e assim
não podem ser passados para organizações de consumidores.
Atualizando seu aplicativo
Version 29.0 | Trabalhando com versões de correção | 188
6. Altere a Descrição, se necessário.
7. Como opção, insira e confirme a senha para compartilhar o pacote de modo privado com alguém que tenha a senha. Não
insira uma senha se você quiser tornar o pacote disponível a qualquer pessoa no AppExchange e compartilhar o seu pacote
publicamente.
8. O Salesforce seleciona automaticamente os requisitos que encontra. Além disso, selecione qualquer outro componente
necessário das seções Requisitos do pacote e Requisitos do objeto para notificar instaladores sobre requisitos
para esse pacote.
9. Clique em Carregar.
Para distribuir a correção, compartilhe o link de upload ou programe um upgrade automático.
Trabalhando com versões de correção
Nota: As versões de correção e os upgrades automáticos só estão disponíveis para parceiros ISV do Salesforce.
Uma versão de correção permite que um desenvolvedor altere a funcionalidade de componentes existentes em um pacote
gerenciado, assegurando que inscritos não vejam alterações visíveis no pacote. As correções devem ser consideradas como
atualizações menos significativas para um pacote
variados erros.
Gerenciado - Liberado (Managed - Released) e para a correção dos mais
As versões de correção podem ser criadas somente para versões importantes. Os assinantes podem receber atualizações de
correção exatamente da mesma forma que qualquer outra versão de pacote. Entretanto, também é possível distribuir uma
correção usando as atualizações automáticas.
Quando uma correção é criada, o patchNumber em um Número de versão (Version Number) é acrescido em uma
unidade. Por exemplo, suponha que você esteja liberando um pacote com o número de versão 2.0. Quando você liberar uma
correção, o número será alterado para 2.0.1. Este valor não pode ser alterado manualmente.
Organizações de desenvolvimento de correções
Todas as correções são desenvolvidas em uma organização de desenvolvimento de correções, que é a organização em que as versões
de correção são desenvolvidas, mantidas e carregadas. Para começar a desenvolver uma correção, você precisa criar uma
organização de desenvolvimento de correção. As organizações de desenvolvimento de correção são necessárias para permitir
que os desenvolvedores façam as alterações em componentes existentes sem causar incompatibilidade entre as instalações de
assinantes existentes.
Uma organização de desenvolvimento de correção pode carregar um número ilimitado de correções. Pode existir somente uma
organização de desenvolvimento de correção para cada versão importante de seu pacote. Portanto, a organização de
desenvolvimento de correções para o pacote com número de versão de 4.2 pode trabalhar somente em correções com números
como 4.2.1, 4.2.2, 4.2.3 e assim por diante, mas não em números de versão 4.1 ou 4.3.
Integrando o desenvolvimento de correção
Se você está desenvolvendo seus pacotes usando o Force.com IDE, poderá se beneficiar do sistema de controle de revisão no
Eclipse para comparar e mesclar diferentes ramos do projeto.
O Salesforce recomenda o uso do plugin do Subversion. Para instalar o Subversion do Force.com IDE:
1. Acesse http://subclipse.tigris.org a fim de obter a URL mais recente do site de atualizações do Eclipse que seja
compatível com a sua versão do Eclipse.
2. No Force.com IDE, navegue até Ajuda (Help) > Atualizações de software (Software Updates) e selecione a guia Software
disponível (Available Software). Clique em Adicionar site (Add Site) e insira a URL da etapa anterior.
3. Selecione um novo site e clique em Finalizar (Finish) para procurar pela versão mais recente do plugin do Subclipse.
Selecione o plugin do Subclipse necessário na lista que retorna do site.
Atualizando seu aplicativo
Version 29.0 | Controle de versões do código Apex | 189
4. Clique em Avançar (Next), aceitar os termos e clicar em Avançar (Next) novamente.
5. Clique em Finalizar (Finish) para começar a instalação e em Instalar todos (Install All) quando for solicitado. Você
precisará reiniciar o Eclipse depois de concluída a instalação.
Agora, seu ambiente Force.com IDE está conectado ao Subclipse. A próxima etapa é conectar seu repositório ao ambiente:
1. Abra a perspectiva Explorando repositórios SVN (SVN Repository Exploring) no IDE, que abrirá a
visualização de repositórios do SVN.
2. Use o ícone Adicionar repositório do SVN (Add SVN Repository) bem à direita para configurar o Subclipse para acessar
o repositório local. A URL para acessar seu repositório localmente é file:///svn_repos.
O repositório do Subversion rastreia as alterações feitas a projetos armazenados. Dado que trabalhar com correções envolve
dois ramos diferentes, uma organização de desenvolvimento principal e uma organização de desenvolvimento de correção, é
necessário combinar as alterações para uma versão futura. Para exibir as versões diferentes de seu pacote:
1. Abra a perspectiva Project Explorer (Project Explorer).
2. Navegue até o arquivo em seu projeto de desenvolvimento que você deseja comparar e use o menu de contexto para selecionar
Comparar com... (Compare With...) > Ramo/marca... (Branch/Tag...).
3. No campo Comparar com (Compare to), selecione a versão da correção do arquivo.
4. Clique em Gráfico (Graphical) e, em seguida, clique em OK.
As alterações entre o arquivo da organização de desenvolvimento e o arquivo armazenado na organização de desenvolvimento
de correção aparecem destacados. É possível usar esta exibição para mesclar todas as diferenças entre os dois projetos.
Para obter mais informações sobre como usar o Force.com IDE, consulte o Platform Developer's Guide (Guia do desenvolvedor
de plataforma).
Controle de versões do código Apex
Os desenvolvedores de pacote podem usar lógica condicional nas classes de Apex e acionadores para exibir diferentes
comportamentos para diferentes versões. Isso permite que o desenvolvedor do pacote continue oferecendo suporte ao
comportamento existente nas classes e acionadores em versões anteriores do pacote enquanto continuam evoluindo o código.
Quando os assinantes instalam várias versões do pacote e cria códigos que fazem referência a classes ou acionadores doApex
no pacote, eles precisam selecionar a versão de referência. Dentro do código Apex que está sendo referenciado em seu pacote,
é possível executar condicionalmente caminhos de código diferentes com base na definição de versão da chamada do código
Apex que está fazendo a referência. A configuração da versão do pacote do código de chamada pode ser determinada dentro
do código do pacote chamando-se o método System.requestVersion. Dessa forma, os desenvolvedores do pacote podem
determinar o contexto da solicitação e especificar comportamentos distintos para versões diferentes do pacote.
O exemplo a seguir mostra comportamento diferente em um acionador para versões de pacote diferentes:
trigger oppValidation on Opportunity (before insert, before update) {
for (Opportunity o : Trigger.new){
// Add a new validation to the package
// Applies to versions of the managed package greater than 1.0
if (System.requestVersion().compareTo(new Version(1,0)) > 0) {
if (o.Probability >= 50 && o.Description == null) {
o.addError('All deals over 50% require a description');
}
}
// Validation applies to all versions of the managed package.
if (o.IsWon == true && o.LeadSource == null) {
o.addError('A lead source must be provided for all Closed Won deals');
}
}
}
Atualizando seu aplicativo
Version 29.0 | Efeitos da depreciação do Apex para os
assinantes | 190
Para comparar as diferentes versões de suas classes Apex, clique na guia Definição de classe (Class Definition) quando
visualizar os detalhes da classe.
Para obter mais informações sobre o método System.requestVersion, consulte o Force.com Apex Code Developer's Guide
(Guia do desenvolvedor de código do Apex Force.com).
Efeitos da depreciação do Apex para os assinantes
Esta sessão mostra como a depreciação de um método do Apex afeta os assinantes que instalam o pacote gerenciado. A tabela
mostra uma sequência típica de ações por um desenvolvedor de pacote na primeira coluna e ações realizadas pelo assinante na
segunda coluna. Cada linha na tabela denota um desenvolvedor de pacote ou uma ação do assinante.
Ação do desenvolvedor do pacote
Ação do assinante
Notas
Instale a versão 1.0 do pacote.
O Número da versão
(Version Number) do
pacote é 1.0. O Número da
Crie uma classe global do Apex,
PackageDevClass, contendo um método
global m1.
Carregue como uma versão Gerenciado Liberado (Managed - Released) 1.0 de um
pacote que contém PackageDevClass.
primeira versão
instalada (First
Installed Version
Number) é 1.0.
Crie uma classe Apex, SubscriberClass,
que referencia m1 em PackageDevClass.
Deprecie m1 e crie um novo método, m2.
Carregue como uma versão Gerenciada Liberada (Managed - Released) 2.0 do pacote.
Instale a versão 2.0 do pacote.
O Número da versão
(Version Number) do
pacote é 2.0. O Número da
primeira versão
instalada (First
Installed Version
Number) ainda é 1.0.
SubscriberClass ainda faz
referência a versão 1.0 do
pacote e continua a funcionar,
como antes.
Edite a versão para SubscriberClass a
fim de referenciar a versão 2.0 do pacote.
Salvar a classe. Observe uma mensagem de
erro indicando que m1 não pode ser
referenciado na versão 2.0 do pacote.
Atualizando seu aplicativo
Ação do desenvolvedor do pacote
Version 29.0 | Efeitos da depreciação do Apex para os
assinantes | 191
Ação do assinante
Altere SubscriberClass para referenciar
m2 em vez de m1. Salvar a classe com êxito.
Notas
Capítulo 11
Atualização automática
Tópicos:
•
•
•
•
•
•
•
•
Sobre atualizações automáticas
Práticas recomendadas para a
atualização automática
Atribuindo acesso a novos
componentes e campos
Exemplo de script de pós-instalação
para uma atualização automática
Conheça as limitações da atualização
automática
Agendando upgrades automáticos
Exibindo detalhes do upgrade
automático
Exibindo o histórico de atualizações
de uma organização
Uma atualização automática é um método de atualização para que seus clientes
tenham acesso à versão mais nova de seu pacote de forma automática. Esse
recurso funciona somente com pacotes gerenciados e pode ser usado para garantir
que todos os seus clientes estejam na mesma versão ou na versão mais recente
do seu pacote. É possível atualizar automaticamente qualquer número de
organizações que tenha instalado seu pacote gerenciado.
Um assinante de pacote não precisa fazer nada para receber a atualização
automática. A única indicação que um assinante recebe depois de uma
atualização automática bem-sucedida é de que o Número da versão
(Version Number) do pacote na página Detalhes do pacote (Package Details)
tem um valor mais alto. Todas as atualizações que falharem devem ser resolvidas
pelo desenvolvedor que iniciou a atualização automática.
As atualizações automáticas minimizam os riscos potenciais e os custos de
suporte devido a que vários assinantes possuam versões diferentes do seu
aplicativo. Também é possível automatizar muitas etapas de configuração
pós-atualização, simplificando ainda mais o processo de atualização para seus
clientes.
Nota: Este recurso está disponível para parceiros elegíveis do
salesforce.com. Para obter mais informações sobre o Programa de
parceiros, incluindo os requisitos de elegibilidade, visite-nos em
www.salesforce.com/partners.
Atualização automática
Version 29.0 | Sobre atualizações automáticas | 193
Sobre atualizações automáticas
É possível atualizar automaticamente tanto uma correção quanto uma versão importante. Uma correção contém somente
correção de erros e melhorias pouco importantes. Em contrapartida, uma atualização importante inclui melhorias significativas
e novos recursos que adicionam novos componentes. Em alto nível, fazer atualizações automáticas envolve as seguintes etapas:
•
•
•
•
•
Atualizar seu pacote instalado um uma organização do cliente de uma versão X para a versão Y.
Selecionar uma, muitas ou todas as organizações de cliente para atualizar e selecionar uma versão específica para a qual será
realizada a atualização.
Programar a atualização para começar em data e hora determinadas.
Exibir o andamento das atualizações, interromper atualizações em andamento ou visualizar o resultado de uma atualização
automática.
Junto com a atualização automática, é possível usar um script de pós-instalação do Apex para automatizar muitas das
configurações pós-atualização que seus clientes possam ter realizado manualmente no passado.
Cuidado:
Quando você faz uma atualização automática, está fazendo alterações em uma organização do assinante sem seu
consentimento explícito. Dessa forma, é importante planejar com antecedência e usar a devida cautela.
Atualizar automaticamente uma versão importante implica um alto risco, pois ela pode desestruturar a funcionalidade existente
na organização do assinante. Isto ocorre porque os novos componentes no pacote atualizado podem não estar disponíveis para
usuários do pacote existente, ou podem sobrescrever personalizações dos usuários. Como desenvolvedor dos aplicativos, é sua
responsabilidade proteger os usuários de qualquer impacto adverso devido à atualização. Recomendamos que você considere
todas as consequências possíveis da atualização e tome as medidas adequadas para evitar quaisquer problemas.
Quando fizer uma atualização automática de uma versão importante, recomendamos a divisão das alterações em seu pacote
em duas categorias:
1. Melhorias nos recursos existentes às quais os usuários já têm acesso — Use um script de pós-instalação do Apex para atribuir
automaticamente os componentes relevantes aos usuários existentes. Isso assegura que todos os usuários atuais do pacote
possam continuar utilizando-o sem ação explícita por parte dos administradores.
2. Novos recursos que você está introduzindo pela primeira vez — Não use um script de pós-instalação do Apex para atribuir
automaticamente os componentes. Isso garante que seus assinantes tenham a oportunidade de decidir se e quando usar os
novos recursos.
Aqui se encontram algumas orientações adicionais a serem consideradas ao planejar uma atualização automática.
•
•
•
•
•
Evite alterações nas regras de validação, nos campos de fórmula e nos erros emitidos pelos acionadores Apex, pois elas
podem causar um impacto negativo na integração dos assinantes.
Não faça mudanças visíveis a um pacote em uma correção. Isso porque, além da alteração no número da versão do pacote,
os assinantes não serão notificados quanto aos upgrades automáticos.
Teste seu pacote atualizado em vários ambientes, replicando todos os recursos relevantes das organizações de seus clientes,
incluindo edições, personalizações, outros pacotes instalados e conjuntos de permissão.
Agende os upgrades automáticos para horários fora do pico dos seus clientes e fora das janelas de versão principal do
salesforce.com para minimizar possíveis impactos aos assinantes.
Notifique seus assinantes antecipadamente sobre o horário da atualização, suas consequências potenciais e todas as medidas
que eles precisam tomar.
Atualização automática
Version 29.0 | Práticas recomendadas para a atualização
automática | 194
Práticas recomendadas para a atualização automática
A atualização automática é um dos recursos mais importantes que oferecemos à nossa comunidade de parceiros. Você tem a
capacidade de atualizar os seus clientes, mas é imperativo que você use esse privilégio com cuidado. Uma atualização automática
sem o planejamento e preparação adequados pode resultar em problemas significativos de satisfação do cliente. Por isso,
recomendamos que você siga as práticas recomendadas que se encontram neste documento.
Planejar, testar e comunicar
•
•
•
•
•
•
Comunicar, comunicar e comunicar! Seus clientes podem até desconhecer o recurso de atualização automática. Alguns
podem ter reservas quanto a atualizações feitas automaticamente em suas organizações. Explique a eles como o modelo de
computação em nuvem funciona, como eles podem se beneficiar de atualizações contínuas, como você está usando as
práticas recomendadas para garantir uma boa atualização e qual é o seu processo e compromisso junto a eles em relação ao
momento e ao conteúdo de uma atualização. Comunicação oportuna e completa é fundamental para o sucesso deste
programa.
Compartilhe um cronograma de atualização com os seus clientes para que eles saibam quando você vai atualizar e com qual
frequência.
Planeje quando você deseja fazer atualizações automáticas nas organizações de seus clientes. Tenha em mente que a maioria
dos clientes não deseja mudanças próximas ao final do mês, ao final do trimestre nem ao final do ano ou ciclo de auditoria.
Seus clientes possuem outros períodos críticos em que não desejem qualquer mudança da sua organização? Por exemplo,
pode haver determinados momentos em que eles não têm pessoal disponível para verificar as alterações ou executar todas
as etapas de pós-instalação necessárias.
Agende as atualizações automáticas fora dos horários de pico dos seus clientes, como final de tarde e noite. Já pensou nos
problemas de fuso horário? Você tem clientes fora dos Estados Unidos que possuem diferentes horários fora de pico? É
possível agendar atualizações automáticas para qualquer número determinado de organizações de clientes de cada vez.
Pense em agrupar as organizações por fuso horário, se os horários comerciais variarem muito em toda a sua base de clientes.
Não agende atualizações automáticas perto de janelas de manutenção planejadas da Salesforce. Na maioria dos casos, talvez
seja melhor esperar entre 3 e 4 semanas após o lançamento de uma versão importante da Salesforce antes de fazer grandes
atualizações automáticas.
Teste, teste e teste! Como você está realizando automaticamente mudanças na organização, em vez de o cliente fazer essas
mudanças, há uma maior responsabilidade para garantir que a nova versão do seu aplicativo funcione bem em todas as
configurações do cliente.
Faça escalonamento da atualização automática
•
•
•
•
Não faça atualizações automáticas para todos os clientes de uma vez. É importante garantir que você tenha recursos
suficientes para lidar com casos de suporte se houver problemas. Além disso, é importante que você descubra possíveis
problemas antes que toda a sua base de clientes seja afetada.
Atualize automaticamente suas próprias organizações de teste para confirmar se ela acontece sem problemas. Entre na sua
organização de teste após a atualização automática e teste para ver se tudo funciona como esperado.
Quando aplicável, atualize automaticamente as organizações de sandbox de seus clientes em primeiro lugar antes de atualizar
automaticamente suas organizações de produção. Dê-lhes uma semana ou mais para testar, validar e corrigir no ambiente
de sandbox antes de atualizar automaticamente suas organizações de produção.
Faça primeiramente atualizações automáticas em lotes pequenos da organização de produção do cliente. Por exemplo, se
você tiver 1.000 clientes, faça atualizações automáticas para 50, 100 clientes de uma vez, pelo menos das primeiras vezes.
Depois de ter confiança nos resultados, será possível atualizar os clientes em lotes maiores.
Foco na confiança do cliente
•
Você é responsável por assegurar que as organizações dos seus clientes não sejam prejudicadas por sua atualização. Evite
fazer alterações no pacote, como mudanças nas regras de validação ou campos de fórmulas, que possam romper integrações
externas feitas pelo cliente. Se, por alguma razão você fizer, teste e comunique com muita antecipação. Tenha em mente
Atualização automática
•
•
•
Version 29.0 | Atribuindo acesso a novos componentes e
campos | 195
que, ao fazer uma atualização automática que tenha erros, cabe a possibilidade de afetar os dados do cliente, não apenas os
metadados.
Escreva um teste Apex na instalação para fazer testes básicos de funcionalidade para confirmar se o aplicativo atualizado
funciona como o esperado.
Se você está aprimorando um recurso existente, use um script de pós-instalação para atribuir automaticamente novos
componentes aos usuários existentes, utilizando conjuntos de permissões.
Se você está adicionando um novo recurso, não atribua automaticamente o recurso para usuários existentes. Trabalhe em
conjunto com os administradores da organização do cliente para que eles possam determinar quem deve ter acesso ao novo
recurso e qual será agendamento da implantação.
Atribuindo acesso a novos componentes e campos
Se a nova versão de seu pacote inclui novos componentes ou novos campos em componentes existentes, os usuários existentes
do pacote não terão acesso automaticamente aos novos componentes nem aos campos após a atualização. Isso pode limitar o
uso dos novos recursos que você adicionou ou impedir que recursos mais antigos funcionem adequadamente. Por padrão, todos
os novos componentes em seu pacote são atribuídos apenas aos administradores. Você tem duas opções para garantir que todos
os usuários do pacote tenham acesso aos novos componentes e campos.
Notifique os administradores para que atribuam as permissões apropriadas a todos os usuários do pacote
Nós recomendamos esta ação para todos os novos recursos que estão sendo introduzidos. Isso garante que os
administradores tenham a opção de decidir se os novos recursos devem ser disponibilizados e quando fazer isso.
Atribua os novos componentes automaticamente a usuários existente usando um script de pós-instalação do Apex
Recomendamos estes aprimoramentos para recursos existentes. Isso assegura que todos os usuários atuais do pacote
possam continuar utilizando-o sem ação explícita por parte dos administradores.
Para atribuir acesso a novos componentes automaticamente, é possível usar a seguinte estratégia.
1. Crie novos conjuntos de permissões que definam as configurações de acesso padrão para todos os novos componentes e
campos.
2. Inclua os novos conjuntos de permissões na nova versão do pacote.
3. Escreva um script de pós-instalação do Apex para ser executado automaticamente na organização do assinante depois que
o pacote for atualizado. O script deve executar estas tarefas.
a. Para cada novo conjunto de permissões, escolha um componente existente cuja atribuição de usuário precisa ser copiada.
b. Localize todos os perfis que podem acessar aquele componente.
c. Atribua os novos conjuntos de permissões a cada usuário com aqueles perfis.
Nota: O conjunto de permissões padrão para todos os perfis padrão não são editáveis. Por isso, o script de pós-instalação
do Apex acionará uma exceção se ele tentar atualizar um desses conjuntos de permissões. É importante criar um novo
conjunto de permissões para atribuir acesso aos novos componentes em seu pacote.
Exemplo de script de pós-instalação para uma atualização
automática
Esta seção mostra um exemplo de script de pós-instalação que automatiza a atribuição de novos componentes para os usuários
existentes de um pacote. Para obter informações sobre como escrever um script de pós-instalação do Apex, consulte Executando
o Apex em instalação/atualização de pacotes na página 86.
Atualização automática
Version 29.0 | Exemplo de script de pós-instalação para uma
atualização automática | 196
O script de exemplo abrange um cenário em que um ISV está atualizando uma nova versão do pacote que contém novas páginas
Visualforce e um novo conjunto de permissões que concede acesso a essas páginas aos assinantes. Após a atualização, os usuários
existentes do pacote não terão acesso às novas páginas por padrão. O script de pós-instalação resolve este problema, identificando
quais usuários têm acesso às páginas Visualforce na versão antiga do pacote e concedendo a estes o acesso às novas páginas. O
script realiza as seguintes ações:
Obtém a identificação das páginas do Visualforce na versão antiga do pacote
Obtém os conjuntos de permissões que têm acesso a essas páginas
Obtém a lista de perfis associados a esses conjuntos de permissões
Obtém a lista de usuários que têm esses perfis atribuídos
Atribui a permissão definida no novo pacote aos usuários
•
•
•
•
•
global class PostInstallClass implements InstallHandler
global void onInstall(InstallContext context) {
{
//Get the Id of the Visualforce pages
List<ApexPage> pagesList =[SELECT Id FROM ApexPage WHERE NamespacePrefix =
'TestPackage' AND Name = 'vfpage1'];
//Get the permission sets that have access to those pages
List<SetupEntityAccess> setupEntityAccessList = [SELECT Id,
ParentId, SetupEntityId, SetupEntityType FROM SetupEntityAccess
where SetupEntityId IN:pagesList];
Set<ID > PermissionSetList = new Set<ID> ();
for(SetupEntityAccess sea : setupEntityAccessList){
PermissionSetList.add(sea.ParentId)};
List<PermissionSet> PermissionSetWithProfileIdList =
[SELECT id,Name,IsOwnedByProfile,Profile.Name,
ProfileId FROM PermissionSet where IsOwnedByProfile = true
AND Id IN :PermissionSetList ];
//Get the list of profiles associated with those permission sets
Set<ID> ProfileList = new
Set<ID> ();
for(PermissionSet per : PermissionSetWithProfileIdList){
ProfileList.add(per.ProfileId);
}
//Get the list of users who have those profiles assigned
List<User> UserList =[SELECT id FROM User where ProfileId IN :ProfileList ];
//Assign the permission set in the new package to those users
List<PermissionSet> PermissionSetToAssignList = [SELECT id,Name
FROM PermissionSet where Name='TestPermSet' AND
NamespacePrefix = 'TestPackage'];
PermissionSet PermissionSetToAssign = PermissionSetToAssignList[0];
Set<ID> UsersSet = new Set<ID> ();
for(User us : UserList){
PermissionSetAssignment psa= new PermissionSetAssignment();
psa.PermissionSetId = PermissionSetToAssign.id;
psa.AssigneeId = us.id;
UsersSet.add(us.id);
}
}
}
// Test for the post install class
@isTest
private class PostInstallClassTest {
@isTest
public static void test() {
PostInstallClass myClass = new PostInstallClass();
Test.testInstall(myClass, null);
Atualização automática
Version 29.0 | Conheça as limitações da atualização
automática | 197
}
}
Conheça as limitações da atualização automática
A seguir, apresentamos limitações conhecidas ao fazer uma atualização automática.
•
•
As configurações de visibilidade da guia não são transportadas por conjuntos de permissões. Portanto, se sua atualização
demandar alterações nas configurações da guia, você não poderá implementar as mudanças automaticamente usando um
script de pós-instalação. Em vez disso, você precisará notificar os administradores para fazer a mudança manualmente.
A atualização automática falha se o pacote contiver marcação do Visualforce que tente acessar a entidade do OpenActivity.
Por exemplo, o seguinte código no pacote fará com que a atualização automática falhe.
<apex:outputLabel for="taskDate"
value="{!$ObjectType.OpenActivity.fields.ActivityDate.label}" />
Como solução, evite usar a referência de ObjectType global para obter o rótulo do OpenActivity.ActivityDate
especificando o rótulo da seguinte maneira:
<apex:outputLabel for="taskDate" value="Date" />
Agendando upgrades automáticos
Permissões necessárias ao usuário
Para fazer um upgrade automático:
“Carregar pacotes do AppExchange”
Nota: As versões de correção e os upgrades automáticos só estão disponíveis para parceiros ISV do Salesforce.
Depois de criar uma versão de correção na Ajuda do Salesforce do seu pacote, você poderá implantá-la automaticamente nos
clientes usando um upgrade automático.
Dica: O Salesforce.com recomenda fortemente a seguinte sequência para fazer upgrades automáticos de pacote:
1. Faça o upgrade automático nas suas organizações para poder executar testes e corrigir quaisquer bugs antes de
fazer o upgrade nos assinantes.
2. Quando estiver pronto e depois de conversar com seus clientes sobre seus processos de gerenciamento de mudanças,
faça o upgrade automático em um número pequeno de organizações do cliente. Tente primeiro nas organizações
com sandbox, se possível.
3. Quando estiver confortável com os resultados iniciais, faça o upgrade em uma base maior de clientes com base
nos seus acordos com cada cliente.
4. Descontinue a versão antiga do seu pacote na organização principal de desenvolvimento. Substitua a versão no
AppExchange, se necessário, e atualize a instalação do Trialforce.
5. Se o seu upgrade for uma correção, após distribuir o upgrade com sucesso às organizações do assinante, reintegre
essas alterações na sua organização principal de desenvolvimento. Para obter mais informações sobre como combinar
correções na organização de desenvolvimento principal, consulte Trabalhando com versões de correção na página
188.
Atualização automática
Version 29.0 | Exibindo detalhes do upgrade automático | 198
Para obter mais informações, consulte Melhores práticas para upgrades automáticos e versões de correção na Ajuda
do Salesforce.
Para agendar uma atualização automática:
1. Faça login na organização principal de desenvolvimento.
2. Em Configuração, clique em Criar > Pacotes e, depois, no nome do pacote gerenciado que terá a atualização automatizada.
Na página de detalhes do pacote, clique na guia Versões e, em seguida clique em Upgrades automáticos.
3. Clique em Agendar upgrades automáticos.
4. Selecione uma versão de pacote para fazer upgrade na lista suspensa Versão de correção.
Nota: As versões beta não são elegíveis para automatização.
5. Digite uma Data de início agendada indicando quando um upgrade automático deve ser iniciado.
6. Na seção Selecionar organizações de destino, selecione as organizações que devem receber a atualização automática. Se
uma organização já recebeu um upgrade automático para a versão de pacote selecionada, ela não aparecerá nesta lista. Você
pode selecionar as organizações:
•
•
•
•
Inserindo um termo que realizará a filtragem baseando-se no nome ou ID de uma organização. Os nomes podem ser
correspondentes por meio de uma string parcial, mas os IDs devem ser uma correspondência exata.
Escolhendo entre organizações de produção e sandbox pela lista suspensa Organizações.
Selecionando organizações que já tenham instalada determinada versão.
Clicando nas organizações individuais, ou nas caixas de seleção Selecionar tudo e Desmarcar tudo.
Esta seção lista as informações sobre a organização (em ordem alfabética):
Campo
Descrição
Versão atual
A versão do pacote atual que uma organização instalou.
ID da organização
O ID que identifica exclusivamente a organização para o
salesforce.com.
Nome da organização
O nome da organização. Clicar nesse nome exibe o histórico
de atualização para a organização.
Contato principal
O nome do contato que instalou o pacote.
7. Clique em Agendar.
Enquanto um upgrade automático está em andamento, você pode clicar em Anular para pará-lo.
Na página anterior de upgrades automáticos, a tabela listou atualizações automáticas agendadas para o pacote.
Exibindo detalhes do upgrade automático
Permissões necessárias ao usuário
Para visualizar os detalhes do upgrade automático:
“Carregar pacotes do AppExchange”
Atualização automática
Version 29.0 | Exibindo detalhes do upgrade automático | 199
Nota: As versões de correção e os upgrades automáticos só estão disponíveis para parceiros ISV do Salesforce.
Para obter informações sobre uma atualização automática específica enviada pela sua organização, em Configuração, clique
em Criar > Pacotes, depois, no nome do pacote que deseja exibir e em Upgrades automáticos. Ao clicar no nome de um
Destino você é levado para a página Detalhes da atualização automática, que têm informações sobre o trabalho de automatização
e sobre cada organização automatizada.
A seção Detalhes sobre o trabalho tem as seguintes informações sobre a atualização automática geral (em ordem alfabética):
Campo
Descrição
Data de término
A data e hora de conclusão de uma atualização automática.
Ignorar falhas de teste do Apex
Se as falhas de teste do Apex, que podem fazer com que o
aplicativo instalado não funcione adequadamente, foram
ignoradas.
Agendado por
O nome do usuário que iniciou o upgrade automático.
Data de início
A data e a hora de início agendadas da atualização automática.
Status
O status da atualização automática, que pode ser agendada,
em andamento, concluída, abortada ou concluída com falhas.
Versão
O número da versão do pacote que foi automatizado.
Na seção Organizações, você poderá obter uma lista de todas as organizações que receberam uma atualização automática. Você
pode filtrar organizações usando a caixa de pesquisa e inserindo um termo que realizará a filtragem baseando-se no nome ou
ID de uma organização. Os nomes podem ser correspondentes por meio de uma string parcial, mas os IDs devem ser uma
correspondência exata. Pela lista suspensa, você pode também filtrar com base no status do upgrade automático.
A lista contém as informações específicas a seguir para cada organização (em ordem alfabética):
Campo
Descrição
Duração
O período de tempo de uma atualização automática.
Tipo de falha
Lista o tipo de falha ocorrida (caso alguma tenha ocorrido).
Se a atualização automática falhou, uma explicação sobre as
possibilidades será fornecida na seção recolhível. Se a
atualização automática falhar, clique em Tentar novamente
para uma nova tentativa.
ID da organização
O ID que identifica exclusivamente a organização para o
salesforce.com.
Nome da organização
O nome da organização. Clicar nesse nome exibe o histórico
de atualização para a organização.
Início
A data e a hora de início agendadas da atualização automática.
Status
O status da atualização automática, que pode ser agendada,
em andamento, concluída, abortada ou concluída com falhas.
Atualização automática
Version 29.0 | Exibindo o histórico de atualizações de uma
organização | 200
Exibindo o histórico de atualizações de uma organização
Permissões necessárias ao usuário
Para exibir o histórico de atualização automática:
“Carregar pacotes do AppExchange”
Nota: As versões de correção e os upgrades automáticos só estão disponíveis para parceiros ISV do Salesforce.
Para obter informações sobre uma atualização automática específica, em Configuração, clique em Criar > Pacotes, depois, no
nome do pacote que deseja exibir e no nome de um Destino. Clicar em uma organização na lista de destino fornece os
seguintes detalhes (em ordem alfabética):
Campo
Descrição
Versão atual
A versão do pacote atual que uma organização instalou.
ID da organização
O ID que identifica exclusivamente a organização para o
salesforce.com.
Nome da organização
O nome da organização.
Contato principal
O nome do contato que instalou o pacote.
Email do contato principal
O endereço de email do editor do pacote.
Status
O status da atualização automática, que pode ser agendada,
em andamento, concluída, abortada ou concluída com falhas.
Os histórico exibe as informações a seguir (em ordem alfabética):
Campo
Descrição
Ação
Ao clicar em Exibir detalhes você retorna para os detalhes do
trabalho para esta atualização.
Data de início
A data e a hora de início agendadas da atualização automática.
Status
O status da atualização automática, que pode ser agendada,
em andamento, concluída, abortada ou concluída com falhas.
Versão
O número da versão do pacote que foi automatizado.
Apêndices
Apêndice
A
Desenvolvendo e distribuindo pacotes não gerenciados
Os pacotes não gerenciados são usados para distribuir projetos de código aberto para desenvolvedores, ou como um fornecimento
único dos aplicativos que necessitam de personalização após a instalação. Você nunca deve usar pacotes não gerenciados por
sandbox para a migração de produção. Em vez disso, use o Force.com IDE ou a Ferramenta de migração do Force.com. Se
você usar a Enterprise, Unlimited ou Performance Edition, consulte conjuntos de alterações na Ajuda do Salesforce.
Links relacionados
Componentes disponíveis em pacotes não gerenciados
Componentes disponíveis em pacotes não gerenciados
Nem todos os componentes podem ser empacotados para distribuição. A tabela a seguir lista os componentes que estão
disponíveis em um pacote não gerenciado, como o componente é incluído no pacote e se o componente é compatível com a
renomeação automática.
Inclusão explícita ou implícita no pacote
Os componentes podem ser adicionados explicita ou implicitamente. Os componentes explícitos devem ser incluídos
diretamente no pacote, enquanto os componentes implícitos são adicionados automaticamente. Por exemplo, se você
criar um campo personalizado em um objeto padrão, você deverá adicionar explicitamente o campo personalizado de seu
pacote. Entretanto, se você criar um objeto personalizado e adicionar um campo a ele, o campo é implicitamente adicionado
ao pacote quando você adicionar o objeto personalizado.
• Explicitamente: O componente deve ser adicionado manualmente ao pacote.
• Implicitamente: O componente é adicionado automaticamente ao pacote quando outro componente dependente,
normalmente um objeto personalizado, é adicionado.
Renomeação automática
O Salesforce pode resolver conflitos de nomeação automaticamente na instalação.
• Não: Se ocorrer um conflito de nomeação, a instalação é bloqueada.
• Sim: Se ocorrer um conflito de nomeação, o Salesforce pode opcionalmente alterar o nome do componente que está
sendo instalado.
Desenvolvendo e distribuindo pacotes não gerenciados
Version 29.0 | Componentes disponíveis em pacotes não
gerenciados | 202
Componente
Inclusão explícita ou implícita no
pacote
Renomeação automática
Instantâneo analítico
Inclusão explícita
Sim
Classe do Apex
Inclusão explícita
Não
Motivo de compartilhamento do Apex Inclusão implícita
Não
Em uma extensão: Inclusão explícita
Recálculo do compartilhamento do
Apex
Inclusão implícita
Não
Acionador do Apex
Em um objeto padrão ou de extensão:
Inclusão explícita
Não
Em um objeto no pacote: Inclusão
implícita
Aplicativo
Inclusão explícita
Não
Botão ou link personalizado
Em um objeto padrão: Inclusão explícita Não
Em um objeto personalizado: Inclusão
implícita
Campo personalizado
Em um objeto padrão: Inclusão explícita Não
Em um objeto personalizado: Inclusão
implícita
Rótulo personalizado
Inclusão implícita
Não
Objeto personalizado
Inclusão explícita
Não
Tipo de relatório personalizado
Inclusão explícita
Não
Configuração personalizada
Inclusão explícita
Não
Painel
Inclusão explícita
Sim
Em uma pasta: Inclusão implícita
Documento
Inclusão explícita
Sim
Em uma pasta: Inclusão implícita
Modelo de email
Inclusão explícita
Sim
Em uma pasta: Inclusão implícita
Pasta
Inclusão explícita
Sim
Componente da home page
Inclusão explícita
Não
Layout de home page
Inclusão explícita
Não
Papel timbrado
Inclusão explícita
Sim
Desenvolvendo e distribuindo pacotes não gerenciados
Version 29.0 | Criando e carregando um pacote não
gerenciado | 203
Componente
Inclusão explícita ou implícita no
pacote
Renomeação automática
Modo de exibição de lista
Em um objeto padrão: Inclusão explícita Sim
Em um objeto personalizado: Inclusão
implícita
Layout de página
Em um objeto padrão: Inclusão explícita Não
Em um objeto personalizado: Inclusão
implícita
Tipo de registro
Em um objeto padrão: Inclusão explícita Não
Em um objeto personalizado: Inclusão
implícita
Relatório
Inclusão explícita
Sim
Em uma pasta: Inclusão implícita
S-control
Inclusão explícita
Não
Recurso estático
Inclusão explícita
Não
Tab
Inclusão explícita
Não
Tradução
Inclusão explícita
Não
Regra de validação
Em um objeto padrão: Inclusão explícita Não
Em um objeto personalizado: Inclusão
implícita
Componente do Visualforce
Inclusão explícita
Não
Página do Visualforce
Inclusão explícita
Não
Alerta de email de fluxo de trabalho
Inclusão explícita
Não
Atualização de campo do fluxo de
trabalho
Inclusão explícita
Não
Mensagem de saída do fluxo de trabalho Inclusão explícita
Não
Regra de fluxo de trabalho
Inclusão explícita
Não
Tarefa de fluxo de trabalho
Inclusão explícita
Não
Links relacionados
Componentes adicionados automaticamente a pacotes
Criando e carregando um pacote não gerenciado
Use o procedimento a seguir para carregar um pacote não gerenciado.
1. Criar o pacote:
Desenvolvendo e distribuindo pacotes não gerenciados
a.
b.
c.
d.
Version 29.0 | Criando e carregando um pacote não
gerenciado | 204
Em Configuração, clique em Criar > Pacotes.
Clique em Novo (New).
Preencha os detalhes do pacote
Clique em Salvar (Save).
2. Adicionar componentes:
a.
b.
c.
d.
e.
Clique em Adicionar componentes (Add Components).
Na lista suspensa, selecione o tipo de componente.
Selecione os componentes que desejar adicionar.
Clique em Adicionar ao pacote.
Repita essas etapas até adicionar todos os componentes ao pacote.
Nota: Alguns componentes relacionados são incluídos automaticamente no pacote, mesmo que não sejam exibidos
na lista Componentes do pacote (Package Components). Por exemplo, quando você adiciona um objeto
personalizado a um pacote, seus campos personalizados, layouts de página e relacionamentos com objetos padrão
são incluídos automaticamente.
3. Clique em Carregar.
Você receberá um email com um link para instalação depois que o pacote for carregado com êxito. Aguarde alguns minutos
antes de clicar no link de instalação ou de distribuí-lo a outros, já que pode levar alguns minutos para que ele se torne ativo.
Apêndice
B
Comparação da licença de usuário do ISVforce
Introdução
As tabelas a seguir comparam acesso a objetos, permissões de usuário e recursos e limites da organização para as seguintes
licenças:
•
•
O Administrador do Force.com — Uma licença padrão do Salesforce com recursos de personalização completos. A restrição
contratual proíbe criar, ler, atualizar e excluir em Leads, Oportunidades, Produtos, Casos, Soluções e Campanhas.
Uma licença da Plataforma padrão do Salesforce com acesso a contas, contatos e objetos personalizados. Usado por
não-administradores.
Os seguintes símbolos são usados nas tabelas:
•
•
•
•
•
•
•
— Incluído na licença
C — Acesso de criação ao objeto
R — Acesso de leitura ao objeto
U — Acesso de atualização ao objeto
D — Acesso de exclusão ao objeto
$ — Disponível como complemento, mediante taxa adicional
X — incluído na licença
Objeto acessado
Objeto acessado
Administrador do Force.com
Force.com
EE
UE/PXE
EE
UE/PXE
Contas
CRUD
CRUD
CRUD
CRUD
Atividades, tarefas
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
Contatos
CRUD
CRUD
CRUD
CRUD
Conteúdo
CRUD
CRUD
CRUD
CRUD
Patrimônios
Campanhas
Calendário, eventos
Casos
Contratos
Apêndice B: Comparação da licença de usuário do ISVforce
Objeto acessado
Version 29.0 | | 206
Administrador do Force.com
Force.com
EE
UE/PXE
EE
UE/PXE
Objetos personalizados
CRUD
CRUD
CRUD
CRUD
Documentos
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
CR
CR
CRUD
CRUD
Habilitações
Ideias
Leads
Oportunidades
Produtos e catálogos de preços
Perguntas e respostas
Cotas
Soluções
Recursos do usuário
Recursos do usuário
Exportação do Jigsaw
Administrador do Force.com Force.com
EE
UE/PXE
EE
UE/PXE
$
$
$
$
$
$
$
Knowledge
Enviar emails em massa
Celular (Completo)
$
Celular (Light)
Offline
Fluxo de trabalho visual
$
Permissões de usuário
Permissões de usuário
Administrador do Force.com Force.com
EE
Criar e personalizar relatórios
Executar relatórios
Criar e personalizar painéis
Exibir painéis*
Compartilhamento com usuários
UE/PXE
EE
UE/PXE
Apêndice B: Comparação da licença de usuário do ISVforce
Permissões de usuário
Version 29.0 | | 207
Administrador do Force.com Force.com
EE
UE/PXE
EE
UE/PXE
Limites de aplicativo personalizados
10
UNL
10
UNL
Limites de guia personalizados
25
UNL
25
UNL
Limite dos objeto personalizados**
200
2,000
200
2,000
Login único
Membro de filas
Chatter (grupos, arquivos, perfis)
Gravar um código Apex e Visualforce
Enviar aprovações de fluxo de trabalho
* O usuário em execução de um painel deve ser usuário do Force.comou do Force.com One App a fim de exibir o painel. Os
painéis que usam administradores do Force.com como usuário em execução não podem ser vistos por outros tipos de licença
Force.com.
** Limite contratualmente restrito para o Force.com One App e o Chatter Plus.
Limites de organização adicionais
Limites adicionais da organização (adicionados por usuário) Administrador do Force.com Force.com
EE
UE/PXE
EE
UE/PXE
Armazenamento de dados (MB)
20
120
20
120
Armazenamento de arquivos (MB)
612
612
612
612
Chamadas de API (por dia por usuário)
1,000
1,000
1,000
1,000
Apêndice
C
Comparação de licença do usuário OEM
Introdução
As tabelas a seguir comparam acesso a objetos, permissões de usuário e recursos e limites da organização para as seguintes
licenças:
•
•
•
Integrada ao OEM — Uma licença completa do Force.com com restrições contratuais. Proíbe criar, ler, atualizar e excluir
em Leads, Oportunidades, Produtos, Casos, Soluções, Campanhas e Contratos.
Portal ISV Portal — Uma licença de Site autenticado com opções básicas de compartilhamento de dados (compartilhamento
manual com o usuário e participação em grupos de compartilhamento não são permitidos). O usuário só pode fazer login
pelos sites Force.com. Mais bem usado quando os volumes projetados de usuário excederem a 100.000.
Portal ISV com compartilhamento — Uma licença personalizada para Gerenciador de portal de clientes com
compartilhamento total de recursos. O usuário só pode fazer login pelos sites Force.com. Mais bem usado quando os
volumes projetados de usuário estiverem abaixo de 100.000 e seja necessário o acesso de segurança granular.
Os usuários finais não podem: desenvolver aplicativos nem ampliar aplicativos ao criar objetos personalizados adicionais, mas
eles podem ter acesso a aplicativos adicionais, contanto que tais aplicativos sejam vendidos com uma licença integrada ou
ISVforce.
As licenças de portal não podem ser usadas para acessar qualquer outro aplicativo ou funcionalidade, exceto as do aplicativo
com o qual elas foram vendidas.
Os seguintes símbolos são usados nas tabelas:
•
•
•
•
•
•
— Incluído na licença
$ — Disponível como complemento, mediante taxa adicional
C — Acesso de criação ao objeto
R — Acesso de leitura ao objeto
U — Acesso de atualização ao objeto
D — Acesso de exclusão ao objeto
Objeto acessado
Objeto acessado
OEM incorporado
Contas
CRUD
Atividades, tarefas
CRUD
Patrimônios
Portal ISV
Portal ISV com
compartilhamento
CRU
CRU
Apêndice C: Comparação de licença do usuário OEM
Version 29.0 | | 209
Objeto acessado
OEM incorporado
Calendário, eventos
CRUD
Portal ISV
Casos
Portal ISV com
compartilhamento
CRU
Contatos
CRUD
CRU
Conteúdo
CRUD
R
Objetos personalizados
CRUD
CRUD
CRUD
Documentos
CRUD
R
R
Habilitações
Ideias
CRU
CR
CR
CR
Produtos e catálogos de preços
R
R
Perguntas e respostas
CR
CR
Soluções
R
Recursos do usuário
Recursos do usuário
OEM incorporado
Portal ISV
Knowledge
Portal ISV
com
compartilhamento
R
Enviar emails em massa
Móvel (Completo)
$
Móvel (Light)
Offline
Fluxo de trabalho visual
Permissões de usuário
Permissões de usuário
Criar e personalizar relatórios
Executar relatórios
Criar e personalizar painéis
Exibir painéis*
Compartilhamento com usuários
OEM incorporado
Portal ISV
Portal ISV
com
compartilhamento
Apêndice C: Comparação de licença do usuário OEM
Permissões de usuário
Version 29.0 | | 210
OEM incorporado
Portal ISV
Portal ISV
com
compartilhamento
Limites de aplicativo personalizados
10
N/A
N/A
Limites de guia personalizados
100
100
100
Limites dos objetos personalizados
400**
400
400
Login único
Membro de filas
Chatter (grupos, arquivos, perfis)
Enviar aprovações de fluxo de trabalho
* O usuário em execução de um painel deve ser usuário do Force.com ou do Force.com One App a fim de exibir o painel. Os
painéis que usam administradores do Force.com como usuário em execução não podem ser vistos por outros tipos de licença
Force.com.
** O limite de 400 objetos personalizados aplica-se à oferta principal do aplicativo. Os assinantes não podem criar seus próprios
objetos personalizados.
Limites de armazenamento
Limites adicionais da organização (adicionados por usuário) OEM incorporado
Portal ISV
Portal ISV
com
compartilhamento
Armazenamento de dados (MB)
20
0
2
Armazenamento de arquivos (MB)
612
0
0
Cada organização Integrada ao OEM recebe um mínimo de armazenamento de dados e de armazenamento de arquivos. Ela
também recebe uma quantidade de armazenamento por usuário multiplicada pelo número de usuários caso o resultado for
maior do que a quantidade mínima de armazenamento. Usando o armazenamento de dados como exemplo, uma organização
Integrada ao OEM com 600 usuários receberia 12.000 MB (12 GB) de armazenamento de dados, visto que 20 MB por usuário
multiplicados por 600 usuários resultam em 12.000 MB. Uma empresa menor, como uma organização Integrada ao OEM
com 20 usuários, receberia 1 GB de armazenamento de dados, visto que 20 MB por usuário multiplicados por 20 usuários
resulta em apenas 400 MB, que é menos do que o mínimo de 1 GB destinado a todas as organizações Integradas ao OEM.
Salesforce Edition
Armazenamento de dados
mínimo por organização
Armazenamento de arquivos Alocação de armazenamento
mínimo por organização
por licença de usuário
OEM incorporado
1 GB, mais 5 MB para cada
licença de Parceiro Gold
11 GB
20 MB de armazenamento de
dados e 612 MB de
armazenamento de arquivos
Limites da API
A tabela a seguir lista os limites para o total de solicitações da API (chamadas) por um período de 24 horas para uma organização
Integrada ao OEM.
Apêndice C: Comparação de licença do usuário OEM
Version 29.0 | | 211
Salesforce Edition
Chamadas da API por tipo de licença
Mínimo
Máximo
OEM incorporado
1000
5,000
1,000,000
Os limites são obrigatórios para os agregados de todas as chamadas da API feitas pela organização em um período de 24 horas;
os limites não são baseados por usuário. Quando uma organização excede um limite, todos os usuários na organização podem
ser bloqueados de fazerem chamadas adicionais temporariamente. As chamadas serão bloqueadas até que o uso durante as 24
horas anteriores fique abaixo do limite.
Glossário
Os termos e definições a seguir descrevem os principais conceitos e recursos de empacotamento:
Aplicativo
Também usado em sua versão abreviada, “apl.”. Um conjunto de componentes como guias, relatórios, painéis e páginas
do Visualforce, que atendem a uma necessidade comercial específica. O Salesforce fornece aplicativos padrão como o
Sales e o Call Center. Os aplicativos padrão podem ser personalizados para se adaptarem à sua rotina de trabalho. Além
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 usuários do
Salesforce no AppExchange.
AppExchange
O AppExchange é uma interface de compartilhamento do salesforce.com que permite a você navegar e compartilhara
aplicativos e serviços para a plataforma Force.com.
Beta, Pacote gerenciado
Sob o ponto de vista dos pacotes gerenciados, um pacote gerenciado beta é uma versão anterior de um pacote gerenciado
distribuído para uma demonstração de teste para a sua audiência específica.
Implantar
Para mover a funcionalidade do estado inativo para o ativo. Por exemplo, ao desenvolver novos recursos na interface do
usuário do Salesforce, selecione a opção "Implantado" para tornar a funcionalidade visível a outros usuários.
O processo pelo qual um aplicativo ou outra funcionalidade é movido do desenvolvimento até a produção.
Para mover componentes de metadados de um sistema local de arquivos para uma organização do Salesforce.
Para aplicativos instalados, a implantação disponibiliza todos os objetos personalizados no aplicativo para os usuários de
sua organização. Antes de ser implantado, um objeto personalizado está disponível apenas para administradores e qualquer
usuário com a permissão “Personalizar aplicativo”.
Aplicativo de gerenciamento de licenças (LMA)
Um aplicativo gratuito do AppExchange que permite a você rastrear leads e contas de vendas de todos os usuários que
fazem download do seu pacote gerenciado (aplicativo) pelo AppExchange.
Organização de gerenciamento de licenças (LMO)
A organização do Salesforce que você usa para rastrear todos os usuários do Salesforce que instalarem seu pacote. O
aplicativo de gerenciamento de licenças (LMA) deve ser instalado na organização de gerenciamento de licenças. Ele
recebe automaticamente uma notificação toda vez que seu pacote é instalado ou desinstalado, de modo que você possa
facilmente notificar os usuários sobre atualizações. Você pode especificar qualquer organização que usa a edição Enterprise,
Unlimited, Performance ou Developer como sua organização de gerenciamento de licenças. Para obter mais informações,
vá até http://www.salesforce.com/docs/en/lma/index.htm.
Glossário
Version 29.0 | | 213
Versão principal
Uma versão significativa de um pacote. Durantes estas versões, os números principais e secundários de uma versão de
pacote aumentam para qualquer valor escolhido.
Pacote gerenciado
Um conjunto de componentes de aplicativo que é publicado como unidade no AppExchange e associado a um namespace
e possivelmente a uma organização de gerenciamento de licenças. Para suporte a atualizações, um pacote deve ser
gerenciado. Uma organização pode criar um único pacote gerenciado que pode ser transferido por download e instalado
por várias organizações diferentes. Pacotes gerenciados diferem de não gerenciados, tendo alguns comentários bloqueados,
o que permite ao pacote gerenciado ser atualizado posteriormente. Os pacotes não gerenciados não incluem componentes
bloqueados e não podem ser atualizados. Além disso, os pacotes gerenciados ofuscam certos componentes (como o Apex)
ao inscrever organizações para proteger a propriedade intelectual do desenvolvedor.
Extensão do pacote gerenciado
Qualquer pacote, componente ou conjunto de componentes complementar à funcionalidade de um pacote gerenciado.
Você não pode instalar uma extensão antes de instalar seu pacote gerenciado.
Prefixo do namespace
No contexto de empacotamento, um prefixo de namespace é um identificador alfanumérico com 1 a 15 caracteres que
distingue o seu pacote e conteúdo dos pacotes de outros desenvolvedores do AppExchange. Os prefixos de namespace
não diferenciam maiúsculas de minúsculas. Por exemplo: ABC e abc não são reconhecidos como palavras distintas. O
seu prefixo de namespace deve ser globalmente exclusivo em todas as organizações do Salesforce. Ele mantém o pacote
gerenciado sob o seu controle exclusivo.
Pacote
Um grupo de componentes e aplicativos do Force.com disponibilizado para outras organizações por meio do AppExchange.
Os pacotes são usados para criar um conjunto do aplicativo com todos os componentes relacionados para que você possa
carregá-los juntos para o AppExchange.
Dependência do pacote
Isso é criado quando um componente faz referência a outro componente, permissão ou preferência, que é obrigatório
para que o componente seja válido. Os componentes podem incluir, mas sem limitações:
• Campos padrão ou personalizados
• Objetos padrão ou personalizados
• Páginas do Visualforce
• Código do Apex
As permissões e preferências podem incluir, mas sem limitação:
• Divisões
• Multimoedas
• Tipos de registro
Instalação do pacote
A instalação incorpora o conteúdo de um pacote à sua organização do Salesforce. Um pacote do AppExchange pode
incluir um aplicativo, um componente ou uma combinação dos dois. Depois de instalar um pacote, você pode precisar
implementar componentes nele para disponibilizá-lo no geral aos usuários de sua organização.
Versão do pacote
Versão do pacote é um número que identifica o conjunto de componentes carregados em um pacote. O número da versão
tem o formato majorNumber.minorNumber.patchNumber (por exemplo, 2.1.3). Os números maiores e menores
Glossário
Version 29.0 | | 214
aumentam para um valor escolhido em toda versão principal. O patchNumber é gerado e atualizado apenas para a versão
do patch.
Pacotes não gerenciados não têm capacidade de upgrade; assim, cada versão de pacote é simplesmente um grupo de
componentes para distribuição. A versão de um pacote tem mais significado para pacotes gerenciados. Os pacotes podem
exibir comportamento diferente para versões diferentes. Os editores podem usar as versões do pacote para evoluírem os
componentes nos pacotes gerenciados com suavidade, lançando versões subsequentes do pacote sem romper as integrações
existentes com clientes usando o pacote. Consulte também Correção e Organização de desenvolvimento da correção.
Correção
Uma versão de correção permite que um desenvolvedor altere a funcionalidade de componentes existentes em um pacote
gerenciado, assegurando às organizações inscritas a manutenção dos comportamentos do pacote. Por exemplo: você pode
adicionar novas variáveis ou alterar o corpo de uma classe Apex, mas não pode adicionar, desaprovar ou remover nenhum
de seus métodos. As correções são rastreadas por um númeroCorreção anexado a cada versão do pacote. Consulte
também Organização de desenvolvimento de correções e Versão do pacote.
Organização de desenvolvimento de correções
A organização na qual as versões de correção são desenvolvidas, mantidas e carregadas. As organizações de desenvolvimento
de correções são criadas automaticamente para uma organização do desenvolvedor quando elas solicitam a criação de
uma correção. Consulte também Correção e Versão do pacote.
Versão da correção
Um upgrade pequeno de um pacote gerenciado. Durante esses lançamentos, aumenta o número da correção de uma
versão do pacote.
Editor
O editor de uma lista do AppExchange é o usuário ou organização do Salesforce que publicou a lista.
Upgrade automático
Um método de fornecimento de atualizações que envia upgrades de um pacote gerenciado instalado para todas as
organizações que instalaram o pacote.
Assinante
O assinante de um pacote é um usuário do Salesforce com um pacote instalado em sua organização do Salesforce.
Test Drive
Test drive é uma organização totalmente funcional do Salesforce que contém um aplicativo e amostras de registro
adicionados pelo editor para um determinado pacote. Ele permite que os usuários do AppExchange testem um aplicativo
como usuário somente leitura utilizando a familiar interface do Salesforce.
Pacote não gerenciado
Um pacote que não pode ser atualizado nem ser controlado por seu desenvolvedor.
Fazendo atualização
A atualização de um pacote é o processo de instalação de uma versão mais recente. O Salesforce suporta atualizações de
pacotes gerenciados que não sejam beta.
Carregando
O carregamento de um pacote no Salesforce fornece um URL de instalação para que outros usuários possam instalá-lo.
O carregamento também torna o seu pacote disponível a ser publicado no AppExchange.
Índice
Índice
A
ajuda personalizada
Aplicativos do AppExchange 50
análise
editar 130
escrever 134
análise de segurança
enviar aplicativos e modelos de avaliação 117
erros 102
requisitos 117
Análise de segurança
aplicativo móvel 98
pacote de extensão 99
questionário 95
analítica de listagem
Relatório de leads 127
Relatório de recursos e promoções 127
Relatório de test drives, demonstrações e telas 128
Relatório Instalações (Adquirir agora) 127
Saiba mais, vídeos e relatório de telas 128
Apex
comportamento em pacotes 189
efeitos da depreciação 190
Apex dinâmico
suporte a várias edições 47
API REST
acessando na group edition 45
acessando na professional edition 45
aplicativo
aplicativos nativos 132
atualizações de correção (versão) 130
enviar para aprovação de segurança 117
opções de instalação 111
otimização de pesquisa 130
publicar 108
vender 108
Aplicativo conectado
controle de acesso em 58–59
criando 54
criar 53
desinstalando 61
detalhes 58
editando 57–59
empacotando 57
excluindo 57
gerenciando 59
instalando 58
monitoramento de uso 60
restrições de IP para 58–59
URL inicial 58–59
Aplicativo de gerenciamento de licenças
terminologia 137
utilização 141
Aplicativos
carregando 84, 203
aplicativos nativos 132
APO
associar à conta do parceiro 108
criar perfil do fornecedor 108
definição 106
designar ou alterar 107
AppExchange
ajuda personalizada 50
criando pacotes 86, 88–91, 195, 197
desenvolvendo documentação de aplicativo 50
marca 158–159
marca de email 160–161
pacotes beta 75
projetando para 51
proporcionando uma avaliação gratuita 162
tipos de versão do pacote gerenciado 85
versões de pacote gerenciado 85
AppExchange Checkout 112, 120–123
AppExchange, visão geral 106
Atributos 20
Atualizações automáticas
agendando 197
detalhes da organização 200
detalhes do trabalho 198
Atualizando pacotes 185
atualizar 179
avaliação gratuita
criar 99, 132
versus test drive 134
Avaliações do AppExchange
diferença do Trialforce 179
C
Carregando correções 187
Carregando pacotes 84, 203
Carregando pacotes beta 76
Chatter em pacotes 49
Checkout 112, 120–123
Ciclo de vida do desenvolvimento 2
colocando faixas de IP na lista de aprovadas do Aplicativo conectado 57
Componentes 20
Configuração 139
Configurações do perfil 52
Configurando pacotes 79
Conjuntos de permissões 52
conta de parceiros 129
controle de acesso no Aplicativo conectado 58–59
correções 130
Criando correções 187
criando inscrições para acesso à API e ao OAuth 177
criando inscrições usando a API 167
Índice
Criando pacotes 84, 203
criando um Aplicativo conectado 53–54
D
Dependências 48
depoimentos 134
Desenvolvimento
pacotes não gerenciados 201
WSDL de parceiro 61
Desinstalando pacotes 82
desinstalando um Aplicativo conectado 61
I
ideias 134
idiomas 129
Implantação 79
indústrias 129
inscrição do proxy 177
Instalação 138
Instalação do pacote 77
Instalando pacotes 77
instalando um Aplicativo conectado 58
L
E
Edições 77, 138
Edições suportadas 136
editando um Aplicativo conectado 57–59
Empacotamento
ciclo de vida 2
upgrades automáticos, agendando 197
empacotando um aplicativo conectado 57
Escopo operacional 48
excluindo um Aplicativo conectado 57
F
Faixas de IP com Aplicativo conectado 57
fazer upgrade 132
feedback 134
G
Gerenciamento de licenças
visão geral 136
gerenciando contratos de licença 135
gerenciando um Aplicativo conectado 59
Group edition
acessando a API REST 45
controle de acesso 43
limites 43
pacotes 41–42, 44, 46
usando o Apex 44
H
Hub de ambiente
adicionando usuário vinculado 70, 72
ativando o login único 71
conectar organização 67
desativando login único 72
editar detalhes da organização 70
exibir detalhes da organização 68
leads
códigos fonte 124–125
selecionar cenários de lead 116
versus registros de licença 125
Leads
editando o gerente de lead 144
licenças
escolher configurações 119
versus configurações de lead 125
Licenças
campos editáveis 148
detalhes 146
editando 148
editando o proprietário 147
listagem
adicionar categorias 116, 119
adicionar um test drive 112, 123
analíticos 125
definição 106
enviar para aprovação de segurança 117
listagem excluída pelo Salesforce 132
preços 112
listing
add categories 109
Login 182–184
Logotipo 117
Logotipo do parceiro 117
M
Marca 117
Marketing 149
modelo de teste
descrição 99, 132
enviar para aprovação de segurança 117
monitoramento de uso de um Aplicativo conectado 60
N
nome da empresa 130
Nome do domínio
visão geral da configuração 66
Índice
O
Objeto do SignupRequest 168
Objetos
SignupRequest 168
Organização de gerenciamento de licenças
associação de um pacote gerenciado. 140
organizações vinculadas
definição 106
vincular à APO 107
otimização de pesquisa 130
P
Pacote
Associação ao LMO 140
pacote gerenciado
alterar 130
alterar uma listagem 131
register 119
Pacotes
ajuda personalizada 50
carregando 84, 203
Chatter 49
componentes empacotáveis 21, 30, 201
comportamento do componente 25, 32
configurando 79
criando 84, 86, 88–91, 195, 197, 203
dependências 48
desenvolvendo documentação de aplicativo 50
desenvolvimento 20
desinstalando com a API 83
desinstalar script 89–90
detalhes 142
disponibilidade do componente 79
distribuindo 105
Edições 20
editando o gerente de lead 144
editando o proprietário 143
falhas de instalação 81
gerenciado 20
instalando com a API 83
instalando pacotes 47
marca 158–161
não gerenciado 20
noções básicas 20
projetando 19
protegendo a propriedade intelectual 63
script pós-instalação 86, 88, 195, 197
sobre 1, 20
solução de problemas 81
status 20
suporte ao usuário 181
terminologia 20
versões 144–145
Pacotes Beta
carregando 76
desinstalando 82
Pacotes de extensão 46
Pacotes gerenciados
atualizações automáticas 192–195, 197
beta 75
componentes empacotáveis 21, 30, 201
comportamento do componente 25, 32
configurando 79
disponibilidade do componente 79
fazendo atualização 185
group edition 41–44, 46
limites para a group edition 43
limites para a professional edition 43
planejando 20
prefixo do namespace 75
professional edition 41–44, 46
status 20
suporte a várias edições 46–47
tipos de versão 85
versão de correção 188
versões 85
Pacotes não gerenciados
componentes empacotáveis 30, 201
comportamento do componente 32
desenvolvimento 201
Padrões
definindo 141
parceiro de consultoria
Saiba mais, vídeos e relatório de telas 128
perfil de fornecedor
criar ou editar 108
e contas de parceiros 129
Perfis personalizados
criando 51
Perguntas frequentes
LMA 151
Permissões necessárias 136
popularidade 132
Práticas recomendadas 150
Professional edition
acessando a API REST 45
controle de acesso 43
limites 43
pacotes 41–42, 44, 46
usando o Apex 44
Projetando
correspondendo à aparência do Salesforce 50
propriedade intelectual
proteção 63
Proprietário de licença
editando 147
publicar
criar um test drive 112, 123
publicando sua listagem 108
Índice
R
recursos 99
Relacionamentos de entidades 136
relevância 132
Restrições de IP para Aplicativo conectado 58–59
S
sandbox 130
serviços
otimização de pesquisa 130
publicar 108
vender 108
Serviços externos
provisionamento 62
trabalhando com 62
Solicitação de inscrição
criar 174
Solicitações de inscrição
exibindo detalhes 175
home page 174
Solução de problemas 81, 151
Suporte a várias edições 47
Suporte ao assinante 182–184
suporte ao usuário 181
suporte para usuários finais 181
T
Terminologia
Aplicativo de gerenciamento de licenças 137
test drive
criar ou editar 112, 123
versus avaliação gratuita 134
Testando 74, 77
token da API
solicitando 131
trial template
link para sua listagem 110
Trialforce
criar uma organização de teste 167, 176–177
fornecendo organizações de avaliação 166
fornecendo uma avaliação gratuita no AppExchange 162
inscrição 167, 176–177
instalando outro aplicativo 180
modificando uma avaliação 167
personalização do formulário HTML 165
práticas recomendadas 167
vincular modelo ao formulário HTML 165
Tutoriais 3
U
URL inicial no Aplicativo conectado 59
usando o Apex dinâmico 46–47
usando um pacote de extensão 46
V
Vendas 149
Versões de correção
carregando 187
carregando correções 188
criando 187
criando correções 188
Versões do pacote
controle do comportamento das versões do Apex 189
depreciação do Apex 190
detalhes 145
Visão geral 136
W
WSDL de parceiro 61