create a PDF from the DeepSee UserPortal using a headless browser
Hello Community,
I hope you're going well.
I am programming a daily reporting that will send by e-mail when people will add a dashboard as favorite by clicking on the star :
I asked Intersystems WRC on how to automatically generate a report with some line coding, but I heard there is no way to do this without a headless Browser.
I downloaded google-chrome to use the "--headless" and "--print-to-pdf" function , to print the HTML content of my dashboard into a PDF. ( I will use $ZF function to launch the generation ).
I also created a delegated application "/userPortal" to be able to use the "ZAUTHENTICATE.mac" routine :
I will put as an argument "Username=pdfOutput" . In this way , It will create a delegate user that only have "read permission" to secure a bit my application.
When I open the next URL in Chrome , It opens the DashboardViewer without any problem :
http://localhost:52773/userPortal/_DeepSee.UserPortal.DashboardViewer.ze...$$$CM%20consumption.dashboard&IRISUsername=pdfOutput
The URL changed automatically and remove the "Username" part ( redirection security ? )
My problem is the next one :
When I try to generate the PDF with the linux command, it shows the "access Denied" error in the PDF it outputs (as attached file):
sudo google-chrome-stable --no-sandbox --headless --disable-gpu --print-to-pdf http://localhost:52773/userPortal/_DeepSee.UserPortal.DashboardViewer.ze...$$$CM%20consumption.dashboard&Username=pdfOutput
I checked if the ZAUTHENTICATE.mac routine was called, and it is the case ( i put a global to see the time and the name of the "username").
It looks like, with a browser, there is a redirection after authentication that can cause the problem.
I checked the Audit database but I don't have any event for my call.
Does anyone have an idea , or have a better way to print a dashboard without a browser?
Thank you in advance.
I wish you a good day.
Lucas Bourré
Hi Lucas!
It's not an answer on how to use DeepSee Zen, but if you try DSW, it has Dashboard export to PDF and even sending on schedule.
Take a look DSW Reports, also tagging @Semion Makarov
Hello Evgeny,
We tried to use the schedule part of DSW , which use a headless browser ( PhantomJS ).
I am doing the same job with my custom operation, but instead of printing the DeepSeeWeb page , I am printing a "delegated application" on Intersystems .
The problem should be arround the ZAUTHENTICATE.mac routine. Maybe the delegated application doesn't work for this sort of use, i should use a non authenticate application ?
I'm going to give it a try
Hi Lucas.
I'm confused in the URL on the screenshot you are correctly using IRISUsername [0]
Why in the "sudo google-chrome-stable ..." command you are using just "Username" parameter? Did you redefine GetCredentials to take username from URL parameter "Username" ?
[0] https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GC...
Hello Alexander,
I think you put your finger on the problem , I was taking "IRISUsername" as the URL parameter instead of "Username".
I changed my ZAUTHENTICATE routine, and I don't have any problem for now.
Thank you for your answer