Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Logística TMS

Linha de Produto:

Linha Protheus

Segmento:

Logística

Módulo:TOTVS Logística TMS 
Função:

OMSA040 - Cadastro de Motorista
OMSA060 - Cadastro de Veiculos
OMSA100 - Cadastro de Rotas
TMSA144 - Geração de Viagens
TMSA240  - Complemento de Viagem
TMSA250  - Contrato de Carreteiro
TMSA251  - Liberação de Contrato
TMSA310  - Fechamento de Viagem
TMSA340  - Encerramento de Viagem
TMSA350  - Operações de Transporte
TMSAC15  - Funções Genéricas TMS x Repom
TMSAC15A- Funções Genéricas TMS x Repom
TMSAC15B- Funções Genéricas TMS x Repom
TMSAE60  - Cadastro de Operadoras de Frotas
TMSAE65  - Operadoras de Frotas x Ações 
TMSAF64P - Validações para Operadoras de Frota
TMSAF64R - Validações para Operadoras de Frota
TMSREPOM- Funções Genéricas TMS
TMSXFUNA- Funções Genéricas TMS
TMSXFUNB- Funções Genéricas TMS
TMSXFUNC - Funções Genéricas TMS
TMSXFUNX - Funções Genéricas TMS

Ticket:Não se aplica
Requisito/Story/Issue (informe o requisito relacionado) :DLOGTMS02-13230


02. SITUAÇÃO/REQUISITO

Implementar melhoria no processo de integração entre o módulo SIGATMS e Repom, utilizando a plataforma Repom Frete, que baseia-se na tecnologia Web API* em arquitetura RestFul.

A API de integração da Repom permite a realização de diversas operações contidas no Repom Frete, como manipulação de cadastros (Contratados, Motoristas e Veículos), Roteiros, Viagens e Pagamento.

* Web APÌ - Solução utilizada na integração de sistemas e na comunicação entre diferentes aplicações, utilizando a linguagem universal JSON para tráfego de dados, proporciona a sistemas desenvolvidos em plataformas distintas sejam compatíveis.

03. SOLUÇÃO

Implementado a integração TMS com a Repom Frete, que estará disponível a partir da configuração dos parâmetros "MV_VSREPOM = 2.2" e MV_TMSOPDG = 2.

Importante

As alterações de dicionário de dados estarão disponíveis a partir do release 12.1.33.

Nesta versão houve algumas mudanças de configuração:

  • Parâmetro MV_ENREPOM não será utilizado para esta integração junto a plataforma Repom Frete da Repom, porém o Fechamento da viagem continua o "start" (Abertura do Contrato) entre a integração Protheus TMS e Repom.

  • No cadastro de Operadora de Frotas foram criados novos campos:
    • Momento da Quitação (DEG_REPQUI): Utilizado para definir o Momento da Quitação do Contrato na Repom;
    • Tempo de Espera (DEG_TMPESP): Utilizado para definir o tempo de espera do processamento da inclusão do Contrato na Repom, onde ocorre o retorno do Código do Contrato (DTR_PRCTRA/DM5_PRCTRA) e o Código do CIOT (DTR_CIOT);

  • Os processos de interface utilizados são:

    SIGATMSREPOMDESCRIÇÃO
    MotoristaDriverEste método integra os cadastros de Motoristas do SIGATMS com a base de dados da Repom.
    FornecedorHiredEste método integra os cadastros de Fornecedor do SIGATMS com a base de dados da Repom.
    VeículosVehicleEste método integra os cadastros de Veículos do SIGATMS com a base de dados da Repom.
    Operações da Operadora - Cadastro Operadoras de FrotaOperationNo sistema da Repom, as operações de transporte são um conjunto de configurações para que o sistema se comporte de maneira distinta, de forma a atender aos diferentes tipos de operações. Por exemplo, há operações que contemplam a quebra de peso e quebra de frete. No SIGATMS, esta configuração está disponível no botão Outras Opções → Operac.  ,na rotina Operadora de Frota. Esse método é utilizado, pois durante a emissão do contrato na base da Repom, é necessário enviar junto dos dados da viagem, qual a operação deseja utilizar.
    RoteiroRoute / RouteRequestAs informações referente ao Roteiro/Percurso da viagem são enviadas no momento da emissão de um contrato na Repom. No SIGATMS, esse método é acionado no momento do Cadastro da Rota. Cada rota do SIGATMS é amarrada a um roteiro/percurso da Repom.
    Emitir ViagemShipping

    Na Repom, este método é um dos principais componentes da integração, por meio do qual é gerado o contrato no sistema da Repom. No SIGATMS, esse método é acionado no momento do Fechamento da Viagem.
    Quando ocorrer o estorno do Fechamento da Viagem, é acionado automaticamente o método para cancelamento do contrato na Repom. O cancelamento do contrato na Repom segue regras específicas que podem interferir no seu cancelamento. Caso não seja possível cancelar o contrato na Repom, o estorno do fechamento da viagem não será realizado.

    QuitaçãoPayment

    A quitação do contrato determina o fim do processo de viagem na Repom.
    Esse método será acionado conforme a configuração do campo DEG_REPQUI (Momento Quitação) do Cadastro de Operadoras de Frotas  (Contrato de Carreteiro, conforme configuração do MV_LIBCTC  e/ou no Encerramento da Viagem)

    Obs: Na versão 2.2 (RepomFrete) não existe o método de "Autorização de Quitação do contrato" conforme versões anteriores.

    Consulta ContratoShipping/StatusProcessing/ByIdentifierApós a quitação do contrato na Repom, realizamos a consulta do contrato diretamente por este método para conseguir os valores referente a impostos, calculados para pessoas físicas.
    Autorização de PagamentoPaymentAuthorization

    O processo de autorização é configurado no Sistema REPOM.

    Portanto, o TMS somente enviará a autorização quando o Status do Contrato na REPOM estiver como  'CLEARED'

    Cálculo de Pedágio

    Route/ByRouteCode

    Ao informar os Recursos da Viagem (Operadora de Frota e Veículo)  automaticamente, com base na rota da viagem, é acionado esse método para obter o valor do pedágio. Na Viagem Modelo 3, na Aba Recursos, no campo “Pedágio” é apresentado o valor.
    Movimentação de Valores

    Shipping/AddMovement

    Depois que o contrato é emitido na Repom, todos os tipos de créditos e débitos que poderão ocorrer durante a viagem recebem o nome de “Movimentações de Valores”.  Esse método é utilizado para que uma movimentação seja inserida e ou excluída dentro do contrato na Repom.

    MÉTODOS REPOM

    Abaixo segue todos os métodos desenvolvidos para troca de informações entre o Totvs Logistica TMS x Repom ambiente Repom Frete.

    Método RepomMétodo TotvsDescrição

    GET /AnttTypes/LoadTypes

    GetLoadTypes() 

    Recupera um GetLoadTypes

    POST /token 

    Auth() 

    Obtém Token

    POST /Driver

    DriverCreate()

    Cria um novo driver

    PUT /Driver/{country}/{nationalId}

    DriverUpdate() 

    Atualiza o motorista

    PATCH /Driver/lockUnlock/{country}/{nationalId}

    DriverLock() 

    Atualiza o motorista

    GET /Driver/ByName/{name}

    GetDrvrByName()

    Recuperar motoristas por nome

    GET /Driver/ByDocument/{country}/{nationalId}

    GetDrvrByDoc()

    Recupera um motorista por número de identificação de documento

    POST /Hired

    HiredCreate()

    Cria um novo contratado

    PUT /Hired/{country}/{nationalId}

    HiredUpdate()

    Atualiza um novo contratado

    PATCH /Hired/lockUnlock/{country}/{nationalId}

    HiredLock()  

    Bloquear ou desbloquear contratado

    GET /Hired/ByName/{name}

    GetHrdByName()

    Recupera contratados pelo nome

    GET /Hired/ByDocument/{country}/{nationalId}

    GetHrdByDoc()

    Recupera um contratado por número de identificação de documento

    POST /Vehicle

    VehicleCreate() 

    Cria um novo veículo

    PUT /Vehicle/{country}/{license}

    VehicleUpdate()

    Atualiza um veículo

    PATCH /Vehicle/{country}/{license}

    VehicleLock() 

    Trancar ou destrancar o veículo

    GET /Vehicle/ByDocument/{country}/{license} 

    GetVeicByDoc() 

    Recupera um veículo por licença

    POST /RouteRequest

    RouteCreate()  

    Cria uma solicitação de rota

    GET /Route/ByCEP/{cep}/{toCep}/{vehicleAxles}

    GetRtByCEP()  

    Recupera uma rota

    GET /Route/ByIBGE/{IBGECode}/{toIBGECode}/{vehicleAxles}

    GetRtByIBGE()

    Recupera uma rota

    GET /Route/ByTraceIdentifier/{traceIdentifier}/{vehicleAxles} 

    GetRtByTrcId()

    Recupera uma rota

    GET /Route/ByRouteCode/{traceCode}/{routeCode}/{vehicleAxles}GetByRtCode()

    Recupera uma rota

    GET /RouteRequest/{traceIdentifier}

    GetRtRequest() 

    Recupera uma solicitação de rota por id

    POST /Shipping

    ShippingCreate()

    Solicite um novo frete

    PATCH /Shipping/AddDocument/{shippingId}

    ShippingDocAdd() 

    Adicionar documento de envio

    PATCH /Shipping/AddMovement/{shippingId}

    ShippingMovAdd()

    Adicionar movimento de envio

    PATCH /Shipping/Cancel/{id}

    ShippingCancel()

    Cancelar frete

    PATCH /Shipping/lockUnlock/{shippingId}ShippingLock()

    Bloquear ou desbloquear um frete

    PATCH /Shipping/Interruption/{id}ShippingInter()

    Interrupção de envio

    GET /Shipping/ByShipping/{shippingId} 

    GetShipByShip()

    Recupera um frete por shippingId

    GET /Shipping/ByIdentifier/{identifier}GetShipById()

    Recupera um frete por identificador

    GET /Shipping/StatusProcessing/ByIdentifier/{id}GetShipStPrcBy()

    Recupera uma lista de embarques por código do cliente

    POST /ShippingPayment

    PaymentCreate()

    Envio de pagamento

    PATCH /ShippingPayment/Cancel/{shippingID}

    PaymentCancel() 

    Cancelamento de pagamento de envio

    PATCH /ShippingPayment/DocumentLost/{shippingID}

    PaymLostDoc() 

    Documento perdido

    PATCH /ShippingPayment/DocumentReship/{shippingID}

    PaymReshipDoc() 

    Documento de reenvio

    PATCH /ShippingPayment/DocumentDelivered/{shippingID}

    PaymDeliverDoc()

    Documento entregue

    PATCH /ShippingPayment/DocumentDismissed/{shippingID}  

    PaymDismisDoc()

    Dispensa documento

    GET /ShippingValidation/ByVehicles/{vehicles}

    GetShipVeicVld()

    Veículos validados para novo envio

    GET /ShippingValidation/ByHiredDocument/{country}/{document}

    GetShipHiredVld() 

    Contratado Validar para novo envio

    POST /PaymentAuthorization  

    AuthorizationCreate()

    Envia uma autorização de pagamento

    PATCH /PaymentAuthorization/Cancel

    AuthCancel()

    Cancelar uma autorização de pagamento

    GET /PaymentAuthorization/ByShippingId/{shippingId}

    GetPayAutShip() 

    Recupera uma autorização de pagamento por shippingId

    GET /Card/GetActiveCardsByHired/{HiredNationalID}

    GetCardHired() 

    Recupera ActiveCard

    GET /Card/GetActiveCardsByDriver/{DriverNationalID}

    GetCardDriver()

    Recupera ActiveCard

    GET /Card/GetActiveCardsByHiredAndByDriver/{HiredNationalID}/{DriverNationalID}

    GetCardDvrHrd()

    Recupera ActiveCard

    GET /VPR/TollList/ByShippingIdentifier/{shippingIdentifier}

    GetVPR() 

    Recupera TollList por shippeingIdentifier

    GET /ShippingFuelBenefit/GetLinkByCardNumber/{cardNumber}

    GetFuelbyCard()

    Recupera o título do FuelBenefits pelo número do cartão

    GET /OperationGetOperation()

    Recupera operações

    GET /Operation/ByIdentifier/{operationIdentifier}GetOperById()

    Recupera operações por identificador

    GET /Movement/GetMovementGetMovement()Retorna movimentações dos clientes



    DOCUMENTAÇÕES API REPOM

    IMPORTANTE!

    Documentação Swagger Repom Frete - http://qa.repom.com.br/Repom.Frete.WebAPI/HelpApi/index#/

    Documentação Swagger Repom Relatórios - https://qa.repom.com.br/Repom.Relatorio.WebApi/HelpApi/#/

04. DEMAIS INFORMAÇÕES

Para uso desta funcionalidade, deve ser utilizado:

  • Pacote: 008033 - Para atualização de dicionário de dados, criação/alteração  de campos e índices.
  • Autenticação: BEARER (Token) - Necessário solicitar para a equipe Repom o usuário e  senha inicial, a partir desse usuário será possível gerar o Token.


IMPORTANTE!

Configuração:

  1. Para a funcionalidade da nova integração TMS x Repom, é necessário configurar os parâmetros:
    MV_VSREPOM = 2.2 
    MV_TMSOPDG= 2


DETALHAMENTO DA ATUALIZAÇÃO DE DICIONÁRIO CONFORME ABAS

Criação de Campos.

Tabela DEG (Operadora de Frotas):


Campo

DEG_USER

Tipo

Caractere

Tamanho

45

Decimal

0

Formato


Título

Nome Usuário

Descrição

Nome de usuário Repom

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When

M->DEG_CODOPE == "01"

Relação


Val. Sistema


Help

Nome de usuário utilizado para autenticação no sistema de comunicação REST da REPOM.

Campo

DEG_SENHA

Tipo

Caractere

Tamanho

30

Decimal

0

Formato

@*

Título

Senha

Descrição

Senha Usuario

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When

M->DEG_CODOPE == "01"

Relação


Val. Sistema


Help

Informe a senha do usuário cadastrado para realizar a integração com a REPOM.

Campo

DEG_TOKEN

Tipo

Memo

Tamanho

50

Decimal

0

Formato


Título

Token

Descrição

Token de Acesso

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When


Relação


Val. Sistema


Help

Token utilizado na integração com REPOM.

Campo

DEG_DTTOKE

Tipo

Data

Tamanho

8

Decimal

0

Formato


Título

Data Token

Descrição

Data Token

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When


Relação


Val. Sistema


Help

Data de envio do token de acesso ao sistema REPOM.

Campo

DEG_HRTOKE

Tipo

Caractere

Tamanho

8

Decimal

0

Formato

99:99:99

Título

Hr. Token

Descrição

Hora Token

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When


Relação


Val. Sistema


Help

Hora de envio do token de acesso ao sistema REPOM.

Campo

DEG_EXPIRE

Tipo

Numérico

Tamanho

6

Decimal

0

Formato

@E 999,999

Título

Duração Toke

Descrição

Duração Token

Usado

Sim

Obrigatório

Não

Browse

Não

Opções


When


Relação


Val. Sistema


Help

Duração do token em segundos.

Campo

DEG_TMPESP

Tipo

Caractere

Tamanho

3

Decimal

0

Formato

@!

Título

Tempo Espera

Descrição

Tempo de Espera

Usado

Sim

Obrigatório

Não

Browse

Não

Opções

Em branco

When

TMSAE60Whe('DEG_TMPESP')

Relação

"60"

Val. Sistema

TMSAE60Vld()

Help

Selecione o tempo de espera máximo (em segundos) para o retorno da inclusão do contrato (viagem) na Operadora REPOM.

Campo

DEG_REPQUI

Tipo

Caractere

Tamanho

1

Decimal

0

Formato

@!

Título

Mom.Quit.Rep

Descrição

Momento Quitação Repom

Usado

Sim

Obrigatório

Não

Browse

Não

Opções

0=Não Utiliza;1=Contrato;2=Encerramento Vge

When

TMSAE60Whe('DEG_REPQUI')

Relação

"0"

Val. Sistema

Pertence('012')

Help

Informe o momento da Quitação do Contrato na REPOM.

Obs: A quitação do contrato ocorrerá de acordo com a parametrização de geração do título (MV_LIBCTC e DUJ_TITFRE).


Tabela DA4 (Motorista):

Campo

DA4_PAIS

Usado

Sim

Campo

DA4_DDD

Usado

Sim

Criação de índices:

DEK:

Índice

Ordem

ChaveDescrição
DEK3DEK_FILIAL+DEK_ROTA+DEK_FROVEI+DEK_CODOPERota + Frota + Cod.Operad.


05. 
ASSUNTOS RELACIONADOS