Pessoal, bom dia! Já vi aqui no forum que muita gente está trocando a abertura das SXS pela função OpenSXs.
Fiz a mesma coisa. O sistema está rodando certinho na Release 17, mas quando subo meu fonte no CodeAnalisys ele está criticando.
Existe alguma outra forma do CodeAnalisys não criticar? Ele dá o erro dizendo que não é pode ter acesso direto ao dicionário de Dados.
Vocês já passaram por isso? Tem solução? Eu acredito que o CodeAnalisys está lendo o texto ao invés de ver as funções.
Desde já, agradeço.
Boa tarde Raphael, a função OpenSXS abre os dicionários, mas isso não evita necessariamente o acesso direto aos mesmos. Quais são os erros? Diversas classes com métodos estáticos estão sendo criados afim de evitar esses acessos diretos, sendo que você pode entrar em contato com a TOTVS e solicitar uma melhoria, um novo método etc.
— Daniel Mendes 31 de Oct de 2019Olá Daniel, boa tarde! Neste caso que estou usando é para criar uma tabela temporária. Antes era feito da seguinte forma: DbSelectArea("SX3") SX3->(MsSeek("SE2")) While !SX3->(Eof()) .and. X3_ARQUIVO == "SE2" //Adicionava as informações no Array EndDo //Era feito um DbUserArea para criar a tabela temporária Agora está ficando: OpenSxs(,,,,cEmp,"SX3TMP","SX3",,.F.) If Select("SX3TMP") > 0 SX3TMP->(DbSetFilter({|| Alltrim(X3_ARQUIVO) == "SE2"})) While !SX3TMP->(Eof()) //Adiciona campos no Array SX3TMP->(DbSkip()) EndDo Endif //Usa FwTemporaryTable
— Raphael Neves Pinheiro 31 de Oct de 2019