Histórico da Página
Entradas de dados direção Sofit View para Winthor
1 - Token
Na tabela PCINTEGRACAOWTAPARAMETRO no cadastro referente ao Myfrota possui a linha de registro relacionado ao token de acesso que será buscado utilizando o usuário e senha configurado na rotina 805 WTA; . Esse token é utilizado como credencial de acesso sempre que precisa necessário conectar na API da plataforma para envio e recebimento de dados.
- A cada 2 horas será buscado feita a busca de um novo token de acesso.
- Caso ocorra algum problema para gerar o token nenhuma informação será integrada, pois as chamadas de API ficará inativada até uma nova tentativa de obter o token.
- Na coluna da tabela PCINTEGRACAOWTAPARAMETRO.PARAMETRO = 'AltToken' possui registro de data/hora da ultima tentativa de geração de token.
- Caso a linha de registro de token coluna tabela PCINTEGRACAOWTAPARAMETRO.PARAMETRO = 'UriToken' estiver vazia significa que não foi gerado com sucesso, sendo necessário verificar se o usuário e senha cadastrado na 805 WTA esta correto, ou verificar junto a Sofit View se a o endereço final https://sofitview.com.br/api/v1/users/login esta disponível.
- Todo token gerado com sucesso inserido na PCINTEGRACAOWTAPARAMETRO gera informação de log na tabela PCINTEGRACAOEXEC.
...
- A cada 3,5 minutos será realizado uma requisição a Sofit View para buscar as novas ordem de serviço cadastrados.
- Todas as ordem de serviço são inseridas em PCPREREQMATCONSUMOC.
- A atualização e realizada a cada 3,5 minutos quando será realizado uma requisição a Sofit View e buscado os registros alterados nos últimos 7 dias.
- A exclusão de ordem de serviço ocorre a cada 3,5 minutos quando será realizado uma requisição a Sofit View e buscado os registros que foram excluídos da plataforma.
- Todo veiculo integrado inserido na PCPREREQMATCONSUMOC gera informação de log na tabela PCINTEGRACAOEXEC.
Saida de dados direção Winthor para Sofit View
Item (Produtos)
Na rotina 203, informe Sim no campo "Enviar para o myFrota" para todos produtos que deseja enviar para a Sofit View.
- A cada 1,5 minutos será acionado a aplicação para enviar produtos.
- Todos produtos integrado gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT |
Customer (Cliente)
Todo o cadastro de clientes é automaticamente enviado para a Sofit View, não necessitando nenhuma configuração adicional, portanto, após configurar a integração, podem ser visualizados os clientes no sistema Sofit View.
- A cada 1 minuto será acionado a aplicação para enviar clientes.
- Todos clientes integrado gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT |
Supplier (Fornecedor)
Todo o cadastro de fornecedor é automaticamente enviado para a Sofit View, não necessitando nenhuma configuração adicional, portanto, após configurar a integração, podem ser visualizados os clientes fornecedores no sistema Sofit View.
- A cada 2 minutos será acionado a aplicação para enviar fornecedores.
- Para realizar a integração do fornecedor cadastrado no WinThor, é necessário, obrigatoriamente, informar o tipo de fornecedor, visto que essa informação é obrigatória no cadastro do fornecedor na plataforma da Sofitview. O vínculo do tipo de fornecedor também é realizado através da rotina 202 – Cadastro de Fornecedores, opção “Cadastro deTipo de Fornecedor – SOFITVIEW”, disponível no botão “Ações”.
- Todos fornecedores integrado gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT NAME, FANTASY_NAME, CNPJ, CNPJ_AUX, ADDRESS, ADDRESS_NUM, ADDRESS_NEIGHBORHOOD, |
Employee (Funcionário)
Na rotina 528 todos os setores que estiver com a opção "Usa My Frota" marcada será enviado seus respectivos funcionário funcionários vinculados.
- A cada 2,5 minutos será acionado a aplicação para enviar funcionário.
- Todos funcionários integrado gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
Observação: Existem dois parâmetros na rotina 132 para que a API verifique quais dados serão utilizados para montar a consulta para envio. E caso esses parâmetros não esteja sendo usado a API envia todos os funcionários, conforme já funciona, no qual seu setor esta marcado para usa my frota (PCSETOR.USAMYFROTA = 'S') na 528.
- Para que esses parâmetros funcionem, a tabela PCPARAMFILIAL precisa estár atualizada para a ultima versão disponivel do objeto PARAMETRO, através da rotina 814, para versão igual ou superior a 2.1.113.000
- Para que esses parâmetros funcionem, o job PcJobSofitViewEmployee_2.0 precisa está atualizada para a ultima versão. Data igual ou superior a 08/09/2023 14:55
- Caso o parâmetro 'MYFROTA_MOTORISTA_FUNC' esteja ativo, serão enviados para o myfrota somente os funcionários com o campo TIPO = M (MOTORISTA) configurado na rotina 528. (Adicione na consulta abaixo a seguinte condição: AND PCEMPR.TIPO = 'M')
- Cadastros já realizados antes dessa melhoria não são ajustados na plataforma, pois a API da Sofit relacionado a funcionários não permite exclusão.
- Caso o parâmetro 'MYFROTA_MOTORISTA_FUNC' esteja ativo, serão enviados para o myfrota somente os motorista com o campo TIPO DE MOTORISTA = F (FUNCIONÁRIO), configurado na rotina 929. (Adicione na consulta abaixo a seguinte condição: AND PCEMPR.TIPOMOTORISTA = 'F')
SQL Oracle
SELECT |
CAST(PCEMPR.NOME AS VARCHAR(80)) AS NAME,
CAST(PCEMPR.MATRICULA AS VARCHAR(25)) AS REGISTRATION_NUM,
NVL(CAST(PCEMPR.CNH AS VARCHAR(50)),'') AS HABILITATION_NUM,
NVL(CAST(TO_CHAR(PCEMPR.DTVALIDADECNH, 'YYYY-MM-DD') AS VARCHAR(10)),'') AS HABILITATION_DUE_DATE,
NVL(CAST(PCEMPR.ORGAOEMISSORCNH AS VARCHAR(25)),'') AS HABILITATION_ISSUER,
NVL(CAST(PCEMPR.CATEGORIACNH AS VARCHAR(25)),'') AS HABILITATION_CATEGORY,
CAST(DECODE(NVL(PCEMPR.DT_EXCLUSAO,''),'',DECODE(NVL(PCSETOR.USAMYFROTA,'N'),'S','true','false'),'false') AS VARCHAR(5)) AS ACTIVE,
NVL(CAST(PCEMPR.CPF AS VARCHAR(20)),'') AS CPF
, |
NVL(CAST(PCEMPR.
CNH AS VARCHAR(50)),'') AS |
HABILITATION_NUM, |
DTVALIDADECNH, 'YYYY-MM-DD') AS VARCHAR(10)),'') AS |
HABILITATION_DUE_DATE, |
(PCEMPR. |
ORGAOEMISSORCNH AS VARCHAR(25)) |
,'') AS HABILITATION_ISSUER, |
PCEMPR.CATEGORIACNH AS VARCHAR( |
25)),'') AS |
HABILITATION_ |
CATEGORY, |
CAST(DECODE(NVL( |
FROM PCLOGALTERACAODADOS D
WHERE D.DATA BETWEEN TO_DATE(TO_CHAR(SYSDATE,'dd/mm/rrrr')||' 00:00:00','dd/mm/rrrr hh24:mi:ss') AND
TO_DATE(TO_CHAR(SYSDATE,'dd/mm/rrrr')||' 23:59:59','dd/mm/rrrr hh24:mi:ss')
AND D.TABELA = 'PCEMPR'
AND D.COLUNA = 'CODFILIAL'
AND D.CODIGO = PCEMPR.MATRICULA), PCEMPR.ADMISSAO), 'YYYY-MM-DD HH24:MI:SS') AS SUBSIDIARY_CHANGE_DATE
PCEMPR.DT_EXCLUSAO,''),'',DECODE(NVL(PCSETOR.USAMYFROTA,'N'),'S','true','false'),'false') AS VARCHAR(5)) AS ACTIVE, |
RG AS VARCHAR(20)),'') AS |
RG, |
CNH AS VARCHAR( |
50)),'') AS |
CNH, |
DTNASC, 'YYYY-MM-DD') AS VARCHAR( |
10)),'') AS |
BIRTHDATE, |
CAST( |
DECODE(PCEMPR. |
CAST('BR' AS VARCHAR(2)) AS ADDRESS_COUNTRY
TIPOMOTORISTA, 'F', 'CLT', 'T', 'Terceirizado', 'CLT') AS VARCHAR(25)) AS TYPE, |
ADMISSAO, 'YYYY-MM-DD') AS VARCHAR( |
10)),'') AS |
ADMISSION_ |
DATE, |
CAST(PCFILIAL.RAZAOSOCIAL AS VARCHAR(60)) AS SUBSIDIARY_ID,
NVL(CAST(PCEMPR.ORGAOEMISSORRG AS VARCHAR(20)),'') AS RG_ISSUER,
CAST(PCEMPR.IDINTEGRACAOMYFROTA AS VARCHAR(50)) AS EXTERNAL_ID,
PCSETOR.DESCRICAO AS DEPARTMENT,
PCEMPR.EMAIL AS EMAIL,
PCEMPR.BAIRRO AS ADRESS_NEIGHBORHOOD
FROM PCEMPR, PCSETOR, PCFILIAL
WHERE PCEMPR.CODSETOR = PCSETOR.CODSETOR
AND PCEMPR.CODFILIAL = PCFILIAL.CODIGO
AND PCSETOR.USAMYFROTA = 'S'
AND
(IDSOFITVIEW IS NULL
OR ((TO_DATE(TO_CHAR(NVL(DT_EXCLUSAO,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')
- TO_DATE(TO_CHAR(NVL(DTEXCLUSAOSOFITVIEW,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')) > 0
AND IDSOFITVIEW IS NOT NULL AND CAST(IDSOFITVIEW AS INT) > 0)
OR (DTEXCLUSAOSOFITVIEW IS NOT NULL AND DT_EXCLUSAO IS NULL)
TO_CHAR(NVL((SELECT MAX(D.DATA) |
DT_EXCLUSAO,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') |
DTEXCLUSAOSOFITVIEW,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')) > 0 |
IDSOFITVIEW IS NOT NULL AND CAST(IDSOFITVIEW AS INT) > 0) |
PCSETOR.DTULTALTER,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') |
ORDER BY PCEMPR.MATRICULA DESC
Route (Rotas)
Todo o cadastro de rotas é automaticamente enviado para a Sofit View, não necessitando nenhuma configuração adicional, portanto, após configurar a integração, podem ser visualizados os clientes no sistema Sofit View.
- A cada 4 minutos será acionado a aplicação para enviar rotas.
- Todas rotas integradas gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT
CAST('INDEFINIDA' AS VARCHAR(50)) AS NAME,
CAST('0' AS VARCHAR(50)) AS FORESEEN_DISTANCE,
CAST('0000000001' AS VARCHAR(50)) AS EXTERNAL_ID
FROM DUAL
WHERE
(SELECT COUNT(CODROTA) FROM PCROTAEXP WHERE IDSOFITVIEW IS NULL) > 0
UNION ALL
OR ((TO_DATE(TO_CHAR(NVL(PCEMPR.DTULTALTER,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') --Retirar o comentario abaixo (--), somente se o parametro 4724 - Enviar ao myfrota somente funcionário do tipo motorista (MYFROTA_ENVIA_MOTORISTA) estiver igual a Sim --Retirar o comentario abaixo (--), somente se o parametro 4725 - Enviar ao myfrota somente motorista do tipo funcionário - (MYFROTA_MOTORISTA_FUNC) estiver igual a Sim |
Route (Rotas)
Todo o cadastro de rotas é automaticamente enviado para a Sofit View, não necessitando nenhuma configuração adicional, portanto, após configurar a integração, podem ser visualizadas as rotas no sistema Sofit View.
- A cada 4 minutos será acionado a aplicação para enviar rotas.
- Todas rotas integradas gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT UNION ALL SELECT |
Trip (Carregamento)
Quando é faturado carregamento no Winthor, o mesmo deve ser enviado de forma automática para a Sofit View.
- A cada 4,5 minutos será acionado a aplicação para enviar carregamentos.
- Todas carregamentos integradas gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
SELECT CAR.IDINTEGRACAOMYFROTA AS EXTERNAL_ID, |
Para envio de atualização de viagem, transferência de nota, cancelamento de nota e envio de nota o carregamento deverá aparecer na consulta abaixo, que é feita pela API no momento do envio.
Importante: Depois que o carregamento está fechado não e possível enviar mais os carregamentos e notas .
SQL Oracle
SELECT CAR.IDINTEGRACAOMYFROTA AS EXTERNAL_ID
...
,
CAST(NVL(
...
CAR.
...
IDSOFITVIEW,
...
0
...
) AS
...
Trip (Carregamento)
Quando é faturado carregamento no Winthor, o mesmo deve ser enviado de forma automática para a Sofit View.
- A cada 4,5 minutos será acionado a aplicação para enviar carregamentos.
- Todas carregamentos integradas gera informação de log na tabela PCINTEGRACAOEXEC seja de sucesso ou erro.
Inicialmente será realizado a consulta a seguir para buscar os registros que será enviado.
SQL Oracle
...
INT) AS IDSOFITVIEW,
CAST(UPPER(REGEXP_REPLACE(VEI.PLACA, '[^a-zA-Z0-9]', '')) AS
VARCHAR(10)) AS VEHICLE,
EMP.NOME AS EMPLOYEE,
CAST(NVL(ROT.DESCRICAO, 'INDEFINIDA') AS VARCHAR(40)) AS ROUTE,
CAST(TO_CHAR(CAR.DTSAIDA, 'YYYY-MM-DD') AS VARCHAR(10)) AS DATA,
'Carregamento: ' || CAR.NUMCAR AS OBSERVATION,
'Planejada' AS STATUS,
CAR.NUMCAR AS DOCNUMBER
FROM PCCARREG CAR, PCVEICUL VEI, PCEMPR EMP, PCROTAEXP ROT
WHERE CAR.CODVEICULO = VEI.CODVEICULO AND
CAR.CODMOTORISTA = EMP.MATRICULA AND
CAR.CODROTAPRINC = ROT.CODROTA AND
NVL(VEI.IDSOFITVIEW, 0) > 0 AND
NVL(EMP.IDSOFITVIEW, 0) > 0 AND
CAR.DTFAT IS NOT NULL
AND CAR.IDSOFITVIEW IS NOT NULL
AND CAR.DTFECHA IS NULL
AND ((TO_DATE(TO_CHAR(CAR.DTULTALTER,'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')
- TO_DATE(TO_CHAR(CAR.DTULTALTERSOFITVIEW,'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')) > 0
OR ((TO_DATE(TO_CHAR(CAR.DTULTALTER,'DD/MM/YYYY'),'DD/MM/YYYY')
- TO_DATE(TO_CHAR(CAR.DTULTALTERSOFITVIEW,'DD/MM/YYYY'),'DD/MM/YYYY') = 0)
AND
(TO_DATE(TO_CHAR(CAR.DTULTALTERSOFITVIEW,'HH24:MI:SS'),'HH24:MI:SS')
- TO_DATE(TO_CHAR(CAR.DTULTALTER,'HH24:MI:SS'),'HH24:MI:SS') > 0))
)
ORDER BY CAR.DTFAT ASC