Grid de consulta - log (join de tabela)

Pessoal.
Estou com a seguinte duvida para lista os logs de acesso sendo filtrados pelo id da empresa. Mas na tabela sc_log não tem o id da empresa. Então eu tenho que comparar o usuário com login e depois verificar qual é a empresa e fazer o filtro.
Eu montei este SQL abaixo:

SELECT
   sl.id,
   sl.inserted_date,
   sl.username,
   sl.application,
   sl.creator,
   sl.ip_user,
   sl.`action`,
   sl.description
FROM
   sc_log sl 
join sec_users su on sl.username = su.login 
   where su.id_empresa = [id_empresa]
ORDER BY 
    id DESC

Porque eu preciso mostrar os logs de acesso e como o meu sistema multiplas empresas eu preciso fazer um filtro pelo codigo da empresa. Mas para isto tenho que pegar o login e comparar com o username e usar a condição Where da empresa para listar os logs apenas da empresa desejado.
Quando eu executo o comando sql no banco o resultado vem corretamente.
Quando eu tento pelo sistema na aplicação da grid que foi criada da erro;

Undefined variable: description

erro_log

Já verifiquei a variavel global [id_empresa] e não acho onde é o problema.
Já fiz teste de mostrar a variavel global depois de feito o login no sistema na tela da grid e o valor do id da empresa vem corretamente.
Quem puder me ajudar a entender o erro.

pode ser esta aspa simples

sl.`action`,

Jair.
Bom dia.
Obrigado pelo retorno.
Fiz o teste. Removi as aspas e mesmo assim o erro continua.
quando eu tiro a condição de join do sql funciona tudo normal.
Quando eu coloco de volta da o erro.
Valeu.

Jair.
Eu até fiz um teste com o SQL Builder e gerei pela ferramenta e fico assim:
SELECT
sc.id,
sc.inserted_date,
sc.username,
sc.application,
sc.creator,
sc.ip_user,
sc.action,
sc.description
FROM
sc_log sc INNER JOIN sec_users sec ON sc.username = sec.login
WHERE
(sec.id_empresa = ‘[id_empresa]’)
ORDER BY
sc.id DESC

Teste e deu o mesmo erro.

Coloque a aplicação no modo debug, veja como esta o select

Jair.
Eu já fiz isto.
O problema não é o SQL.
Teste manualmente o sql tudo ok.

Mas sim alguma coisa na parte da programação do php.

Abre este arquivo e veja o que tem nesta linha 2884 (ou antes dela, normalmente o erro esta antes da que exibe)

Jair

  $_SESSION['sc_session'][$this->Ini->sc_page]['app_grid_log']['rows_emb']++;
  $this->sc_proc_grid = true;
  $_SESSION['scriptcase']['app_grid_log']['contr_erro'] = 'on';

$log_output = $this->Ini->NM_log_split($description ); “esta é a linha 2884
if (!is_array($log_output))

Jair.
Olha que estranho.
Da erro mas lista o conteudo agora.

Jair.

Será que não é esta variável o problema?
$description

Porque eu não tenho ela nem acima e nem abaixo onde ela está sendo informada. Só aparece nesta linha 2884.

image

voce tem esta variável dentro de algum evento?

em ultimo caso teria que refazer a aplicação, pode ter faltado algo na hora de gerar o .php

Jair.

Não tenho nada em relação a $description
Eu já deletei e recriei a aplicação e da o mesmo erro na mesma linha.
Estou pensando em fazer de uma outra forma a visualização dos logs de eventos do sistema. Já que não acho o erro…

description é uma palavra reservada. Sugiro mudar o nome desse campo na tabela e testar novamente.
Ou então crie um ALIAS para o campo ACTION, deixando ele assim, por ex.

sl.action AS acao,
1 Curtida

Kleyber,

Boa tarde.
Você acerto na mosca onde era o problema. Não sabia disto.
Muito Obrigado.
Abraço.

1 Curtida