--- title: Integração do TOTVS Fluig com TOTVS iPaaS source: https://tdn.totvs.com/pages/viewpage.action?pageId=773513926 path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\Integrações\Integração do TOTVS Fluig com TOTVS iPaaS.md --- # Índice - 1 [Falando de integração do TOTVS Fluig com TOTVS iPaaS...](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-FalandodeintegraçãodoTOTVSFluigcomTOTVSiPaaS...) - 2 [Iniciando um diagrama TOTVS iPaaS pelo TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-IniciandoumdiagramaTOTVSiPaaSpeloTOTVSFluig) - 2.1 [Cadastrando o serviço no TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-CadastrandooserviçonoTOTVSFluig) - 2.2 [Chamando o serviço](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-Chamandooserviço) - 2.3 [Usando o TOTVS iPaaS para movimentar uma solicitação no TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-UsandooTOTVSiPaaSparamovimentarumasolicitaçãonoTOTVSFluig) - 2.4 [Cadastrando um aplicativo para comunicação com o TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-CadastrandoumaplicativoparacomunicaçãocomoTOTVSFluig) - 2.5 [Cadastrando o serviço SOAP do TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-CadastrandooserviçoSOAPdoTOTVSFluig) - 2.6 [Cadastrando o serviço da API Pública do TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-CadastrandooserviçodaAPIPúblicadoTOTVSFluig) - 2.7 [Adicionando uma conta OAUTH a API](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-AdicionandoumacontaOAUTHaAPI) - 2.8 [Criando um projeto e realizando a integração com o TOTVS Fluig](#IntegraçãodoTOTVSFluigcomTOTVSiPaaS-CriandoumprojetoerealizandoaintegraçãocomoTOTVSFluig) # Falando de integração do TOTVS Fluig com TOTVS iPaaS... --- O objetivo do TOTVS iPaaS é ser uma plataforma Low Code, feita para facilitar a construção e manutenção de integrações, para perfis de usuários com baixo aprofundamento técnico e também para usuários com grande experiência em desenvolvimento. O TOTVS Fluig permite a conexão com vários outros sistemas e entre elas o TOTVS iPaaS. É possível fazer a comunicação nas duas vias: associando uma integração do TOTVS iPaaS ou sendo acionado pelo TOTVS iPaaS para efetuar uma ação. Lembrando que a integração com o TOTVS iPaaS funciona de forma **assíncrona**, ou seja, o TOTVS Fluig envia os dados e **não espera um resultado**. Sendo assim, não deve ser usado em casos onde você precisa de algum tipo de retorno como um id ou uma mensagem de validação. Caso não conheça o TOTVS iPaaS, [clique aqui](https://tdn.totvs.com/x/HBkAHw) e saiba mais. # Iniciando um diagrama TOTVS iPaaS pelo TOTVS Fluig --- Com este exemplo, você será capaz de chamar o TOTVS iPaaS enviando dados fixos ou de campos do formulário. ## Cadastrando o serviço no TOTVS Fluig --- **01**. Primeiramente, precisaremos criar um diagrama. Para isso, vá em **Integrações**, selecione um projeto já existente ou crie um novo e então clique em **Criar diagrama**. Com o diagrama configurado no TOTVS iPaaS com o componente de início do tipo *webhook*, você deve copiar a url. O TOTVS Fluig é compatível com os dois tipos de autenticação: via token e via URL.  Você pode usar via URL quando tiver a necessidade de alterar essas chaves futuramente ou via autenticação quando quiser limitar um pouco mais o acesso ao serviço ou quando não quiser que a pessoa que cadastre o serviço tenha acesso a essa chave. ![](..\..\..\images\integra%C3%A7%C3%A3o%20fluig%20x%20ipaas.png) **02**. No TOTVS Fluig, acesse o **Painel de Controle** e no grupo **Desenvolvimento** acesse a opção **Serviços**. ![](..\..\..\images\painel%20de%20controle.PNG) **03**. Clique no botão **Novo Serviço**. ![](..\..\..\images\Novo%20servi%C3%A7o.PNG) **04**. Selecione o tipo de serviço **REST** e preencha os campos código e descrição conforme o tipo de integração. Lembre-se que você deve ter um cadastro de serviço para cada diagrama, então use um nome que seja significativo. ![](..\..\..\images\novo%20servi%C3%A7o%20rest.PNG) Há a possibilidade de fazer, como citado, o cadastro usando a autenticação via token. Neste caso, podemos cadastrar somente o domínio sem autenticação: ![](..\..\..\images\dominio.PNG) Ou ainda, podemos cadastrar o domínio e selecionar a autenticação “**custom**” informando “**apiKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx**” ![](..\..\..\images\dominio%20custom.PNG) ## Chamando o serviço --- Este código pode ser usado tanto em um dataset quanto em um processo. No nosso exemplo é uma atividade de serviço que manda dados do formulário para o TOTVS iPaaS. ``` var serviceName = 'connector-cadastro-centro-custos-rm'; //Caso não tenha informado a API KEY no cadastro de serviço, preencha na linha abaixo var apiKey = ''; //'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' //Neste objeto são os dados que são enviados para o TOTVS iPaaS. Neste exemplo, apenas um campo de formulário está sendo enviado. //Note: em Strings retornadas pelos nossos métodos (hAPI, getValue) deve ser adicionado a concatenação com uma String vazia (+ ''). //Caso não seja feito isso, o comando JSON.stringify retornará um erro. var data = { 'processId': hAPI.getCardValue("processId") + '' } // a partir daqui o código deve ser mantido var clientService = fluigAPI.getAuthorizeClientService(); var vo = { companyId : getValue("WKCompany") + '', serviceCode : serviceName, // código usado no cadastro do serviço endpoint : '', method : 'post', timeoutService: '3000', // timeout do serviço em ms, neste caso, 3 segundos. params : data , options : { encoding : 'UTF-8', mediaType: 'application/json' }, headers: { "Content-Type": 'application/json;charset=UTF-8' } }; if (apiKey) { vo.headers.apiKey = apiKey; } try { // O objeto data montado para realizar a requisição precisa ser convertido para um texto para ser enviado var result = clientService.invoke(JSON.stringify(vo)); if (result.getHttpStatusResult() >= 200 && result.getHttpStatusResult() < 300) { // o Connector funciona de maneira assíncrona então vai retornar um 202 (Accepted). log.info("connector retornou ok"); } else if (result.getHttpStatusResult() == 401) { log.info("Ocorreu um erro ao comunicar com o TOTVS iPaaS. Confira a URL do serviço e a API KEY utilizada"); throw "Error 401"; } else if (result.getHttpStatusResult() == 0 && result.getDescription() != null && result.getDescription().startsWith("ERROR CALLING SERVICE")) { log.info("Ocorreu um erro ao chamar o serviço. Confira se o serviço foi criado com o nome: " + data.serviceCode) throw "Error 404" } else { log.info("Ocorreu algum erro desconhecido") log.dir(result); throw "Error UNK"; } } catch (e) { throw "Ocorreu um erro. Entre em contato com a administração do fluig (" + e + ")"; } ``` ## Usando o TOTVS iPaaS para movimentar uma solicitação no TOTVS Fluig --- Com este exemplo, você será capaz de chamar o TOTVS Fluig através do TOTVS iPaaS enviando dados fixos ou os dados de entrada de um *webhook*. O TOTVS Fluig possui API’s do tipo SOAP e REST e ambas podem ser utilizadas, porém, por questões de autenticação, para movimentar uma solicitação é aconselhável usar a API SOAP.  Apesar do TOTVS iPaaS possuir conectores que permitem fazer apenas a configuração de variáveis, vamos mostrar como cadastrar ambos os tipos de serviço. ## Cadastrando um aplicativo para comunicação com o TOTVS Fluig --- **01**. No TOTVS IPaaS, acesse **Aplicativos** e em seguida **Cadastrar aplicativo**: ![](..\..\..\images\integra%C3%A7%C3%A3o%20fluig%20x%20ipaas%201.png) **02**. Preencha os dados: ![](..\..\..\images\integra%C3%A7%C3%A3o%20fluig%20x%20ipaas%202.png) Ao concluir o cadastro, você será redirecionado novamente para a tela de listagem de aplicativos.  ## Cadastrando o serviço SOAP do TOTVS Fluig --- No cadastro de aplicativos, selecione o aplicativo que você criou do TOTVS Fluig para incluir os serviços. Para os serviços SOAP, você pode visualizar todos os serviços disponíveis acessando o endereço do seu TOTVS Fluig e adicionando /services. Por exemplo, caso o seu TOTVS Fluig seja acessível através do endereço **https://empresa/** os serviços disponíveis estão listados em **https://empresa/**services. Para a movimentação de solicitações, vamos usar o SOAP de Workflow: **https://empresa/**webdesk/ECMWorkflowEngineService?wsdl. Para isso, na edição do aplicativo no TOTVS IPaaS, acesse Serviços e clique em cadastrar serviço. Preencha os dados selecionando o tipo de serviço como SOAP. ![](..\..\..\images\servi%C3%A7o%20SOAP.PNG) Avance para “Recursos” e informe o endereço “wsdl” do serviço, no caso **https://empresa/webdesk/ECMWorkflowEngineService?wsdl.** A importação leva alguns segundos que é o tempo necessário para que o TOTVS IpaaS valide o endereço e consiga trazer todos os dados desse serviço. Ao finalizar, você verá que todos os métodos do wsdl estão listados: ![](..\..\..\images\m%C3%A9todos%20wsdl.PNG) Para a lista completa dos serviços e dos recursos de cada serviço pode ser consultada em ## Cadastrando o serviço da API Pública do TOTVS Fluig --- No cadastro de aplicativos, selecione o aplicativo que você criou do TOTVS Fluig para incluir os serviços. Para os serviços da API Pública, você pode visualizar todos os serviços disponíveis acessando o endereço do seu TOTVS Fluig e adicionando /api-rest. Por exemplo, caso o seu TOTVS Fluig seja acessível através do endereço **https://empresa/** os serviços disponíveis estão listados em **https://empresa/****api-rest**. Para a movimentação de solicitações, vamos usar a api de Process Managemento SOAP de Workflow: **https://empresa/process-management/swagger-ui/** Para isso, na edição do aplicativo no TOTVS IPaaS, acesse Serviços e clique em cadastrar serviço. Preencha os dados selecionando o tipo de serviço como REST. Ao selecionar esta opção, irá pedir o Ambiente.  ![](..\..\..\images\servi%C3%A7o%20api%20p%C3%BAblica.PNG) Você pode selecionar um ambiente pré-cadastrado, ou adicionar selecionando a opção Cadastrar ambiente. A autenticação pode ser feita tanto por token quanto por OAUTH1, que é a forma que iremos abordar. Para as APIs públicas do TOTVS Fluig, você não deve informar apenas a URL, sendo necessário utilizar o que chamamos de “Base URL” da api. Neste caso, a URL ficaria **https://empresa/process-management/api.** Onde **https://empresa/** é o endereço da empresa e process-management/api é a Base URL da api do TOTVS Fluig.  Após preenchido as informações clique em Cadastrar.   ![](..\..\..\images\cadastrar%20servi%C3%A7o%202.PNG) Cada serviço do TOTVS Fluig tem um Base URL próprio, e pode ser consultado na página da própria API: ![](..\..\..\images\API.PNG) Nesta página também está o arquivo “*swagger.json*” que iremos usar para importar os recursos. No TOTVS iPaaS, avance para a parte de recursos e clique no botão importar recurso e informe a URL do arquivo *json* mencionado. A importação leva alguns segundos que é o tempo necessário para que o TOTVS iPaaS valide o endereço e consiga trazer todos os dados desse serviço. Ao finalizar, você verá que todos os métodos da API estão listados: ![](..\..\..\images\m%C3%A9todos%20API.PNG) Logo após, clique em **Concluir**. ## Adicionando uma conta OAUTH a API --- Ao contrário do SOAP que recebe o usuário e a senha a cada método, a API Pùblica se conecta através da autenticação OAUTH. Para utilizar essa autenticação é necessário cadastrar um aplicativo no TOTVS Fluig e configurar um usuário integrador, conforme essa [documentação](https://tdn.totvs.com/display/public/fluig/Fluig+API#FluigAPI-Cadastraraplicativonofluigapp). Após o cadastro, acesse na tela do aplicativo a parte de Contas e clique em Cadastrar Conta. ![](..\..\..\images\conta%20oauth%20e%20API.PNG) Selecione o ambiente da API e a autenticação como OAUTH1 e informe os dados de *consumer key, consumer secret, access token e token secret* conforme o cadastro realizado no TOTVS Fluig. ![](..\..\..\images\oauth%20e%20API%202.PNG) Logo após, clique em **Concluir**. ## Criando um projeto e realizando a integração com o TOTVS Fluig --- Acesso no TOTVS iPaaS o menu Integrações e acesse a opção **Projetos & Pacotes**. Você pode utilizar projetos já existentes ou clicar em criar um projeto novo. No projeto, crie um novo diagrama e preencha o nome e a descrição. Após selecionar o tipo de início do diagrama, na aba aplicativos selecione o aplicativo do TOTVS Fluig e arraste para o diagrama. Clique no ícone da engrenagem para habilitar a tela de configurações. Para o SOAP, dê um nome ao recurso, selecione o serviço e o recurso (por exemplo, *simpleStartProcess* para iniciar uma solicitação) e no campo **Conta**, mantenha a opção **Sem conta**, pois não é necessária essa configuração. Clique em **Avançar**, e na tela seguinte, já serão exibidos todos os dados aceitos pelo serviço. Basta informar os parâmetros necessários e clicar em **Concluir**. Em caso de dúvidas, acesse a documentação dos [webservices do TOTVS Fluig](../Utilização de Webservices/Documentação dos Web Services.md). Para API Pública, selecione o serviço e recurso (por exemplo, *Processes - /v2/processes/{{{processId}}}/start - Start request* para iniciar uma solicitação) e selecione a conta que será usada para a autenticação. Assim como no SOAP, na tela seguinte exibida todos os dados aceitos pelo serviço. Note que existem parâmetros *InPath* que são os itens da URL (neste caso, o *{{{processId}}}*) e os parâmetros *InBody* que são os dados do “corpo” da requisição. Em caso de dúvida sobre os parâmetros, você pode acessar também a documentação das [API’s do TOTVS Fluig](https://api.fluig.com/latest/index.html).