Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
There was a discussion about how to get EDX remote task execution feature in Qlikview 11.
http://community.qlik.com/docs/DOC-2650
Author did include a lot of artifacts which explained the entire new procedure. Unfortunately some of the users were not familiar with Microsoft C# projects and they were having confusion how to make use of these tools. I tried to reply there , but the thread was closed. Intension of this post is to help users who are struggling to replace their old EDX task.
In the abovementioned post you can find an attachment called_CommandLine_v1.exe. Extract this exe to any location of your choice. You will get following files after the extraction
QMSEDX.exe.config & QMSEDX.exe.
Both of these files are essential for executing the task
Following is the syntax for using the exe file
/// Commandline call:
/// qmsedx -task=name [-qms=qmsaddress] [-password=pwd] [-variablename=vname] [-variablevalues=vvalues] [-timeout=timeout] [-pollinterval=interval] [-verbosity=verbosity]
/// Arguments:
/// -task [REQUIRED]: The name or id of the task to execute.
/// -qms [OPTIONAL]: The address of the qms. Default is the local host.
/// -password (-pwd) [OPTIONAL]: The password required to execute the task, if set.
/// -variablename (-vn) [OPTIONAL]: The name of the variable to pass on to the task, if set.
/// -variablevalues (-vv) [OPTIONAL]: A semicolon separated list of values of the variable to pass on to the task.
/// -timeout (-to) [OPTIONAL]: How many seconds to wait for the task to finish. Default value is one minute.
/// -pollinterval (-pi) [OPTIONAL]: How often to check the status of the task. Default value is every five seconds.
/// -verbosity [OPTIONAL]: The level of output, 0-5. 0 will not produce any output and 5 is the most verbose.
Example
I copied both these files to a server and created a .bat file with following code
C:\Users\Username\Desktop\qmsedx -task="DEV SAP BW ScriptBuilder" -password=123.
(In order to create a bat file, just write your argument in the notepad and save it with extn .bat)
Then i executed it using command line and the task executed in my publisher. Read the whitepaper that is attached in the previous post for more information
Although the EDX task execution feature went away with 11, it is still easy to execute the task from an external system.
Hi all,
Many thanks for all the extensive explanations above. I have got the EDX running -> it does trigger the event required. However after the task has succesfully been started, an error occurs 'when checking the task status':
Successfully started task with id/name=TestEDX/TestEDX.qvw
Checking the status of task TestEDX/TestEDX.qvw (id=cf4ff049-509e-4aaf-9fa3-81b5
069cd22a execId=49ddf6ea-3c9c-43ec-87ef-212d3903a495)
The task execution ended.
Checking triggered task:
Unhandled Exception: System.ServiceModel.FaultException: System.Exception: Could
not find a result for the specified execution ID "c7222527-7a64-4a73-ba2d-e5938
9f303bb"
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRunt
ime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan tim
eout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCall
Message methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
at QMSEDX.QMSAPI.IQMS.GetEDXTaskStatus(Guid qdsID, Guid executionID)
at QMSEDX.QMSAPI.QMSClient.GetEDXTaskStatus(Guid qdsID, Guid executionID)
at QMSEDX.Program.<>c__DisplayClasse.<PollSingleTask>b__d()
at System.Threading.SpinWait.SpinUntil(Func`1 condition, Int32 millisecondsTi
meout)
at QMSEDX.Program.PollSingleTask(IQMS client, Guid execId, Int32 pollInterval
, Int32 timeout)
at QMSEDX.Program.<>c__DisplayClassb.<MonitorTriggeredTasks>b__a(TaskExecutio
nItem item)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at QMSEDX.Program.MonitorTriggeredTasks(IQMS client, List`1 executionItems)
at QMSEDX.Program.TriggerAndMonitorTask()
at QMSEDX.Program.Main(String[] args)
Could anyone help me how to solve this?
Hi Koen,
Have you, or others, been able to find a solution for this error?
Hi to everybody,
is it possible to invoke a batch file with:
qmsedx -task=name [-qms=qmsaddress] [-password=pwd] [-variablename=vname] [-variablevalues=vvalues] [-timeout=timeout] [-pollinterval=interval] [-verbosity=verbosity]
from a UNIX server? I would like that batch file were executed on QV Server. Is it possible?
Batch file reside in QV Server (vers. 11 SR6) file system.
Thanks in advance
Regards
stefano
You might want to try using Windows Task Scheduler to run your qmsedx.exe
You can remotly trigger these tasks from other Windows machines with
schtasks /run /s <machine name> /tn <task name>
C:\>schtasks /?
SCHTASKS /parameter [arguments]
Description:
Enables an administrator to create, delete, query, change, run and
end scheduled tasks on a local or remote system. Replaces AT.exe.
Parameter List:
/Create Creates a new scheduled task.
/Delete Deletes the scheduled task(s).
/Query Displays all scheduled tasks.
/Change Changes the properties of scheduled task.
/Run Runs the scheduled task immediately.
/End Stops the currently running scheduled task.
/? Displays this help message.
The question is, how you can trigger these tasks from your UNIX-Server...
Alternative:
Maybe you can compile QMSEDX for UNIX and run it directly on your UNIX machine???
@Hi Guys,
Running the batch file triggers the task, but the error below.
Using QMSEDX Enhanced with the following syntax (No Publisher):
C:\QlikView\11.EDX-Enhanced\QMSEDX -task="App-Reload-Apps/App-Start_Reload.qvw" -password="123"
Pause
EXIT /B %errorlevel%
Having the error below.
Any ideas?
Thanks in advance,
Aldo.
C:\BI-QlikView\7.Batch_Files>\\172.17.0.24\c$\BI-QlikView\11.EDX-Enhanced\QMSEDX
-task="App-Reload-Apps/App-Start_Reload.qvw" -password="123"
Successfully started task with id/name=App-Reload-Apps/App-Start_Reload.qvw
Checking the status of task App-Reload-Apps/App-Start_Reload.qvw (id=9f87040f-eb
be-4a40-959f-0a7f384cebc4 execId=92357024-60ae-48f6-bd94-9345d012cd63)
The task execution ended.
Checking triggered task:
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
at QMSEDX.Program.<>c__DisplayClasse.<PollSingleTask>b__d()
at System.Threading.SpinWait.SpinUntil(Func`1 condition, Int32 millisecondsTi
meout)
at QMSEDX.Program.PollSingleTask(IQMS client, Guid execId, Int32 pollInterval
, Int32 timeout)
at QMSEDX.Program.<>c__DisplayClassb.<MonitorTriggeredTasks>b__a(TaskExecutio
nItem item)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at QMSEDX.Program.MonitorTriggeredTasks(IQMS client, List`1 executionItems)
at QMSEDX.Program.TriggerAndMonitorTask()
at QMSEDX.Program.Main(String[] args)
C:\BI-QlikView\7.Batch_Files>Pause
Press any key to continue . . .
I'm finally managed to use qlikview edx command line tool.
This is an example to run this in client machine:
"C:\QMSEDX_CommandLine\qmsedx" -task="Magazzino/Locazioni.qvw" -qms=http://192.168.64.174:4799/QMS/Service -password=123
To find the name of the task go to qmc under Status--> Tasks --> Select the Task and click on "Show task detail", in the "Document" section you find the name.
Cheers!!
Hi Jens and others,
Unfortunately I haven't. Has anyone found a solution to the problem I described above, or to trigger a windows task from a unix server as suggested below?