zoukankan      html  css  js  c++  java
  • Send an email with Subject and body using SysMailerMessageBuilder class

    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());
    
    
  • 相关阅读:
    ubuntu
    ubuntu
    ubuntu14.04,安装Gnome 15.10 (桌面)
    ubuntu14.04,安装Gnome 15.10 (桌面)
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    ubuntu 安装 删除 卸载 Deb 包文件
    失去爆破音规律
    单词发音规律
    英式音标和美式音标的差异
  • 原文地址:https://www.cnblogs.com/lingdanglfw/p/14847154.html
Copyright © 2011-2022 走看看