You don't say how you decide what documents a relevant to a particular user. If it's based on who the user is, and you have set up the documents so that a given user only has rights to the documents that are relevant, then you could do the following:
Assuming that the user is already authenticated, you can find out which documents they are allowed to see by making API calls.
Specifically, you need to call the GetAdminDocListForUser method
Here's some .NET C# code to get you started:
XmlNodeList nodes = null;
XmlDocument oXMLResponse = new XmlDocument();
request = "<Global method='GetAdminDocListForUser'><UserId>"
oQVClient = new QvClient(m_qlikviewServer, QvClient.Mode.Admin);
nodes = oXMLResponse.GetElementsByTagName("DocEntry");
In the example above, m_userID is your user's ID that must match the user's document security.
Then, you can parse the results. That would go something like this:
IEnumerator ienum = nodes.GetEnumerator();
XmlNode docNode = (XmlNode)ienum.Current;
string title = docNode.SelectSingleNode("DisplayName").InnerXml;
string path = docNode.SelectSingleNode("Path").InnerXml;
string lastUpdate = docNode.SelectSingleNode("LastUpdate").InnerXml;
Given the path information that was found, you should be able to craft a URL that will open a particular document. We use DMS Authentication, so on our server, the URL looks something like this:
We also make API calls to get the ticket for opening the document. There's some code in another post, http://community.qlik.com/forums/t/19701.aspx, for getting a ticket.
As far as scheduling a report, you could also allow users to trigger a reload from a web portal. I have some code for that, but you can probably find some on the forums by searching for "EDX"
I hope this helps,