Bojensen Blogs

How to send a report via email from Microsoft Dynamics AX

Hi all!

Today I want to show you how to send a custom report via email from AX (it works with an AX client installation and it’s tested for Microsoft Outlook and Novell GroupWise).

In AX there is a class that allows you to do this: “SysINetMail”.

Here’s the code:

void printPDFMail()
{
    SysINetMail     SysINetMail;
    str             FileName;
    str             user;
    str             Body;
    str             Subject;
    str             cc1;
    str             mailAddressFrom;
    str             mailAddressTo;
    UserInfo        userInfo;
    SysINetMail mail = new SysINetMail();
    ;

    select firstonly userInfo where userInfo.id==curUserId(); {
    user= userInfo.networkAlias; }

    FileName = strfmt('C:\\Users\\%1\\Desktop\\AXReportName.pdf',user);

    reportRun.printJobSettings().setTarget(PrintMedium::File);
    reportRun.printJobSettings().format(PrintFormat::PDF);
    reportRun.printJobSettings().fileName(FileName);
    reportRun.run();

    //assign the values ​​of sender, recipient, subject and message body
    Subject     = 'Insert here the email subject';
    Body        = 'Insert here the email body';
    cc1         = 'example@example.com';

    //assign the values ​​to send email
    mailAddressFrom     = SysUserInfo::find(curUserId()).Email;
    mailAddressTo       = email@addresstosend.com
    
    //Send Mail
    mail.sendMailAttach(mailAddressTo,cc1,Subject,Body,false,FileName);
    
    //delete the temporary pdf file
    winAPI::deleteFile(FileName);


    //info("Email sent.");
}

 

 

 

I have included this method in a class that creates the report to be sent, but if you want to use it as a job, you have to use “Args” function to pass the name of the report to be printed.

Posted on http://axprogramming.blogspot.dk/2013/01/how-to-send-report-via-email-from-ax.html

Comments are closed.