Páginas filhas
  • Myfrota - Fluxo de Integração

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • 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. 

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.

         Image Added

  • 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')

         Image Added


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.RG AS VARCHAR(20)),'') AS RG,
    NVL(CAST(PCEMPR.CNH AS VARCHAR(50)),'') AS CNH,
    NVL(CAST(TO_CHAR(PCEMPR.DTNASC, 'YYYY-MM-DD') AS VARCHAR(10)),'') AS BIRTHDATE,
    CAST(DECODE(PCEMPR.TIPOMOTORISTA, 'F', 'CLT', 'T', 'Terceirizado', 'CLT') AS VARCHAR(25)) AS TYPE,
    NVL(CAST(TO_CHAR(PCEMPR.ADMISSAO, 'YYYY-MM-DD') AS VARCHAR(10)),'') AS ADMISSION_DATE,
    TO_CHAR(NVL((SELECT MAX(D.DATA)
 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,
    NVL(CAST(PCEMPR.CELULAR AS VARCHAR(20)),'') AS PHONES,
    NVL(CAST(PCEMPR.ENDERECO AS VARCHAR(60)),'') AS ADDRESS,
    NVL(CAST(PCEMPR.ESTADO AS VARCHAR(2)),'') AS ADDRESS_STATE_ID,
    NVL(CAST(PCEMPR.CIDADE AS VARCHAR(50)),'') AS ADDRESS_CITY_ID,
    CAST('BR' AS VARCHAR(2)) AS ADDRESS_COUNTRY,
    NVL(CAST(PCEMPR.CEP AS VARCHAR(20)),'') AS POSTAL_CODE,
    CAST('Motorista' AS VARCHAR(25)) AS EMPLOYEE_ROLE_ID,
    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)
        OR ((TO_DATE(TO_CHAR(NVL(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')
        - TO_DATE(TO_CHAR(NVL(DTULTALTERSOFITVIEW,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 DTULTALTERSOFITVIEW IS NOT NULL)
    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')
        - TO_DATE(TO_CHAR(NVL(DTULTALTERSOFITVIEW,TO_DATE('01/01/1900','DD/MM/YYYY HH24:MI:SS')),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS')) > 0
        AND DTULTALTERSOFITVIEW IS NOT NULL)
  )) > 0
        AND DTULTALTERSOFITVIEW IS NOT NULL)

--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
--AND PCEMPR.TIPO = 'M' 

--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
-- AND PCEMPR.TIPOMOTORISTA = 'F' 
 AND ROWNUM < 101
)
ORDER BY PCEMPR.MATRICULA DESC

...

Importante: Depois que o carregamento está fechado não e possível enviar mais as os carregamentos e notas .

SQL Oracle

SELECT CAR.IDINTEGRACAOMYFROTA AS EXTERNAL_ID,
       CAST(NVL(CAR.IDSOFITVIEW, 0) AS 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

...