Direkt zum Hauptbereich

Posts

Posts mit dem Label "AggregateResult" werden angezeigt.

Verarbeitung mit AggregateResult beschleunigen

Verarbeitung großer Datenmengen in Salesforce kann unter Umständen viel Zeit in Anspruch nehmen. Sollte dieser Prozess im Vordergrund länger als 10 Sekunden dauern, wird er vom System gekillt. Mit diesem Problem hatte ich zu tun, als ich versuchte, ca. 30.000 Datensätze zu verarbeiten und die Ergebnisse in einem Chart (Visualforce Page) darzustellen. Vorhaben: 30.000 Datensätze per SOQL aus der Datenbank holen,  verarbeiten, und die kumulierten Ergebnisse (s. Screenshot oben) in einem Chart sowie in einer Tabelle darstellen. Problem und Ursache: Die Verarbeitung von 30.000 Datensätzen dauert länger als 10 Sekunden. Somit wird dieser Prozess von System unterbrochen. Die folgende Fehlermeldung erscheint: Time limit exceeded - Your request exceeded the time limit for processing. Lösung: Mit dem Einsatz der folgenden Lösung konnte ich die Verarbeitungszeit von > als 10 Sekunden auf 0,1 Sekunden reduzieren. Falls kein Update von einzelnen Datensätzen...

"AggregateResult" als Unterstützung im Service Bereich

Eine sehr hilfreiche Funktionalität bieten die sogenannten APEX Aggregate Functions (hier etwas ausführlicher dargestellt http://www.salesforce.com/us/developer/docs/apexcode/Content/langCon_apex_SOQL_agg_fns.htm ) Mit dem Einsatz der entsprechenden Funktion lässt sich z.B. die Anzahl offener Tickets pro Queue berechnen, ohne dabei die aufwändigen Schleifen zu drehen. COUNT(id)cnt  Anzahl Tickets MIN(CreatedDate)lmd  das Datum des ältesten Tickets SELECT  OwnerId, COUNT(id)cnt, MIN(CreatedDate)lmd  FROM   Case   WHERE  isClosed =  false   GROUP   BY  OwnerId Verpackt in eine Funktion sieht der Code wie folgt aus. Die Sortierung von Ergebnissen  sortResultsByQueueName  habe ich auskommentiert, da diese im letzten Post "Sortieren von Listeneinträgen einfach gemacht" ausführlich beschrieben wurde.      /***************      getQueues      **/ ...