For a select query I have in the SQL Query Box
((data filterObject ((value, key, index) -> (value != null and value != '')) mapObject ((value, key, index) -> {
myData : underscore(key as String) ++ ' = :' ++ (key as String)
})).*myData joinBy ' AND ')
And in the Input Params
data filterObject ((value, key, index) -> (value != null and value != ''))
vars.inputParameters default {}
While this runs fine datasense hates it. While this is just a nuisance if there a way of muting this error.
As can be seen in the error below it thinks the query is full of nulls when it is not.
org.mule.runtime.module.extension.internal.runtime.ValueResolvingException: Unable to resolve value for the parameter: sql
at org.mule.runtime.module.extension.internal.runtime.operation.OperationParameterValueResolver.getParameterValue(OperationParameterValueResolver.java:101)
at org.mule.runtime.module.extension.internal.metadata.MetadataMediator.getMetadataKeyObjectValue(MetadataMediator.java:422)
at org.mule.runtime.module.extension.internal.metadata.MetadataMediator.getMetadata(MetadataMediator.java:181)
at org.mule.runtime.module.extension.internal.runtime.ExtensionComponent.lambda$null$17(ExtensionComponent.java:396)
at org.mule.runtime.core.api.util.ExceptionUtils.tryExpecting(ExceptionUtils.java:224)
at org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader(ClassUtils.java:1075)
at org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader(ClassUtils.java:993)
at org.mule.runtime.module.extension.internal.runtime.ExtensionComponent.lambda$getMetadata$18(ExtensionComponent.java:395)
at org.mule.runtime.module.extension.internal.runtime.ExtensionComponent.runWithMetadataContext(ExtensionComponent.java:537)
at org.mule.runtime.module.extension.internal.runtime.ExtensionComponent.getMetadata(ExtensionComponent.java:394)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.lambda$getComponentMetadata$7(MuleMetadataService.java:217)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.exceptionHandledMetadataFetch(MuleMetadataService.java:173)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.getComponentMetadata(MuleMetadataService.java:216)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.getOperationMetadata(MuleMetadataService.java:115)
at org.mule.runtime.config.internal.LazyMetadataService.lambda$getOperationMetadata$4(LazyMetadataService.java:96)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
Caused by: java.lang.IllegalArgumentException: Required parameter 'sql' was assigned with value '#vars.countQuery' which resolved to null. Required parameters need to be assigned with non null values
at org.mule.runtime.module.extension.internal.runtime.resolver.RequiredParameterValueResolverWrapper.resolve(RequiredParameterValueResolverWrapper.java:67)
at org.mule.runtime.module.extension.internal.runtime.LazyExecutionContext.lambda$lazy$1(LazyExecutionContext.java:61)
at org.mule.runtime.core.api.util.func.CheckedSupplier.get(CheckedSupplier.java:25)
at org.mule.runtime.api.util.LazyValue.get(LazyValue.java:75)
at org.mule.runtime.module.extension.internal.runtime.LazyExecutionContext.getParameter(LazyExecutionContext.java:78)
at org.mule.runtime.module.extension.internal.runtime.operation.OperationParameterValueResolver.lambda$getParameterValue$1(OperationParameterValueResolver.java:95)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at org.mule.runtime.module.extension.internal.runtime.operation.OperationParameterValueResolver.getParameterValue(OperationParameterValueResolver.java:78)
... 85 more
So replacing all those key as String with (key default "MISSING" as String) or similar might be more defensive coding..