FWGetSX5 não funciona corretamente

Estou utilizando a função FWGetSX5 e verifiquei que ela não funciona corretamente. Na documentação do TDN esta função possuí 3 parametros, tabela, chave e idioma.

Função: FWGetSX5 Função de retorno dos campos de uma tabela no SX5. Sintaxe FWGetSX5 ( < cTable >, [ cKey ] ,[cIdiom]) --> aRetorno

Porém, se preciso fazer uma busca informando a tabela + a chave, o array retorna vazio. Só funciona se eu informar somente a tabela.

Verifiquei que este problema pode ser no tamanho do campo chave. Se a minha chave tem o tamanho exato de caracteres do X5_CHAVE, o array retorna o valor esperado corretamente, mas no TDN não há nenhuma informação adicional quanto a isso.

Gostaria de saber se mais alguem teve problemas com a função FWGetSX5 e se conseguiu uma solução sem precisar tratar o array. Outra pergunta: a função TABELA continua funcionando normalmente nos releases mais novos?

Boa noite Gabriela, os dados são pesquisados com um DBSeek, consegue verificar no log do DBAccess como ficou a query no SX5 quando você reproduz o problema, por favor.

Ola Gabriela Dalle Luche,

Vale ressaltar como está configurada a tabela SX5 na SX2 caso a tabela esteja compartilhada e você utiliza ela de forma ex clusiva "por filial" a função não ira funcionar !!

Eu tive esse problema "com a virada da 12.1.17 para 12.1.25" no qual a minha tabela erra compartilhada porem para o cadastros de serie no SIGAFAT eu cadastrava de forma exclusiva , para resolver esse problema no padrão existe o ponto de entrada https://centraldeatendimento.totvs.com/hc/pt-br/articles/360007367911-MP-TMS-Ponto-de-entrada-CHGX5FIL-utiliza-tabela-01-exclusiva-em-um-SX5-compartilhado

E no meus fontes customizados eu fiz o seguinte, criei uma user function que resolve minha vida :


user function xGetSx5(_cFilial, _cSerie)
    Local aDados := {}
    Local cQuery := ""
    if Select("cAliasSX5") > 0
        cAliasSX5->(DbCloseArea())
    EndIF
    cQuery += " SELECT X5_FILIAL AS FILIAL,X5_CHAVE AS CHAVE,X5_DESCRI AS DESCRI"
    cQuery += " FROM " + RetSqlName("SX5")
    cQuery += " WHERE  X5_FILIAL = '" + _cFilial  + "'"    
    cQuery += "        AND X5_CHAVE = '" + _cSerie + "'"
    DbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),"cAliasSX5",.T.,.T.)
    while ! cAliasSX5->(Eof())
        aAdd( aDados, {cAliasSX5->FILIAL,cAliasSX5->CHAVE,cAliasSX5->DESCRI} )
        cAliasSX5->(DbSkip())
    end
    cAliasSX5->(DbCloseArea())
return aDados