Qlik Community

QlikView Publisher

Discussion Board for collaboration on QlikView Publisher.

Announcements
QlikView Fans! We’d love to hear from you.
Share your QlikView feedback with the product team… Click here to participate in our 5-minute survey.
Rules, plus terms and conditions, can be found here.
Not applicable

qmsedx.exe;reload document on server on button click

Hi,

How can I get the qmsedx.exe for qlikview version 9?

Thanks and Regards,

Anju

1 Solution

Accepted Solutions
Not applicable

Re: qmsedx.exe

Hi All,

This issue is fixed!.

Please see this thread!

http://community.qlik.com/message/293671#293671

Regards,

Anju

9 Replies
Employee
Employee

Re: qmsedx.exe

There really wasn't one for version 9. You could make web calls to trigger task. See if the attach will help.

Bill

Not applicable

Re: qmsedx.exe

Hi Bill,

Thanks a lot! I think this will solve my problem.

If I am to execute a vb script, how do I set the job password. This needs to be passed as argument.

Thanks and Regards,

Anju

Employee
Employee

Re: qmsedx.exe

Not applicable

Re: qmsedx.exe

Hi Bill.

If I am using the below mentioned vb script, then where should I place it on the server?

Then , I believe I should do this:

add button ->properties->actions->external->open URL :

http://localhost/controlpanel/job/requestedx.aspx?JobIdOrJobName=Pub8Job&QueueIfRunning=True&Redirec...=

and JobIdOrJobName should be the qlikview document I want to reload?

'
'     Start a Publisher EDX Task
'
QDS = "http://localhost:4720/qtxs.asmx"

argc = WScript.Arguments.Count
if argc <> 2 then
Wscript.Echo "Usage: trigger-qds.vbs taskName taskPassword"
Wscript.Quit
end if

EDXTASK = WScript.Arguments.Item(0)
EDXPSWD = WScript.Arguments.Item(1)

'<Global method="RequestEDX">
' <i_TaskIDOrTaskName>Reload_BBCnews</i_TaskIDOrTaskName>
' <i_Password>password</i_Password>
'</Global>

REQUEST = "<Global method=""RequestEDX"">"
REQUEST = REQUEST & "<i_TaskIDOrTaskName>" & EDXTASK & "</i_TaskIDOrTaskName>"
REQUEST = REQUEST & "<i_Password>" & EDXPSWD & "</i_Password>"
REQUEST = REQUEST & "</Global>"

' execute the request
dim xmlHttp
set xmlHttp = createobject("Microsoft.XMLHTTP")
xmlHttp.open "POST", QDS, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
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: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 = Mid(xml.transformNode(xsl),40,99)

Select case RESULT
    Case "Success":
RC = 0
    Case "TaskNotFound":
RC = 1
    Case "OtherError":
RC = 2
    Case Other
RC = 90
End Select

WScript.Echo RESULT
WScript.Quit RC

Thanks and Regards,

Anju Gopinath

Employee
Employee

Re: qmsedx.exe

Should be able to run this from any on the server. When I use one like it, I run it from the desktop.

Bill

Not applicable

Re: qmsedx.exe

Hi Bill,

This is what I did. I saved the above script as trigger-qds.vbs which I placed on the desktop.

I have two qvw files. One which I want to reload named reloadvictim.qvw and another

one named testreload.qvw with a button.

I gave properties -> actions -> external->open url

http://localhost/controlpanel/job/requestedx.aspx?JobIdOrJobName=reloadvictim&QueueIfRunning=True&Re...

but, it shows web page not found

-Anju

Not applicable

Re: qmsedx.exe

Hi Bill,

I changed the name of the file to requestedx.aspx as the url we are calling is

http://localhost/controlpanel/job/requestedx.aspx?JobIdOrJobName=reloadvictim&QueueIfRunning=True&Re...

but , even with this change , it is not working. I think the script has to be changed to handle

being called via access point instead of command line?

Could you please share the script you used for reload?

Thanks and Regards,

Anju Gopinath

Not applicable

Re: qmsedx.exe

Hi,

I was able to solve it by another method.

First, I created a macro:

     Sub External

     Set WSHShell = CreateObject("Wscript.Shell")

     WSHShell.Run ("D:\testserver.bat")

     End Sub

The contents of testserver.bat is:


"C:\Program Files\QlikView\Publisher\Distribution Service\QlikviewDistributionService.exe" -r="C:\QlikViewMount\RN60-ConsolidatedCostofProgrammingReport.qvw"

On button click, I call the macro External.

Also created another macro that executes ActiveDocument.SetClearState to refresh the document.

Now, I am trying to see if I can merge the contents of the .bat file into the script as well.


But, thanks a lot, Bill!

Regards,

Anju

Not applicable

Re: qmsedx.exe

Hi All,

This issue is fixed!.

Please see this thread!

http://community.qlik.com/message/293671#293671

Regards,

Anju

Community Browser