willian.eti.br
Todos os artigos
Integração NODE.JS Com TOTVS RM
Foto por Taylor Vick · Unsplash · Unsplash License
RM

Integração NODE.JS Com TOTVS RM

Willian Silva··2 min de leitura

Abaixo está um exemplo de como integrar o NODE.JS com o TOTVS RM.

Você deverá ajustar a URL do seu webservice e também o campo senha, que deverá ser um valor convertido em base64.

Por exemplo, se sua senha é 123456 você deverá converter em base64 que seria esta hash: MTIzNDU2

Você pode utilizar esta ferramenta para gerar o hash da sua senha: Ferramenta Base64 Online. Ou se preferir pode utilizar algum outro meio para gerar esta informação sem expor o registro na internet.

No exemplo abaixo estão dois pontos de acesso para o webservice, sendo um deles a opção de acessar o READVIEW ou READRECORD de um Webservice SOAP do RM.

Você deverá salvar este conteúdo em um arquivo como: app.js e em seguida rodar o comando node app.js , o resultado das consultas irão aparecer no terminal em que você executou o comando.

ReadView

const express = require('express')
const axios = require('axios')
const app = express()
const cors = require('cors')
 
app.listen(3333)
 
app.use(cors())
app.get('/teste_readview', (req,res)=>{   
  console.log('1')
 
 
  let sr = `
  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:ReadView>
         <!--Optional:-->
         <tot:DataServerName>FinCFODataBR</tot:DataServerName>
         <!--Optional:-->
         <tot:Filtro>FCFO.CGCCFO='123456'</tot:Filtro>
         <!--Optional:-->
         <tot:Contexto>codcoligada=1;codusuario=mestre</tot:Contexto>
      </tot:ReadView>
   </soapenv:Body>
</soapenv:Envelope>` ;
     
    axios.post('http://localhost:8054/wsDataServer/IwsDataServer', sr,{
                  
            headers: {
              'Access-Control-Allow-Origin': '*',
              'Content-Type': 'text/xml; charset=utf-8',
              'Authorization': 'Basic SENHAEMBASE64',
                SOAPAction:
                    'http://www.totvs.com/IwsDataServer/ReadView'
            }
}).then(function(response){
        console.log('success')
        console.log(response.data)
        console.log(response.headers)
        console.log(response.status)
    }).catch(function(error){
        if(error){
          console.log('1')
            console.log(error)
        }
    })
    
    return res.json({teste:1})
}) 

readview - nodejs

ReadRecord

const express = require('express')
const axios = require('axios')
const app = express()
const cors = require('cors')
 
app.listen(3333)
 
app.use(cors())
app.get('/teste_readrecord', (req,res)=>{   
  console.log('1')
 
 
  let sr =
  '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">'+
'<soapenv:Header/>'+
'<soapenv:Body>'+
'<tot:ReadRecord>'+
'<tot:DataServerName>FinCFODataBR</tot:DataServerName>'+
'<tot:PrimaryKey>1;1</tot:PrimaryKey>'+
 '<tot:Contexto>codcoligada=1;codusuario=mestre</tot:Contexto>'+
'</tot:ReadRecord>'+
'</soapenv:Body>'+
'</soapenv:Envelope>';
 
     
    axios.post('http://localhost:8054/wsDataServer/IwsDataServer', sr,{
                  
            headers: {
              'Access-Control-Allow-Origin': '*',
              'Content-Type': 'text/xml; charset=utf-8',
              'Authorization': 'Basic SENHAEMBASE64',
                SOAPAction:
                    'http://www.totvs.com/IwsDataServer/ReadRecord'
            }
}).then(function(response){
        console.log('success')
        console.log(response.data)
        console.log(response.headers)
        console.log(response.status)
    }).catch(function(error){
        if(error){
          console.log('1')
            console.log(error)
        }
    })
    
    return res.json({teste:1})
}) 

read-record node.js

Tags

RM