Log de uso da aplicação...

(rrma) #1

Amigos, acabei de comprar o SC e estou usando o forum hoje pela primeira vez. Caso esteja na seção errada me perdoem.

Gostaria de saber se o SC pode fazer log de tudo que o user faz, por exemplo, data, hora, nome do user, aplicação, ação… No caso de alterações, valor anterior, valor novo…

É possível fazer ou já existe isso nativamente?

Sou usuário de um gerador em vb6 que faz isso e gostaria de ter também nos meus projetos web.

Em tempo, gostaria de sugestão do pessoal para um software de geração visual de diagramas de classe e ER que seja preferencialmente free, destinado a criar estruturas principalmente para mysql. Uso ms-sql há muitos anos, mas vou começar com o mysql agora.

Um abraço a todos.

(Rodrigo Lins) #2

Bom Dia,

Nos sistemas gerados através do ScriptCase, não possui isto nativo teria que ser implementado com sua regra de negócio, etc… Em desenvolvimento (no ScriptCase) já possui tudo isto, que pode ser visto através da Administração do ScriptCase na opção “Log”.

Nas suas aplicações é simples de se fazer, porém, tentei encontrar uma material para você ver… encontrei, mas está bem desatualizado… são imagens da versão 3… mas, a funcionalidade em si (as macros, etc) são as mesmas.

Existe este tutorial: http://www.scriptcase.com.br/site/baseknowledge/baseknowledge.php?id_topico=200

E este vídeo:
http://downloads.netmake.com.br/site/examples/video/pt_br/mcr5_log_acesso/mcr5_log_acesso.html

Dê uma olhada e se não conseguir entender nada, nos comunique.

Com relação à ferramenta, free e do mysql eu conheço o DbDesigner, que agora é o Mysql Workbench.

Espero ter ajudado.

Rodrigo Lins.

(rrma) #3

Bom dia Xará!!!

Obrigado pelas dicas, vou olhar e tentar aprender…
Já baixei o workbench tb.

Seria legal sugerir esse log de aplicação para o desenvolvimento do SC, uso outro gerador que faz isso nativo e é uma mão na roda pra descobrir ‘quem fez o que’ no sistema.

Um abraço

Rodrigo Araújo

(Rodrigo Lins) #4

rs…
Bom Dia Xará…

Concerteza, seria muito interessante esta opção, poderia ser dado esta sugestão no Tópico que foi aberto para a Versão 5, onde estão sendo dadas sugestões para serem implementadas em releases posteriores.

Versão já vai ter um gerador (que na V4 aind falta) de Segurança, onde é necessário só ter as tabelas prontas para receber as informações (usuário, senha, aplicações, permissões), no mais serão criados, por padrão, aplicações de login, senha, etc…

Creio que o LOG poderia ser encaixado neste módulo.
Abraço.

Rodrigo Lins.

(rrma) #5

Tenho aqui um exemplo de log, se o pessoal desse uma olhada seria legal. É muito interessante.

(system) #6

Esses tempos fiz um aqui parecido com o tutorial que o Rodrigo Lins passou, fica bem bacana…

No meu caso eu uso cookies pro nome do usuário e o id do cliente fica localizado em sessão:

Biblioteca - log.php:

<?php
function log($logapl,$logreg,$logacao)
{
	$userid = $_COOKIE["usuarioid"];
	$logip = $_SERVER["REMOTE_ADDR"];
	sc_exec_sql("INSERT INTO logs (cli_id,log_data,log_apl,log_acao,log_user,log_ip,log_campo) VALUES ([cli_id], NOW(), '$logapl', '$logacao', '$userid', '$logip', '$logreg')");
}
?>

Códigos inseridos nas aplicações:

// Formulário - evento OnLoad $campo = "{campo}"; // nome do campo que interessa gravar (chave primaria por ex) $apl = "nome_da_apl"; // nome da aplicação no sc if (sc_btn_new) {$act = "NOVO";} else {$act = "ABRIR";} log($apl,$campo,$act);

// Formulários - evento OnValidate
$campo = "{campo}";
$apl = "nome_da_apl"; 
if (sc_btn_update) {$act = "ATUALIZAR";}
elseif (sc_btn_insert) {$act = "INSERIR";}
elseif (sc_btn_delete) {$act = "EXCLUIR";}
else {$act = "DESCONHECIDO";}
log($apl,$campo,$act);
// Consultas - evento OnInit
$campo = "-";
$apl = "nome_da_apl";
$act = "ABRIR";
log($apl,$campo,$act);
// Botões PHP com ações no banco de dados
$campo = "{campo}";
$apl = "nome_da_apl";
$act = "COMPRAR"; // aqui coloco a descrição da ação que o botão realiza..
log($apl,$campo,$act);

Na hora de mostrar o relatório dos logs eu faço um lookup do nome do campo buscando a descrição dele na tabela seg_aplicacoes (do exemplo “segurança” da netmake)…
o resultado fica assim: http://www.liderbus.net.br/logs.pdf

(rayfcrols) #7

Robson, gostei de sua aplicação mais comigo esta ocorrendo erros “Wrong parameter count for log()”. o que pode ser?

(rayfcrols) #8

Ops. Conseguir faltou ativar na aplicação o uso da biblioteca.

PS 1. Tenho uma duvida eu coloquei alguns log tmb nos After… a duvida é; O Log será gravado ou não se houver algum erro nas rotinas de insert,update,delete?

PS 2. Estou buscando generalizar esta aplicação de LOG, para isto gostaria de que o script pegasse o nome da aplicação automaticamente talvez com uma variavel interna do SC tipo “$var_apl…” não sei seria interessante.

(rayfcrols) #9

Robson, como eu havia dito estou tentando deixar a aplicação o mais genérico possível veja algumas adaptações que eu fiz em seu exemplo.

A minha biblioteca esta ± assim:
[i]

<?php Function log($logreg,$logacao) { $userid = $_COOKIE["usuarioid"]; $aplphp = end(explode("/", $_SERVER['PHP_SELF'])); $apl = basename ($aplphp ,".php"); // $arquivo = "aplicação" $logip = $_SERVER["REMOTE_ADDR"]; sc_exec_sql("INSERT INTO logs (log_apl,log_acao,log_user,log_ip,log_campo) VALUES ('$apl', '$logacao', '$userid', '$logip', '$logreg')"); } ?>[/i]

Ou seja nas aplicações eu estou passando somente o Campo e a descrição da Ação… tenho mais algumas ideias postarei logo… vlu…