Árvore de páginas

ÍNDICE

01. VISÃO GERAL

Este documento de referência tem como objetivo explicar o funcionamento da integração do Protheus com o Suricato, desde a configuração dos parâmetros necessários e os WebServices envolvidos na integração, basicamente eles são os mesmos utilizado pelo TSA.

02. PARÂMETROS

Antes da configuração dos parâmetros, será necessário já possuir o Suricato instalado e configurado, pois existe um parâmetro que deve ser preenchido com o endereço do servidor onde se encontra o Suricato. Informações sobre o Suricato podem ser obtidas através de contato com a parceira mantenedora do produto, através de abertura de ticket.

ParâmetroDescriçãoExemplo de utilização
MV_TSREPDefine se haverá integração entre o modulo SIGAPON e o aplicativo Suricato. .T.
MV_TSASERVEndereço IP ou nome do servidor da instalação do aplicativo Suricato.  10.0.0.90:8080/tsa-ejb
MV_TSANDIADefine o Número de dias anteriores a data do sistema para que seja feito o sincronismo dos funcionários demitidos. 30
MV_TSATLOGDefine qual será o tipo de envio do Log de erros da integração do módulo Ponto Eletronico X Aplic. Suricato
(0=Não Gera, 1=E-mail, 2=Arquivo, 3=Ambos, 5=SaveXML).
3
MV_TSADARQDefine o nome do diretório onde serão gravados os arquivos de Log de erros gerados da integração do módulo Ponto Eletrônico X Aplicativo TSA. \logwsrhtsa\
MV_TSAIURBHabilita a integração do crachá do funcionário com o Suricato. .T.
MV_TSAMAILEndereço de E-mail para recebimento de mensagens do Log de integração. Caso esteja em branco o e-mail não é enviado. [email protected]
MV_TSAINTIdentifica se a integração será realizada com o TSA ou Suricato. .T. = TSA, .F. = Suricato.F.
MV_APISURDefine se a integração do Suricato com o Protheus ocorre por API (.T.) ou direto no banco (.F.)  .F.
MV_TSADTADDefine se na transferência o sistema utilizara a data de admissão ou a data da transferência para a tag HiringDate. .T.=Dt Adm,.F.=Dt Transf .F.

Atenção:

Configuração necessária para envio de e-mail

MV_RELACNT - Conta utilizada para envio do e-mail
MV_RELSERV - Endereço do servidor de e-mail
MV_RELPSW - Senha da conta utilizada para envio do e-mail
MV_RELAUSR - Usuário de autenticação de e-mail
MV_RELAPSW - Senha do usuário de autenticação de e-mail
MV_RELFROM - Endereço de e-mail que ira disparar o e-mail
MV_RELAUTH - Faz autenticação no servidor de e-mail

MV_TSATLOG

  1. Quando o parâmetro estiver com a opção 1, só será enviado o e-mail com o log se houver erros de integração.
  2. Quando o parâmetro estiver com a opção 2, só será gerado o log (arquivo txt) no diretório definido no parâmetro MV_TSADARQ se houver erros de integração.
  3. Quando o parâmetro estiver com a opção 3, só será enviado o e-mail e gerado o log (arquivo txt) se houver erros de integração.
  4. Quando o parâmetro estiver com a opção 5 o sistema irá gerar o xml de envio e retorno na pasta system, essa opção é útil para analisar erros, porém consome muito espaço em disco, por isso é importante ativá-lo para realizar o teste necessário e logo depois desativá-lo. Quando ativo o sistema sempre irá gerar o XML na pasta system, independentemente se houve erro ou não na integração. Além disso, se houver erros na integração será gerado o arquivo de log de erro (arquivo txt) no diretório definido no parâmetro MV_TSADARQ e será enviado o e-mail com o log.
    Nome dos arquivos XMLs gerados:
    "Numero Sequencial"_SND.XML → XML enviado ao Suricato
    "Numero Sequencial"_RCV.XML → XML recebido do suricato como retorno do XML SND

03. PORTARIA 671

Com a portaria 671/2021 surgiu a necessidade de realizar 2 alterações no Protheus, para que o sistema consiga realizar corretamente a integração de marcações vindas do Suricato.

A primeira alteração foi a estrutura da tabela que armazena as marcações (RR1 ou MSA_CONTROL_MARCAC).
A segunda alteração foi a API recordClockMarkings, ela foi atualizada para receber os novos campos da Portaria 671/2021.

Observação

A utilização da API recordClockMarkings é apenas para as marcações serem integradas na RR1. Caso a integração das marcações seja feita via banco de dados, utilizando a MSA_CONTROL_MARCAC, o processo continuará o mesmo, porém será necessário a criação dos novos campos.

03.1 CAMPOS DA TABELA RR1/MSA_CONTROL_MARCAC

RR1

Caso a tabela responsável por armazenar as marcações seja a RR1 será necessário a execução do UPPDISTR para a atulização da tabela, para isso baixe o último pacote da Expedição Contínua do RH.

Após a execução do UPPDISTR os seguintes campos serão criados na tabela RR1:

X3_CAMPOX3_TIPOX3_TAMANHOX3_TITULOX3_DESCRIC
RR1_FUSO  C5Fuso HorárioFuso horário da marcação
RR1_CODCPFC11CPFCPF do funcionário
RR1_VRSLAYN3Vers. LayoutVersão do Layout
RR1_INSCR C14Inscr. EmpCNPJ ou CPF do empregador

MSA_CONTROL_MARCAC

Se a tabela utilizada for a MSA_CONTROL_MARCAC, além da execução do UPPDISTR será necessário a compilação do pacote de fontes da última Expedição Contínua. Após a execução do pacote de dicionários será criada a pergunta "Atualiza Tabela MSA"? na rotina de Carga Inicial (PONM430). Esta pergunta será responsável para dizer se o sistema deve ou não atualizar a MSA_CONTROL_MARCAC com os novos campos. A pergunta terá apenas 2 respostas 1 - Sim e 2 - Não, caso seja preenchida com 1 - Sim, o sistema irá criar o novos campos da MSA_CONTROL MARCAC, caso ela esteja preenchida com não, o sistema não irá atualizar a tabela.

X1_GRUPOX1_ORDEMX1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_DEF01X1_DEF02X1_HELP
PONM43004"Atualiza Tabela MSA"?N1MV_PAR041 - Sim2 - Nao.PONM43004.

Com a pergunta preenchida com Sim as demais perguntas podem ficar em branco, o sistema irá desconsiderar as demais perguntas e a execução da rotina será exclusivamente para a criação dos novos campos na MSA_CONTROL_MARCAC. 

Caso a tabela MSA_CONTROL_MARCAC exista no banco de dados, ao executar a rotina de Carga Inicial (PONM430) preenchendo apenas a pergunta "Atualiza Tabela MSA"? com sim será realizada a criação dos novos campos.

Caso a tabela MSA_CONTROL_MARCAC não exista no banco de dados, ao executar a rotina de Carga Inicial (PONM430), preenchendo apenas a pergunta "Atualiza Tabela MSA"? com sim será realizada a criação da tabela com os novos campos.

Após a execução da rotina, os novos campos serão criados.

ColunaTipoTamanho
COD_FUSOvarchar5
COD_CPF_FUNCvarchar11
NUM_VERS_LAYOUT_AFDint3
COD_INSCR_EMPvarchar14

03.2 ALTERAÇÃO DA API RECORDCLOCKMARKINGS

A API recordClockMarkings, foi alterada para receber, validar e salvar os dados nos novos campos da RR1. Se as marcações a serem integradas forem referentes a Portaria 671, antes de consumir a API será necessário validar se os novos campos, mencionados anteriormente, já foram criados no Protheus. Para isso foi criada uma nova API que irá dizer para o Suricato se o Protheus já possui os novos campos e se poderá ser utilizado os mesmo na API RecordclockMarkings.

RECORDVALIDATEDVERSION
A API RecordValidatedVersion irá verificar no sistema se os novos campos foram criados, respeitando o conteúdo do parâmetro MV_APISUR. Se o parâmetro MV_APISUR estiver configurado com .T. (integração via API) o sistema irá verificar a tabela RR1, nos casos onde o parâmetro estiver com .F. será verificada a tabela MSA_CONTROL_MARCAC

Para mais informações sobre a API, acesse o link abaixo:
DT API recordValidatedVersion.

Após validar se o sistema possui os novos campos, bastar utilizar a API RecordclockMarkings, informando os novos campos como o exemplo abaixo:

{
    "items": [
                {
                    "codRelogioExtChave": "",
                    "codFuncMsa": "003651",
                    "codNsr": 1,
                    "codPisMsa": "022036983234",
                    "datMarcacAces": "2022-11-01 09:00:00.000",
                    "numHorarMarcacAces": 32400,
                    "codRep": "00000000000000123",
                    "codUnidExtChave": "T1D MG 01",
                    "codUsuarExtChave": "T1D MG 01 003651",
                    "codFuso": "-0300",
                    "codCPF": "16046091098",
                    "numVersLayout": 3,
                    "inscrEmp": "11456156000111"
                }
        ]
}

04. CADASTRO DO RELÓGIO

Para efetuar a leitura de marcações a partir do Suricato, deve-se alterar o cadastro do relógio e informar o conteúdo “R” no campo Tipo Arquivo (P0_TIPOARQ). Ao iniciar o processo de leitura de marcações, a rotina irá buscar os registros da tabela MSA_CONTROL_MARCAC de determinada data de/até que contém o campo LOG_IMPORT_PRODUT = 0.

Atenção: A leitura de marcações somente irá funcionar se a tabela MSA_CONTROL_MARCAC estiver cadastrada no mesmo banco de dados do Protheus.

Observações

1 - Para que as marcações salvas na MSA sejam processadas corretamente, o código do REP, no cadastro do Protheus, deverá ser o mesmo código salvo no campo COD_REP na tabela MSA. Por exemplo se o Suricato salvar o código "5001030033938" no campo COD_REP da MSA, o Campo REP do cadastro de relógio do Protheus deverá ser salvo com o conteúdo "5001030033938".

2 - Com a portaria 671 é necessário informar o tipo do REP (1510, REP-A, REP-C e REP-P). Para um relógio do Suricato teremos apenas duas opções, 1510 e REP-C, em ambos os tipos os sistema irá identificar o funcionário pelo PIS ou CPF da marcação por ser um relógio do Suricato, por este motivo qualquer uma das opções são válidas no cadastro do relógio, porém é necessário verificar qual o tipo do REP do Suricato e preencher corretamente o cadastro do relógio.

Exemplo de configuração dos campos no Cadastro de Relógios para integração de marcações no Suricato:

05. CONFIGURAÇÃO DO SCHEDULE

Após o cadastro do relógio, é possível realizar a configuração do Schedule para que a rotina de Leitura e Apontamento seja executada de tempos em tempos. Desta maneira todas as marcações que foram integradas serão processadas pelo Protheus. O processo também pode ser realizado de forma manual, para isso acesse a rotina de Leitura Apontamento em SIGAPON → Miscelanea → Cálculos → Leitura/Apontamento Marcações, preencha os parâmetros informando o código do relógio cadastrado anteriormente e execute a rotina.

Para a configuração do Schedule, será necessário acessar o Configurador (SIGACFG). Após acessar o configurador acesse Ambiente → Schedule → Schedule.

Na tela seguinte inicialmente será necessário cadastrar um Agent. O Agent é responsável por gerenciar e distribuir as tarefas a serem executadas. 

Clicando no primeiro ícone à direita, o sistema irá criar um Agent para cada grupo de empresas automaticamente.

Após a criação do Agent, precisaremos criar um Execute, que são os componentes responsáveis por realizar a chamada das rotinas agendadas.

Preencha a rotina com PONM010 (Leitura e Apontamento), e posteriormente preencha os parâmetros informando o código do relógio cadastrado anteriormente. 

Iremos agora selecionar a periodicidade em que a rotina será executada, as imagens abaixo são um exemplo de um cadastro que será executado 24 vezes por dia, a cada 1 hora, todos os dias da semana, começando no dia 05/10/2020 e sem data de término.

Confirme e salve o agendamento. O próximo passo é colocar todos os serviços cadastrados para serem executado. Para isso clique em Schedule e clique em "Iniciar todos os serviços", depois em Agent "Iniciar todos os serviços".

Após todo este processo de cadastro o Schedule já está sendo executado. É possível acompanhar o resultado da execução clicando em Agendamentos e depois em monitor.

Para mais informações sobre o Cadastro do Schedule, acesse o link da documentação que está no final desta página. Na seção Links.

06. INTEGRAÇÕES REALIZADAS ENTRE OS PRODUTOS

Cadastro de Novas Empresas/Filiais

Ao incluir ou alterar uma empresa/filial no Cadastro de Empresa, deve-se executar novamente o processo de Carga Inicial de Empresa, Unidade e Lotação para atualização da informação da empresa/filial no Suricato.

Cadastro de Funcionário

Ao realizar a admissão de um funcionário ou alteração de seus dados no Cadastro do Funcionários o mesmo será integrado com o Suricato. Para confirmar se a integração foi realizada com sucesso, verifique se o Cadastro de Funcionário no Suricato foi atualizado.

Observação: Por meio do parâmetro MV_TSAIURB, é possível definir se será enviado o crachá do funcionário do Protheus para o Cadastro de funcionário do Suricato.

Cadastro de Cargo/Função

Ao realizar a inclusão, alteração ou exclusão de uma função no Cadastro de Funções, a função será integrada com o Suricato. Também será integrada a troca de função de um funcionário. Se for realizada a troca de função essa informação será integrada com o Suricato e ele irá manter histórico da função anterior e da atual. Para confirmar se a integração funcionou, verifique no Suricato se o Cadastro de Cargo ou o Cadastro do Funcionário foram atualizados.

Cadastro Turno de Trabalho

Ao incluir um turno de trabalho no Cadastro de Turnos de Trabalho, não haverá integração do turno com o Suricato, pois é necessário o preenchimento da tabela de horário padrão. Caso seja realizada a troca de turno de trabalho do Funcionário a mesma será integrada e o Suricato irá manter histórico do turno anterior e do atual. Para confirmar se a integração funcionou, verifique no Suricato se a Escala, Horário da Escala ou o Cadastro do funcionário foram atualizados.

Cadastro de Feriados

Ao realizar a inclusão, alteração ou exclusão de um feriado no Cadastro de Feriados, ele será integrado com o Suricato. Para confirmar se a integração funcionou, verifique se o cadastro de Feriados no Suricato foi atualizado. 

Cadastro de Sindicato

Ao realizar a inclusão, alteração ou exclusão de um sindicato no Cadastro de Sindicatos, ele será integrado com o Suricato. Para confirmar se a integração funcionou verificar se o cadastro de Pessoa Jurídica no Suricato foi atualizado.

Cadastro de Exceções

Ao realizar a inclusão, alteração ou exclusão de uma exceção por funcionário e/ou período, ela será integrada com o Suricato. Para confirmar se a integração funcionou verificar se o cadastro de Situações no Suricato foi atualizado.

Cadastro de Afastamentos

Ao realizar a inclusão, alteração ou exclusão de um afastamento para o Funcionário, ela será integrada com o Suricato. Para confirmar se a integração funcionou verificar se o cadastro de Afastamentos no Suricato foi atualizado.

Cadastro de Centros de Custo

Ao realizar a inclusão, alteração ou exclusão de um Centro de Custo no Cadastro de Centros de Custos, ele será integrado com o Suricato. Para confirmar se a integração funcionou verificar se o cadastro de Centro de Custos no Suricato foi atualizado.

Cadastro de Transferências

Ao realizar a transferência de um Centro de Custo de um funcionário, essa informação será integrada, alterando o cadastro do funcionário no Suricato. O Suricato irá manter histórico do centro de custo anterior e do atual.

Quando a transferência de um funcionário for entre Empresas/Filiais o cadastro do funcionário no Suricato será atualizado.
Observação: O Suricato manterá os dois registros do funcionário (devido mudança na chave externa), onde o registro anterior terá data de demissão com um dia anterior ao da transferência e o registro atual manterá o crachá do usuário.

Para confirmar se a integração funcionou verificar se o cadastro de Funcionário no Suricato foi atualizado.

Cálculo de Férias

Ao realizar o cálculo de férias para um funcionário, o cadastro do funcionário no Suricato será atualizado com a informação do afastamento. Para confirmar se a integração funcionou verificar se o cadastro de Funcionário no Suricato foi atualizado.

Cálculo de Rescisão

Ao realizar o cálculo de rescisão para um funcionário, essa informação será integrada, atualizando a informação sobre o desligamento do funcionário no Suricato.

Ao excluir o cálculo de rescisão, a mesma será integrada, atualizando o funcionário no Suricato.

Para confirmar se a integração funcionou, verificar se o cadastro do funcionário foi atualizado.

Cadastro de Regra de Apontamento

Ao alterar o intervalo móvel de uma regra na rotina de Cadastro de Regras de Apontamento o campo Tipo de Escala no Cadastro de Escala no Suricato será atualizado.

Cadastro de Relógios e Leitura de Marcações

Para efetuar a leitura de marcações a partir do Suricato, deve-se alterar o cadastro do relógio e informar o conteúdo R no campo Tipo Arquivo (P0_TIPOARQ). Ao iniciar o processo de leitura de marcações, a rotina irá buscar os registros da tabela MSA_CONTROL_MARCAC de determinada data de/até que contém o campo LOG_IMPORT_PRODUT = 0.

Atenção: A leitura de marcações somente irá funcionar se a tabela MSA_CONTROL_MARCAC estiver cadastrada no mesmo banco de dados do Protheus.

Observação: Para que as marcações salvas na MSA sejam processadas corretamente, o código do REP, no cadastro do Protheus, deverá ser o mesmo código salvo no campo COD_REP na tabela MSA. Por exemplo se o Suricato salvar o código "5001030033938" no campo COD_REP da MSA, o Campo REP do cadastro de relógio do Protheus deverá ser salvo com o conteúdo "5001030033938".

Observação: O Suricato não grava o horário da marcação em horas e minutos no campo NUM_HORAR_MARCAC_ACES da tabela MSA_CONTROL_MARCAC. É necessário converter o conteúdo para horas e minutos efetuando a seguinte conta:

NUM_HORAR_MARCAC_ACES / 3600 (para encontrar as horas);
Resto da divisão X 60 (para encontrar os minutos);
Resto da divisão X 60 (para encontar os segundos).
Exemplo: NUM_HORAR_MARCAC_ACES = 59730:

59730 / 3600 = 16,59166666666667;
0,59166666666667 X 60 = 35,5;
0,5 X 60 = 30.
Resultado: 16:35:30.

Fechamento do Ponto

Caso haja alteração na sequencia inicial do turno de trabalho, haverá atualização do cadastro de Usuário no Suricato.

Este processo somente será executado caso a nova sequencia inicial do turno seja diferente da anterior.

07. TABELAS E ROTINAS ENVOLVIDAS NA INTEGRAÇÃO

Segue abaixo as tabelas envolvidas na integração com o Suricato:

TabelaDescrição
CTT Centro de Custo
RCE Sindicatos
SPA Regra de Apontamento
SPJ Tabela de Horário Padrão
SP2 Exceções
SP3 Feriados
SRJFunções
SPF Transferência de Turno
SR6Turnos de Trabalho
SR8 Controle de Ausências
SRA Funcionários
SRG Rescisões
SRH Férias

Segue abaixo as rotinas envolvidas na integração com o Suricato:

RotinaDescrição
CSAM080 Cadastro de Aumento programado
CTBA030 Cadastro de Centro de Custos
GPEA010 Cadastro de Funcionários
GPEA030 Cadastro de Funções
GPEA080 Cadastro de Turno de Trabalho
GPEA180 Cadastro de Transferência de Funcionários
GPEA240 Cadastro de Afastamentos
GPEA265 Cadastro de Autônomos
GPEA340 Cadastro de Sindicatos
GPEM030 Cadastro de Férias
GPEM040 Cadastro de Rescisão
GPEM060 Férias Coletivas/Programadas
GPEXFUN1 Biblioteca de Funções do SIGAGPE
PONA020 Cadastro de Feriado
PONA080 Manutenção da Tabela de Horário Padrão
PONA090 Cadastro de Exceções por Período
PONA140 Cadastro de Exceções por Funcionário
PONA160 Troca de Turno
PONM430 Integração TSA
PONXFUN Biblioteca de Funções do SIGAPON
PONXFUN1 Biblioteca de Funções do SIGAPON
PTSREPOBJ Biblioteca de Funções do SIGAPON
RHUPDPON Atualizador do Ponto Eletrônico
TRMA100 Cadastro de Funcionários
TRMA210 Cadastro de Funções

07.1 CAMPOS DA TABELA UTILIZADA

Campos utilizados na integração do funcionário, ao incluir ou alterar qualquer um dos dados utilizados para a montagem do XML será realizada uma nova integração.

WSRHTSANaturalPerson

<?xml version="1.0" encoding="UTF-8"?>
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    -<soap:Body>
        -<insertOrUpdate xmlns="http://naturalperson.tsa.totvs.com/">
            -<arg0 xmlns="">
                <address>AV. BRAZ LEME </address> Endereço + Num.Endereço + Compl.Ender. (RA_ENDEREC + RA_NUMENDE + RA_COMPLEM)
                <city>SAO PAULO </city> Municipio (RA_MUNICIP)
                <country>BRASILEIRO</country> Nacionalid. (RA_NACIONA)
                <email>totvs@totvs.com.br</email> End. E-Mail (RA_EMAIL)
                <externalKey>T1D MG 01 00079820211011164347</externalKey> Código Unico RA_CODUNIC (Empresa + RA_FILIAL + RA_MAT + Data e hora da Integração)
                <federalId>03024407049</federalId> CPF (RA_CIC)
                <idCard>2020-01-01</idCard> R.G. (RA_RG)
                <idCardDate>1900-01-01</idCardDate> D t.Emis.RG (RA_DTRGEXP) Se não for preenchido será enviado 1900-01-01
                <idCardEmitter>SSP </idCardEmitter> Orgao expedR (RA_RGEXP)
                <idCardState>SP </idCardState> UF do RG (RA_RGUF)
                <image>BitMap da imagem do funcionário</image> Foto do Funcionário (RA_BITMAP)
                <name>Funcionário Totvs </name> Nome do Funcionário (RA_NOME)
                <neighborhood>CASA VERDE </neighborhood> Bairro (RA_BAIRRO)
                <phone1>11111111 </phone1> Telefone (RA_TELEFON)
                <phone2>911111111 </phone2> Num. Celular (RA_NUMCELU)
                <phoneCode1>11</phoneCode1> DDD Telefone (RA_DDDFONE)
                <phoneCode2>11</phoneCode2> DDD Celular (RA_DDDCELU)
                <state>SP</state> Estado (RA_ESTADO)
                <zipCode>02511000</zipCode> CEP (RA_CEP)
                <sex>M</sex> Sexo (RA_SEXO)
                <birthDate>1985-11-19</birthDate> Data Nasc. (RA_NASC)
           </arg0>
       </insertOrUpdate>
    </soap:Body>
</soap:Envelope>


WSRHTSAUserIntegration

<?xml version="1.0" encoding="UTF-8"?>
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    -<soap:Body>
        -<insertUserShiftWork xmlns="http://user.tsa.totvs.com/">
            -<arg0 xmlns="">
                <endDate>2049-12-31T00:00:00</endDate> Data Demissão (RA_DEMISSA se RA_DEMISSA estiver vazia será enviado 2049-12-31)
                <initialDate>2021-01-01T00:00:00</initialDate> Data Admissão (RA_ADMISSA)
                <shiftWorkExternalKey>T1D MG 00101</shiftWorkExternalKey> Chave de identificação do turno (Empresa + Turno + Sequencia (Empresa + PF_FILIAL + PF_TURNOPA + PF_SEQUEPA))
                <userExternalKey>T1D MG 01 000798</userExternalKey> Chave de identificação do funcionário (Empresa + RA_FILIAL + RA_MAT)
                <InitialScaleBaseDate>2020-12-28T00:00:00</InitialScaleBaseDate> Primeiro dia da sequência e turno informado. Por exemplo a data de admissão do funcionário foi no dia 01/01/2021, esse dia é uma sexta-feria e a sequência 01 começa na segunda, então será enviada o dia 28/12/2020.
            </arg0>
        </insertUserShiftWork>
    </soap:Body>
</soap:Envelope>


08. PRINCIPAIS FONTES E WEB SERVICES

Carga Incial - PONM430

Para a primeira integração com o Suricato, será necessário realizar a carga inicial. A rotina de Carga Inicial (POMM430 - Miscelânea → S.r.e.p. → Integração Tsa), será responsável por enviar todas as informações necessárias para a utilização do Suricato. Nela é possível selecionar quais informações serão enviadas inicialmente, que vão desde o cadastro da empresa até Férias/Afastamentos dos funcionários, porém a rotina possui uma ordem de execução que NÃO deve ser alterada, mas não há obrigatoriedade de enviar todos os cadastros de uma vez. É recomendado enviar primeiramente os cadastrados da Empresa, Unidade e Lotação.

Observação

A partir do pacote de Expedição Contínua do RH libera no dia 11/03/2024 é possível realizar o reenvio de um XML utilizando a rotina de Carga Inicial. Na pergunta da rotina existirá uma nova opção que é a "Reenviar XML ?", caso ela esteja com sim, o Protheus irá ignorar se a informação foi enviado ou não para o Suricato e irá gerar o XML de integração. Para mais informações do funcionamento do reenvio do XML acesse o link abaixo:

Reenvio de XML - Integração Suricato

PTSREPOBJ

Este fonte possui todos os métodos que irá fazer a chamada de um Web Service para realizar a integração com o Suricato. Como por exemplo o método WSNatural, este método irá realizar a inclusão/alteração de um funcionário no Suricato. O método irá receber as informações da tabela envolvida e enviará elas para o Web Service NaturalPerson, que irá enviar para o Suricato.

WSClient_WSRHTSAAbsenceReason

O AbsenceReason é o Web Service responsável por enviar as informações referentes as ausências. O método que faz a chamada desse Web Service é o WSAbsenceReason, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações da tabela tipo de ausências (RCM), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAAllocationUnit

O AllocationUnit é o Web Service responsável por enviar as informações referentes as Unidades de Lotações. O método que faz a chamada desse Web Service é o WSAllocation, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações do cadastro de Unidade de Lotação, manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSACostCenter

O CostCenter é o Web Service responsável por enviar as informações referentes aos Centros de Custos. O método que faz a chamada desse Web Service é o WSCostCenter, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações da tabela dos Centros de Custos (CTT), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSADayNotWorked

O DayNotWorked é o Web Service responsável por enviar as informações referentes aos Feriados. O método que faz a chamada desse Web Service é o WSDayNotWorked, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações dos Feriados cadastrados (SP3), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAException

O Exception é o Web Service responsável por enviar as informações referentes as Exceções. O método que faz a chamada desse Web Service é o WSException, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações das Exceções cadastradas (SP2), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSALegalPerson

O LegalPerson é o Web Service responsável por enviar as informações referentes as Empresas. O método que faz a chamada desse Web Service é o WSLegal, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações das Empresas cadastradas, manipulará os dados e enviará para o Suricato.

Observação: O Web Service LegalPerson também é responsável por enviar os Sindicatos cadastrados, através do método WSSindicatoLegal.

WSClient_WSRHTSALocationIntegration

O LocationIntegration é o Web Service responsável por enviar as informações referentes as Localizações (Cidades). O método que faz a chamada desse Web Service é o WSLocation, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações das Localizações cadastradas, manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSANaturalPerson

O NaturalPerson é o Web Service responsável por enviar as informações referentes aos Funcionário. O método que faz a chamada desse Web Service é o WSNatural, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações dos Funcionário cadastrados (SRA), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAPositionLevel

O PositionLevel é o Web Service responsável por enviar as informações referentes as Funções do funcionário. O método que faz a chamada desse Web Service é o WSPositionLevel, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações das Funções cadastradas (SRJ), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAScaleIntegration

O ScaleIntegration é o Web Service responsável por enviar as informações referentes a Tabela Horário Padrão. O método que faz a chamada desse Web Service é o WSSCale, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações da Tabela de Horário Padrão cadastradas (SPJ), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAShiftWork

O ShiftWork é o Web Service responsável por enviar as informações referentes ao Turnos. O método que faz a chamada desse Web Service é o WSShiftWork, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações da tabela de Turnos cadastrados (SR6), manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAUnit

O Unit é o Web Service responsável por enviar as informações referentes a Unidade. O método que faz a chamada desse Web Service é o WSUnit, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações da Unidade cadastrada, manipulará os dados e enviará para o Suricato.

WSClient_WSRHTSAUserIntegration

O UserIntegration é o Web Service responsável por enviar as informações referentes aos Usuários. O método que faz a chamada desse Web Service é o WSUser, localizado no fonte PTSREPOBJ. Neste método o sistema irá receber as informações dos Usuários, tais como Nome, Centro de Custo, Papéis (Permissões) e etc, manipulará os dados e enviará para o Suricato.

Observação: Este Web Service é diferente dos demais, pois ele possui vários métodos para inserir informações diferentes, como por exemplo Centro de Custo e Função, utilizando os métodos insertUserShiftWork e insertUserPositionLevel respectivamente, localizados no Web Service.

09. RELACIONAMENTO ROTINAS X WEB SERVICES

Seguem abaixo os nomes das rotinas e seus serviços relacionados:

RotinaWeb Services

Schedule Empresa

LegalPerson

Schedule Unidade

Unit

Schedule Unidade de Lotação

AllocationUnit

Schedule Localidade

LocationIntegration

Schedule Tabelas 30/31 – Módulo Configurador

AbsenceReason, UnitAbsenceReason

Cadastro de Aumento Programado (CSAM080)

UserIntegration

Cadastro de Centro de Custos (CTBA030)

CostCenter

Cadastro de Funcionário (GPEA010)

UserIntegration, UserShiftWork, UserLocation, UserRoleBadge, UserCostCente, UserAllocationUnit, UserAbsenceReason, RemoveUserAbsenceReason, NaturalPerson

Cadastro de Funções (GPEA030)

PositionLevel

Cadastro de Turno de Trabalho (GPEA080)

ShiftWork

Cadastro de Transferência de Funcionário (GPEA180)

UserIntegration, NaturalPerson

Cadastro de Afastamentos (GPEA240)

AbsenceReason

Cadastro de Autônomos (GPEA265)

UserIntegration, UserShiftWork, UserLocation, UserRoleBadge, UserCostCente, UserAllocationUnit, UserAbsenceReason, RemoveUserAbsenceReason, NaturalPerson

Cadastro de Sindicato (GPEA340)

LegalPerson

Cadastro de Férias (GPEM030)

AbsenceReason

Cadastro de Rescisão (GPEM040)

UserIntegration, UserShiftWork, UserLocation, UserRoleBadge, UserCostCente, UserAllocationUnit, UserAbsenceReason

Férias Coletivas/Programadas (GPEM060)

AbsenceReason

Cadastro de Feriado (PONA020)

DayNotWorked

Manutenção da Tabela de Horário Padrão (PONA080)

ShiftWork,Scale

Cadastro de Exceções por Período (PONA090)

DayNotWorked,Exception

Cadastro de Exceções por Funcionário (PONA140)

Exception

Troca de Turno (PONA160)

UserIntegration, UserShiftWork

Integração TSA (PONM430)

Todos

Cadastro de Funcionários (TRMA100)

UserIntegration, UserShiftWork, UserLocation, UserRoleBadge, UserCostCente, UserAllocationUnit, UserAbsenceReason, RemoveUserAbsenceReason,NaturalPerson

Cadastro de Funções (TRMA210)

PositionLevel

10. MONTAGEM DO CONTEÚDO DO XML

Neste tópico iremos abordar como é feita a montagem do conteúdo do XML, na qual será enviado para o Web Service. Lembrando que caso haja a necessidade de pegar o XML completo, com as informações do Cabeçalho e etc, será necessário ativar o parâmetro MV_TSATLOG com o valor 5 e verificar o arquivo gerado na pasta System, conforme descrito anteriormente no tópico de Parâmetros. Neste exemplo iremos realizar a integração do a partir da rotina de Carga Inicial (Integração TSA - PONM430), integrando o Centro de Custo.

  1. Ao acessar a rotina de integração, quando selecionamos apenas o Centro de Custo, podemos observar que o valor da opção é 06.


  2. Sabendo disso, podemos localizar qual função que irá realizar essa integração, no caso é função ProcP08 no fonte da Carga Inicial (PONM430)


  3. Verificando a função ProcP08, ela está chamando outra função, que neste caso é a WSRHCostCenter.


  4. Vamos então procurar onde a função WSRHCostCenter está, descobrimos que ela está localizada no fonte PONXFUN1.


    Nela podemos verificar que ela faz a busca das informações dos Centro de Custos diretamente na tabela.


    Após realizar a consulta na tabela CTT, o sistema irá enviar essas informações para o método WSCostCenter.


  5. O método WSCostCenter, está localizado no fonte PTSREPOBJ.


    Antes de enviar as informações para o Web Service, podemos verificar que o sistema está montando as informações do Centro de Custo, como a Descrição e a Chave Externa.


    Observação: O método do Web Service chamado, foi o insertOrUpdate.

  6. O método insertOrUpdate localizado no Web Service WebWSClient_WSRHTSACostCenter, está realizando a integração com o Suricato. 


  7. Antes de enviar as informações da integração, conseguiremos verificar o conteúdo do XML, no caso as informações do Centro de Custo, verificando o conteúdo do objeto oWSarg0.


Após todo esse processo, conseguimos verificar de fato quais informações estão sendo integradas com o Suricato. Este mesmo processo pode ser realizado com as demais integrações, como por exemplo as integração de Funcionários, Funções, Turnos e etc. Para isso só será necessário identificar qual é a opção selecionada e posteriormente a função desta opção. Em outros casos, como por exemplo, a integração de funcionário realizadas após a inclusão ou alteração do mesmo, precisaremos localizar no fonte de Cadastro de Funcionário, qual função ou método está sendo chamado para a integração. Por exemplo, no cadastro de funcionário os métodos WSNatural e WSUser estão sendo chamados.

11. OCORRÊNCIAS NA INTEGRAÇÃO

Com a utilização do parâmetro MV_TSATLOG, na qual o parâmetro permite que todas as rotinas de integração gerem um log de retorno com as críticas realizadas pelas regras do aplicativo, é possível saber exatamente qual foi o erro gerado durante o processo de integração. No exemplo que iremos mostrar utilizamos o parâmetro com o valor igual a 5, desta maneira iremos ter o XML enviado e o XML de retorno com o código do erro ou sucesso.

  1. Confirmado que o parâmetro está com o valor 5.

  2. Após a inclusão do funcionário no Protheus, iremos visualizar o código de retorno informado no log gerado. Para isso basta acessar a pasta System do Protheus e procurar pelo arquivo. O nome do arquivo é composto por um número sequencial, seguido de _RCV.xml para o XML de retorno e _SND.xml para o XML enviado. Em nosso exemplo o nome do arquivo de retorno gerado é 55847972_rcv.xml. Ao abrir o arquivo de retorno devemos procurar pela Tag statusCode, ela que conterá o código do retorno, que poderá ser de sucesso ou erro na integração. No  nosso teste o código gerado foi o 00100, isso significa que a integração funcionou corretamente.

Cada Web Service possui códigos e descrições diferentes, por isso para facilitar no entendimento dos códigos de retorno, segue abaixo a tabela de códigos de cada Web Service:


Empresa

Código do Retorno

Descrição do código de retorno

00101

Inclusão/Alteração da Empresa Jurídica realizada com sucesso.

00102

Chave externa da Empresa Jurídica é obrigatória.

00103

Deve ser informado pelo menos o CNPJ ou CEI.

00104

Exclusão da unidade realizada com sucesso.

00105

Deve ser informado apenas um dos campos: CNPJ ou CEI.

00106

Nome da pessoa jurídica é obrigatória.

00107

Pessoa jurídica está sendo usada, não é possível realizar a exclusão.

00100

Erro Técnico (retornar erros ocorridos durante a execução).

Unidade

Código do Retorno

Descrição do código de retorno

00201

Inclusão/Alteração da unidade realizada com sucesso.

00202

Chave externa da Unidade é obrigatória.

00203

Chave externa de Pessoa Jurídica é obrigatória.

00204

Código da unidade é obrigatório.

00205

Tipo da unidade é obrigatório.

00206

Exclusão da unidade realizada com sucesso.

00207

Inclusão de relacionamento realizada com sucesso.

00208

Exclusão de relacionamento realizada com sucesso.

00209

Inclusão de relacionamento realizada parcialmente.

00210

Unidade está sendo usada, não é possível realizar a exclusão.

00211

Inclusão de relacionamento não realizada, nenhuma chave externa é existente.

00212

Exclusão de relacionamento não realizada, nenhuma chave externa é existente.

00213

Usuário ou senha são inválidos.

00214

Unidade está sendo usada, não é possível realizar a exclusão.

00215

Descrição da Unidade é Obrigatória.

00216

Nenhum registro encontrado com a chave externa.

00200

Erro Técnico (retornar erros ocorridos durante a execução).

Centro de Custo

Código do Retorno

Descrição do código de retorno

00301

Inclusão/Alteração do Centro de Custo realizada com sucesso.

00302

Chave externa do Centro de Custo é obrigatória.

00303

Exclusão da unidade realizada com sucesso.

00304

Usuário ou senha são inválidos.

00305

Descrição do Centro de Custo é obrigatória.

00306

Centro de Custo está sendo usado, não é possível realizar a exclusão.

00300

Erro Técnico (retornar erros ocorridos durante a execução).

Unidade de Lotação

Código do Retorno

Descrição do código de retorno

00401

Inclusão/Alteração da Unidade de Lotação realizada com sucesso.

00402

Chave externa da Unidade de Lotação é obrigatória.

00403

Exclusão da Unidade de Lotação realizada com sucesso.

00404

Usuário ou senha são inválidos.

00405

Descrição da Unidade de Lotação é obrigatória.

00406

Unidade de Lotação está sendo usada, não é possível realizar a exclusão.

00400

Erro Técnico (retornar erros ocorridos durante a execução).

Turno

Código do Retorno

Descrição do código de retorno

00501

Inclusão/Alteração do Turno realizada com sucesso.

00502

Chave externa do Turno é obrigatória.

00503

Data de início é obrigatória.

00504

Data de início deve ser uma data válida.

00505

Exclusão do Turno realizada com sucesso.

00506

Pelo menos uma escala deve estar informada e deve conter pelo menos um intervalo de horário do tipo Jornada.

00507

Descrição é obrigatória.

00509

Turno está sendo usado, não é possível realizar a exclusão.

00500

Erro Técnico (retornar erros ocorridos durante a execução).

Tabela de Horário Padrão

Código do Retorno

Descrição do código de retorno

00601

Inclusão/Alteração da Grade de Trabalho realizada com sucesso.

00602

Chave externa da Grade de trabalho é obrigatória.

00603

A chave externa do turno é obrigatória.

00604

A escala deve conter pelo menos um par de horários do tipo Jornada.

00605

Os pares de horários informados estão incorretos.

00606

A sequência de inicio é obrigatória.

00607

A sequência de término é obrigatória.

00608

O tipo é obrigatório.

00609

A entrada de jornada é obrigatória.

00610

A saída de jornada é obrigatória.

00611

A sequência de início não pode ser superior à sequência de término.

00612

Exclusão do Turno realizada com sucesso.

00613

Usuário ou senha são inválidos.

00614

Escala está sendo usada, não é possível realizar a exclusão.

00600

Erro Técnico (retornar erros ocorridos durante a execução).

Funcionários

Código do Retorno

Descrição do código de retorno

00701

Inclusão/Alteração da Pessoa física realizada com sucesso.

00702

Chave externa da Pessoa Física é obrigatória.

00703

Pelo menos o CPF ou RG deve ser informado.

00704

Exclusão da pessoa física realizada com sucesso.

00705

Usuário ou senha são inválidos.

00706

Pessoa física está sendo usada, não é possível realizar a exclusão.

00700

Erro Técnico (retornar erros ocorridos durante a execução).

Localidade

Código do Retorno

Descrição do código de retorno

00801

Inclusão/Alteração da Localidade realizada com sucesso.

00802

Chave externa da Localidade é obrigatória.

00803

Exclusão da localidade realizada com sucesso.

00804

Usuário ou senha são inválidos.

00805

Pelo menos País, Estado ou Cidade deve ser informada.

00806

Descrição de País deve ser informada.

00807

Descrição de Estado deve ser informada.

00808

Descrição de Cidade deve ser informada.

00809

Localidade está sendo usada, não é possível realizar a exclusão.

00800

Erro Técnico (retornar erros ocorridos durante a execução).

Funções

Código do Retorno

Descrição do código de retorno

00901

Inclusão/Alteração do cargoNivel realizada com sucesso.

00902

Chave externa do cargoNivel é obrigatória.

00903

Descrição é obrigatória.

00904

Exclusão do cargoNivel realizada com sucesso.

00905

Usuário ou senha são inválidos.

00906

CargoNivel está sendo usado, não é possível realizar a exclusão.

00900

Erro Técnico (retornar erros ocorridos durante a execução).

Afastamento

Código do Retorno

Descrição do código de retorno

01001

Inclusão/Alteração da situação de afastamento realizada com sucesso.

01002

Chave externa da situação de afastamento é obrigatória.

01003

Tipo da situação de afastamento é obrigatório.

01004

Exclusão da situação de afastamento realizada com sucesso.

01005

Data início e Data término são obrigatórias.

01006

Exclusão do relacionamento realizado com sucesso.

01007

Usuário ou senha estão inválidos.

01008

Descrição da situação de afastamento é obrigatória.

01009

Situação de Afastamento está sendo usada, não é possível realizar a exclusão.

01010

Inclusão do relacionamento realizado com sucesso.

01000

Erro Técnico (retornar erros ocorridos durante a execução).

Exceção

Código do Retorno

Descrição do código de retorno

01101

Inclusão/Alteração da exceção realizada com sucesso.

01102

Chave externa da exceção é obrigatória.

01103

Tipo da exceção é obrigatório.

01104

Origem é obrigatório.

01105

Data início é obrigatória.

01106

Data Término é obrigatória.

01112

Exclusão da exceção realizada com sucesso.

01113

Pelo menos um período deve ser informado.

01114

Usuário ou senha inválidos.

01115

Os pares de horários informados estão incorretos.

01106

Direção é obrigatória.

01100

Erro Técnico (retornar erros ocorridos durante a execução).

Feriados

Código do Retorno

Descrição do código de retorno

01201

Inclusão/Alteração do dia não trabalhado realizado com sucesso.

01202

Chave externa do dia não trabalhado é obrigatória.

01203

Recorrente é obrigatório.

01204

Data é obrigatória.

01205

Exclusão do dia não trabalhado realizada com sucesso.

01206

O turno deve ser informado.

01207

A localidade deve ser informada.

01208

Usuário ou senha Inválidos.

01209

Dia não Trabalhado está sendo usado, não é possível realizar a exclusão.

01200

Erro Técnico (retornar erros ocorridos durante a execução).

01210

Inclusão do relacionamento Dia Não Trabalhado/Localidade/Turno realizado com sucesso.

01211

Exclusão do relacionamento Dia Não Trabalhado/Localidade/Turno realizado com sucesso.

Usuários

Código do Retorno

Descrição do código de retorno

01301

Inclusão/Alteração do usuário realizado com sucesso.

01302

Chave externa do usuário não foi informada.

01303

Chave externa de pessoa física não foi informada.

01304

O tipo papel não foi informado.

01305

Data início de validade do turno deve ser informada.

01306

Data término de validade do turno deve ser informada.

01307

Data início de validade do Centro de custo deve ser informada.

01308

Data término de validade do Centro de Custo deve ser informada.

01309

Data início de validade do CargoNivel deve ser informada.

01310

Data término de validade do CargoNivel deve ser informada.

01311

Data início de validade da Unidade de Lotação deve ser informada.

01312

Data término de validade da Unidade de Lotação deve ser informada.

01313

Data início de validade da Localidade deve ser informada.

01314

Data término de validade da Localidade deve ser informada.

01315

Chave externa de pessoa Física não existe.

01316

Chave externa de turno não existe.

01317

Chave externa de centro de custo não existe.

01318

Chave externa de CargoNivel não existe.

01319

Chave externa de unidade de lotação não existe.

01320

Chave externa de localidade não existe.

01321

Chave externa de usuário não existe.

01322

Relacionamento incluído/alterado com sucesso.

01323

Usuário ou senha Inválidos.

01324

Usuário está sendo usado, não é possível realizar a exclusão.

01325

Exclusão do usuário realizada com sucesso.

01326

Exclusão do relacionamento de usuário com nome do relacionamento, realizada com sucesso.

01327

Exclusão do relacionamento de usuário com nome do relacionamento, não realizada.

01301

Inclusão/Alteração do usuário realizado com sucesso.

01302

Chave externa do usuário não foi informada.

01303

Chave externa de pessoa física não foi informada.

01300

Erro Técnico (retornar erros ocorridos durante a execução)

Marcações

Código do Retorno

Descrição do código de retorno

01401

Importação da batida realizada no REP: número do rep e NSR: número do nsr foi importada com sucesso.

01402

Importação da batida realizada no REP: número do rep e NSR: número do nsr não foi importada.

01400

Erro Técnico (retornar erros ocorridos durante a execução)



Integração Suricato
Instalação Suricato (SQL)
Instalação Suricato (Oracle)
Documentação Schedule