11 Replies Latest reply: Dec 30, 2013 1:44 AM by Alex Xie RSS

    Need help with triggering of EDX task in QlikView 11

    Anatoly Pyatygo

      Hello guys.

       

      I need your help.

      I'll try to explain my situation...

      Earlier we had one Qlikview server 9 and we triggered our EDX task with special macro (VB script). This macro used GET / POST method like this:

       

      REQUEST =          "<Global method=""RequestEDX"" key=""" & GetTimeLimitedRequestKey() &  """>"

      REQUEST = REQUEST & "<i_TaskIDOrTaskName>" & EDXTASK & "</i_TaskIDOrTaskName>"

      REQUEST = REQUEST & "<i_Password>" & EDXPSWD & "</i_Password>"

      REQUEST = REQUEST & "<i_VariableName /><i_VariableValueList />"

      REQUEST = REQUEST & "</Global>"

       

      ' Submit request to the QDS via HTTP

      Dim xmlHttp

      Set xmlHttp = CreateObject("Microsoft.XMLHTTP")

      'xmlHttp.open "POST",QDS,false

      xmlHttp.open "POST", QDS, false, Username, Password

      xmlHttp.setRequestHeader "Content-Type","text/xml"

      xmlHttp.setRequestHeader "Content-Length", Len(REQUEST)

      xmlHttp.Send REQUEST

      ' show the response

      'WScript.Echo xmlHttp.responseText

      ' Load the Response into an XML object

      dim xml

      set xml = createobject("Microsoft.XMLDOM")

      xml.async = false

      xml.loadXML(xmlHttp.responseText)

      ' Build an XSLT string to extract the TaskStartResult from the XML response

      XSLT =        "<xsl:stylesheet version=""1.0"""

      XSLT = XSLT & " xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">"

      XSLT = XSLT & "<xsl:output method=""html"" omit-xml-declaration=""yes""/>"

      XSLT = XSLT & "<xsl:template match=""/"">"

      XSLT = XSLT & "<xsl:for-each select=""RequestEDX/RequestEDXResult"">"

      XSLT = XSLT & "<xsl:value-of select=""TaskStartResult""/>"

      XSLT = XSLT & "</xsl:for-each>"

      XSLT = XSLT & "</xsl:template>"

      XSLT = XSLT & "</xsl:stylesheet>"

      'WScript.Echo XSLT

      ' Load the XSLT into an XML object

      dim xsl

      set xsl = createobject("Microsoft.XMLDOM")

      xsl.async = false

      xsl.loadXML(XSLT)

      ' Transform the XML result to extract the TaskStartResult

      ' then skip the first 40 bytes of XML Header

      RESULT = xml.transformNode(xsl)

      Select case RESULT

      Case "Success":

      RC = 0

      Case "TaskNotFound":

      RC = 1

      Case "OtherError":

      RC = 2

      Case Other

      RC = 90

      End Select

       

      xsl = null

      xml = null

      xmlHttp = null

       

       

      It's worked!

       

      but now we upgraded to QlikView 11 and this approach doesn't support.

      I know about this documentation: http://community.qlik.com/docs/DOC-2650

      but there we have Visual Studio .NET project with c# programming code

      and we have special EXE tool which can perform triggering.

      But I can't use this EXE tool because I need perform trigger of my special EDX task from other QVW file (we use IE plugin on client side)

      I can't understand how I can execute EXE tool (which exists on server side) with IE plugin.

      Any applications try to execute on client side with IE plugin. So I think that I can't use this tool.

      And I think that need a new macro which perform this functionality for QV11.

       

      but I don't have very good skills in .NET scripting and I can't transform C# into VB script (for internal qlikview macro).

      Moreover, I don't sure that it will be possible, but I hope

       

      Somebody can help me?