Skip to main content
Announcements
Defect acknowledgement with Nprinting Engine May 2022 SR2, please READ HERE
cancel
Showing results for 
Search instead for 
Did you mean: 
chriswellington
Contributor II
Contributor II

NP17 Conditional Task: Don’t send email if no data?

Hi,

So, I’m new to posting since this forum already has so much useful content! This time I'm comping up empty, though...

I'm using NPrinting to send simple email with Excel report to about 30 people when they have outstanding assignments (based on data in QlikView). I’m using a single task to distribute the emails with filters at the user level so each individual only sees their own assignments. So far so good.

The issue arises when a user has no outstanding assignments. In this case, the chart of assignments is, naturally, blank. I’ve created a condition with the rule “Chart CH01 has values” so these users won't get the reminder email.

Within the given Publish Task in NPrinting, I see two ways to apply conditions:

  1. Apply condition to the report, and
  2. Apply condition to the task.

If I apply the condition to the report, then the Excel report is only generated when the user has assignments to complete, but the email is still sent whether or not there is an associated report.

If I apply the condition to the task, then the condition appears to only be checked once without considering the user-level filters.

Below are some of the combinations I've tried and the results:

Condition: CH01 Has Data. This should be True if anyone has assignments (for column "Any?") or if the given user has assignments (column "User filter?").

Assignment statusConditionsResults
Any?User filter?Report ConditionTask ConditionEmail sent?Report attached?Notes
TrueTrueTrue TrueYesYesHas assignments, gets email; good
TrueFalseTrueTrueYesNoNo assignments but gets email without report; bad
TrueTrueTrueFalseNoN/ATask level condition works - no email sent
TrueTrue FalseTrueYesNoReport level condition works - no report attached
TrueFalseTrueFalseNoN/ATask level condition does not respect user filter

Is there a way to apply conditions after user-level filters so that emails are only sent if the conditions are met? I don't want to generate separate tasks for each user!

NPrinting Version: 17.1.2.0

Thanks!

Chris

35 Replies
Ruggero_Piccoli
Support
Support

Hi,

I agree. From a point of view it is better not to send the email, but from another not sending the email in case of filter errors means that the final user knows that something went wrong. If Qlik NPrinting doesn't send the email it means that the final user can interpret this as "there are no data" when the real reason is a filters error.

Best Regards,

Ruggero

---------------------------------------------

When applicable please mark the appropriate replies as CORRECT https://community.qlik.com/docs/DOC-14806. This will help community members and Qlik Employees know which discussions have already been addressed and have a possible known solution. Please mark threads as HELPFUL if the provided solution is helpful to the problem, but does not necessarily solve the indicated problem. You can mark multiple threads as HELPFUL if you feel additional info is useful to others.



Best Regards,
Ruggero
---------------------------------------------
When applicable please mark the appropriate replies as CORRECT. This will help community members and Qlik Employees know which discussions have already been addressed and have a possible known solution. Please mark threads with a LIKE if the provided solution is helpful to the problem, but does not necessarily solve the indicated problem. You can mark multiple threads with LIKEs if you feel additional info is useful to others.
jhomulos
Partner - Contributor III
Partner - Contributor III

We want our end users to have confidence in NPrinting. If there is an error we want our NPrinting admins to address it and get the report out to end users without them noticing the hiccup if possible. Is my understanding correct that this is not possible? There is no way to disable the email from going to distributed users if there is an error?

JonnyPoole
Employee
Employee

If the "report condition" evaluates to false for the filter context for a given recipient, then that same recipient  should NOT get an email . period. 

If there is no report condition and the task fails, the recipient gets an alert email. 

if the same "report condition" evaluates to true for filter context for a given recipient, but then the actual report execution fails for some reason , they will probably get the alert. ( unusual but not impossible)

We are looking at disabling the default 'alert' email that is set to recipients and also adding an 'admin alert' email only . 

The latter is possible with some effort by initiating the task execution through the API, checking the execution result, and if it fails, trigger a task that is only sent to the  administrator. 

 

 

jhomulos
Partner - Contributor III
Partner - Contributor III

We are already initiating task execution via the API (executed from the QlikView Managment Console), and we have it set up such that a non-zero execution result sends an email error to Admins. However, the NPrinting execution still distributes the email without attachment to the recipients. How would we stop the distribution from occurring?

JonnyPoole
Employee
Employee

If the email is being sent despite the "report condition" evaluating to false then you would be seeing unintended functionality .   If you can share a simple use case  , Qlik app + report template + condition screenshot ,  i'll test it out.  You are not the only one trying to avoid this , and if there is a bug i'd like it to get logged ASAP.

jhomulos
Partner - Contributor III
Partner - Contributor III

There is no report condition. I already have a ticket open with Qlik Support about occasional errors we get on report execution. I'm just trying to keep those errors from end user visibility. Do I need to add a condition?

JonnyPoole
Employee
Employee

Yes.  Please re-read my post above . And the important part copied again here: 

 

"If the "report condition" evaluates to false for the filter context for a given recipient, then that same recipient  should NOT get an email . period. "

jhomulos
Partner - Contributor III
Partner - Contributor III

Does it have to be a user filter? The report I have has a chart that is used on three different Excel tabs. The chart has a different date filter on each tab. I added a condition to the report that the chart must have data, but there are occasions where one of the three filters used might not have any data. When that occurs, the report fails and the email goes to end users. We do want the report to fail if any of the three filters result in no data, but we don't want to email to go to end users.

JonnyPoole
Employee
Employee

Here is how report conditions (conditions tied to reports on the 'reports' tab of a task) are evaluated. 

Task filters, user filters and report filters are evaluated when the condition is employed.  Object filters are NOT.

Can you change the condition/variable to evaluate to false for any of the 3 object filters ? Using set analysis in the variable you use for the condition is one way to employ a filter context for the condition that wouldn't impact the report filter context on execution

 

Untitled.png

JonnyPoole
Employee
Employee

By the way it looks like we are aiming to introduce  a new configurable parameter in the short term roadmap  to disable the current behavior of notifiying all recipients when a task that has kicked off (after successful condition if conditions are present)  ends up failing.    No guarantees of course but bodes well for this thread and others like it.