LightningFlowComponents icon indicating copy to clipboard operation
LightningFlowComponents copied to clipboard

refactor(apex): ensure unique RecordType mapping

Open tzinm opened this issue 2 months ago • 0 comments

Description

Replaced the use of getRecordTypeInfosByName() with getRecordTypeInfosByDeveloperName() in the GetRecordtypeInfobyObjects class.

The purpose of this change is to ensure that the keys of the map returned by the Schema.DescribeSObjectResult call are unique and stable, preventing potential key collisions when translated Record Type labels are identical.

Technical context

The getRecordTypeInfosByName() method returns a Map<String, Schema.RecordTypeInfo> whose keys are the translated labels of the Record Types. That is, the label displayed in the user interface, depending on the user’s active language.

In Salesforce, different Record Types can share the same translated label. However, map keys must be unique (they behave like a Set), so if two Record Types share the same label, one of them will overwrite the other in the map, leading to inconsistent or unexpected results.

The standard getRecordTypeInfosByDeveloperName() method solves this issue because it returns a Map<String, Schema.RecordTypeInfo> whose keys are the Developer Names (API Names) of the Record Types, which are unique per object and language-independent.


This change does not alter the functional behavior of the component. It only improves code reliability in environments with translated Record Type labels.

tzinm avatar Oct 27 '25 22:10 tzinm