Direkt zum Hauptbereich

Posts

Es werden Posts vom Oktober, 2013 angezeigt.

Apex Klassen richtig testen seit Winter14

Seit der Umstellung auf Winter14 müssen Entwickler zwangsweise (mehr) mit der Developer Console arbeiten. Die gewohnte Übersicht aller Apex-Klassen bietet zwar die Möglichkeit zum Testen, stellt aber keine Testergebnisse zur Verfügung.

Die Developer Console übernimmt statt dessen die Darstellung der Testergebnisse. Auch die "line-by-line code coverage" mit dem rot-blauen Hintergrund der getesteten und nicht getesteten Zeilen soll angeblich funktionieren - das ist die Aussage von Salesforce.
Doch die Realität sieht ein wenig anders aus. Trotz mehrfacher Kompilierung aller Klassen und anschließender Durchführung diverser Tests blieb mir die Einsicht in die Testergebnisse verwehrt:
- die gesamte Testabdeckung erschien mit 0%, obwohl die einzelnen Methoden mit ca.80% abgedeckt waren
- der rot-blaue Hintergrund der geteseteten/ungetesteten Zeilen fehlte.
Ein Salesforce Entwickler ohne Testergebnisse ist wie ein Klavierspieler ohne Hände. So habe ich mich in den letzten Wochen ge…

Inhalt als PDF ausgeben

Durch den Einsatz eines APEX-Tags kann der Inhalt einer VisualForce Seite als PDF gerendert werden.  RenderAs="pdf" heisst das Zauberwort. Seit API Version 27.0 können Entwickler eigene <html> und <body> Tags definieren. Da jede VisualForce Page eigene <html> und <body> Tags produziert, müssen zusätzliche Page-Eigenschaften definiert werden, um Duplikate zu vermeiden.

Zusätzliche Eigenschaften: showHeader="false"applyBodyTag="false"

Wer global arbeitet, muss zusätzlich auf die richtige Darstellung von Sonderzeichen achten. 
Die Abhilfe schafft die folgende Style-Angabe: font-family: 'Arial Unicode MS';
Anderenfalls können bestimmte Sonderzeichen nicht oder falsch dargestellt werden.

Falls der Inhalt mit HTML-Tags formatiert ist, muss die Eigenschaftescape ="false"benutzt werden.
An dieser Stelle ist es empfehlenswert, die escape Variable zuerst auf true zu setzen, um sich den HTML Code anzuschauen. Denn im Falle der Ben…

Opportunity Button zum Ändern des Record Types

Wie einfach klingt eigentlich die folgende Aufgabe?
Erstelle einen Button auf dem Opportunity Objekt. Der Button muss den Record Type der offenen Opportunity ändern.
Nach einer kurzen Überlegungspause musste ich zugeben, dass die Aufgabe alles Andere als trivial ist.
Dafür muss eine neue VisualForce Seite entwickelt werden, eine neue Apex Klasse. Nicht zu vergessen ist die Testabdeckung.
Ziemlich aufwendig...
Aber nicht mit JavaScript!
Mit dem angehängten Code lässt sich der Aufwand deutlich reduzieren.
Code kopieren, den Record Type Namen anpassen, Button einbinden - 10 Minuten Aufwand.

{!REQUIRESCRIPT("/soap/ajax/24.0/connection.js")}

var query = "select name, id from recordtype where name='Neue Opportunity'";
var recordtype_NewOpp = sforce.connection.query(query);
var records = recordtype_NewOpp.getArray("records");

try{
sforce.connection.sessionid = '{!GETSESSIONID()}';
var opp = new sforce.SObject("Opportunity");
opp.id='…