Tip #2: Zwei Code-Häppchen für besseres Apex

Währungsumrechungsfehler vermeiden und ganz viele sOQL Abfragen sparen mit OOP- und schema-basierten RecordType-Management auf Apex-Level.

OOP-optimiertes RecordType Management

RecordType statt RecordTypeId

static void insertCase(){
Case aCase = new Case(
 Subject = 'Ich brauche Hilfe',
 RecordType = new RecordType ( Name = 'Support Case'), 
);
insert aCase;
}

@istest
static void verifyRecordType(){
System.AssertEquals(
[select id, RecordTypeId from Case where Subject='Ich brauche Hilfe' Limit 1].RecordTypeId,
[Select Id from RecordType where Developername='Support_Case' AND sSobjectType = 'Case'].Id,
'Case failed RecordType Assignment');
}

Fazit:

  • Zusammen mit einem schema-basierten Ansatz, wie in der Dokumentation zu finden, steht schlankem, sQOL-optimiertem Apex-RecordType-Handling nichts im Weg.
  • RecordType.Name ist wichtiger als RecordType.Developername

Umrechnungsfehler bei Währungen vermeiden

convertCurrency() bekommt Alias in Spring 16

SELECT Id, convertCurrency(Jahresumsatz__c) JahresumsatzInEUR
FROM Account

Info:

  • Der ausführende User bestimmt, in welcher Währung das Ergebnis angezeigt wird.
  • Durch den Alias läßt sich versehentliches Überschreiben eines Wertes in USD durch den umgerechneten Wert in EUR auf API-Level besser vermeiden.

Quelle: https://releasenotes.docs.salesforce.com/en-us/spring16/release-notes/rn_api\_soql.htm