Tempo aproximado para leitura: 00:01:00 min
Dúvida
Como corrigir a mensagem Erro de negócio (21652) ao tentar acessar telas HTML no Datasul?
Conteúdo completo da mensagem de erro;
Ocorreu um erro inesperado durante o processo !
Durante a execução da procedure INTEGRATIONACCOUNT ocorreu um erro do tipo PROGRESS ERROR.
ERRO ** Insufficient access privilege for table modul_dtsul. (234)
Ambiente
Framework - Framework (Linha Datasul) - Segurança (SEC) - Todas as versões
Solução
O erro ocorre porque o banco de dados está com segurança aplicada para os usuários em uma ou mais tabelas. No exemplo abaixo, a segurança está aplicada na tabela modul_dtsul e com isso apresenta o erro na hora de tentar abrir a tela html.mce.cd1406.
No log do Appserver será apresentado o erro conforme exemplo abaixo:
-- (Procedure: 'getInternalSalesOrders ** Insufficient access privilege for table modul_dtsul. (234)
-- (Procedure: 'getInternalSalesOrders QUERY-OPEN for query requires a previous QUERY-PREPARE. (7312)
-- (Procedure: 'getInternalSalesOrders Cannot run GET methods on query until it is opened. (7313)
Para corrigir esse cenário, atualmente existem duas possibilidades:
1. Atribuir no banco a permissão de READ para o usuário na tabela onde o erro ocorreu.
2. Criar um usuário no banco, que tenha permissão nessa tabela.
Quando for fazer a conexão desse banco, seja no .PF do AppServer ou no cadastro de bancos da empresa, informe esse usuário através dos parâmetros -U usuario -P senha.
Caso não queira que sua senha fique exposta no .PF ou no cadastro, use a ferramenta da Progress para codificar a senha:
genpassword -password "clear_text" xxxxxxxxx
Dessa forma a conexão do seu banco sempre será feita com um usuário autenticado e com permissão de acesso aos dados.
Observação: Referente a senha codificada, segue documentação para auxilio - https://community.progress.com/s/article/P108708
Importante: É preciso colocar a string oech1:: na frente da senha gerada
0 Comentários