Direct Access not allowed in data dictionary. Acesso SX3

Bom dia pessoal,

Estou ajustando os fontes para corrigir os erros de Direct Access not allowed in data dictionary de acesso a tabela SX3. OpenSXS.JPG

Conforme a imagem, utilizei a função OpenSxs para abrir a tabela SX3, de acordo como a documentação recomenda, porém o CodeAnalysis ainda apresenta erro de Direct Access not allowed in data dictionary. Estou fazendo o ajuste de forma errada ou o CodeAnalysis que está apresentando estes erros de forma equivocada?

Bom dia, Crystian!

Passei por uma situação similar e corrigi usando a classe FwSx3Util e a função GetSx3Cache. Segue exemplo abaixo:


_cAlias := 'ZD3'

_aCpoSX3 := FwSX3Util():GetAllFields(_cAlias)

_cAcols    := "ZD3_COD/ZD3_DESCRI/ZD3_UM"

For i := 1 To Len(_aCpoSX3)

    If(X3Uso(GetSx3Cache(_aCpoSX3[i], 'X3_USADO')) .And. AllTrim(GetSx3Cache(_aCpoSX3[i], 'X3_CAMPO')) $ _cAcols)

        nUsado++

        aAdd(_aHeader, {AllTrim(GetSx3Cache(_aCpoSX3[i], 'X3_TITULO')),;
                        AllTrim(GetSx3Cache(_aCpoSX3[i], 'X3_CAMPO')),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_PICTURE'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_TAMANHO'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_DECIMAL'),;
                        "AllWaysTrue()",;
                        GetSx3Cache(_aCpoSX3[i], 'X3_USADO'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_TIPO'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_F3'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_CONTEXT'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_CBOX'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_RELACAO'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_WHEN'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_VISUAL'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_VLDUSER'),;
                        GetSx3Cache(_aCpoSX3[i], 'X3_PICTVAR'),;
                        If(GetSx3Cache(_aCpoSX3[i], 'X3_OBRIGAT') == "€", .T., .F.)} )

    Endif

Next i

Muito obrigado Giordano. Vou ajustar meu código conforme sua sugestão.