Usar serviços externos em um fluxo

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Encontrar as ações dos Serviços externos na caixa de ferramentas do Flow Builder.
  • Criar um fluxo simples com suas ações dos Serviços externos.

Criar um fluxo para acessar ações comerciais externas

Vamos criar um fluxo que coloca em prática o que você aprendeu e configurou até agora. Pronto para colocar suas habilidades à prova e implementar nosso processo comercial? Vamos lá! 
Nota

Nota

A credencial nomeada e o registro dos Serviços externos na unidade anterior disponibilizam nossas ações da Web externas para referência a partir do fluxo para nossa organização do Salesforce.

Projeto: Para oferecer uma experiência mais personalizada, o Acme Bank quer usar o Salesforce para rastrear atividades de vendas nas contas. O processo de novos negócios da Acme vai permitir que um representante do Acme Bank adicione um registro de conta ao Salesforce enquanto garante que os detalhes da conta, como a conta e o tipo de conta, estejam sincronizados com a conta de serviço de back-end do banco. O processo comercial também sincroniza as atualizações com as informações do cliente (usuário) no Salesforce. 
Para automatizar esse processo, vamos registrar o serviço de back-end do banco como um Serviço externo. Depois que nosso serviço bancário é registrado, as operações de conta do serviço bancário (adicionar, atualizar, recuperar) ficam visíveis e acessíveis para uso no Salesforce com a ferramenta Flow Builder. Aqui, temos tudo de que precisamos para criar um fluxo e adicionar/atualizar automaticamente os detalhes de conta do serviço bancário para o Salesforce sempre que o representante do Acme Bank acessar a conta. 

Algumas dessas ações comerciais, você deverá concluir e aprimorar mais tarde, mas vamos dar uma olhada no novo processo comercial que vamos criar. 

Vamos dar uma olhada mais atenta nos estágios e na lógica para que você possa ver como as informações fluem.

O Flow Builder mostrando 5 elementos que descrevem o fluxo de serviço bancário

  1. Tela de registro bancário de funcionários: captura o nome da conta e o tipo de conta das informações que o representante do Acme Bank insere na tela
  2. Ação Adicionar registro: depois de registrar o serviço do Acme Bank nos Serviços externos, todas as ações agora ficarão disponíveis para uso no fluxo. Selecionamos a ação addAccount e especificamos as entradas e saídas atribuídas a variáveis para uso entre a organização do Salesforce e o serviço de back-end do banco.
  3. Decisão de conta atualizada: a lógica avalia se a conta existe e precisa de atualização ou se precisa ser criada
  4. Atribuir conta atualizada: se a conta existir, atribua a ID da conta existente e transmita para atualizar a conta de usuário
  5. Atualizar registro de conta do usuário: se a conta não existir, crie a conta e atualize-a ou, se a conta já existir, atualize-a

Ações de Serviços externos no fluxo

Se você concluiu a unidade anterior, já registrou um serviço externo usando o assistente de Serviços externos e visualizou as ações no assistente dos Serviços externos. Para ver as ações, vamos mergulhar no Flow Builder.

  1. Em Configuração, digite Fluxo na caixa Busca rápida e selecione Fluxos.
  2. Clique em Novo fluxo, selecione Fluxo de tela, clique em Avançar e selecione "Forma livre".
  3. Na caixa de ferramentas, com a guia Elementos selecionada, arraste Ação para a tela.
  4. Para ver as ações importadas pelos Serviços externos com base no esquema que usamos na unidade anterior, altere Filtrar por para Tipo, selecione Serviço externo e clique na caixa de pesquisa.
  5. Para ver as ações agrupadas por um registro dos Serviços externos (neste exemplo, BankService), altere Filtrar por para Categoria, selecione BankService e clique na caixa de pesquisa. Quando terminar de visualizar as ações de BankService disponíveis, podemos seguir em frente.
  6. Clique em Cancelar e volte à Configuração.

Lista de ações adicionadas do registro de Serviço externo

Por exemplo, você pode ver o método getAccount que analisamos no assistente de Serviços externos, juntamente com addAccount, DeleteAccount e updateAccount. Essas ações dos Serviços externos são os métodos referentes ao nosso banco fictício que podemos usar em um fluxo para descobrir informações, adicionar registros de contas e assim por diante. Os Serviços externos com os quais você trabalha podem ter muitos outros métodos; isso depende do serviço específico que você usa e de como o esquema é definido para seu caso de uso.

Estamos prestes a usar essas ações em nosso próprio fluxo. 

Primeiro, vamos criar dois campos personalizados (Tipo de conta e ID de conta) no objeto Usuário.

  1. Em Configuração, selecione Gerenciador de objetos e, em seguida, selecione Usuário.
  2. Clique em Campos e relacionamentos e clique em Novo (Campo personalizado).
  3. Em Tipo de dados, selecione Texto e clique em Avançar.
  4. Em Rótulo do campo, use Tipo de conta e, em Tamanho, use 25. Deixe os demais valores padrão e clique em Avançar.
  5. Verifique se a segurança no nível de campo está definida como visível para os perfis que você usa em sua organização e clique em Avançar e, em seguida, em Salvar e novo.
  6. Selecione Texto e Avançar.
  7. Em Rótulo do campo, use ID de conta e, em Tamanho, use 25. Deixe os demais valores padrão e clique em Avançar.
  8. Verifique se a segurança no nível de campo está definida como visível para os perfis que você usa em sua organização e clique em Avançar e, em seguida, em Salvar.

Você descobrirá por que precisamos de campos específicos associados ao nosso cliente bancário, mas, por enquanto, vamos criar um registro de usuário para nossa cliente, Maria Thompson.

  1. Em Configuração, insira Usuários na caixa Busca rápida e selecione Usuários.
  2. Clique em Novo usuário.
  3. Em Nome, insira Maria.
  4. Em Sobrenome, insira Thompson.
  5. Em Licença de usuário, selecione Salesforce Platform.
  6. Em Perfil, selecione Plataforma padrão de usuário.
  7. Como essa é uma organização de teste, use seu próprio endereço de email.
  8. Insira um nome de usuário e um apelido para usar e Salve.
Agora você pode verificar se nossa usuária Maria Thompson tem dois campos personalizados (tipo de conta e ID da conta). 

Agora, vamos começar a usar nosso fluxo.

Criar um fluxo usando ações dos Serviços externos

Pronto para começar? Vamos começar criando um registro de conta em nosso banco fictício. É o registro de conta de um funcionário com autoridade para entrar em uma das contas da organização.

Tela
  1. Em Configuração, digite Fluxo na caixa Busca rápida e selecione Fluxos.
  2. Clique em Novo fluxo, selecione Fluxo de tela e clique em Avançar.
  3. Selecione Forma livre.
  4. Na caixa de ferramentas, arraste o elemento Tela para a tela.
    • Rótulo: Registro bancário de funcionários
    • Nome da API: Employee_Bank_Record
  5. Na lista de componentes da tela Entrada, arraste dois componentes Texto para a tela [rótulo do fluxo].
  6. Clique no primeiro componente de texto
    • Rótulo: Nome na conta
    • Nome da API: Name_on_Account
  7. Clique no segundo componente de texto
    • Rótulo: Tipo de conta
    • Nome da API: Account_Type
  8. Clique em Concluído.
  9. Clique em Salvar para salvar o fluxo e defina as propriedades do fluxo.
    • Rótulo do fluxo: Registro bancário de funcionários
    • Nome da API do fluxo: Employee_Bank_Record
  10. Clique em Salvar e ignore os avisos.
Nota

Nota

Salve cedo e com frequência enquanto cria seu fluxo para não perder seu trabalho.

Por enquanto, apenas adicionamos um elemento de tela ao nosso fluxo. Agora, vamos adicionar um elemento específico ao nosso esquema, para que o fluxo use o método addAccount para criar um registro de conta em nosso banco fictício. 

Os elementos de ação, por definição, realizam uma ação fora do fluxo. A seleção do elemento de ação apresenta e realiza ações invocáveis que foram registradas pelos Serviços externos. Estamos interessados na ação de adicionar uma conta.

Ação

  1. Na caixa de ferramentas, arraste o elemento Ação para a tela.
  2. Altere Filtrar por para Tipo, selecione Serviço externo e clique na caixa de pesquisa.
  3. Selecione addAccount.
    • Rótulo: Adicionar conta
    • Nome da API: Add_Account
  4. Em Definir valores de entrada, selecione para incluir
    • accountName
    • accountType
  5. Em accountName, insira Name e selecione Name_on_Account.
  6. Em accountType, insira Type e selecione Account_Type.
  7. Marque Atribuir variáveis manualmente (avançada).
  8. Em Armazenar valores de saída, selecione Novo recurso para _201
  9. Em Novo recurso
    • Tipo de recurso: Variável
    • Nome da API: account
    • Tipo de dados: Definido pelo Apex
    • Classe do Apex: ExternalService__BankService_accountDetails
    • Disponibilidade fora do fluxo: Disponível para entrada e Disponível para saída
  10. Clique em Concluído.
  11. Em Armazenar valores de saída para a exceção _409, selecione Novo recurso
    • Tipo de recurso: Variável
    • Nome da API: updatedAccount
    • Tipo de dados: Definido pelo Apex
    • Classe do Apex: ExternalService__BankService_accountDetails
    • Disponibilidade fora do fluxo: Disponível para entrada e Disponível para saída
  12. Clique em Concluído.

Flow Builder mostrando entradas e saídas da ação addAccount



Agora vamos adicionar lógica para avaliar se a conta já existe ou não. Quando o fluxo é executado, se a conta não existe, nosso fluxo é encaminhado pelo caminho Criar conta e prossegue para atualizar a conta do usuário. Se a conta já existir (resultado padrão), ela é encaminhada pela atualização e vamos atribuí-la. Esse tipo de lógica de avaliação e ramificação é perfeita para o elemento de decisão. 

Decisão
  1. Na guia Elementos da caixa de ferramentas, arraste Decisão para a tela.
  2. Na janela New Decision (Nova decisão), insira os valores abaixo.
    • Rótulo: conta atualizada?
    • Nome da API: account_updated
  3. Na seção Outcomes (Resultados), observe os dois resultados listados: New Outcome (Novo resultado) e Default Outcome (Resultado padrão).
  4. Verifique se New Outcome (Novo resultado) está selecionado e insira os valores abaixo na seção Outcome Details (Detalhes do resultado).
    • Rótulo: conta criada
    • Nome da API: account_Created
    • Em Requisitos de condição para executar o resultado, selecione Todas as condições são atendidas
    • Em Recurso, insira estas condições.
      Recurso Operador Valor
      updatedAccount É nulo !$GlobalConstant.True
  5. Selecione Resultado padrão e insira:
    • Rótulo: conta atualizada
  6. Clique em Concluído.
Nota

Nota

Observe que "conta atualizada" não tem condições. Isso é porque ele é o resultado padrão. Se as condições não forem atendidas para o fluxo criar uma conta, o fluxo sempre pegará esse caminho e atualizará a conta.

Atribuição
  1. Na caixa de ferramentas, arraste Atribuição para a tela.
  2. Na janela New Assignment (Nova atribuição), insira os valores abaixo.
    • Rótulo: atribuir conta atualizada
    • Nome da API: assign_updated_account
  3. Na seção Defina valores de variável, insira estes valores
    Variável Operador Valor
    account.id Igual a UpdatedAccount.id
  4. Clique em Concluído e ignore os avisos
Nota

Nota

Você não pode copiar e colar os valores de Variable (Variável). Para a variável, digite conta, clique em conta na variável definida pelo Apex e selecione ID.

Nosso fluxo de tela faz uso dos recursos definidos pelo Apex para conectar o fluxo ao nosso banco fictício. Precisamos atualizar nosso registro de usuário do Salesforce com o nome da conta e o ID da conta. Em seguida, podemos definir duas variáveis para transmitir entre o fluxo e nosso banco fictício.

Atualizar registros

  1. Na caixa de ferramentas, arraste o elemento Atualizar registros para a tela.
  2. Na nova janela Atualizar registros, insira os valores abaixo:
    • Rótulo: atualizar conta de usuário
    • Nome da API: update_user_account
  3. Selecione Especificar condições para identificar registros e definir campos individualmente
  4. Em Atualizar registros deste tipo de objeto
    • Objeto: Usuário
  5. Em registros de usuário do filtro
    • Requisitos de condição: Condições atendidas
    • Campo: LastName
    • Operador: Igual a
    • Valor: Name_on_Account
  6. Em Definir valores de campo para os registros de usuário
    • Campo: Account_Id__c
    • Valor: account.id (em Definido pelo Apex)
  7. Selecione + Adicionar campo
    • Campo: Account_Type__c
    • Valor: Account_Type (em Componentes da tela)
  8. Clique em Concluído.

Também precisamos de duas variáveis de registro para o registro de usuário do funcionário.

Criar duas variáveis de registro (único)

  1. Na caixa de ferramentas, selecione a guia Gerenciador.
  2. Clique em Novo recurso e crie uma variável com essas propriedades.
    • Tipo de recurso: Variável
    • Nome da API: accountTypeField
    • Tipo de dados: Registro
    • Objeto: Usuário
    • Disponibilidade fora do fluxo: Disponível para saída
  3. Clique em Concluído.
  4. Na caixa de ferramentas, selecione a guia Gerenciador.
  5. Clique em Novo recurso para criar uma variável com essas propriedades.
    • Tipo de recurso: Variável
    • Nome da API: user
    • Tipo de dados: Registro
    • Objeto: Usuário
    • Disponibilidade fora do fluxo: Disponível para saída
  6. Clique em Concluído.

Quase lá! Só falta conectar nosso fluxo. Vamos começar a conectar os elementos na ordem certa arrastando o nó do conector para o elemento de destino para que nosso processo comercial flua com sucesso no tempo de execução. Não esqueça de salvar!  

  1. Conecte o Início a Verificar registro de funcionário do banco.
  2. Conecte Verificar registro de funcionário do banco à Ação Adicionar conta.
  3. Conecte a Ação Adicionar conta à Decisão Conta atualizada?.
  4. Alinhe o elemento Decisão na tela para que você tenha espaço para dois conectores de saída nos dois lados. Um conector identifica a "conta criada" como elemento a ser executado e o outro como a "conta atualizada".
  5. Conectar conta atualizada? Resultado da decisão para Atribuição atribuir a conta atualizada.
  6. Quando solicitado, selecione a conta atualizada para o resultado da decisão a fim de atribuir ao caminho e clique em Concluídoresultado do conector de decisão selecionado para a conta atualizada
  7. Conecte Atribuição Atribuir conta atualizada a Atualizar registros Conta de usuário atualizada.
  8. Conecte a Decisão Conta criada a Registros atualizados Atualizar conta de usuário.
  9. Clique em Salvar.

Tudo pronto! Bem, não exatamente... 

Vamos usar o modo de depuração para verificar o fluxo. 

Clique em Depurar, selecione Exibir detalhes do que é executado e renderizar o fluxo no tempo de execução do Lightning e clique em Executar

Em Nome na conta, digite Thompson e, em Tipo de conta, insira Compras. 

O fluxo é executado com nossas entradas.

Flow Builder mostrando a execução da depuração do fluxo de trabalho

Em Detalhes de depuração, siga todo o fluxo que você acabou de criar. 

Em Adicionar conta, observe o nome (Thompson) e o tipo de conta (compras) que inserimos como entradas. Como a conta não existia antes dessa execução, ela foi criada.

Nota

Nota

Não se preocupe se você encontrar resultados diferentes (201 ou 401) para Adicionar conta. O resultado varia de acordo com a atualização de contas do aplicativo.

Limites de nosso aplicativo simples...

O que você também precisa saber é que poderia ter recebido um erro. Por exemplo, se tivéssemos usado Maria Jones como Nome na conta, teríamos recebido um erro, pois é proibido inserir espaços nesse campo. Da mesma forma, um erro pode ser exibido se você inserir um nome com menos de 6 caracteres (Jones), já que esse é outro limite de nosso aplicativo simples.

Código Descrição do serviço Acme Bank
200 O sistema encontra uma conta com determinado nome
201 Resposta quando a conta não existe e podemos criar uma
204 Resposta quando o sistema encontra uma conta com o nome fornecido
400 Resposta de erro se o nome da conta for menor que o mínimo de 6 caracteres ou tiver espaços
404 Resposta de erro se a conta não for suportada pelo serviço ou não for encontrada
409 Resposta quando a conta existe e não podemos criar uma
Nota

Nota

Se tivéssemos criado um fluxo para usar com um serviço bancário externo de verdade, teríamos criado registros usando identificadores exclusivos e não nomes! Mas, novamente, estamos simplificando aqui para que você possa se concentrar nos serviços externos.

Também podemos verificar se a conta foi criada usando o método getAccount. Se quiser tentar fazer sozinho, pode fazer isso agora. Porém, crie outro fluxo para fazer isso. No desafio, iremos desenvolver o fluxo que acabamos de fazer, então não vamos mudá-lo.

Recapitulação

Lembra daquele diagrama da primeira unidade? Aqui está ele novamente para mostrar o caminho e as etapas que seguimos ao longo do caminho. Observe que, embora tivéssemos que lidar com um esquema, a maior parte do trabalho é declarativo (com pouco a nenhum código). Legal, não é?

6 etapas do fluxo de trabalho dos Serviços externos

Estender seu aplicativo de Serviço externo e passar à prática

As principais partes interessadas do Acme Bank gostam do projeto de serviço bancário que você acabou de concluir na seção anterior. Agora, eles desejam adicionar outro processo comercial ao fluxo de trabalho do banco existente. 

Vamos dar uma olhada na etapa 6 e nos preparar para adicionar as etapas 7 a 9 para o desafio prático.

Tela com quatro itens conectados adicionados ao projeto de serviço bancário anterior

Nota

Nota

Caso ainda não tenha feito isso, conclua o projeto anterior do serviço externo do Acme Bank na seção Criar um fluxo para acessar ações comerciais externas antes de tentar essa extensão. Do contrário, não teremos nada para verificar.

Adicione uma ação (etapa 6) ao fluxo criado nesta unidade para que ele rastreie e valide a criação da conta e do tipo de conta. Se a conta existir, mostre as informações da conta ao representante do Acme Bank. Se a conta não existir, vamos informar ao representante do Acme Bank. As etapas 7 a 9 são cobertas no desafio prático.

Vamos começar criando duas variáveis para armazenar as informações sobre se uma conta existe e pode ser confirmada e outra variável para cobrir o caso em que a conta não existe. 

Criar duas variáveis definidas pelo Apex

  1. No fluxo Registro bancário do funcionário (na guia Gerenciador da caixa de ferramentas):
  2. Criar um novo recurso
    • Tipo de recurso:  Variável
    • Nome da API: checkedAccount
    • Tipo de dados: Definido pelo Apex
    • Classe do Apex: ExternalService__BankService_accountDetails
    • Disponibilidade fora do fluxo: Verifique tanto Disponível para entrada quanto Disponível para saída
  3. Clique em Concluído
  4. Crie um recurso para a segunda variável.
    • Tipo de recurso: Variável
    • Nome da API: notFoundAccount
    • Tipo de dados: Definido pelo Apex
    • Classe do Apex: ExternalService__BankService_errorModel
    • Disponibilidade fora do fluxo: Verifique tanto Disponível para entrada quanto Disponível para saída
  5. Clique em Concluído
Ação
  1. Na caixa de ferramentas, arraste o elemento Ação para a tela
  2. Altere Filtrar por para Categoria, selecione BankService e clique na caixa de pesquisa.
  3. Selecione getAccount
    • Rótulo: Conta-corrente
    • Nome da API: Check_account
    • Defina accountName: Name_on_Account
    • Marque Atribuir variáveis manualmente (avançada)
  4. Em Armazenar valores de saída:
    • >_200: CheckedAccount (variável definida pelo Apex)
    • >Exceção _404: notFoundAccount (variável definida pelo Apex)
  5. Clique em Concluído
  6. Conecte o elemento Atualizar registros ao elemento de ação Verificar conta.
  7. Salve o fluxo.

Recursos

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira