Hello,
I have a BAQ that I am trying to create that references another BAQ. Both of these BAQs have the same parameters, so I am trying to pass the parameters from the outer BAQ to the query reference. If I have the query reference set to append it’s parameters to the parameter list, but prefix them with it’s name it works correctly, but has the additional parameters separate from my BAQ’s parameters. However, if I set the parameter mapping to map the query reference’s parameters to my BAQ’s parameters, I get a generic “something went wrong” error.
The server’s event viewer shows 2 error events when I do this.
First Event:
Ice.Common.EpicorServerException: Object reference not set to an instance of an object.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Ice.Blaq.Execution.QueryParameterList.FillWithValuesAndCheck(QueryExecutionTableset executionParams, Boolean forAnalyze, List`1 tempParamList, QueryParameterBindingTable paramBindings, Guid refQueryId) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 436
at Ice.Blaq.Execution.QueryParameterList.<>c__DisplayClass10_0.<CreateParameterListForQueries>g__createParameterList|0(DynamicQueryTableset queryDefinition, Guid refId, String subQueryName) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 109
at Ice.Blaq.Execution.QueryCompose.QueryBundle.PrepareParameterList(Func`4 createParameterList, List`1 paramList) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryCompose\QueryBundle.cs:line 107
at Ice.Blaq.Execution.QueryParameterList.CreateParameterListForQueries(QueryBundle queryBundle, QueryExecutionTableset executionParams, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 119
at Ice.Blaq.Execution.QueryParameterList..ctor(BAQConstants baqConstants, String queryAlias, QueryBundle queryBundle, QueryExecutionTableset executionParams, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 49
at Ice.Blaq.Execution.QueryCompose.QueryStructureBuilderCreator..ctor(BAQConstants baqConstants, String queryAlias, QueryBundle queryBundle, QueryExecutionTableset executionParams, IExtensionTableMapper extensionTableMapper, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryCompose\QueryStructureBuilderCreator.cs:line 44
at Ice.Services.BO.DynamicQuerySvc.ExecuteInternal(DynamicQueryTableset queryDefinition, QueryExecutionTableset executionParams, Boolean updateExtSecurity) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuery.Impl.cs:line 631
at Ice.Services.BO.DynamicQuerySvc.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuery.cs:line 125
at Epicor.Customization.Bpm.BO.ExecuteImpl.ExecuteBase(ExecuteParameters parameters)
at Epicor.Customization.Bpm.MethodCustomizationBase2`2.RunDirectives(TParam parameters) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Internal\Lib\Epicor.Customization.Bpm\MethodCustomizationBase2.cs:line 183
at Epicor.Customization.Bpm.CustomizationBase2`2.Execute(TParam parameters) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 106
at Epicor.Customization.Bpm.BO.DynamicQuerySvcCustomization.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams)
at Ice.Services.BO.DynamicQuerySvcFacade.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuerySvcFacade.cs:line 200
--- End of inner exception stack trace ---
CorrelationId: e9acc5cb-f41d-48ef-a504-313f00ab8357
Second Event:
Ice.Common.EpicorServerException: Object reference not set to an instance of an object.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Ice.Blaq.Execution.QueryParameterList.FillWithValuesAndCheck(QueryExecutionTableset executionParams, Boolean forAnalyze, List`1 tempParamList, QueryParameterBindingTable paramBindings, Guid refQueryId) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 436
at Ice.Blaq.Execution.QueryParameterList.<>c__DisplayClass10_0.<CreateParameterListForQueries>g__createParameterList|0(DynamicQueryTableset queryDefinition, Guid refId, String subQueryName) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 109
at Ice.Blaq.Execution.QueryCompose.QueryBundle.PrepareParameterList(Func`4 createParameterList, List`1 paramList) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryCompose\QueryBundle.cs:line 107
at Ice.Blaq.Execution.QueryParameterList.CreateParameterListForQueries(QueryBundle queryBundle, QueryExecutionTableset executionParams, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 119
at Ice.Blaq.Execution.QueryParameterList..ctor(BAQConstants baqConstants, String queryAlias, QueryBundle queryBundle, QueryExecutionTableset executionParams, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryParameterList.cs:line 49
at Ice.Blaq.Execution.QueryCompose.QueryStructureBuilderCreator..ctor(BAQConstants baqConstants, String queryAlias, QueryBundle queryBundle, QueryExecutionTableset executionParams, IExtensionTableMapper extensionTableMapper, Boolean forAnalyze) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Internal\Lib\Ice.Lib.Blaq\Execution\QueryCompose\QueryStructureBuilderCreator.cs:line 44
at Ice.Services.BO.DynamicQuerySvc.ExecuteInternal(DynamicQueryTableset queryDefinition, QueryExecutionTableset executionParams, Boolean updateExtSecurity) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuery.Impl.cs:line 631
at Ice.Services.BO.DynamicQuerySvc.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuery.cs:line 125
at Epicor.Customization.Bpm.BO.ExecuteImpl.ExecuteBase(ExecuteParameters parameters)
at Epicor.Customization.Bpm.MethodCustomizationBase2`2.RunDirectives(TParam parameters) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Internal\Lib\Epicor.Customization.Bpm\MethodCustomizationBase2.cs:line 183
at Epicor.Customization.Bpm.CustomizationBase2`2.Execute(TParam parameters) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 106
at Epicor.Customization.Bpm.BO.DynamicQuerySvcCustomization.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams)
at Ice.Services.BO.DynamicQuerySvcFacade.Execute(DynamicQueryTableset queryDS, QueryExecutionTableset executionParams) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Services\BO\DynamicQuery\DynamicQuerySvcFacade.cs:line 200 at Ice.Hosting.RestApi.OperationInvokeHelper.CallInvoker(Type svcType, MethodInfo mi, Object[] inputs, Boolean isRoot, IceDataContext dataContext) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Framework\Epicor.Ice\Hosting\RestApi\OperationInvokeHelper.cs:line 403
at Ice.Hosting.RestApi.OperationInvokeHelper.MakeServiceCall(IceDataContext dataContext, Type svcType, MethodInfo mi, Object[] parameters) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Framework\Epicor.Ice\Hosting\RestApi\OperationInvokeHelper.cs:line 356
at Ice.Hosting.RestApi.OperationInvokeHelper.CallCustomMethod(String serviceName, MethodInfo mi, Object[] paramList) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Framework\Epicor.Ice\Hosting\RestApi\OperationInvokeHelper.cs:line 306
at Epicor.RESTApi.DataSources.CustomMethodCaller.CallMethodWithDynamicData(String serviceId, String methodName, IInputParamResolver inputResolver, Action`1 headersPublisher, Action`1 verifyMethod) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Framework\Epicor.RESTApi.Common\DataSources\Main\CustomMethodCaller.cs:line 74
at Ice.Hosting.AspNetCore.Controllers.ServiceMethodCallControllerBase.HandleServiceMethodCall(String serviceId, String methodName, IInputParamResolver inputResolver, Action`1 verifyMethod) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Controllers\ServiceMethodCallControllerBase.cs:line 62
at Epicor.OData.V3.Controllers.CustomActionController.HandleCustomMethodCall(IInputParamResolver inputResolver, Action`1 verifyMethod) in C:\_releases\ICE\ICE4.2.400.0FW\Source\Server\Hosting\AspNetCore\RestApi\Epicor.OData.AspNetCore.V3\Controllers\CustomActionController.cs:line 53
at lambda_method857(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Ice.Hosting.AspNetCore.Middleware.DynamicAssemblyPartMiddleware.Invoke(HttpContext context, CurrentCallInformationService currentCallInformation, ControllerLoader controllerLoader) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\DynamicAssemblyPartMiddleware.cs:line 33
at Ice.Hosting.AspNetCore.ETags.ETagMiddleware.Invoke(HttpContext httpContext) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\ETags\ETagMiddleware.cs:line 110
at Ice.Hosting.AspNetCore.ETags.ETagMiddleware.Invoke(HttpContext httpContext) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\ETags\ETagMiddleware.cs:line 110
at Ice.Hosting.AspNetCore.Middleware.DecompressRequestMiddleware.Invoke(HttpContext context) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\DecompressRequestMiddleware.cs:line 42
at Ice.Hosting.AspNetCore.Middleware.AuthenticationMiddleware.InvokeAsync(HttpContext httpContext, CurrentCallInformationService callInformation) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\AuthenticationMiddleware.cs:line 83
at Ice.Hosting.AspNetCore.Middleware.CallHeaderMiddleware.InvokeAsync(HttpContext httpContext) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\CallHeaderMiddleware.cs:line 52
at Ice.Hosting.AspNetCore.Middleware.OperationDisposerMiddleware.InvokeAsync(HttpContext httpContext) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\OperationDisposerMiddleware.cs:line 34
at Epicor.RESTApi.Middleware.ApiKeyEnforcerMiddleware.Invoke(HttpContext context) in C:\_releases\ICE\ICE4.2.400.10\Source\Server\Hosting\AspNetCore\Ice.Hosting.AspNetCore\Middleware\ApiKeyEnforcerMiddleware.cs:line 79
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
--- End of inner exception stack trace ---
CorrelationId: e9acc5cb-f41d-48ef-a504-313f00ab8357