There seems to be much confusion around the gap feature of cycling (What is Qlik NPrinting? ‒ Qlik NPrinting) from NPrinting 16 to 17. While there may be use cases where a "cycle" in the NPrinting 16 sense of the term is necessary to produce the desired result, this terminology has led some to believe that NPrinting 17 is incapable of taking a single template and "bursting" our reports that contain only the slice of data appropriate for a given recipient. This post will dispel that notion and explain solutions and workarounds until the cycling feature is restored into NPrinting 17 (not slated until 2017 at present).
What is a cycle (NPrinting 16)?
In NPrinting 16, a cycle was a checkbox-enabled feature that allowed the developer to select a dimension(s) and have a unique report file rendered for every dimensional value, or combination thereof. Additional details here: Cycling Reports on Multiple Fields
As in example below, I could cycle on the Salesman and Year fields from my data model and have separate PowerPoint files produced for each combination of salesmen and years in my data set.
Let's look at a specific simple use case: I am a manager covering North America and I need a PowerPoint sales report by country, so reports for Canada, Mexico and USA. There are a couple scenarios on how this can be achieved in NPrinting 17:
Important: the following examples show a publish task for a single user. This can be expanded to a publish task with multiple users and/or groups. All users in the publish task will get the same report but will contain only their slice of the data. You do not need to create a publish task for each user.
General comment: For cases where there is a 1:1 relationship between the user and the dimension values (e.g. a user is assigned to a single site ID in the data set and receives report for that site ID), then there are no limitations between versions 16 and 17. You would not have needed a cycle in either version; only the appropriate assignment of filters to the user and then reports can be delivered in any of channels offered by Qlik NPrinting. The scenarios that follow depict a case where there is a one-to-many relationship between a user and values (one user, three countries in my example).
In the case of 1:1 relationships, the general steps to achieve bursting would be:
1. Create users
2. Add user specific filters (or supply domain account if using section access)
3. Add users to a publish task
Scenario 1: Receive a single report with a section for each country
This can be accomplished by using either pages (Using the page feature in PowerPoint reports ‒ Qlik NPrinting) or levels (Creating one or more levels in Excel reports ‒ Qlik NPrinting) when designing reports. Adding a "page" to a template means that there will be a new slide/sheet for every dimensional value. Pages are available in Excel and PowerPoint templates only. The rest of the template types use levels which also cycle through values within a single report.
So in this example, I would come away with one PowerPoint presentation with separate sections of slides for the 3 aforementioned countries. You can use pagination over multiple slides, so presumably, I would have the first n slides for Canada, the next n slides for Mexico and the final n slides for USA.
The resulting report can be emailed, saved to disk, delivered to Newsstand or the Qlik Sense Hub. The report needs to be part of a publish task where I am one of the users selected to receive the report.
The difference between this result and the cycle of NPrinting 16 is that you get a single file containing the data for all of my countries as opposed to three PowerPoint files, one for each country.
I also need to define the filters so that NPrinting knows when it creates my report, it should only include data for the North American countries that I manage. This can be done in one of two ways:
- Leveraging section access used in the QlikView/Qlik Sense apps used to populate the reports (Section access ‒ Qlik NPrinting)
- Assigning a user filter with the values for fields for which I should see data (Static and dynamic filters ‒ Qlik NPrinting). If using this option the process of importing users and their respective filters can be automated (Importing users with filters and groups ‒ Qlik NPrinting).
Either method above will ensure that my reports will only contain my slice of the data.
Scenario 2: Receive separate reports for each country - save to disk
This one is a little trickier but can be accomplished by setting up "users" for each dimension value that contain the respective filter for the each country in the data set. For this example, that means creating one user with a filter for Country=Canada, another with a filter for Country=Mexico and third with Country=USA (note that this can also be done if cycling over multiple dimensions by assigning multiple filters to the user to mimic the cycled combinations).
Once again, these "users" can be imported automatically using an option from the previous scenario and should be able to leverage Excel functionality to build the recipient import file containing users and filters.
Part of the NPrinting user profile allows you to set a folder for report delivery and this folder can be used as a destination in the publish task (see Distributing reports to folders ‒ Qlik NPrinting).
In this case, I would want to use the same folder as above for all of my users if I wanted the reports stored in a common directory. I could also add a subfolder if desired.
From there, I make sure that the filter assigned to the user is for that country only and I would repeat the process for the user accounts I am creating for the other 2 countries. Again, this will also work for combinations of cycled values since NPrinting filters can contain multiple fields.
It will make things easier in the Publish Task if I assign these "users" to a group so that I won't need to manually add them all to the distribution list (see Creating groups for users ‒ Qlik NPrinting).
Scenario 3: Receive multiple, unique reports for each country in a single email or via delivery to Newsstand/Hub
This scenario is not supported and would be the only functionality from the NPrinting 16 cycle that is not currently available in NPrinting 17.