O que você de TI deve saber

📘 Padrão de Envio para a RM TOTVS

🔄 Integração via Webservices

A RM TOTVS realiza integrações via webservices padrão, com troca de dados em formato XML.

Para esta integração, são utilizados dois DataserverName:

⚠️ Caso o cliente opte por desenvolver um webservice customizado, será necessário contratar um fluxo de integração específico para esse modelo.


🛠️ Requisitos para Conexão

O cliente deve disponibilizar os seguintes itens:

  • Configuração e exposição dos serviços na internet

    • Caso o cliente não permita exposição pública, deve liberar acesso para IPs específicos.
    • Em caso negativo, será necessário utilizar o modelo de integração customizado.
  • URLs dos webservices Exemplo: https://xpto.rm.cloudtotvs.com.br:8051/wsDataServer/IwsDataServer

  • Usuário e senha para autenticação no webservice


🔑 Chapa Automática no RM

Se o cliente utilizar chapa automática, deve liberar uma chamada para consultar a última chapa registrada na PFUNC.

Exemplo de requisição SOAP:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
  <soapenv:Header />
  <soapenv:Body>
    <tot:RealizarConsultaSQL>
      <tot:codSentenca>TBC.01</tot:codSentenca>
      <tot:codColigada>0</tot:codColigada>
      <tot:codSistema>P</tot:codSistema>
      <tot:parameters>CODCOLIGADA=1</tot:parameters>
    </tot:RealizarConsultaSQL>
  </soapenv:Body>
</soapenv:Envelope>

🔑 Motivo

No processo padrão do RM, se ocorrer erro na integração, o sistema pode pular sequências de chapa, gerando lacunas. Para evitar isso, nossa integração pode buscar a última chapa e somar +1 automaticamente.

Consulta SQL padrão:

SELECT MAX(CHAPA) AS CHAPA
FROM PFUNC
WHERE CODCOLIGADA = :CODCOLIGADA

Consulta SQL com zeros à esquerda:

SELECT RIGHT('00' + CAST(MAX(CHAPA) AS VARCHAR), 6) AS CHAPA
FROM PFUNC
WHERE CODCOLIGADA = 1;

➡️ Se o cliente preferir, é possível manter o gerador automático do RM ou adotar chapa manual.


⚙️ Habilitação do WSDataServer

Tutorial oficial: Como habilitar Webservice via RM Host


🌍 Liberação de País/IP

O cliente deve garantir que os países de hospedagem dos servidores do nosso barramento estejam liberados no RM (no caso de Cloud TOTVS).

Pode ser configurado via Tcloud:

Também é possível solicitar via ticket ao suporte Cloud TOTVS.

⚠️ Importante: nossos servidores estão hospedados na Alemanha.


⚠️ Principais erros na integração RM TOTVS

Mensagem de erroRelação de campoAçãoContexto
Não é possível alocar esta pessoa pois o limite de vagas definido em 'LOTACAO' será superado em '1' pessoa(s) e a opção de admissões excedentes não foi habilitada.CODSECAO e CODFUNCAOCliente ajustar a lotação para que esteja livre para contratar alguémNesses casos é como se a posição já estivesse preenchida. Essa é uma regra do RM do cliente. Então ou libera a posição ou remove a regra no RM.
{"Envelope":{"Body":{"SaveRecordResponse":{"SaveRecordResult":"Violação de chave estrangeira ... The INSERT statement conflicted with the FOREIGN KEY constraint "FKPFUNC_PFUNCAO". The conflict occurred in database "CorporeRM", table "dbo.PFUNCAO". The statement has been terminated."}}}CODFUNCAOVerificar se a função existe na baseÉ comum se deparar com erro que começa com “Violação de chave estrangeira / Possíveis causas” no RM TOTVS. Importante verificar o response completo para entender onde foi o erro. Geralmente aparece “dbo.NOME_CAMPO”. No exemplo, “dbo.PFUNCAO” indica função/código de função. Também pode aparecer “dbo.GAGENCIA”, que está relacionado à agência bancária.
Column 'CODFILIAL' does not allow nulls.CODFILIALVerificar se o código da filial está preenchido
Cannot set column 'COMPLEMENTO'. The value violates the MaxLength limit of this column.COMPLEMENTOComplemento do endereço está maior que o esperado, precisa cortar em 60 caracteres