Loading
Estender o Salesforce com cliques, não com código
Índice
Selecionar filtros

          Sem resultados
          Sem resultados
          Aqui estão algumas dicas de pesquisa

          Verifique a grafia das palavras-chave.
          Tente utilizar termos mais genéricos.
          Selecione menos filtros para ampliar sua pesquisa.

          Pesquisar em toda a Ajuda do Salesforce
          Usar o Apex para criar uma chamada a um serviço externo

          Usar o Apex para criar uma chamada a um serviço externo

          Projete e teste a automação que envia as informações do usuário do Salesforce ao sistema bancário do funcionário externo. Usando os exemplos fornecidos, crie as variáveis para números de telefone do usuário e combine diferentes números de telefone em um dado. Em seguida, use a ação de serviço externo para criar o usuário.

          Edições obrigatórias

          Disponível em: Lightning Experience
          Disponível em: Edições Enterprise, Performance, Unlimited e Developer
          1. Definir uma credencial nomeada
            Para este exemplo simplificado, use credenciais nomeadas "legadas". Em vez de clicar em Novo, selecione Novo legado no menu suspenso ao lado do botão Novo. Para a credencial nomeada que sua organização usa para acessar o sistema bancário, atribua o rótulo Bank. Atribua um URL de espaço reservado, como https://api.example.com. Use example.com, pois você colará o esquema no horário de registro, em vez de usar um URL para apontar uma especificação de API.

            Caso você use um URL, o URL da credencial nomeada corresponde ao host declarado da especificação da API e um dos esquemas do protocolo de transferência ou protocolos URL. O URL pode apontar para um ponto de extremidade diferente, desde que hospede o mesmo serviço externo. O caminho de base é adicionado ao URL da credencial nomeada na chamada.

          2. Registre o serviço externo do sistema bancário do funcionário usando as etapas descritas em Registrar um serviço externo como guia. Use o nome BankService e a credencial nomeada Bank e copie o esquema do "Exemplo de especificação da API de serviços externos 2", encontrado no tópico Esquema da OpenAPI 2.0 de serviços externos.
          3. Criar a classe do Apex BankService:
            
                        public class BankService {
            }
                      
          4. Para armazenar os detalhes do usuário, adicione uma variável de membro:
            public class BankService {
             private ExternalService.BankService_z0User user;
            }
          5. Para inicializar um usuário vazio com uma lista de telefones vazia, adicione um método:
            public class BankService {
                private ExternalService.BankService_z0User user;
            
             private void setEmptyUser() {
                    if (this.user == null) {
                        this.user = new ExternalService.BankService_z0User();
                        this.user.phones = new List<ExternalService.BankService_Phone>();
                    }
                }
            }
          6. Para atribuir o valor de telefone comercial, adicione um método:
            public class BankService {
                private ExternalService.BankService_z0User user;
            
                public void setWorkPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Work';
                    this.user.phones.add(phone);
                }
            
                private void setEmptyUser() {
                    if (this.user == null) {
                        this.user = new ExternalService.BankService_z0User();
                        this.user.phones = new List<ExternalService.BankService_Phone>();
                    }
                }
            }
          7. Para atribuir o valor de telefone celular, adicione um método:
            public class BankService {
                private ExternalService.BankService_z0User user;
            
                public void setWorkPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Work';
                    this.user.phones.add(phone);
                }
            
             public void setCellPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Cell';
                    this.user.phones.add(phone);
                }
            
                private void setEmptyUser() {
                    if (this.user == null) {
                        this.user = new ExternalService.BankService_z0User();
                        this.user.phones = new List<ExternalService.BankService_Phone>();
                    }
                }
            }
          8. Para atribuir um usuário, adicione um método:
            public class BankService {
                private ExternalService.BankService_z0User user;
            
             public void setUser(Integer userId, String userName) {
                    setEmptyUser();
                    this.user.id = userId;
                    this.user.name = userName;
                }
            
                public void setWorkPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Work';
                    this.user.phones.add(phone);
                }
            
                public void setCellPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Cell';
                    this.user.phones.add(phone);
                }
            
                private void setEmptyUser() {
                    if (this.user == null) {
                        this.user = new ExternalService.BankService_z0User();
                        this.user.phones = new List<ExternalService.BankService_Phone>();
                    }
                }
            }
          9. Crie uma classe de exceção personalizada, pois você não pode gerar exceções integradas do Apex.
            Public class BankServiceException extends Exception{}

            Para obter mais informações, consulte Criar exceções personalizadas no Guia do desenvolvedor do Apex.

          10. Para criar usuários no sistema bancário externo, adicione um método para chamar o BankService externo:
            public class BankService {
                private ExternalService.BankService_z0User user;
            
                public void createUser() {
                   if (this.user == null || this.user.id == null) {
                       throw new BankServiceException('Set the user to create first');
                   }  
            
                   ExternalService.BankService bankService = new ExternalService.BankService();
                   try {
                       ExternalService.BankService.postUsers_Request request = new ExternalService.BankService.postUsers_Request();
                       request.z0user = this.user;
                       bankService.postUsers(request); 
                   } catch (ExternalService.BankService.postUsers_ResponseException e) {
                       throw new BankServiceException('Couldn\'t create user with ID: ' + this.user.id);
                   }
               }
                public void setUser(Integer userId, String userName) {
                    setEmptyUser();
                    this.user.id = userId;
                    this.user.name = userName;
                }
            
                public void setWorkPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Work';
                    this.user.phones.add(phone);
                }
            
                public void setCellPhone(String phoneNumber) {
                    setEmptyUser();
                    ExternalService.BankService_Phone phone = 
                        new ExternalService.BankService_Phone();
                    phone.phone = phoneNumber;
                    phone.typeofphone = 'Cell';
                    this.user.phones.add(phone);
                }
            
                private void setEmptyUser() {
                    if (this.user == null) {
                        this.user = new ExternalService.BankService_z0User();
                        this.user.phones = new List<ExternalService.BankService_Phone>();
                    }
                }
            }
          11. Abra o console do desenvolvedor e depure chamando o BankService com alguns valores de amostra com um snippet de código em uma classe de execução anônima. Abra os logs de depuração e compare-os com este exemplo de log de chamada:
            BankService bankService = new BankService();
            bankService.setWorkPhone('1234567890');
            bankService.setCellPhone('0987654321');
            bankService.setUser(1234, 'Maria');
            bankService.createUser();
           
          Carregando
          Salesforce Help | Article