apex-enterprise-patterns/force-di

Force-DI does not resolve API-only namespaced metadata bindings

Closed this issue · 0 comments

If you have a binding record that does not bind to an SObject and only binds to the API "developerName", that binding record will be ignored when executing in a namespaced scratch org.

The di_Binding.Resolver.isBindingMatchByFilteringCriteria( di_Binding ) method fails to make a match because the value for this.developerName is generated from the System.Type which includes the namespace value but the bind.DeveloperName doesn't included the namespace because its value was manually entered into the associated CMDT Binding__mdt record.

If you were to enter the namespace along with the API name into the CMDT Binding__mdt record, the resolution would work fine but that in turn limits your interaction with that codebase to only namespace enabled scratch orgs.