How can I add a button for sending a report by email?

Questions related to using nuBuilder Forte.

How can I add a button for sending a report by email?

Unread postby absalom » Wed Apr 21, 2021 5:54 pm

Hi have a button on a form for triggering the nuRunReport("FR0") Javascript command, and it works fine for building and opening the PDF report. Could I have a second button for building and sending the PDF report by email?

When opening the console and typing nuEmailReportAction("FR0")

I get:
Code: Select all
Uncaught ReferenceError: nuEmailReport is not defined
    nuEmailReportAction https://gestion.psychologie-brest.fr/core/nuform.js?ts=20210421101738:2870
    <anonymous> debugger eval code:1
debugger eval code:2870:2

absalom
 
Posts: 25
Joined: Sat Apr 03, 2021 11:20 pm
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby kev1n » Wed Apr 21, 2021 6:57 pm

Hi,

nuEmailReport () doesn't seem to exist in nuBuilder 4/4.5. and I didn't find any other function that would generate a report and send it.
So you would have to save the report first with nuRunReportSave()
and the send it with the nuSendEmail PHP function.

Let me know if that works for you.
kev1n
nuBuilder Team
 
Posts: 1873
Joined: Mon Oct 15, 2018 2:13 am
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby kev1n » Wed Apr 21, 2021 11:47 pm

Example:

JavaScript:

Code: Select all

nuRunReportSave('FR0', null, reportCreated);

function reportCreated(filename, id) {

   nuSetProperty(''filename', filename);
   nuRunPHPHidden('sendemail',0);   

}


Then create a PHP Procedure with code sendemail and retrieve the filename in the PHP code and send the email:

$file = "#filename#";
Code: Select all
nuSendEmail('to@test.com','from@test.com','From','Content','Subject', [$file], true)


(Latest nurunpdf.php and nuajax.js required from Github)
kev1n
nuBuilder Team
 
Posts: 1873
Joined: Mon Oct 15, 2018 2:13 am
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby oli » Sun May 30, 2021 1:44 am

Hello,
I tried to follow this instruction to send a report via e-mail. The Mail will be sent out but without attachment of the report. The report is created properly and available in the temp dir.

In the same procedure I'd like to store the file with a new name in a local folder - unfortunately I get following error message and I couldn't find any reason for it.

Here's the value of both variables containing the filenames:
Code: Select all
$file = C:\wamp64\www\bts-sandbox1/temp/nupdf_60b266a01e75190.pdf
$file_new = Z:\temp\Angebot-Nr-1012.pdf


This is the procedure (sendemail):
Code: Select all
$file = "#filename#";           // get Filename
$angebot = "#auf_nummer#";      // get Order Number
$file_new = $file_new . '\Angebot-Nr-' . $angebot . '.pdf'; // prepare new filename

nuSendEmail('xxxxx@web.com','xxxxxxxx@gmail.com','From','Content','Subject', [$file], true);    // Send E-Mail to xxxx@gmail.com

// Get folder to save new the file
$sql = 'SELECT inp_dir_angebote FROM systemsettings LIMIT 1';
$result = nuRunQuery($sql);
if (db_num_rows($result) > 0){
    while($row = db_fetch_row($result)){        // Get Folder from systemsettings table
        $dir_angebot = $row[0];
    }
}else{
    $dir_angebot = 'c:';     // no folder defined
}       

$file_new = $dir_angebot . $file_new;    // Folder + Filename

nuDebug($file);
nuDebug($file_new);

copy($file, $file_new);                         // Copy Report


This is the error message when I try to copy the report :
Code: Select all
Call Stack
#   Time   Memory   Function   Location
1   0.0004   448576   {main}( )   ...\nuapi.php:0
2   0.0195   696032   nuRunPHPHidden( )   ...\nuapi.php:67
3   0.0260   1538928   nuEval( )   ...\nucommon.php:421
4   0.0268   1548424   eval( '$file = "C:\\wamp64\\www\\bts-sandbox1/temp/nupdf_60b264b8592bbc4.pdf"; // get Filename


Can someone help me in this regard please?

Thanks a lot.

Oli!
oli
 
Posts: 70
Joined: Sat Mar 20, 2021 11:52 pm
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby kev1n » Sun May 30, 2021 2:52 am

nuSendEmail deletes the files after sending.
kev1n
nuBuilder Team
 
Posts: 1873
Joined: Mon Oct 15, 2018 2:13 am
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby oli » Sun May 30, 2021 3:20 am

kev1n wrote:nuSendEmail deletes the files after sending.


I put nuSendEmail at the end of the procedure but without success:
Code: Select all
( ! ) Warning: copy(Z:\temp\Angebot-Nr-1014.pdf): failed to open stream: No such file or directory in C:\wamp64\www\bts-sandbox1\core\nucommon.php(1302) : eval()'d code on line 21


Also the report is still not attached to the e-mail?!
oli
 
Posts: 70
Joined: Sat Mar 20, 2021 11:52 pm
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby kev1n » Mon May 31, 2021 4:06 pm

Add some debugging code like file_exists () to track down the error.
kev1n
nuBuilder Team
 
Posts: 1873
Joined: Mon Oct 15, 2018 2:13 am
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby oli » Mon May 31, 2021 4:36 pm

Hi kev1n,

copy to Z: (a windows share) was not possible since PHP seems to have an issue with copying files to shares. To copy the file to the local drive was possible.

But I still cannot send the report via e-mail.
I get the E-Mail, but no file is attached to it.

I'm using following path to the report file in my script and file_exists gives me "1" as a result and I can see the file in the temp-directory.
$file = C:\wamp64\www\bts-sandbox1/temp/nupdf_60b48826b2493d3.pdf
Code: Select all
nuSendEmail('gaigalat@web.de','computer@gaigalat.de','From: Admin','Test E-Mail from ....','Your Order', [$file], true);   


I have no idea how to find out why the file is not attached to the e-mail.

Do you have any idea?
oli
 
Posts: 70
Joined: Sat Mar 20, 2021 11:52 pm
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby oli » Mon May 31, 2021 9:13 pm

There's also a JavaScript function available (nuEmailReportAction) but I couldn't find any detailed documentation about it.
Could this maybe solve my problem?
oli
 
Posts: 70
Joined: Sat Mar 20, 2021 11:52 pm
nuBuilder Version: 4.5

Re: How can I add a button for sending a report by email?

Unread postby oli » Mon May 31, 2021 11:10 pm

Just to add some more information that might be helpful to find a solution or to find out what I am doing wrong:

- On the form I created a run object (Button) which is calling my report

- To this run object I added an "onclick" event with following JavaScript Code:
Code: Select all
nuRunReportSave('rep_angebot', null, reportCreated);
function reportCreated(filename, id) {
   nuSetProperty('filename', filename);
   nuRunPHPHidden('sendemail',0);   
}


- I created a procedure "sendemail" containing following PHP code:
Code: Select all
$file = "#filename#";           // get Filename
if(file_exists($file)){
    nuSendEmail('xxxxxxx@gmail.com',xxxxxxxx@xxxxxxx.de','From: Admin','Test E-Mail from ....','Your Order',[$file],true);    // Send E-Mail
}else{
    nuDebug('Cannot send ' . $file);
}


Following results:
- no entry in nuDebug results
- E-Mail has been sent with the content
- Report-File "$file" is NOT attached to the e-mail (even it exists on the server)

Is there anything I can do to get more information or is there anything configured wrongly?
oli
 
Posts: 70
Joined: Sat Mar 20, 2021 11:52 pm
nuBuilder Version: 4.5

Next

Return to General

Who is online

Users browsing this forum: No registered users and 14 guests