VoiceGuide IVR Software Main Page
Jump to content

Error Runscript_Clearscriptv8_Scriptengineexception

Recommended Posts

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

1025_ktTts.zip

Share this post


Link to post
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

1025_ktTts.zip

Share this post


Link to post

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.

Share this post


Link to post

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.

Share this post


Link to post

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

Share this post


Link to post
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

1025_CallEvents.zip

Share this post


Link to post

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.voiceguide.com/vghelp/source/html/configdatasource.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).

post-3-0-66607200-1509100073_thumb.png

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×