Send an email with Subject and body using SysMailerMessageBuilder class - Dynamics 365 FO
Send an email with Subject and body using SysMailerMessageBuilder class.
use following methods of this class:
setSubject - To set Subject of the email.
setBody - To Set email body .
setFrom - To set sender of the email.
sendInteractive - To send interactively.
sendNonInteractive - TO send non interactively
Args args; SalesInvoiceContract salesInvoiceContract; CustInvoiceJour custInvoiceJourLocal; SRSPrintDestinationSettings SRSPrintDestinationSettings; #SRSFramework
body = "Hello,
Please find the attached report. Please review and take necessary actions.
Regards,
AX Support Team
'; args = new Args(); select firstOnly custInvoiceJourLocal where custInvoiceJourLocal.InvoiceId == caaTrustFollowUpInvoices.InvoiceId; args.record(custInvoiceJourLocal); SrsReportRunController salesInvoiceController = new SrsReportRunController(); salesInvoiceController.parmArgs(args); salesInvoiceController.parmReportName(PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat()); salesInvoiceController.parmShowDialog(false); salesInvoiceController.parmLoadFromSysLastValue(false); salesInvoiceContract = salesInvoiceController.parmReportContract().parmRdpContract(); salesInvoiceContract.parmRecordId(custInvoiceJourLocal.RecId); // Record id must be passed otherwise the report will be empty SrsReportDataContract srsReportDataContract = salesInvoiceController.parmReportContract(); //srsReportDataContract.parmisMemoryStreamOnly(true); salesInvoiceController.parmReportContract(srsReportDataContract); SRSPrintDestinationSettings = new SRSPrintDestinationSettings(); SRSPrintDestinationSettings.overridePrintContractSettings(true); SRSPrintDestinationSettings.printMediumType(SRSPrintMediumType::Archive); SRSPrintDestinationSettings.parmOverwriteFileIsSet(true); SRSPrintDestinationSettings.fileFormat(SRSReportFileFormat::PDF); SRSPrintArchiveContract SRSPrintArchiveContract = new SRSPrintArchiveContract(SRSReportFileFormat::PDF); SRSPrintDestinationSettings.parmSRSPrintArchiveContract(SRSPrintArchiveContract); str archiveName = strFmt('%1-%2', curUserId(), timeNow()); salesInvoiceController.parmReportContract().parmReportCaption(archiveName);//**This is the 'Description' field in the archive salesInvoiceController.parmReportContract().parmPrintSettings(SRSPrintDestinationSettings); salesInvoiceController.run(); PrintJobHeader printJobHeader; select firstonly forupdate printJobHeader where printJobHeader.jobDescription == archiveName; DocuRef docuRef; select firstonly forupdate docuRef where docuRef.RefRecId == PrintJobHeader.RecId && docuRef.RefTableId == tableNum(PrintJobHeader) && docuRef.TypeId == #SRSArchiveDocument; DocuValue docuValue; select firstonly forupdate docuValue where docuValue.RecId == docuRef.ValueRecId; container reportBytes = docuValue.File; System.Byte[] binData; System.IO.Stream stream; // Turn the Bytes into a stream for(int i = 0; i < conLen(reportBytes); i++) { binData = conPeek(reportBytes,i+1); stream = new System.IO.MemoryStream(binData); } ttsbegin; printJobHeader.delete(); docuRef.delete(); docuValue.delete(); ttscommit; infolog.clear();//Clear the message about archiving the report var messageBuilder = new SysMailerMessageBuilder(); messageBuilder.addTo(sendToEmail) .setSubject(Subject) .setBody(Body) .addCC(HcmWorker::find(ccEmail).email()); if (sendFromEmail) { messageBuilder.setFrom(sendFromEmail); } if (stream != null) { messageBuilder.addAttachment( stream, 'Invoice.pdf'); } SysMailerFactory::sendNonInteractive(messageBuilder.getMessage());
posted on 2021-06-03 20:50 lingdanglfw 阅读(129) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?