Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi there,
New to using the QMS API so bare with me.
We are already using the GeUserDocuments function to return a list of documents, however we recently instituted publisher and added mounted folders. Since doing this, the relative path value is missing for our documents. Is there a way to correct this or possibly another way to identify the path of the file (we use the path for a list of documents in our own custom site)?
I used the powertools utility and am attaching what it returns (for a single application).
Hi @cbushey1
Do you have a basic sample of your code, just the connection to the API and the GeUserDocuments call?
Could you also provide a sample of the expected result vs the current result?
Kind regards.
@NadiaB - I don't think you really need that to recreate my scenario.
All I did was point the powertools utility at my QMC server and called the GetUserDocuments function. This returned a list of documents on my server, however the path to where those documents are stored was omitted from the relative path field. Regardless of my code, the powertools showed the same result.
In situations where the document has the same name, "SomeApplication.qvw" I need to be able to identify what unique path exists for each document and the relative path provided that.
Hi @cbushey1
Could you please confirm this was working before?
If so could you provide the following information?
*In what QlikView version
*what is the folder structure where is expected to get a relative path. ( a basic sample can be provided)
Unfortunately we do not support the PowerTools but if this was working before in your code and stopped working , if I can reproduce we can file a product defect investigation.
Kind regards.
Hi @cbushey1
I did a quick test in 12.4 and the API is returning a relative path:
\
I'm not applying any filters to the DocumentNode List.
I used the following documenation to verify when is expected the relative path, I didn't find the details in the documentation for 12.4 but it should be the same:
Kind regards.
Hi @cbushey1
I just tested the PowerTools, the RelativePath it's also available there:
Hi @cbushey1
Did the provided information resolve your questions, if so, could you mark the post as "Accepted Solution"
Thank you.
Sorry for the delay.
From what I can tell, you followed the same steps I am however you have a value in the relative path where I do not. The only thing I can think of that is different is I have mounted folders where the applications live. Can you try that and see if you can replicate?
Hi @cbushey1
Did you have the chance to look at the documentation ?
The relative path is shown when there are subfolders in the User Documents folder:
User Documents\
User Documents\Sales
User Documents\Finance
So for the posted question, the QMS API is working as designed.
If you have a code where you are getting different results depending on the QlikView version you were using before, it will be necessary to open a case request and provide the code and the scenario so we can replicate.
Kind regards.
I looked at the document however I am not an expert in web development. I didnt write the code we have but happy to get someone to review. I already have a case open and unfortunately was told they were nothing they could do without involving consulting services (not a great support answer). If you would like to look at my case it's 01714385.
I asked my web guy to send me the code we use, that still works in other environments that are also on 12.40, and I am pasting it below.
public static List<DocumentNode> GetExistingQVDFileNames()
{
var nodes = new List<DocumentNode>();
var backendClient = new QMSClient();
ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();
var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);
foreach (var server in serviceList)
{
var userDocs = backendClient.GetUserDocuments(server.ID);
var includedDocs = userDocs.Where(docNode => !String.IsNullOrEmpty(docNode.RelativePath) )
.Where(x => x.IsSubFolder == false && x.IsOrphan == false && !(x.RelativePath.Substring(1,1) == ":") ); // ...and does not begin with a drive letter
nodes.AddRange(includedDocs);
}
return nodes.OrderBy(n => n.Name).ToList<DocumentNode>();
}