REM ***************************************** REM This script will trigger an EDX task in Qlikview Server 9 or 10. The task must be must have a REM "Triggered by External Event" trigger defined. (This was called "EDX" in QVS 8). REM REM Execute this script from a windows command line as: REM cscript RequestEdx.vbs taskname REM where taskname is the name assigned to the task. If the taskname contains spaces, enclose it on quotes. REM For Publisher installations, this task name is assigned in REM the Task definition. For sites where Publisher is not licensed, the task name is the qvw document name. REM REM !! The windows account running this script must be a member of either the "Qlikview Adminstrators" or "Qlikview EDX" local group REM on the machine designated in the url= value below. See section 26.2 (qv9) or 27.5 (qv10) of the QVS manual for more info. REM REM Written by Rob Wunderlich. REM ***************************************** Option explicit Dim url, xmlhttp, task, key REM Change the url= value below to reflect the URL of the Distribution service. It must be the exact URL as shown in REM the QEMC. Do not use a DNS alias or IP address. url = "http://tcrbw4:4720/qtxs.asmx" If Wscript.Arguments.Count <> 1 Then log "Usage: cscript RequestEdx.vbs taskname" log "If taskname contains spaces, it must be enclosed in quotes." Wscript.Quit(1) End If task = WScript.Arguments.Item(0) set xmlhttp = createobject("msxml2.xmlhttp.3.0") key = getKey() If len(key) > 0 Then Call StartTask( task, key) End If Sub StartTask(task, requestKey) Dim requestData, resultCode requestData = "" & task _ & "" xmlhttp.open "post", url, false xmlhttp.send requestData 'log "Status: " & xmlhttp.statusText 'log "Response: " & xmlhttp.responseText If xmlhttp.responseXML.selectSingleNode("//TaskStartResultCode") Is Nothing Then resultCode = "" Else resultCode = xmlhttp.responseXML.selectSingleNode("//TaskStartResultCode").text End If Select Case resultCode Case "" log "Start failed for task: " & task & ", httpStatus=" & xmlhttp.status & ":"& xmlhttp.statusText log xmlhttp.responseText Case "0" log "Task " & task & " started." Case Else log "Start failed for task: " & task log "Error: " & xmlhttp.responseXML.selectSingleNode("//TaskStartResult").text End Select End Sub Function GetKey() Dim requestData xmlhttp.open "post", url, false requestData = "" xmlhttp.send requestData 'log "Status: " & xmlhttp.statusText 'log "Response: " & xmlhttp.responseText If xmlhttp.status = 200 Then GetKey = xmlhttp.responseXML.selectSingleNode("//GetTimeLimitedRequestKeyResult").text Else log "Error return from GetKey, statusText: " & xmlhttp.status & ":"& xmlhttp.statusText log "Response: " & xmlhttp.responseText GetKey = "" End If End Function Sub log(message) Wscript.Echo message End Sub