Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all !
I'm trying to have the 'Session Collaboration' checkbox active through a soap request.
I've generated java code from the wsdl, and now I'm searching how to check this case.
I've already tried the following without success:
QMSClient.DocumentTask().getServer().getAccess().setEnableSessionCollaboration(true)
Does someone have a solution?
Thanks in advance
Ok, I will need to test that.
Is there a Publisher license applied on the QlikView Server ? (As that would change the way tasks need to be created)
Yes, here's the licence:
I think the reason might be because the value of the following is incorrect
<ns5:Scope xmlns:ns5="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">General Reload Reduce Triggering</ns5:Scope>
Valid values for scope are:
- All
- Server
...
See full list here: https://help.qlik.com/en-US/qlikview-developer/12.1/APIs/QMS+API/html/T_PIX_QMSAPI_DataObjects_Docum...
The rest looks similar to what I have for a working request:
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SaveDocumentTask
xmlns="http://ws.qliktech.com/QMS/11/">
<documentTask
xmlns:a="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Distribute
i:nil="true"/>
<a:Document>
<a:FolderID>
08b12299-50f3-4285-a926-74edba6638f1
</a:FolderID>
<a:ID>
4a673666-48de-03f4-0c07-0d1befe247ba
</a:ID>
<a:IsOrphan>
false
</a:IsOrphan>
<a:IsSubFolder>
false
</a:IsSubFolder>
<a:Name>
qv1crtq.qvw
</a:Name>
<a:RelativePath/>
<a:TaskCount>
1
</a:TaskCount>
<a:Type>
Source
</a:Type>
</a:Document>
<a:DocumentInfo
i:nil="true"/>
<a:General
i:nil="true"/>
<a:ID>
2727fb6e-90d9-41ea-85f3-d01372add747
</a:ID>
<a:QDSID>
ff10579f-9dad-497b-a095-7c547b9c15fe
</a:QDSID>
<a:Reduce
i:nil="true"/>
<a:Reload
i:nil="true"/>
<a:Scope>
Server
</a:Scope>
<a:Server>
<a:Access>
<a:DocumentTimeout>
0
</a:DocumentTimeout>
<a:Download>
Restricted
</a:Download>
<a:DownloadUsers
xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<b:string>
AllAuthenticated
</b:string>
</a:DownloadUsers>
<a:EnableSessionCollaboration>
true
</a:EnableSessionCollaboration>
<a:Export>
All
</a:Export>
<a:ExportUsers
xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
<a:MaxConcurrentSessions>
4294967295
</a:MaxConcurrentSessions>
<a:Methods>
PluginClient ZeroFootprintClient
</a:Methods>
<a:SessionTimeout>
0
</a:SessionTimeout>
<a:ZeroFootprintClientURL/>
</a:Access>
<a:Collaboration>
<a:CreationMode>
All
</a:CreationMode>
<a:CreatorUserNames
xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
</a:Collaboration>
<a:DocumentLoading>
<a:ServerSettings>
<a:DocumentTask.TaskServer.TaskServerDocumentLoading.TaskServerDocumentLoadServerSetting>
<a:ClusterSettings>
<a:DocumentTask.TaskServer.TaskServerDocumentLoading.TaskServerDocumentLoadServerSetting.TaskDocumentLoadClusterSetting>
<a:Mode>
Allow
</a:Mode>
<a:QlikViewServerClusterNodeId>
3ad93615-0e42-415d-a214-a7aac2827c4c
</a:QlikViewServerClusterNodeId>
</a:DocumentTask.TaskServer.TaskServerDocumentLoading.TaskServerDocumentLoadServerSetting.TaskDocumentLoadClusterSetting>
</a:ClusterSettings>
<a:Mode>
Preload
</a:Mode>
<a:QlikViewServerId>
5089db7b-0501-4b6d-b513-ee0c89107270
</a:QlikViewServerId>
</a:DocumentTask.TaskServer.TaskServerDocumentLoading.TaskServerDocumentLoadServerSetting>
</a:ServerSettings>
</a:DocumentLoading>
<a:EnableAuditLogging>
true
</a:EnableAuditLogging>
</a:Server>
<a:Triggering
i:nil="true"/>
</documentTask>
</SaveDocumentTask>
</s:Body>
</s:Envelope>
This value seems to represent a list in my code.
Why everything else works except EnableSessionCollaboration ?
I am not sure why other settings would work with an incorrect value for scope, but that is not supposed to work.
Could you try with a valid value and if that still doesn't work please send us a new Fiddler trace ?
I've tried to set only one value for the SCOPE and nothing else works now. I don't have the Reload, Reduce & Distribute parts so it's worse than before. I don't even have the Server > Availability part.
Here's my soap request
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns10:SaveDocumentTask xmlns:ns10="http://ws.qliktech.com/QMS/11/">
<ns10:documentTask>
<Document xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<FolderID>folderId</FolderID>
<ID>ID</ID>
<IsOrphan>false</IsOrphan>
<IsSubFolder>false</IsSubFolder>
<Name>name.qvw</Name>
<RelativePath>relative</RelativePath>
<TaskCount>0</TaskCount>
<Type>Source</Type>
</Document>
<General xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<Enabled>true</Enabled>
<TaskDescription>Creating a task</TaskDescription>
<TaskName>taskname.qvw</TaskName>
</General>
<s8:QDSID xmlns:s8="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">QDSID</s8:QDSID>
<Reduce xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<DocumentNameTemplate>%SourceDocumentName%</DocumentNameTemplate>
<Dynamic>
<Type>ByField</Type>
</Dynamic>
<Static>
<Reductions />
</Static>
</Reduce>
<Reload xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<Mode>Full</Mode>
</Reload>
<ns5:Scope xmlns:ns5="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">General</ns5:Scope>
<Server xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<Access>
<EnableSessionCollaboration>true</EnableSessionCollaboration>
</Access>
</Server>
<Triggering xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects">
<ExecutionAttempts>1</ExecutionAttempts>
<ExecutionTimeout>1440</ExecutionTimeout>
<TaskDependencies />
<Triggers>
<Trigger xmlns="http://schemas.datacontract.org/2004/07/PIX.QMSAPI.DataObjects.Triggers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ExternalEventTrigger">
<Enabled>true</Enabled>
<ID>ID</ID>
<Type>ExternalEventTrigger</Type>
<Password>PASSWORD</Password>
</Trigger>
</Triggers>
</Triggering>
</ns10:documentTask>
</ns10:SaveDocumentTask>
</soapenv:Body>
</soapenv:Envelope>
You have selected the "General" scope, which means that only settings in the "General" tab will be saved.
Can you try "All" instead ?
If I try 'All' for the Scope, I've some errors like
Validation of DocumentTask object failed: DocumentInfo property cannot be null, TaskServer.DocumentLoading property cannot be null, TaskServer.Collaboration property cannot be null
Because I don't need 'All' scopes.
How do I specify Scopes ?
From the documentation, I don't think that's possible to specify only some of the scopes.
If you only need 3 scopes and not All, then you will have to do 3 requests instead of 1.
Here we can see that we can put multiple scopes.
How can I achieve that ?