Integração Salesforce com WSO2

Atualizado: 22 de Mai de 2019

Um dos casos de usos mais comuns de integração com WSO2 é exatamente usar a plataforma como ferramental de integração com Salesforce.


O Conector Salesforce que vem na plataforma não tem custo adicional, este pode executar a todas as funcionalidades expostas pelas APIs SOAP e REST da Salesforce.


Caso de Uso ( Prova de Conceito)


Um cliente demandou um pequeno cenário, que achamos interessante publicar aqui para vocês:

  1. Criar um Objeto Customizado no Salesforce (Um novo sObject)

  2. Listar os resultados (Query)

  3. Inserir com REST (POST create)

Implementação


Neste caso, nossa arquitetura foi desenhada da seguinte forma:



Arquitetura de Solução

Vamos focar inicialmente apenas na parte de Integração, que está na solução: WSO2 Enterprise Integrator.


Ferramental Usado


Salesforce Conta de Desenvolvimento

Usamos uma conta de desenvolvedores da Salesforce, toda pessoa pode ter acesso a uma pelo que entendemos. Nas documentações da Salesforce, você encontra cobertos todos esses passos, por sinal, a plataforma Salesforce é super interessante e poderosa. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_dev_org.htm


Criamos um Objeto customizado chamado: Agency. (Agência da Bancos), veja a definição deste na interface do próprio Salesforce:


Nova Agência Objeto Customizado

Novas Agência Objeto Customizado

WSO2

Usamos a distribuição binária(zip) do WSO2 Enterprise Integrator 6.4.0, que pode ser feito o download de sua versão "comunidade"(1) do Portal da WSO2. https://wso2.com/integration/ .

(1) - Comunidade é a versão sem os updates para clientes, estes só tem direito os clientes que possuem a subscrição Enterprise da WSO2.


Além do Binário que deverá ser executado, também tivemos que instalar o Developer Studio, que é a ferramenta de desenvolvimento da WSO2, nela, é onde vamos usar os conectores, para quando conectados, (assim como blocos), possam proporcionar a integração mais fácil e produtiva possível.



Interface do WSO2 Dev Studio

Pronto! O ferramental necessário está disponível.


Entendendo a Dinâmica da Integração


Poderíamos realizar esta integração diretamente no WSO2 API Manager, porém, podem não ser conveniente misturar as exposições de APIs com "Integrações" propriamente ditas, a não ser, que isto seja extremamente necessário. Além do que, no WSO2 Enterprise Integrator, é possível você criar todas as APIS com total flexibilidade e liberdade para o uso de seus componentes(mediadores). Este post cobrirá os aspectos 100% apenas no WSO2 Enterprise Integrator.


Conector Salesforce WSO2 Enterprise Integrator


A WSO2 dispõe uma loja com uma variedade imensa de conectores, extensões, implementações de exemplo, veja aqui esta loja: https://store.wso2.com/store/pages/top-assets :


Loja de Conectores e Extensões da WSO2

Nesta loja, é possível encontra extensões de conectores para a ferramenta de Integração, como : Blockchain(Etherium), Splunk, SAP, Office365, AS/400, Amazon Lambda, Amazon SQS etc. Além de extensões para a ferramenta de gestão de identidade e single sign-on da WSO2: Identity Server. Ainda com extensões para o motor de Analytics WSO2 Stream Processor e por últimos alguns cenários de negócios implementados.


Se você pesquisar por Salesforce, irá encontrar alguns conectores :


Conectores da família Salesforce (Integração / ESB )

Indo direto ao ponto deste post, vou chamar atenção para dois conectores:


a) SalesforceRest ( O qual estamos usando) : Ele é construído sobre a API REST do SFDC, que para nós pareceu muito mais conveniente.


b) Salesforce : Este conector usa as APIs SOAP do Salesforce, se você por alguma razão precisar deste modelo, este é o conector a usar.


Construção de Nossa API no WSO2 Enterprise Integrator


Para que fique simples de entender: No WSO2 API Manager você expõe, e no WSO2 Enterprise Integrator você pode construir seus "serviços"e "backends". Em nosso caso, ao invés de programar, ter que criar códigos, aprender a API do SFDC, nós vamos apenas criar um fluxo onde apenas com configurações, tudo que é necessário será construído.


Nossa API terá o seguinte formato:

a) http://server/api/sfdc/agencies GET e POST , onde via GET iremos devolver os dados, e via POST vamos inserir uma nova agencia.


Então no WSO2 Enterprise Integrator nosso fluxo inicial terá 2 resources:


Resources (GET e POST)

Em cada uma das raias, nós implementaremos o fluxo do GET e do POST do recurso "/agencies".


Construção dos Fluxos


No fluxo de busca de Agencias, basicamente o que temos que fazer é ter 2 operações:


  1. Conectar Salesforce

  2. Query de pesquisa aos objetos


Veja o fluxo abaixo:

Configurações dos 2 Componentes Salesforce

Basicamente na "caixinha" init, nós inicializamos a conexão salesforce, e na query, nós informamos o que gostaríamos de ter como retorno, neste caso:

select Name, Address__c, Type__c from Agency__c


Você pode usar uma semântica, similar ao SQL dentro das pesquisas SFDC.


Ao realizar o deploy deste fluxo com a implementação parcial até este momento, nós temos o seguinte comportamento:

Retorno da API GET /agencies

Agora vamos implementar o fluxo de inserção, o qual usaremos o método POST como nosso comando de invocação do serviço. Se vamos ter um POST, então os dados serão passados no body da requisição, ou seja, será o nosso Payload, esta informação é o que usaremos para capturar os campos e gravar no objeto Agency que criamos anteriormente.



Fluxo de Inserção de Registros

No fluxo acima, temos as seguintes atividades sendo executadas, vamos ver o que é feito nestes 5 passos:


1 - Neste passo, nós capturamos as variáveis JSON enviadas e as guardamos em propriedades.

2 - Os fluxos de integrações são sequências, e estas por sua vez, podem ser re-usadas, no caso, criamos uma sequence que gerencia toda a conexão com Salesforce, para ser apenas 1 ponto de alteração e uso em todos os fluxos e recursos.

3 - Com apenas um componente salesforce, neste caso o Create, nós passando os atributos que chegam no payload JSON, este já se encarrega por todo o trabalho. Abaixo a configuração deste componente, onde você precisa passar qual o objeto Salesforce (sObjectName) e quais os dados (campos e valores): fieldAndValue :

4 - Para que fique um retorno amigável para o cliente, queremos adicionar uma mensagem com retorno de acordo, para isso usamos um PayloadFactory, que é um mediador que como o nome diz: Cria Payloads.

5 - Envia a resposta.


Veja o teste da inserção:


HTTP 201 - Created - Registro Criado com Sucesso

Para conferir, segue aqui no SFDC:


Nova Agencia criada - Moinhos de Vento :)

Conclusão


Este foi um post overview, para demonstrar as capacidades da plataforma de Integração WSO2, estas facilidades são similares em todos os conectores, mesmo SAP, Google, Office365 etc. Sabemos que existem várias soluções super interessantes, o que pode chamar atenção para uso do WSO2 Enterprise Integrator podem ser fatores como:

  • Se você tem suporte por Cores de qualquer produto WSO2, também já tem suporte do WSO2 Enterprise Integrator

  • TCO - Extremamente econômico, quando comparado a outras soluções similares.

  • Level e aderente a toda e qualquer prática de DevOps

Se você gostou do material e gostaria de ver uma demonstração prática da plataforma, fale com a gente aqui.


Se você quer aprender o WSO2 Enterprise Integrator, 100% gratuito, acesso nosso treinamento online provido para Skalena, onde nossos cursos já tiveram mais de 600 participações:


https://skalena.thinkific.com/courses/wso2-integrator-fundamentals


#VamoQueVamoEVamoComTudo


ps- Próximo post no forno, sobre o profile BPS (BPM com WSO2) . Até lá!



152 visualizações
LINKS RÁPIDOS
OPERAÇÕES

 

Belo Horizonte - MG

Rua Alessandra Salum Cadar, 415

Sala 503 - Buritis - 30575-190

SOCIAL
  • Twitter - White Circle
  • White Facebook Icon
  • White LinkedIn Icon

© 2018  skalena - Todos os direitos reservados