Gravar usuário logado quando alarme dispara

Boa tarde!

Estou com dificuldade para gravar no banco de dados o usuário logado quando um determinado alarme dispara.

Eu criei uma tag interna UserLogin que recebe, durante o evento OnLogin do Viewer, o nome do usuário logado (como abaixo).

Sub Viewer_OnLogin()
Application.GetObject(“Dados.UserLogin”).Value = User
End Sub

Em seguida, eu criei no Servidor de Alarmes um campo de usuário chamado Login e fiz o link com a tag interna UserLogin. Adicionei esse campo para ser registrado e gerei a tabela de alarmes. A tabela, no banco de dados, está com o campo de Login correto.

No entanto, quando o alarme dispara, não aparece no campo Login o usuário logado. O campo fica vazio ou com valor “0”.

Alguém poderia ajudar?

Boa tarde, Manoela!

Como está configurado o tipo do campo do usuário?

Boa tarde, Paulo!

Está configurado como string.

Pode enviar a sua aplicação? Meu e-mail é pgustavo@elipse.com.br.

Paulo, infelizmente eu não tenho autonomia e autorização pra te enviar a aplicação.

Pode enviar o log do E3?

E o seu tag interno UserLogin , dentro da pasta Dados , também é do tipo string?

1 Like

Infelizmente acredito que não também.

Sim. Já criei, inclusive, um tag interno tipo string com valor fixo “teste” e associei ao campo de usuário. Nesse caso, o campo Login alterna entre “teste” e “0”.

Qual banco está usando? Access, Oracle ou SQL? Consegue colocar aqui o seu output?

1 Like

Estou usando Access.

Fiz uma tela de consulta de alarmes e visualizo os alarmes por meio de um E3Browser. A imagem mostra a saída do E3Browser. Quando acesso diretamente o banco, os campos de Login estão da mesma forma.

Como vc fez a associação no campo de usuário? Consegue um print? Muito estranho, testei com SQL e Access e ambos estão ok.

1 Like

Outra sugestão, na sua consulta habilite a edição direta do SQL na aba SQL, e digite o código abaixo, então na aba Visualizar clique em executar e veja qual será o resultado.

select Login
from Alarms
order by E3TimeStamp asc

A associação está assim. Como não estou comunicando diretamente com o PLC ainda, criei um AlarmeTeste digital para testar o alarme.

Já testei e não funcionou, infelizmente.

De alguma forma, quando o alarme dispara, a informação armazenada no tag UserLogin é perdida. Coloquei uma string na tela pra visualizar o valor desse tag e ele fica nulo quando o alarme dispara.

Não tem nenhum outro script ou associação que possa estar alterando o valor desse tag?

Nada diretamente ao tag que criei (UserLogin).

Manoela,

Nessa imagem você mostra que o campo está associado ao Tag ‘Dados_Scr.Dados.LoggedInUser’, porém no seu primeiro post o nome do Tag era ‘Dados.UserLogin’. Será que o problema é esse?

Paulo, eu alterei o nome do tag depois. O campo de usuário está associado ao tag correto.