Bursting - Possible to force multiple attachments into one email?

I know that the report bursting feature in Canvas allows you to create a task to iterate over TM1 subsets and burst out a separate email with an attached Canvas report for each element in the subset.

However, I have a business case where the customers expect two Canvas reports attached in the same email.

The reports use the same parameters, so getting them to iterate with the same variables on the same subsets in the same task is no issue. The problem is when I set the task up this way, it will send the customer the same email twice (once with the first attachment and once with the second attachment).

I was wondering if there’s any way to force Canvas to just send a single email with both attachments.


Hi @Epistemophile ,

There is an option to send One Email for All or An Email per Attachment Burst when configuring the Email body to be sent.

More information can be found here:

Burst PDF reports with the Task Scheduler - Cubewise CODE



1 Like

Thanks @plim .

Yes I do know that checkbox well, but my experience with that has always been that it bursts all attachments that it spools through as one single mega email. I guess that has been because where we set to One Email for All, we have a hard-coded recipient that doesn’t change as the data spools. So I just assumed it would always collate all output in the task into one single email. Thinking about it now, that is hopefully an illogical assumption by me.

So just to make sure I have this 100% right (as it will be a legal issue if I send the wrong attachment to the wrong recipient!)…

If I have a recipients dimension that iterates in the burst tab {{recipient}}…

… and I pass that recipient variable into a DBR to get a different email address each time…
[[dbr : myServer : myCube,{{recipient}},Email Address,String]]

… and define two attachments in the Report tab…

…then as each recipient spools, {{recipient}} will change which will update the email address, which will hopefully split my spool output into multiple emails… but each of those emails should contain the 2 attachments that relate to that recipient. But if I didn’t have a dynamic recipient address I would get the whole thing in just one email.

Is that 100% how it works?

Hi @Epistemophile ,

An high-level example might help explain what the printing setup you are trying to do.

Also information like, how many items do you have in the “Burst” tab for bursting? Is it just a single Dimension Subset? Or do you have more than that in there?

If I understand it a little bit better now, you have the following scenario:

Customer/Email Recipient Attachment
A Report-1
B Report-2
B Report-3
C Report-4

However, you want to send the same attachment, Report-2 and Report-3 to Customer B in a single email? Is that what you were trying to do?

If that is the case, then the current printing job does not support that process. As per what you have seen, it will process it - item by item as per the Burst tab.

There are possible alternatives though, here are a few of them:

  1. You can add a TI call after the report bursting so burst and save them to disk and then you handle the sending of emails via a TI process for example (or any other tools for sending email you have). That way, you can control which attachment to send to which customer.
  2. Depending on how many attachment it is and how your model is structured, you might be able to create a separate Print task instead that caters for customers with 2 attachments. So for example, your first Print Task will handle all customers with a single attachment, and a second print burst for those with 2 attachments, etc.



Thanks again for your time @plim ,

The task is spooling on both days and radiologists dimensions. In this case the days subset should only contain one single element called prior calendar year. The radiologists subset should contain a list of all our staff who undertook work for us in the prior calendar year.

I have two different Canvas reports defined as attachments in the Report tab of the task. (A radiologist report and a volumes report):

In the recipients tab I have a DBR reference that should resolve to a different email address for each {{radiologist}} in the loop:

My task is to ensure each {{radiologist}} receives a single email. In that email should be two reports, returning data that has been run specifically against the emailed radiologist, containing their stats and only their stats (not the stats of any other radiologist in the loop). All radiologists should receive a PDF of their own radiologist report and their own volumes report.

What I think I will do is just pick two radiologists that I know have data… jump into production and change their email addresses to instead use my email for the first radiologist and my teammate’s email for the second radiologist. Then I will build a static subset of just those two radiologists and repoint the burst to that subset of just the two doctored rads and see what happens. Hopefully I will receive a single email for the first rad with two attachments, and my teammate will receive a single email with the two attachments for the second one.

That’s the easiest way to know for sure how this works.

Sadly doesn’t work. It just bundles all the attachments up into a single email and sends all of them to me, even the ones where I am not the recipient for.

Looks like it’s either all reports in the entire spool in one single mega email … or else one email per attachment. No middle ground.

So it’s going to require some thinking outside the box to solve this one. :frowning:

Also… on the earlier comment you made here:

1. Depending on how many attachment it is and how your model is structured, you might be able to create a separate Print task instead that caters for customers with 2 attachments . So for example, your first Print Task will handle all customers with a single attachment, and a second print burst for those with 2 attachments, etc.

… all I want is a single burst for every customer, and each customer gets two attachments… but each attachment is a report tailored to each recipient customer. Sadly doesn’t work though.

Hi @Epistemophile ,

I think I have a better understanding now of what you were trying to do.

I believe the client has Apliqo UX as well - and the feature that you are looking for is most probably there already (this feature for combining multiple attachments into one is under a feature / flag called “Merge”).

I would advice to check with client to confirm.



Thanks @plim,

We do have ApliqoUX as well. Typically we don’t do any bursting from ApliqoUX though if that’s what you’re suggesting. We do it all just in Canvas, which is setup to run on a different TM1 backend.

For now I just sent the letters out in two separate emails. Next year if I had more time I was planning to perhaps use Canvas to burst-to-disc instead with a reliable parameter-inclusive naming convention. I would follow the burst-to-disc task up with a TI that would iterate over the same subsets, find the two attachments for each loop, then send them out using the BLAT.exe PowerShell app.

But time restraints and other priorities meant I didn’t go that route this year.

Caught up in a bunch of other things now, but will try to do some Googling on “ApliqoUX merge burst” when I get a moment and see if any hits come up.