Filtrar por Data em Objeto de Negocio SmartView

Boa tarde, criei um .tlpp de objeto de negocio, e um desses campos que vem da query é formado data ex:20250207 a coluna é H6_DTAPONT da tabela SH6.

pego este campo e converto para 2025-02-07T00:00:00-03:00 com o comando

cDate := iif(!empty((cAlias)->H6_DTAPONT), FwTimeStamp(5, StoD((cAlias)->H6_DTAPONT),"00:00:00"), nil)

Quando abro o objeto de negocio lá no smartview ele fica assim 2024-10-09T03:00:00+00:00

Desta forma não consigo filtrar por data, pois no json do smart view a data é tratada assim 2025-02-07T00:00:00-03:00

segue json do filtro { "operator": "And", "conditions": [ { "operator": "GreaterThan", "property": "DtApontamento", "values": [ "2024-11-01T00:00:00-03:00" ], "parameters": [] }, { "operator": "LessOrEquals", "property": "DtApontamento", "values": [ "2024-12-31T00:00:00-03:00" ], "parameters": [] } ] }

Sempre quando tento criar um filtro de data maior igual e menor igual retorna erro.

Erro: O ERP TOTVS teve um comportamento inesperado, verifique os detalhes connectors.native.internal-server-error - O ERP TOTVS teve um comportamento inesperado, verifique os det ERRO

Creio que seja por que na coluna a data não esta coerente com o padrão usado no json

Olá Wellington, eu segui os exemplos do tdn e deu certo, segue exemplo.


if (ValType(jParams["05"]) <> "A" .and. ValType(jParams["06"]) <> "A")
    lUseParams := .F.
endif

if lUseParams .and. !empty(jParams["05"][1]) .and. !empty(jParams["06"][1])
   cQuery += " AND D2_EMISSAO BETWEEN " +ValToSql(DTOS(fwDateTimeToLocal(jParams['05'][1],0)[1])) + " AND " +  ValToSql(DTOS(fwDateTimeToLocal(jParams['06'][1],0)[1]))
endif

Boa tarde Leandro, obrigado por seu retorno!! Porém não consegui implementar seu codigo… Mas consegui fazer funcionar!! Era a ordem do filtro que estava posicionado errado no cod!

if oFilter:hasFilter() cQuery += " AND " + oFilter:getSQLExpression() endif

Esta parte do meu codigo estava posicionado no lugar errado..

Boa tarde Wellington, estou querendo converter um campo da tabela SC6 que é a C6_DATFAT. Poderia me explicar em qual parte do código você incluiu está função de conversão para data ?

cDate := iif(!empty((cAlias)->H6_DTAPONT), FwTimeStamp(5, StoD((cAlias)->H6_DTAPONT),“00:00:00”), nil)