System.Exception ex;
Filename fileName;
SRSPrintDestinationSettings settings;
System.Byte[] reportBytes = new System.Byte[0]();
SRSProxy srsProxy;
SRSReportRunService srsReportRunService = new SrsReportRunService();
Map reportParametersMap;
SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo();
Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray;
System.DateTime dateTime = System.DateTime::get_UtcNow();
str utcTimeAsStr= dateTime.ToString('yyyyMdHHmmss');
fileName = 'SalesInvoiceAutoPrint_' + custInvoiceJour.InvoiceId + '_' + utcTimeAsStr +'.pdf';
try
{
PrintMgmtReportFormatName printMgmtReportFormatName = PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat();
SalesInvoiceContract salesInvoiceContract = new SalesInvoiceContract();
salesInvoiceContract.parmRecordId(custInvoiceJour.RecId);
SrsReportRunController srsReportRunController = new SrsReportRunController();
srsReportRunController.parmReportName(printMgmtReportFormatName);
srsReportRunController.parmExecutionMode(SysOperationExecutionMode::Synchronous);
srsReportRunController.parmShowDialog(false);
srsReportRunController.parmLoadFromSysLastValue(false);
srsReportRunController.parmReportContract().parmRdpContract(salesInvoiceContract);
SRSPrintDestinationSettings printerSettings = srsReportRunController.parmReportContract().parmPrintSettings();
printerSettings.printMediumType(SRSPrintMediumType::File);
printerSettings.fileFormat(SRSReportFileFormat::PDF);
printerSettings.parmFileName(fileName);
printerSettings.fileName(fileName);
printerSettings.overwriteFile(true);
srsReportRunController.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration());
srsReportRunController.parmReportContract().parmReportExecutionInfo(executionInfo);
srsReportRunService.getReportDataContract(srsReportRunController.parmreportcontract().parmReportName());
srsReportRunService.preRunReport(srsReportRunController.parmreportcontract());
reportParametersMap = srsReportRunService.createParamMapFromContract(srsReportRunController.parmReportContract());
parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap);
srsProxy = SRSProxy::constructWithConfiguration(srsReportRunController.parmReportContract().parmReportServerConfig());
reportBytes = srsproxy.renderReportToByteArray(srsReportRunController.parmReportContract().parmReportPath(),
parameterValueArray,
printerSettings.fileFormat(),
printerSettings.deviceinfo());
if (reportBytes)
{
System.IO.MemoryStream stream = new System.IO.MemoryStream(reportBytes);
URL downloadLink;
VKUploadToCloud uploadToCloud = VKUploadToCloud::construct(
'DefaultEndpointsProtocol=https;AccountName={AccountName};AccountKey={AccountKey};EndpointSuffix=core.windows.net',
'invoices'
);
downloadLink = uploadToCloud.upload(fileName, stream);
}
}
catch(Exception::CLRError)
{
ex = ClrInterop::getLastException();
if (ex != null)
{
ex = ex.get_InnerException();
if (ex != null)
{
error(ex.ToString());
}
}
}
catch(ex)
{
error(ex.Message);
}