Script rodando no Servidor

Boa tarde! Um script que fiz está rodando normalmente quando coloco ele num botão numa tela, mas se rodo por um tag no servidor ele não escreve nos tags que preciso. Alguem pode auxiliar no por que ?

Segue o script:

Sub Leitura_Balizadores_T03_Leitura()
Set oShell = CreateObject(“Wscript.Shell”)
Set fso = CreateObject(“Scripting.FileSystemObject”)

IP=“10.35.97.196”
PORT=4002
FILE=“t3_bal.txt”

MESSAGE=“ST 0”
strCmd=“python t3_bal.py " & IP & " " & PORT & " " & “””" & MESSAGE & “”"" & " " & FILE
oShell.Run(strCmd),0,true

Set qFile=fso.OpenTextFile(FILE)
strRet=qFile.ReadLine()
qFile.Close()

a =split(strRet," ",-1,1)
j=1
For i = 3 to 6
if a(i)= “0” then
Application.GetObject(“Tunel.T03.Externo.Balizadores.Tag_Balizador”&j).LIGADO_VERMELHO =1
elseif a(i)= “1” then
'Msgbox (“Verde”)
Application.GetObject(“Tunel.T03.Externo.Balizadores.Tag_Balizador”&j).LIGADO_VERDE =1
elseif a(i)= “4” then
Application.GetObject(“Tunel.T03.Externo.Balizadores.Tag_Balizador”&j).LIGADO_VERMELHO =0
Application.GetObject(“Tunel.T03.Externo.Balizadores.Tag_Balizador”&j).LIGADO_VERDE =0
'Msgbox (“Desligado”)
else
'Msgbox (“Invalido”)
end if
j=j+1
Next

IP=“10.35.97.202”
PORT=4002
FILE=“t3_bal.txt”

MESSAGE=“ST 0”
strCmd=“python t3_bal.py " & IP & " " & PORT & " " & “””" & MESSAGE & “”"" & " " & FILE
oShell.Run(strCmd),0,true

Set qFile=fso.OpenTextFile(FILE)
strRet=qFile.ReadLine()
qFile.Close()

a =split(strRet," ",-1,1)
j=1
For i = 3 to 6
if a(i)= “0” then
Application.GetObject(“Tunel.T03.Interno.Balizadores.Tag_Balizador”&j).LIGADO_VERMELHO =1
elseif a(i)= “1” then
'Msgbox (“Verde”)
Application.GetObject(“Tunel.T03.Interno.Balizadores.Tag_Balizador”&j).LIGADO_VERDE =1
elseif a(i)= “4” then
Application.GetObject(“Tunel.T03.Interno.Balizadores.Tag_Balizador”&j).LIGADO_VERMELHO =0
Application.GetObject(“Tunel.T03.Interno.Balizadores.Tag_Balizador”&j).LIGADO_VERDE =0
'Msgbox (“Desligado”)
else
'Msgbox (“Invalido”)
end if
j=j+1
Next
End Sub

Olá @Vilin, a referência GetObject se dá na comunicação entre viewer e servidor, no cenario que vc está levantando estaria ‘tudo no servidor’, então seria realação entre Parent e etc

Bom dia ! Na verdade esse não seria o problema, em contato com o suporte da Elipse me informaram que o objeto Wscript.Shell não pode ser rodada no servidor. Estou tentando encontrar outra solução, basicamente o que eu preciso é rodar um programa python no servidor e retornar um valor no Elipse.

Quando rodamos scripts no servidor, não temos avisos de Script error em tela, igual temos no viewer. No caso do server, os erros são logados no Log do E3. Lá será possivel analisar o que está falhando na logica.

Teste assim:

Dim objShell
Dim sPyExePath 
Dim sPyScriptFile 

Set objShell = CreateObject("WScript.Shell")

' # Caminho completo do python.exe
sPyExePath = "c:\users\leand\appdata\local\programs\python\python310\python.exe"

' # Caminho do script em python
sPyScriptFile = "c:\caminho\script.py"

' # Exec
objShell.Exec sPyExePath & " " & sPyScriptFile
1 Like

Acabamos mudando a abordagem e conseguimos comunicar usando o driver ASCII da elipse, obrigado!