Tempo aproximado para leitura: 00:03:00 min
Ocorrência
Ao utilizar alguma de manipulação de banco de dados (especialmente DbCloseArea() e DbUseArea()), o erro "alias does not exist SM0" passa a ser apresentado na customização.
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 12.1.17
Causa
Este erro ocorre porque alguma função, classe ou pseudocomando efetuou o fechamento do arquivo de trabalho SM0.
Solução
- Identificar qual função está ocasionando o fechamento do arquivo:
- Insira um ponto de parada no início da sua customização e valide qual função está efetuando o fechamento do arquivo;
- Funções como DbUseArea() (vide parâmetro lNewArea) e DbCloseArea() podem direta ou indiretamente fechar este arquivo de trabalho.
- Verificar se já existe uma função/classe que realize a mesma ação sem realizar o fechamento do arquivo temporário:
- Por exemplo, para manipulação de tabelas temporárias ou arquivos de trabalho, pode ser utilizada a classe FwTemporaryTable().
- Armazenar e restaurar o estado de um arquivo de trabalho:
- No início do fonte armazene os arquivos desejados por meio da função GetArea() e restaure ao final das manipulações com a função RestArea().
- No início do fonte armazene os arquivos desejados por meio da função GetArea() e restaure ao final das manipulações com a função RestArea().
Saiba mais
DBUseArea - Criação de arquivos de trabalho
FWTemporaryTable - Criação de tabelas temporárias
GetArea - Retorna área de trabalho
RestArea - Restauração da área de trabalho
0 Comentários