Como eu resolvo o erro Can’t find point view c1?
este erro aparece quando eu tento abrir uma tela pop-up por um script html
Segue o código utilizado:
TELA MOTORComo eu resolvo o erro Can’t find point view c1?
este erro aparece quando eu tento abrir uma tela pop-up por um script html
Segue o código utilizado:
TELA MOTORBoa noite. Acho que seu link “TELA MOTOR” está quebrado, ao clicar nele não acontece nada.
Quanto ao erro, tenho a impressão que já me deparei com algo semelhante antes, mas não consigo lembrar o que causou o erro. Se for possível corrigir o link com o código posso tentar reproduzir o erro aqui.
Infelizmente parece que ainda não está funcionando. Tente tirar um print do código e posta como imagem aqui.
Testei seu código e de fato obtive o mesmo erro. Engraçado que para mim este erro também passou a aparecer quando eu navego pelas as telas das Representações Gráficas através dos botões de avançar e recuar pelo histórico do navegador. Isso também acontece com mais alguém?
Andei pesquisando o que poderia ser a causa desse erro e estou tentando elaborar um paliativo (“gambiarra”), se eu conseguir alguma coisa, posto aqui.
Fiz mais uns testes e o problema parece que é mais complicado do que eu pensei que era. Aparentemente quando você abre duas Representações Gráficas em abas diferentes (ou mesmo em janelas diferentes) do mesmo navegador, o ScadaBR começa a exibir elementos da Representação Gráfica aberta por último naquela que foi aberta por primeiro, além de gerar o erro de “Can’t find point view”. Recarregar a página não resolve o problema, e o conteúdo de uma Representação permanece interferindo no conteúdo da outra.
Não sei se esse bug foi corrigido em alguma versão mais nova do ScadaBR ou no Scada-LTS (estou usando o ScadaBR 1.0CE no Windows XP). A única coisa que posso dizer é que, diante disso, é preferível abrir apenas uma Representação Gráfica por vez em cada navegador.
Sim, para mim ocorreu o mesmo problema… porém quando você está fazendo um supervisorio, fica mais simples para o operador quando tu clica no equipamento e abre uma “telinha” de motores, por isso pensei na solução de abrir uma janela estilo POP UP… será que teria alguma outra solução?
Isso ocorre na 1.1 CE também, o problema está relacionado ao login do usuário, se você abrir representações gráficas diferentes em navegadores, abas ou até dispositivos diferentes usando o mesmo login esse erro acontece. Depois com mais calma vou dar uma olhada nas entranhas do sistema para tentar fazer alguma modificação em relação a isso.
Quando eu estava criando o ScadaBR-EF eu dei uma olhada para entender melhor esse problema.
Basicamente o problema ocorre porque a estrutura do ScadaBR não considerou a possibilidade do acesso simultâneo a várias representações gráficas. O que acontece é que é armazenada a informação sobre a “representação atual” como uma propriedade da sessão de usuário. Toda vez que você abre uma nova representação gráfica, essa propriedade é sobrescrita e as representações anteriores param de ser atualizadas (com os dados corretos).
E por que ocorre o erro Can't find point view c[número]?
Ele ocorre porque cada elemento que compõe uma representação gráfica (uma imagem, um botão, uma lista de alarmes, etc.) é salvo no banco de dados com um ID numérico começando em 1.
Suponha que você primeiramente tenha aberto uma representação que tinha elementos com IDs 1, 3 e 4
, por exemplo. Ao abrir uma segunda representação no mesmo navegador, o ScadaBR automaticamente entende que você mudou sua “representação atual” e passa a retornar todos os dados como se referindo à representação aberta por último. Assim, se essa última representação contém elementos com IDs 1, 2 e 3
ocorrerá um conflito na aba da primeira representação (porque o ScadaBR não encontrará o ID 2
nessa aba) e será gerado o tal erro Can't find point view c2
.
Esse erro ainda é um alerta importante. Às vezes, por coincidência, duas representações gráficas tem elementos diferentes, mas seus IDs são iguais. Nesse caso, ocorre que o conteúdo da representação aberta por último é inserido naquela aberta por primeiro, gerando um comportamento problemático.
Infelizmente, para alterar essas coisas é necessário um conhecimento razoável em Java, Javascript e da biblioteca DWR, e também tempo. É necessário alterar um pouco da estrutura do ScadaBR para que funcione esse suporte a múltiplas representações. Eu particularmente não consegui fazer isso no ScadaBR-EF. Então, por enquanto, deve-se ter em mente que, para as versões do ScadaBR que temos atualmente (sobre o Scada-LTS eu não sei) não é possível acessar mais de uma representação gráfica simultaneamente no mesmo navegador.
Espero que essa explicação, por mais superficial que tenha sido, possa ajudar quem queira compreender melhor esse erro.
Muito obrigado por sua explicação, foi bem esclarecedora. Aqui eu consegui contornar o problema habilitando o acesso anônimo (public_view.htm?viewId=‘n’) somente leitura nas representações gráficas e colocando em cada uma das telas um botão apontando para o seu próprio link que exige login (views.shtm?viewId=‘n’) para quando for necessário executar algum comando. Pois percebi que pelo acesso anônimo, o acesso simultâneo à várias representações gráficas, iguais e/ou diferentes, o conflito não ocorre.