SFDO-Tooling / CumulusCI

Python framework for building portable automation for Salesforce projects
http://cumulusci.readthedocs.io
BSD 3-Clause "New" or "Revised" License
363 stars 242 forks source link

Fix Invalid Lookups of namespaced fields #3759

Closed aditya-balachander closed 8 months ago

aditya-balachander commented 8 months ago

W-15157537

These modifications address the error reported in Issue #3752.

The issue stemmed from the fact that during loading, when namespaces were injected into the mapping, only the key of the lookups dictionary would be altered, not the lookup class itself. For instance, mapping.lookups would appear as follows:

{
    <namespace>__<field>__c: MappingLookup(..., name="<field>__c", ...)
}

In the _infer_and_validate_lookups function within mapping_parser.py, we validate whether the sObjects mentioned in the mapping file under the lookup field are indeed part of the referenceTo of that field. However, the problem arose from the utilization of the name attribute under MappingLookup instead of the key value.

Change: We've modified it to reference the name with the key value of mapping.lookups instead of accessing it within MappingLookup class. This way the name would be the field with the injected namespace

Fixes #3752