SysOutgoingEmailTable outgoingEmailTable;
PurchTable purchTable;
UserInfo userInfo;
FormRun form = sender.formRun();
FormDataSource purchTable_ds = form.dataSource(formDataSourceStr(PurchTable ,PurchTable))as FormDataSource;
purchTable = purchTable_ds.cursor();
if(purchTable.DocumentState == VersioningDocumentState::Confirmed)
{
str Body;
str Subject;
SRSPrintDestinationSettings printSettings;
SRSPrintDestinationSettings SRSPrintDestinationSettings;
SrsPrintMgmtExecutionInfo reportExecutionInfo;
PurchReqLine purchReqLine;
printJobHeader printJobHeader;
PurchPurchaseOrderContract contract = new PurchPurchaseOrderContract();
PurchPurchaseOrderController controller = new PurchPurchaseOrderController();
controller.parmReportName(ssrsReportStr(PurchPurchaseOrder, Report));
reportExecutionInfo = controller.parmReportContract().parmReportExecutionInfo() as SrsPrintMgmtExecutionInfo;
if (!reportExecutionInfo)
{
reportExecutionInfo = new SrsPrintMgmtExecutionInfo();
}
controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
controller.parmShowDialog(false);
contract.parmRecordId(purchTable.RecId);
controller.parmReportContract().parmRdpContract(reportExecutionInfo);
controller.parmDialogCaption("Purchase order");
SRSPrintDestinationSettings = new SRSPrintDestinationSettings();
SRSPrintDestinationSettings.overridePrintContractSettings(true);
SRSPrintDestinationSettings.printMediumType(SRSPrintMediumType::Email);
SRSPrintDestinationSettings.emailAttachmentFileFormat(SRSReportFileFormat::PDF);
SRSPrintDestinationSettings.emailTo("abc@xyz.com");
SRSPrintDestinationSettings.emailSubject("PO");
SRSPrintDestinationSettings.fileName("PO");
SRSPrintDestinationSettings.parmEMailContract();
controller.parmReportContract().parmPrintSettings(SRSPrintDestinationSettings);
controller.runReport();
SysEmailItemId nextEmailItemId;
nextEmailItemId = EventInbox::nextEventId();
outgoingEmailTable.EmailItemId = nextEmailItemId;
outgoingEmailTable.IsSystemEmail = NoYes::No;
outgoingEmailTable.Sender = SysEmailParameters::find().SMTPUserName;
outgoingEmailTable.SenderName = SysEmailParameters::find().SMTPUserName;
outgoingEmailTable.Recipient = hcmWorker.email();
outgoingEmailTable.Subject = "Purchase Order";
outgoingEmailTable.Priority = eMailPriority::Normal ;
outgoingEmailTable.WithRetries = false;
outgoingEmailTable.RetryNum = 0;
outgoingEmailTable.UserId = curUserId();
outgoingEmailTable.Status = SysEmailStatus::Sent;
outgoingEmailTable.LatestStatusChangeDateTime = DateTimeUtil::getSystemDateTime();
outgoingEmailTable.insert();
}
I wrote this code on the clicked event handler, I have the requirement to send the purchase order to the requisitionist, I am getting error "Parameter executionInfo cannot be null or empty.". For right now I have just removed the code to get the email ID of the requisitionist.