Direkt zum Hauptbereich

Posts

Error: Number of records exceeds limit: 200 in Apex

Berechtigung auf einzelne Datensätze wie z.B. Accounts für einen bestimmten Benutzer kann komfortabel mit Hilfe von   UserRecordAccess  berechnet werden. Es ist allerdings darauf zu achten, dass die Anzahl der abgefragten Datensätze limitiert ist. Das Limit ist von Salesforce auf 200 gesetzt. Use Case: Visualforce Page enthält ein Suchformular für Accounts. Suchmaske wird vom Außendienst vor der Anlage neuer Accounts benutzt, um Duplikate zu vermeiden. Unabhängig von der Berechtigung auf die einzelnen Datensätze (private / public), werden die Namen und Adressen der gefundenen Accounts auf der Seite als Suchergebnisse dargestellt. Abhängig von der Berechtigung hinsichtlich der gefundenen Accounts ist der Link "Öffnen" sichtbar/unsichtbar. Es muss sichergestellt werden, dass die Suche max. 200 Datensätze liefert, um den Berechtigungsaspekt "sauber" zu verarbeiten. Mit try-catch zusätzlich alle Modalitäten abfangen. Der  catch Block wirft einen Fehler, wenn ...

Salesforce.com Certified Advanced Administrator (WI15)

Im Vergleich zu den beiden Consultants Zertifizierungen war die Advanced Admin ein Spaziergang! Allerdings ganz ohne Vorbereitung schafft man die Prüfung auch nicht. Hier sind einige Fragen/Antworten aus der aktuellen Prüfung. 1. Capabilities of collaborative forecasting? - Rename categories - Forecast using opportunity splits - Overlay Quota - Add categories - Select a default forecast currency setting 2. We have four Sales Regions. Each of the region's VPs wants to have a dashboard emailed every Monday. - Create a separate dashboard for each VP - Create one dashboard using Visualforce - Create one dashboard that includes a filter for each region - Create a reporting snapshot 3. User is trying to access content in a library, but receiving an insufficent privileges message. How to troubleshoot? - has the user's profile the CRM content permission enabled - user has been granted permission "Viewer" to the library - user's record has the CR...

Noch mehr Visualforce (Fehlermeldungen)

Wieder mal ein interessantes Phänomen in Verbindung mit Visualforce Pages.  Kurze Erläuterung: * eine Visualforce Page gibt Daten einer MAP in einer Tabelle aus  * map<Integer, list<myObject>>() * falls die  list<myObject>  leer ist, wird die entsprechende Spalte nicht angezeigt (rendered=false) Problem: beim Abfragen der Größe  <apex:outputPanel rendered="{!myMap[selectedYear].size > 0}> erscheint die folgende Fehlermeldung: Incorrect parameter type for subscript. Expected Number, received Text Lösung: den Inhalt der MAP in eine Variable auslagern: <apex:variable value="{!myMap[selectedYear]}"  var="listMyObjects" /> und anschließend die Größe abfragen <apex:outputPanel rendered="{! listMyObjects .size > 0}>

Visualforce Component: DML currently not allowed

Eine Visualforce Seite enthält eine Visualforce Komponente mit eigenem Controller.   Der "Save" Button dieser Komponente soll einen neuen Datensatz erstellen. Die Erstellung des Datensatzes schlägt fehl. Fehlermeldung: Visualforce Error System.LimitException: DML currently not allowed Lösung: <apex:component controller="myController" allowDML="true" >

Wochentagberechnung mit APEX

Das folgende Beispiel zeigt, wie man den Wochentag eines bestimmten Datums unabhängig von der Zeitzone mit APEX berechnet. Berechnung Weihnachtstag: Date dChristmas = date.newInstance(date.today().year(), 12, 24); Date dStart = date.newInstance(1900, 1, 7); Integer iWeekDayChristmas = math.mod(dStart.daysBetween(dChristmas), 7); Ergebnis: iWeekDayChristmas = 3  --> Weihnachtstag 24.12.2014 am Mittwoch 0 = Sonntag 1 = Montag 2 = Dienstag 3 = Mittwoch 4 = Donnerstag 5 = Freitag 6 = Samstag Nur so nebenbei, Buß und Bettag kann dann basierend auf dem Konstrukt wie folgt berechnet werden: Date dNew = dChristmas.addDays(-32-iWeekDayChristmas); Ergebnis: dNew = Buß und Bettag am 19.11.2014

CSS Spielereien

Um die Schaltfläche einer Dropdown-Liste zu entfernen, muss das HTML Element mit den folgenden CSS Eigenschaften ausgestattet werden. .selectUserName{     moz-appearance: none !important;     text-indent: 0.01px !important;     text-overflow: "" !important;     -moz-appearance: window !important;     cursor: pointer; } Auf der Visualforce Seite ist die Dropdown Liste wie folgt implementiert: <apex:selectList size="1" value="{!IdUser}" styleClass=" selectUserName "> <apex:selectOptions value="{!Users}"/> </apex:selectList>

Visualforce mit Filter

Interessantes Systemverhalten stellte ich heute beim Entwickeln einer Visualforce Seite fest. Die in die Visualforce implementierten Charts können gefiltert werden. Der Filter enthält unter anderem eine Liste mit Checkboxen. Werden mehrere Filtereinstellungen gleichzeitig gesetzt (wie auf dem folgenden Video zu sehen ist), wird die aufgerufene Filter-Funktion nicht ausgeführt. Keine Fehlermeldung, keine Ausgabe im Log. Nur "rerender" aktualisiert den Chart. Wird die Filterung mit einer einzigen Einschränkung und anschließend wieder in Kombination vorgenommen, funktioniert die Filter-Funktion. Im Controller ist die Liste wie folgt deklariert:     public list<String> ResourceTypeSelected{get; set;} Um dieses Problem zu lösen, muss die Liste im Constructor initialisiert werden:    ResourceTypeSelected = new list<String>();