dminof Report post Posted 10/25/2017 06:29 PM 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
dminof Report post Posted 10/25/2017 07:59 PM 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
SupportTeam Report post Posted 10/25/2017 08:39 PM 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 = connvg.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 claveEnd 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", indclivg.RvSet $RV_LINEID, "llegaclave", pswclivg.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
SupportTeam Report post Posted 10/25/2017 08:43 PM 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
SupportTeam Report post Posted 10/25/2017 08:49 PM 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", indclivg.RvSet $RV_LINEID, "llegaclave", pswclivg.Run_ResultReturn $RV_LINEID, "success"set vg = Nothing Share this post Link to post
dminof Report post Posted 10/27/2017 12: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 1025_CallEvents.zip Share this post Link to post
SupportTeam Report post Posted 10/27/2017 10:29 AM 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). Share this post Link to post