From NPrinting June 2019Introduction of a new filter type called Advanced search. Here are a few examples of how it can be used.Note: I have made a fe...
From NPrinting June 2019
Introduction of a new filter type called Advanced search. Here are a few examples of how it can be used.
Note: I have made a few changes to a copy of the sample Qlik Sense App found here and used that as the Connection source for these examples. The modified App and exported report are attached to this post.
Fields that exist in the source document that we use:
Variables that exist in the source document that we use:
Filtering for a date range.
With Advanced search filters you can filter for a date range in any of these ways:
hard coding the From and To dates. Example: =Date <= Date#('06/22/2019', 'MM/DD/YYYY') and Date>=Date#('06/22/2018', 'MM/DD/YYYY')
Using expressions. Example: =Date <= num(Today(1)) and Date >=num(Today() - 365)
Using variables that exist in the source document. Example: =Date>=$(vStartDate) and Date<=$(vEndDate)
Note:The above filters were defined on the Date field. You can also define the same filters for other fields just as you can use expression search in the source document if you want to search for values in associated fields. For example you could use the exact same filter definition for the Customer field to get different results:
Screenshots of the Filter editor showing the difference:
Filtering for the Top n
Here is an example using Advanced search filters and Aggr() to filter for the Top 10 Customers (most Sales). You can of course use a variable or an expression that results in an integer instead of hard-coding the number 10.
Hello,First of all sorry if this subject has already been report before or not, but from my research I haven't found anyone talking about this.There i...
First of all sorry if this subject has already been report before or not, but from my research I haven't found anyone talking about this.
There is a solution to use Formula inside Formatting rules, like this it's possible the extend the range of possibility to use variable from QS for example.
As you may know, there is no option to add formula here:
BUT it's still possible to use formula and that's what I want to share with you. It can be useful for other NPrinting designers.
Here is an example:
1) Below I created a simple formula (the result is obviously 'good')
2) I created 2 labels and set them by default not visible
3) I created 2 formatting rules to check if the formula has the value 'good' or 'wrong'. To use your formulas inside the condition just put them between brackets , as done with table columns.
The formatting rule "FormulaWorking" is assign to the green textbox, the other formatting to the red (for the red the condition is replaced by 'wrong').
After launching a preview here is the result that you should get:
Nothing !!! and that's the expected result for anyone who think that it's not possible to use formula in formatting rules.
and here is the solution to make it works:
And now after launching a preview again:
Here is the true expected result, as we set the condition '0=0' which is always true. If I replace by '0=1':
We get the result when the condition is false.
This was just a little condition, but it's possible to put variable for example and therefore use condition related to QS result.
It can be useful to use the formula in a label as a title of charts for example, but if designers don't need to display the formula textbox they just have to put it in another detail band set to not visible for example:
The most important is that the formula must be present inside the page (in a different band or not, hidden or not)
The version used is NPrinting February 2021 SR1 (Version: 22.214.171.124). Maybe the feature of using formula in Formatting rules has been implemented already in more recent version. Sorry again if this has already been reported and explained in another post.
You can load images stored in a database in BLOB format into Qlik Sense by converting to Base64 encoded format in the SQL load script.
Further more, ...
You can load images stored in a database in BLOB format into Qlik Sense by converting to Base64 encoded format in the SQL load script.
Further more, you can render the image in the Sense UI using the native Qlik Sense Map object. This supported object supports expression based sourcing / displaying of the image both as a data field and as a URL to a HTTP accessible image.
The attached example walks through the setup using the sample AdventureWorksDW SQL database (which contains image files stored as BLOBs) along with both Qlik Sense and NPrinting.
This technique provides a similar alternative to the BUNDLE load technique which was available in QlikView.
Due to the fact that NPrinting does not give you a nice calendar like overview of scheduled tasks I decided to create a Qlik Sense application that do...
Due to the fact that NPrinting does not give you a nice calendar like overview of scheduled tasks I decided to create a Qlik Sense application that does this for you. Besides the ability to get an overview of scheduled tasks this application also sends out an NPrinting report whenever a task failed to run.
For this Qlik Sense applcation to work you need to create a connection to the NPrinting Repository Database and two REST API connections (GET and POST) for running an NPrinting report when tasks failed.
The dashboard page gives an overview of scheduled, failed, aborted and completed tasks.
All files and documentation for setting up the application and the connections can be found on Qlik Branch
Download this Qlik Sense app in a zip file using the 'Clone or Download' button
Extract the qvf file from the zip
Navigate to 'Apps' under the QMC (Qlik Management Console)
Import the qvf file
Navigate to the Data Load Editor
Create a Data Connection to the REST API for GET and POST and to the NPrinting Repository Database
Navigate to the Set Variables tab
Add the created connection names to the variables for vAPIConnectionNameForGET, vAPIConnectionNameForPOST and vNPRepoConnection
Set the correct servers in the vNPrintingServer and vQlikSenseServer
Set the NPrinting Publish Task Name in vNPrintingPublishTaskName if you created a NPrinting report and Publish task for Failed reports
In the CALL NP API tab there is a check to validate if there are Failed Tasks, if so the report get's send out.
NPrinting Report Template
Create a NPrinting app called NPrinting Schedule Monitor
Create a connection to the Qlik Sense Schedule Monitor app in Qlik Sense
Navigate to Reports in NPrinting and press import report and choose the NPrinting Schedule Monitor App
Import the zip file NPrinting Daily Failed Task Report Template.zip by browsing to the zip file
Give the Report a title or use the existing title and press Next
Choose connection you created and press Next
In the Filters screen press Next
In the Summary screen validate the choices made and press Confirm
Reload the app
Open Qlik Sense and navigate to the Schedule Monitor app.
Run a manual reload to see if everything works
Schedule the reload of this app in the QMC Task Scheduler
If a NPrinting task has failed the NPrinting Report will be send out
A request i sometimes see from customers upgrading from NPrinting v16 is the ability to send multiple emails to the same user for the same NPrinting ...
A request i sometimes see from customers upgrading from NPrinting v16 is the ability to send multiple emails to the same user for the same NPrinting Publish Task.
We can use a 'cycle' to send different filtered copies of the same report in the same email, but sometimes we want those filtered reports to be split by email.
Also, sometimes its not just for one user but a combination of users.
Basically we want to send out the same report filtered different ways for different people in different emails....
The solution in v17+ is to use the API for this request and we can use the Qlik REST Connector inside the load script of a QlikView QVW or a Qlik Sense app to sequentially run the task changing the recipients and filters with each task execution. By changing the recipients and their filters with each task execution, the recipients receive the reports in the task in different emails.
For reference, see the following resource on how to setup a Qlik load script to communicate with the NPrinting API
In the attached sample you will find the following approach
1. Pre-create the Publish Task in NPrinting with the required report(s) and distribute the task to an NPrinting group
Pre-create the intended recipients in NPrinting but do not assign the recipients to the NPrinting group.
It is possible to create the Users dynamically for a more dynamic solution.
It is NOT currently possible (june 2019 release) to assign an NPrinting group to a task, so the task/group combination must be pre-created.
In this example the name of the task is "Email Management Reports" . Make a note of it because we will use the name in the Qlik load script so that we can trigger the task by name.
In this example, the task distributes to the NPrinting Group: Managers . Make a note of the Group name since we will use the Qlik script to update the group membership by group name with the list of user's by name
In this example, the users that will be used are called: Jonathan Poole and NPrinting. Make a note of the names as the script will look up these users by name in order to add them to the NPrinting Group and associate them to the filters.
2. Pre-create the filters that you'd like to apply with each task execution
It is possible to create NP filters on the fly if you truly want a dynamic situation.
No need to associate the filters to the user or task. The script will associate the filters to the user dynamically .
In this example the 3 filters that i'll be using are named: EMEA , ASIA,AMERICAS. Make a note of the name as these filter names will be referenced by the load script which will dynamically associate the filters by name to the user's by name.
3. Edit the load script to load the NP Users and NP Filters that you want applied to each task execution. Each record of the LOAD represents a different execution
In this example recall that the Task was named "Email Management Reports" and the Group was named "Managers" .
Note that you will also have to update the NPrinting server URL, the QlikView Server (from where you are running the load script) as well as the two REST connections to GET and POST requests to the NPrinting API respectively
4. Next is to LOAD the recipient/filter combinations you would like to apply to the NPrinting Publish Task for each iteration:
In this example the task will be executed 3 times , once per record.
The 1st execution will send the report to the user named: NPrinting with the filter: ASIAPAC
The 2nd execution will send the report to the user named: Jonathan Poole with the filter: EMEA
The 3rd execution will send the report to the user named: Jonathan Poole with the filter: AMERICAS
In summary - NPrinting will get the report filtered by the Region=ASIAPAC in 1 email while Jonathan Poole will get two distinct emails.. .one filtering the report by EMEA , the other by AMERICAS
5. There is a summary of the executions presented to the user upon completion
Attached is a QlikView app to analyse the log files generated by NPrinting v16.Note -The attached App requires a QlikView desktop licence to open and ...
Attached is a QlikView app to analyse the log files generated by NPrinting v16.
Note -The attached App requires a QlikView desktop licence to open and is not compatible with Personal Edition.
The app has been purged of all data, so you will need to set the location of your NPrinting log files on the Configuration tab and then reload your data into the app for it to work.
The Event List box is generated by parsing the message text through a series of wildmatch() expressions in the load script to categorise the entries in the log file. You can modify the script to add further Event categories.
The text objects above the main chart have Actions which set various filters to select the range of events and dates.
The Source filter allows you to select logs generated by service events or logs generated from the NP Desktop app.
Version2 now includes the Parent Schedule, Message Type and additional charts.
This app is a "work in progress" but has proved useful in checking the NPrinting tasks we use internally and on our customer sites.
Hello Qlik NPrinting Community,
Qlik has recently taken steps to address an industry wide security vulnerability within the NodeJS library and the Q...
Hello Qlik NPrinting Community,
Qlik has recently taken steps to address an industry wide security vulnerability within the NodeJS library and the Qlik Sense product. When upgrading your Qlik Sense you may need to take steps to update the certificate that is used by NPrinting to communicate with Qlik Sense. Alternatively, If you are a Qlik NPrinting web console user and are encountering the "Error trying to open page" error after a Qlik Sense update you may need to contact your System Administrator.
The attached Migration Playbook is intended to be a consolidation of references for those who are on a QlikView NPrinting 16 to Qlik NPrinting 19 migr...
The attached Migration Playbook is intended to be a consolidation of references for those who are on a QlikView NPrinting 16 to Qlik NPrinting 19 migration journey. It includes migration content from Qlik Community Posts, Qlik YouTube Channels, Qlik Support articles, Qlik Help site references, and guidance from the Qlik NPrinting product team. Read it from front to back or just selectively review the sections that relate to you - I hope you find this useful!
Reminder - this is relevant to QlikView NPrinting 16 customers only. If you are on Qlik NPrinting 17+ this guide is not for you.
Updated April 28, 2020: change log in V2 document attached.
The topic of a NP16 "Test Task" equivalence in NP19+ has come up frequently when customers are performing Qlik NPrinting migrations. Many of our cust...
The topic of a NP16 "Test Task" equivalence in NP19+ has come up frequently when customers are performing Qlik NPrinting migrations.Many of our customers are using a verification strategy involving destination folders. By using a few configurations found in Reports, Users and Destinations, a straightforward means to verify the generated reports of the publish task is possible.
Reports offer flexibility to configure the report name; where you need unique filenames for review you can create them here, or if you all reports must be named then same then you can use user folders
Users can be configured with a Folder location and a Sub-Folder Location
Through the admin a Destination folder can be created to allow the report outputs to be written to file
Have a look at the video below for a walkthrough of how this strategy might work for you.
2. Connect to NPrinting Internet Explorer 3. Go to Reports and open a report or create a new one 4. Click on Edit Template 5. Click "Allow" if requested,
The"The given key was not present in the dictionary" error message is shown. Only the option to click OK is given. NPrinting Designer cannot be opened. NPrinting designer was working correctly before the mentioned Windows update.
NPrinting 17 any releases
NPrinting 18 any releases
NPrinting 19 February release
The problem is due to a change introduced with the mentioned Windows update - KB4489881 (Monthly Rollup). Further analysis are currently performed by Qlik Development team to resolve the problem.
Update: This issue is resolved in the upcoming April 2019 Release of NPrinting which should be available for download from the Qlik Downloads site by mid April 2019.
NOTE: There are two possible workarounds:
1. The problem is affecting Internet Explorer only. Connect to the NPrinting Web console using a different browser. Firefox, Chrome and Edge have been tested successfully. 2. The problem can be solved by removing the Windows update KB4489881 (Monthly Rollup)
NOTE: If you are still experiencing this issue after installing April 2019 or later releases of NPrinting, please report it as a new defect to the Qlik Support desk or your Qlik support partner. Subsequent windows updates may be affecting/reintroducing this issue.
If you wish to do a clean NPrinting install where you have had over versions of NPrinting previously installed, then do the following to clean up the ...
If you wish to do a clean NPrinting install where you have had over versions of NPrinting previously installed, then do the following to clean up the previous install of NPrinting 17.x.x platform.
(Note: If you had NP 16.x.x or older platform installed previously as well, simply un-install the software, then open an administrative command prompt and run the syntax found between the following comments "sc delete NPrintingService")
PLEASE NOTEfollow the steps in the correct order below or the cleanup/uninstall process will not work normally.
Open task manager and do 'End task' onepmd.exe
Uninstall NPrinting Engine, Server and Designer as needed
Uninstall all versions of Erlang OTP
If you had a very old version of NPrinting previously (17.2.x or lower), make sure to also un-install anyRabbit MQremaining in Programs and Features/uninstall a program
Next, open the following and rename these folders:
C:\Program Files\NPrintingServer to C:\Program Files\NPrintingServer.old
C:\ProgramData\NPrinting to C:\ProgramData\NPrinting.old
Restart the server
NOTE: if you not able to rename the folders, restart the server and try to re-name again.
Once you are able to rename the folders, Install NPrinting server once again but make sure that you have met all system and user account requirements before proceeding.
you must have a least 2 cores on your computer (see install requirements)
The NP service account must have log on as a service right before proceeding (see install requirements
If this does not solve the issue, please start a support case so we can assist you further to clean up your machine in further detail before attempting another re-installation.
Unfortunately it's not possible to manage field level formatting with a QlikView or Qlik Sense Pivot Table since the entire chart is exported from Qli...
Unfortunately it's not possible to manage field level formatting with a QlikView or Qlik Sense Pivot Table since the entire chart is exported from Qlik Sense (or QlikView) as is rather than the individual fields within the pivot table.
To work around this:
In QlikView/Qlik Sense, create a clone/copy of your original pivot table and convert the copy to a straight table.
Save your Qlik Sense or QlikView app, reload the NPrinting meta data so that the new cloned, newly created or copied straight table chart is available to NPrinting
Use the straight table chart, now visible to NPrinting after the metadata reload, to create a Pivot Table with QS or QV data by following the instructions one of the links below:
This approach is common when it is necessary to have a greater level of control of field level formatting as a report developer. This when permissions to format the source pivot table in Qlik Sense or QlikView are limiited or simply require a separate pivot view that is different to the QV or QS chart without changing the source chart.
May 5, 2019: The Rest Connector 2.11 is available with the Qlik Sense April 2019 release
UPDATE April 14, 2019: The Rest Connector 2.11 is now available from the Qlik Downloads 'Connectors' site (for QlikView)
The Rest Connector 2.11 for QlikViewresolves a bug that was introduced with the REST connector version 2.10
A fix for the Qlik Sense Rest connector is available within the April 2019 version of Qlik Sense
From Qlik download site download and install 2.11 version (or higher) of the Rest Connector for QV
Upgrade to QS April 2019 Release or higher for Qlik Sense related issues
QlikView: The version of QlikView that you are using must be compatible with this connector. The file can be verified at C:\Program Files\Common Files\QlikTech\Custom Data\QvRestConnector
Qlik Sense rest connector path is C:\Program Files\Common Files\Qlik\Custom Data\QvRestConnector
Setup Requirements - QlikView
Ensure that NPrinting February 2018 or higher is installed
Ensure that you inserted valid rest GET and POST connection strings into your load script. See attached R&D article for details
Setup Requirements - Qlik Sense
Qlik Sense February 2018 or higher must be installed
NPrinting February 2018 or higher must be installed
Valid rest GET and POST connections must be inserted into your load script. See attached R&D article for details
Setup Requirements - QlikView and Qlik Sense
In the NPrinting Web Console under 'Admin'>'Users', check the "domain account" field and ensure you have a windows domain user account mapped to NPrinting User user account for use with NPrinting API's. This NP account must have also have the NPrinting 'Administrator' role assigned to it.
In order to accept POST calls from the Sense server, you MUST add the Qlik Sense and or QlikView server hostname address among the NPrinting Trusted Origins.
The host name format in the NPrinting 'Trusted Origins' should be the same format as the proxy address used in setting up NPrinting connections to Qlik Sense apps
See section - "Adding the QlikView Server as a trusted origin". NOTE: the same steps apply to adding a Qlik Sense server as an NPrinting Trusted Origin in order to allow NPrinting API's to function normally
The names you give your reports can be crucial for aiding people to access the right information quickly. Control the names assigned to your reports w...
The names you give your reports can be crucial for aiding people to access the right information quickly. Control the names assigned to your reports with NPrinting by creating static elements in report names as well as inserting arbitrary text, variable elements like cycle field values, and the values of QlikView variables. This tutorial explains how to use the NPrinting dynamic report naming feature.
Enable Dynamic Naming
Put a check mark in the dynamic naming check box by clicking on it
The Custom Dynamic Naming section appears. This allows you to add different elements to your report names
Add Elements to Your Report Names
Click on the green '+' sign to add another element to the names of your reports. Add more that one if need be.
Select Item Type
Select the element you want to use from the drop down menu; the following elements are available:
Date the report was generated
Time of day the report was generated
QlikView variable value of any QlikView variable existing at the time the report is produced
Custom text conforming to Windows file name standards
Select from Various Format Options for Date
Open the drop-down menu and select a format.
Select a Separator to divide the elements of the report name, the underscore is the default.
Preview The Report Name
The report name is displayed in the Preview field at the bottom of the Output File area; variable values are represented by the name of the variable. Note the Custom text field added here in place of the Date field.
Changing The Order Of Elements In Report Names
You can move elements to the left and right in the report name by clicking on the green up and down arrows. Moving an element up shifts it to the left in the name.
You can delete single elements by clicking on the red '-'
It is possible to conditionally include/exclude content in a single NPrinting template based on data filters. This is applicable to all fil...
It is possible to conditionally include/exclude content in a single NPrinting template based on data filters. This is applicable to all filter types (Task, Report, User,Object) as well as cycling and on-demand scenarios.
The technique is 100% dependent on the fact that if content exists inside a level, and the level evaluates to no values, the content is ignored during report generation.
If we add a data island to the QlikView or Qlik Sense source application that evaluates to a single or no values depending on filter conditions, then we can control whether a report is generated with or without content inside the level in the report template.
In the first part of this article we setup a report template to conditionally hide and show different content from the same report template depending on an on-demand selection or an NPrinting filter. The report template will have multiple app objects : pie chart, table chart etc... and a field selection will determine where the NPrinting report will include or exclude the chart.
In the second part we extend the technique to leverage the 'pages' feature as well so that we can not only conditionally include/exclude content but essentially design multiple whole reports in a single NPrinting template and generate different reports template. This allows us to condense styling and layouts and centralize code into a single template. That reduces the number of templates that need to be deployed and reduces change management updates making for a more scalable deployment model.
PART I: Using levels to conditionally include content into a report from a single template
The following screen print shows a Qlik Sense Dashboard that contains an an NPrinting On-Demand report:
Qlik Sense Dashboard - OnDemand Button Highlighted
In this dashboard there is a data model field "Chart" showing 2 data values (Pie,Table) through a Filter Pane called "Chart Selection".
Upon selection of "Pie" a Pie is shown in the dashboard as follows
Qlik Sense Dashboard - Pie Chart Selected
When the user clicks 'Run Report' , the selections are passed to NPrinting , including the selection Chart='Pie'. Upon completion the on-demand executions pane shows a download icon
On-Demand Report Execution-Pie Chart Selected
..and when opened NPrinting has included the same pie chart filtered correctly.
NPrinting Report - Pie Chart included
Likewise, if the user were to change the field selection to Chart='Table' and submit a new on-demand request (They may also change other selections such as the Names....
Qlik Sense Dashboard - Table Selected
..and after downloading the result of the new execution...
On-Demand Report Execution - Table Selected
The Report is generated with the Table
NPrinting Report - Table included
In order to create this sample the following are required:
1. November 2018 Qlik Sense. These techniques use the On-Demand button included in the dashboard bundle with November 2018 Qlik Sense
2. A new data model field that includes names of the different App Objects to include (or exclude).
3. Associations to additional data model fields that include just one value (one field with one value per App Object)
4. NPrinting levels in the Report Template (one per App Object)
5. Report Template Error handling enabled
The new data model fields and associations can be seen in the following screen prints:
The ShowPie data model field is dedicated to the 'Pie' App Object and the ShowTable data model is dedicated to the 'Table' App object such that, associatively, ShowPie has NULL values if the user selects 'Table' for 'Chart' and ShowTable has NULL values if the user selects 'Pie' for 'Chart'
Now, author the NPrinting Report to include levels for each data model field dedicated to the App object (ShowPie,ShowTable). And place the 'Pie' App Object and the 'Table' App object within the respective level sections of the report.
Finally, enable the following report template property so that NPrinting does not error out when either LEVEL evaluates to NULL
This technique is valid in any Report Template where you use levels.
Attached is a sample that for reference. Note that the sample has other techniques around on-demand including how to conditionally show the On-Demand button only after filtering the data set to a limited number of records.
Since PowerPoint templates do not support levels, the technique is limited but still possible by using the 'pages' features which does work with the same techniques .
PART II: Add pages to conditionally render different reports from a single template
We can build on the technique to do design multiple 'whole' reports in a single template and generate different reports based on the same field selection technique . To do this, we must utilize the 'pages' feature in conjunction with the 'levels' feature documented above.
In the updated example below, the name and fields of the 'ChartControl' Table has been updated to reflect this intended to be a 'ReportControl' .
The associative logic eliminates Report1 or Report2 based on the selection in the 'Report' field.
In the associative model , the data island still uses a central control table with a group (two in this case) of single record boolean tables for each possible report
In the updated version of the report template below , a PAGE has been added based on the 'Report' Field in the 'ReportControl'
Some of the elements (in blue below) will include styling and content that is common to both reports. They can include dynamic objects, variables, formulas or 3rd party content.
Other elements ( green, orange) will be specific to each report.
When no filters / selections , the reports are paginated. Depending on the output and template this will result in page breaking , multiple sheets , multiple slide.
Otherwise , with just one Report selected, only the content necessary for the chosen report is included
For publish tasks, NPrinting Filters can be added in the NPrinting Web Console , through and Excel Import Task, or via the REST API.
Here the same two filters added in the NPrinting Console
Detailed Filter descriptions below
The filters can be used as a Task Filter, Report Filter, or User Filter to ensure the right users are sent the right reports at the right time using the same template.
In addition, you can build ALL the reports at once using the 'Cycle' feature.