I have created a report that the only parameter is the CustomerID from the SOOrder table. The parameter of CustomerID works in the same way as the original customer history report except for it uses the SOOrder.CustomerID instead of ARPayment.CustomerID as the linking field. I have created this customization to add the linking to the report:
public override void Initialize()
{
Base.report.AddMenuAction(NewCustHistory);
}
public PXAction<Customer> NewCustHistory;
[PXUIField(DisplayName = "New Customer History", MapEnableRights = PXCacheRights.Select)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.Report)]
public virtual IEnumerable newCustHistory(PXAdapter adapter)
{
Customer customer = Base.BAccountAccessor.Current;
if (customer != null)
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters["CustomerID"] = customer.AcctCD;
throw new PXReportRequiredException(parameters, "IN642501", "New Customer History");
}
return adapter.Get();
}
It compiles fine it's just when I try to run the report after a customer is selected I get these two errors in the trace:
Object reference not set to an instance of an object.
at PX.Data.Reports.BqlSoapCommand.a(PXGraph A_0, StringBuilder A_1, List`1 A_2)
at PX.Data.Reports.BqlSoapCommand.Parse(PXGraph graph, List`1 pars, List`1 tables, List`1 fields, List`1 sortColumns, StringBuilder text, Selection selection)
at PX.Data.BqlCommand.a(PXGraph A_0, PXView A_1)
at PX.Data.BqlCommand.GetText(PXGraph graph, PXView view)
at PX.Data.PXDatabaseProviderBase.Select(PXGraph graph, BqlCommand command, Int64 topCount, PXView view, PXDataValue[] pars)
at PX.Data.PXDatabaseProvider.Select(PXGraph graph, BqlCommand command, Int64 topCount, PXDataValue[] pars)
at PX.Data.PXDatabase.Select(PXGraph graph, BqlCommand command, Int64 topCount, PXDataValue[] pars)
at PX.Data.Reports.SoapNavigator.b()
at PX.Data.Reports.SoapNavigator.c()
at PX.Data.Reports.SoapNavigator.Reset()
at PX.Reports.Data.ReportNode.ProcessItem()
at PX.Reports.Data.ItemNode.Process(Object dataItem)
at PX.Reports.Data.ItemNode.Process()
at PX.Reports.Data.ReportNode.Process()
at PX.Reports.Data.ReportProcessor.ProcessReport(Report definition)
at PX.Data.PXLongOperation.<>c__DisplayClass65_0`1.b__0()
at PX.Data.PXLongOperation.<>c__DisplayClass18_0.b__0()
As well as this one:
Object reference not set to an instance of an object.
at PX.Common.Async.Process[Result](String uniqueKey, Method`1 method, Int64 waitTimeout)
at PX.Reports.Web.WebReport.Render(HttpResponse response, String format, Int32 pageNumber, Boolean refresh, Boolean isAttacment, String locale)
at PX.Reports.Web.PageOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response)
at PX.Reports.Web.HttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Here is the XML for the report: Report XML
Update 1: I have updated to the code to replicate the answer that was provided below. The error still persists. My Acumatica version is 6.10.0755.