我正在尝试呈现报告PDF并创建FileInfo对象,但是当我尝试呈现报告时,Acumatica Code中会引发一些空引用错误。
这是我的代码:
//Report Paramenters
Dictionary<string, string> parameters = new Dictionary<string, string>()
{
{"BiopsyRefNumber", bioRefNbr}
};
PX.Reports.Controls.Report report = PXReportTools.LoadReport(reportId, null);
PXReportTools.InitReportParameters(report, parameters, SettingsProvider.Instance.Default);
ReportNode reportNode = ReportProcessor.ProcessReport(report);
IRenderFilter renderFilter = ReportProcessor.GetRenderer(ReportProcessor.FilterPdf);
Guid? fileGuid = Guid.Empty;
using (StreamManager mgr = new StreamManager())
{
renderFilter.Render(reportNode, null, mgr);
var file = new FileInfo(Guid.NewGuid(), fileName, null, mgr.MainStream.GetBytes());
UploadFileMaintenance uploadGraph = PXGraph.CreateInstance<UploadFileMaintenance>();
uploadGraph.SaveFile(file);
fileGuid = file.UID;
}
并且在renderFilter.Render()处,使用以下堆栈跟踪得到了空引用异常
at PX.Data.Reports.PXSettingProvider.get_Company()
at PX.Reports.Render.Pdf.PdfReport.Render(Stream stream)
at PX.Reports.Render.Pdf.PdfRenderer.PX.Reports.Data.IRenderFilter.Render(ReportNode report, Hashtable deviceInfo, StreamManager sm)
at MY CODE
SettingsProvider的工作方式是否有问题?令人沮丧的是,我在2019R1的客户端上做了同样的事情,由于某种原因,它在2020R1中对我失败。
谢谢
弄清楚,当租户下有一个分支时,出现了某些故障。这是一个测试实例,所以我删除了所有分支。