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:
-
Ficha Funcionário – FopFuncData
- Método: SaveRecord
- 📄 Documentação
-
Ficha Dependentes – FopDependData
- Método: SaveRecord
- 📄 Documentação
⚠️ 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 = :CODCOLIGADAConsulta 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:
- Acesse: https://tcloud.totvs.com.br/dashboard
- Vá em Segurança → Produto relacionado → Adicionar país/IP → Aplicar
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 erro | Relação de campo | Ação | Contexto |
|---|---|---|---|
| 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 CODFUNCAO | Cliente ajustar a lotação para que esteja livre para contratar alguém | Nesses 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."}}} | CODFUNCAO | Verificar 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. | CODFILIAL | Verificar se o código da filial está preenchido | — |
| Cannot set column 'COMPLEMENTO'. The value violates the MaxLength limit of this column. | COMPLEMENTO | Complemento do endereço está maior que o esperado, precisa cortar em 60 caracteres | — |
Updated about 3 hours ago
