Jump to content


< Back to Forum


 

Error Runscript_Clearscriptv8_Scriptengineexception


  • Please log in to reply

#1 Diego Miņo 26 October 2017 - 04:29 AM

Hi, I'm doing tests outside production environment, and I can not execute a query to BD, using: Run VBScript.
 
It gives me an error,
 
The odbc I use is 64 bits, when I execute a .vbs file it works correctly, when I pass the code to the voiceguide it gives error.
 
Windows 10 64 bits
BD informix
 
 
the error   "RunScript_ClearScriptV8_ScriptEngineException"
 
I test "by adding this entry to [moduleRunScript] section of VG.INI : Engine=WSH" and the error is the same
 
Please help them urgently.
Br
Diego Mino


#2 Diego Miņo 26 October 2017 - 05:59 AM

hello, do additional testing.
 
I replace: Engine = WScript in vg.ini
 
[moduleRunScript]
UseSafeSubset = False
'Engine = ClearScriptV8
Engine = WScript
SaveToFile = False,
 
VBS is already running, a temporary file is created "vbs_7_1.vbs", but there are no results of the query, the call is waiting.
 
Br
 
Diego Mino


#3 SupportTeam 26 October 2017 - 06:39 AM

Could you please add a few "Admin_TraceLogAdd" calls into the ran VBScript to better establish at which point the VBscript is failing.

 

eg: make the VBScript something like this:

 

 

 

 

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Admin_TraceLogAdd $RV_LINEID, 0, "CreateObject ADODB.Connection call"
Set conn = CreateObject("ADODB.Connection")
vg.Admin_TraceLogAdd $RV_LINEID, 0, "CreateObject ADODB.Recordset call"
Set rst = CreateObject("ADODB.Recordset")
vg.Admin_TraceLogAdd $RV_LINEID, 0, "conn.Open call"
Call conn.Open("DSN=IVR","informix","informix")
'Conn.open "DSN=IVR;UID=informix;PWD=informix;DATABASE=agosto31"
cmd = "execute procedure sp_cacec_01('$RV[cedula]',$RV[codigo])"
vg.Admin_TraceLogAdd $RV_LINEID, 0, "ActiveConnection set"
rst.ActiveConnection = conn
vg.Admin_TraceLogAdd $RV_LINEID, 0, "rst.Open call"
rst.Open(cmd)
vg.Admin_TraceLogAdd $RV_LINEID, 0, "rst.Open returned"
If Not (rst.EOF Or rst.BOF) Then
  vg.Admin_TraceLogAdd $RV_LINEID, 0, "assigning indcli"
  indcli = rst(0).Value      '------ Indicador de si es o no es mi cliente si es 0 no es cliente o mal cedula o codigo
  vg.Admin_TraceLogAdd $RV_LINEID, 0, "assigning pswcli"
  pswcli = rst(1).Value      '------ Clave de Sistema IVR si es 0000 actualizar clave
End If

'msgbox indcli,vbOKOnly,"Es mi socio"
'msgbox pswcli,vbOKOnly,"Clave IVR"

vg.Admin_TraceLogAdd $RV_LINEID, 0, "RvSet  calls"
vg.RvSet $RV_LINEID, "cliente", indcli
vg.RvSet $RV_LINEID, "llegaclave", pswcli
vg.Run_ResultReturn $RV_LINEID, "success"
set vg = Nothing

 

 

 

 

Then make a test call again and post the vgEngine trace.



#4 SupportTeam 26 October 2017 - 06:43 AM

Also, can you please update this system to the latest version of VoiceGuide.

 

The version that is being used on this system now is over 3 years old.



#5 SupportTeam 26 October 2017 - 06:49 AM

added the "cmd set" debug trace :

 

 

 

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Admin_TraceLogAdd $RV_LINEID, 0, "CreateObject ADODB.Connection call"
Set conn = CreateObject("ADODB.Connection")

 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "CreateObject ADODB.Recordset call"
Set rst = CreateObject("ADODB.Recordset")

 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "conn.Open call"
Call conn.Open("DSN=IVR","informix","informix")

'Conn.open "DSN=IVR;UID=informix;PWD=informix;DATABASE=agosto31"
 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "cmd set"

cmd = "execute procedure sp_cacec_01('$RV[cedula]',$RV[codigo])"

 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "ActiveConnection set"
rst.ActiveConnection = conn

 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "rst.Open call"
rst.Open(cmd)

 

vg.Admin_TraceLogAdd $RV_LINEID, 0, "rst.Open returned"
If Not (rst.EOF Or rst.BOF) Then

 

  vg.Admin_TraceLogAdd $RV_LINEID, 0, "assigning indcli"
  indcli = rst(0).Value      '------ Indicador de si es o no es mi cliente si es 0 no es cliente o mal cedula o codigo

 

  vg.Admin_TraceLogAdd $RV_LINEID, 0, "assigning pswcli"
  pswcli = rst(1).Value      '------ Clave de Sistema IVR si es 0000 actualizar clave

End If

'msgbox indcli,vbOKOnly,"Es mi socio"
'msgbox pswcli,vbOKOnly,"Clave IVR"

vg.Admin_TraceLogAdd $RV_LINEID, 0, "RvSet  calls"
vg.RvSet $RV_LINEID, "cliente", indcli
vg.RvSet $RV_LINEID, "llegaclave", pswcli
vg.Run_ResultReturn $RV_LINEID, "success"
set vg = Nothing



#6 Diego Miņo 27 October 2017 - 10:51 AM

Hello, the problem is not the version, something else is happening.
I tested the versions
VoiceGuide_7.1.0.exe
VoiceGuide_7.2.2.exe
VoiceGuide_7.3.3.exe
VoiceGuide_7.4.0.exe
VoiceGuide_7.4.1.exe
VoiceGuide_7.4.2.exe
VoiceGuide_7.4.4.exe
 
 
until the version
 
VoiceGuide_7.5.9.exe
 
Attached logs of the last
 
and it does not work
 
I also made all the combinations with
 [moduleRunScript]
UseSafeSubset=False
'Engine=ClearScriptV8
Engine=WScript
SaveToFile=False
 
 
:
 
Your help please


#7 SupportTeam 27 October 2017 - 08:29 PM

Is the ODBC DSN created as a "SYSTEM" type DSN, or as a "USER" type DSN?

 

The ODBC DSNs need to be created as a "SYSTEM" type DSNs in order for them to be usable from Windows Services (VoiceGuide runs as a Windows Service),

 

Also, the 32-bit ODBC Administrator application must be used to create the DSN, so the DSN is accessible to 32-bit applications. (VoiceGuide is a 32-bit application).

 

Please see: http://www.voiceguid...gdatasource.htm

 

 

Below screenshot shows a "SYSTEM" type ODBC DSN created in a 32-bit ODBC Administrator.

 

When using a 'Run VBScript' type module to access the ODBC DSN that module must be set to execute the VBScript using an 'external interpreter' - as opposed to using VoiceGudie's default ''internal interpreter'.

 

External interpreters that are available on all systems are Windows' own cscript.exe and wscript.exe

 

The selection of using the 'external interpreter' can be done by setting the entry Engine in VG.INI's [moduleRunScript] section to cscript or wscript (or wsh) and then restarting the VoiceGuide service. This approach would result in all VBScripts running in VoiceGuide callflows to be executed using the external VBScript interpreters.

 

Alternate method is to set the $RV[ini_moduleRunScript_Engine] in the VoiceGuide script to cscript or wscript (or wsh) just before running the "Run VBScript"  module that needs to use the external interpreter, and then set it back to ClearScript if any other Run VBscript modules are ran later during that call.

 

Using $RV[ini_moduleRunScript_Engine] lets you change dynamically between using external and internal VBScript interpreters during the VoiceGudie script itself.

 

VoiceGuide's Internal VBScript script interpreter runs much faster then external ones do, so its recommended that external interpreters are only used when necessary. (eg. if accessing databases from with VBScript).

  • odbc_system_dsn_config.png